talos_rust_client/generated/
machine.rs

1// This file is @generated by prost-build.
2/// rpc applyConfiguration
3/// ApplyConfiguration describes a request to assert a new configuration upon a
4/// node.
5#[derive(serde::Serialize, serde::Deserialize)]
6#[serde(rename_all = "camelCase")]
7#[derive(Clone, PartialEq, ::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<super::google::protobuf::Duration>,
17}
18/// Nested message and enum types in `ApplyConfigurationRequest`.
19pub mod apply_configuration_request {
20    #[derive(serde::Serialize, serde::Deserialize)]
21    #[serde(rename_all = "camelCase")]
22    #[derive(
23        Clone,
24        Copy,
25        Debug,
26        PartialEq,
27        Eq,
28        Hash,
29        PartialOrd,
30        Ord,
31        ::prost::Enumeration
32    )]
33    #[repr(i32)]
34    pub enum Mode {
35        Reboot = 0,
36        Auto = 1,
37        NoReboot = 2,
38        Staged = 3,
39        Try = 4,
40    }
41    impl Mode {
42        /// String value of the enum field names used in the ProtoBuf definition.
43        ///
44        /// The values are not transformed in any way and thus are considered stable
45        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
46        pub fn as_str_name(&self) -> &'static str {
47            match self {
48                Self::Reboot => "REBOOT",
49                Self::Auto => "AUTO",
50                Self::NoReboot => "NO_REBOOT",
51                Self::Staged => "STAGED",
52                Self::Try => "TRY",
53            }
54        }
55        /// Creates an enum from field names used in the ProtoBuf definition.
56        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
57            match value {
58                "REBOOT" => Some(Self::Reboot),
59                "AUTO" => Some(Self::Auto),
60                "NO_REBOOT" => Some(Self::NoReboot),
61                "STAGED" => Some(Self::Staged),
62                "TRY" => Some(Self::Try),
63                _ => None,
64            }
65        }
66    }
67}
68/// ApplyConfigurationResponse describes the response to a configuration request.
69#[derive(serde::Serialize, serde::Deserialize)]
70#[serde(rename_all = "camelCase")]
71#[derive(Clone, PartialEq, ::prost::Message)]
72pub struct ApplyConfiguration {
73    #[prost(message, optional, tag = "1")]
74    pub metadata: ::core::option::Option<super::common::Metadata>,
75    /// Configuration validation warnings.
76    #[prost(string, repeated, tag = "2")]
77    pub warnings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
78    /// States which mode was actually chosen.
79    #[prost(enumeration = "apply_configuration_request::Mode", tag = "3")]
80    pub mode: i32,
81    /// Human-readable message explaining the result of the apply configuration call.
82    #[prost(string, tag = "4")]
83    pub mode_details: ::prost::alloc::string::String,
84}
85#[derive(serde::Serialize, serde::Deserialize)]
86#[serde(rename_all = "camelCase")]
87#[derive(Clone, PartialEq, ::prost::Message)]
88pub struct ApplyConfigurationResponse {
89    #[prost(message, repeated, tag = "1")]
90    pub messages: ::prost::alloc::vec::Vec<ApplyConfiguration>,
91}
92/// rpc reboot
93#[derive(serde::Serialize, serde::Deserialize)]
94#[serde(rename_all = "camelCase")]
95#[derive(Clone, Copy, PartialEq, ::prost::Message)]
96pub struct RebootRequest {
97    #[prost(enumeration = "reboot_request::Mode", tag = "1")]
98    pub mode: i32,
99}
100/// Nested message and enum types in `RebootRequest`.
101pub mod reboot_request {
102    #[derive(serde::Serialize, serde::Deserialize)]
103    #[serde(rename_all = "camelCase")]
104    #[derive(
105        Clone,
106        Copy,
107        Debug,
108        PartialEq,
109        Eq,
110        Hash,
111        PartialOrd,
112        Ord,
113        ::prost::Enumeration
114    )]
115    #[repr(i32)]
116    pub enum Mode {
117        Default = 0,
118        Powercycle = 1,
119    }
120    impl Mode {
121        /// String value of the enum field names used in the ProtoBuf definition.
122        ///
123        /// The values are not transformed in any way and thus are considered stable
124        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
125        pub fn as_str_name(&self) -> &'static str {
126            match self {
127                Self::Default => "DEFAULT",
128                Self::Powercycle => "POWERCYCLE",
129            }
130        }
131        /// Creates an enum from field names used in the ProtoBuf definition.
132        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
133            match value {
134                "DEFAULT" => Some(Self::Default),
135                "POWERCYCLE" => Some(Self::Powercycle),
136                _ => None,
137            }
138        }
139    }
140}
141/// The reboot message containing the reboot status.
142#[derive(serde::Serialize, serde::Deserialize)]
143#[serde(rename_all = "camelCase")]
144#[derive(Clone, PartialEq, ::prost::Message)]
145pub struct Reboot {
146    #[prost(message, optional, tag = "1")]
147    pub metadata: ::core::option::Option<super::common::Metadata>,
148    #[prost(string, tag = "2")]
149    pub actor_id: ::prost::alloc::string::String,
150}
151#[derive(serde::Serialize, serde::Deserialize)]
152#[serde(rename_all = "camelCase")]
153#[derive(Clone, PartialEq, ::prost::Message)]
154pub struct RebootResponse {
155    #[prost(message, repeated, tag = "1")]
156    pub messages: ::prost::alloc::vec::Vec<Reboot>,
157}
158/// rpc Bootstrap
159#[derive(serde::Serialize, serde::Deserialize)]
160#[serde(rename_all = "camelCase")]
161#[derive(Clone, Copy, PartialEq, ::prost::Message)]
162pub struct BootstrapRequest {
163    /// Enable etcd recovery from the snapshot.
164    /// Snapshot should be uploaded before this call via EtcdRecover RPC.
165    #[prost(bool, tag = "1")]
166    pub recover_etcd: bool,
167    /// Skip hash check on the snapshot (etcd).
168    /// Enable this when recovering from data directory copy to skip integrity check.
169    #[prost(bool, tag = "2")]
170    pub recover_skip_hash_check: bool,
171}
172/// The bootstrap message containing the bootstrap status.
173#[derive(serde::Serialize, serde::Deserialize)]
174#[serde(rename_all = "camelCase")]
175#[derive(Clone, PartialEq, ::prost::Message)]
176pub struct Bootstrap {
177    #[prost(message, optional, tag = "1")]
178    pub metadata: ::core::option::Option<super::common::Metadata>,
179}
180#[derive(serde::Serialize, serde::Deserialize)]
181#[serde(rename_all = "camelCase")]
182#[derive(Clone, PartialEq, ::prost::Message)]
183pub struct BootstrapResponse {
184    #[prost(message, repeated, tag = "1")]
185    pub messages: ::prost::alloc::vec::Vec<Bootstrap>,
186}
187/// rpc events
188#[derive(serde::Serialize, serde::Deserialize)]
189#[serde(rename_all = "camelCase")]
190#[derive(Clone, PartialEq, ::prost::Message)]
191pub struct SequenceEvent {
192    #[prost(string, tag = "1")]
193    pub sequence: ::prost::alloc::string::String,
194    #[prost(enumeration = "sequence_event::Action", tag = "2")]
195    pub action: i32,
196    #[prost(message, optional, tag = "3")]
197    pub error: ::core::option::Option<super::common::Error>,
198}
199/// Nested message and enum types in `SequenceEvent`.
200pub mod sequence_event {
201    #[derive(serde::Serialize, serde::Deserialize)]
202    #[serde(rename_all = "camelCase")]
203    #[derive(
204        Clone,
205        Copy,
206        Debug,
207        PartialEq,
208        Eq,
209        Hash,
210        PartialOrd,
211        Ord,
212        ::prost::Enumeration
213    )]
214    #[repr(i32)]
215    pub enum Action {
216        Noop = 0,
217        Start = 1,
218        Stop = 2,
219    }
220    impl Action {
221        /// String value of the enum field names used in the ProtoBuf definition.
222        ///
223        /// The values are not transformed in any way and thus are considered stable
224        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
225        pub fn as_str_name(&self) -> &'static str {
226            match self {
227                Self::Noop => "NOOP",
228                Self::Start => "START",
229                Self::Stop => "STOP",
230            }
231        }
232        /// Creates an enum from field names used in the ProtoBuf definition.
233        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
234            match value {
235                "NOOP" => Some(Self::Noop),
236                "START" => Some(Self::Start),
237                "STOP" => Some(Self::Stop),
238                _ => None,
239            }
240        }
241    }
242}
243#[derive(serde::Serialize, serde::Deserialize)]
244#[serde(rename_all = "camelCase")]
245#[derive(Clone, PartialEq, ::prost::Message)]
246pub struct PhaseEvent {
247    #[prost(string, tag = "1")]
248    pub phase: ::prost::alloc::string::String,
249    #[prost(enumeration = "phase_event::Action", tag = "2")]
250    pub action: i32,
251}
252/// Nested message and enum types in `PhaseEvent`.
253pub mod phase_event {
254    #[derive(serde::Serialize, serde::Deserialize)]
255    #[serde(rename_all = "camelCase")]
256    #[derive(
257        Clone,
258        Copy,
259        Debug,
260        PartialEq,
261        Eq,
262        Hash,
263        PartialOrd,
264        Ord,
265        ::prost::Enumeration
266    )]
267    #[repr(i32)]
268    pub enum Action {
269        Start = 0,
270        Stop = 1,
271    }
272    impl Action {
273        /// String value of the enum field names used in the ProtoBuf definition.
274        ///
275        /// The values are not transformed in any way and thus are considered stable
276        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
277        pub fn as_str_name(&self) -> &'static str {
278            match self {
279                Self::Start => "START",
280                Self::Stop => "STOP",
281            }
282        }
283        /// Creates an enum from field names used in the ProtoBuf definition.
284        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
285            match value {
286                "START" => Some(Self::Start),
287                "STOP" => Some(Self::Stop),
288                _ => None,
289            }
290        }
291    }
292}
293#[derive(serde::Serialize, serde::Deserialize)]
294#[serde(rename_all = "camelCase")]
295#[derive(Clone, PartialEq, ::prost::Message)]
296pub struct TaskEvent {
297    #[prost(string, tag = "1")]
298    pub task: ::prost::alloc::string::String,
299    #[prost(enumeration = "task_event::Action", tag = "2")]
300    pub action: i32,
301}
302/// Nested message and enum types in `TaskEvent`.
303pub mod task_event {
304    #[derive(serde::Serialize, serde::Deserialize)]
305    #[serde(rename_all = "camelCase")]
306    #[derive(
307        Clone,
308        Copy,
309        Debug,
310        PartialEq,
311        Eq,
312        Hash,
313        PartialOrd,
314        Ord,
315        ::prost::Enumeration
316    )]
317    #[repr(i32)]
318    pub enum Action {
319        Start = 0,
320        Stop = 1,
321    }
322    impl Action {
323        /// String value of the enum field names used in the ProtoBuf definition.
324        ///
325        /// The values are not transformed in any way and thus are considered stable
326        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
327        pub fn as_str_name(&self) -> &'static str {
328            match self {
329                Self::Start => "START",
330                Self::Stop => "STOP",
331            }
332        }
333        /// Creates an enum from field names used in the ProtoBuf definition.
334        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
335            match value {
336                "START" => Some(Self::Start),
337                "STOP" => Some(Self::Stop),
338                _ => None,
339            }
340        }
341    }
342}
343#[derive(serde::Serialize, serde::Deserialize)]
344#[serde(rename_all = "camelCase")]
345#[derive(Clone, PartialEq, ::prost::Message)]
346pub struct ServiceStateEvent {
347    #[prost(string, tag = "1")]
348    pub service: ::prost::alloc::string::String,
349    #[prost(enumeration = "service_state_event::Action", tag = "2")]
350    pub action: i32,
351    #[prost(string, tag = "3")]
352    pub message: ::prost::alloc::string::String,
353    #[prost(message, optional, tag = "4")]
354    pub health: ::core::option::Option<ServiceHealth>,
355}
356/// Nested message and enum types in `ServiceStateEvent`.
357pub mod service_state_event {
358    #[derive(serde::Serialize, serde::Deserialize)]
359    #[serde(rename_all = "camelCase")]
360    #[derive(
361        Clone,
362        Copy,
363        Debug,
364        PartialEq,
365        Eq,
366        Hash,
367        PartialOrd,
368        Ord,
369        ::prost::Enumeration
370    )]
371    #[repr(i32)]
372    pub enum Action {
373        Initialized = 0,
374        Preparing = 1,
375        Waiting = 2,
376        Running = 3,
377        Stopping = 4,
378        Finished = 5,
379        Failed = 6,
380        Skipped = 7,
381        Starting = 8,
382    }
383    impl Action {
384        /// String value of the enum field names used in the ProtoBuf definition.
385        ///
386        /// The values are not transformed in any way and thus are considered stable
387        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
388        pub fn as_str_name(&self) -> &'static str {
389            match self {
390                Self::Initialized => "INITIALIZED",
391                Self::Preparing => "PREPARING",
392                Self::Waiting => "WAITING",
393                Self::Running => "RUNNING",
394                Self::Stopping => "STOPPING",
395                Self::Finished => "FINISHED",
396                Self::Failed => "FAILED",
397                Self::Skipped => "SKIPPED",
398                Self::Starting => "STARTING",
399            }
400        }
401        /// Creates an enum from field names used in the ProtoBuf definition.
402        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
403            match value {
404                "INITIALIZED" => Some(Self::Initialized),
405                "PREPARING" => Some(Self::Preparing),
406                "WAITING" => Some(Self::Waiting),
407                "RUNNING" => Some(Self::Running),
408                "STOPPING" => Some(Self::Stopping),
409                "FINISHED" => Some(Self::Finished),
410                "FAILED" => Some(Self::Failed),
411                "SKIPPED" => Some(Self::Skipped),
412                "STARTING" => Some(Self::Starting),
413                _ => None,
414            }
415        }
416    }
417}
418#[derive(serde::Serialize, serde::Deserialize)]
419#[serde(rename_all = "camelCase")]
420#[derive(Clone, Copy, PartialEq, ::prost::Message)]
421pub struct RestartEvent {
422    #[prost(int64, tag = "1")]
423    pub cmd: i64,
424}
425/// ConfigLoadErrorEvent is reported when the config loading has failed.
426#[derive(serde::Serialize, serde::Deserialize)]
427#[serde(rename_all = "camelCase")]
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct ConfigLoadErrorEvent {
430    #[prost(string, tag = "1")]
431    pub error: ::prost::alloc::string::String,
432}
433/// ConfigValidationErrorEvent is reported when config validation has failed.
434#[derive(serde::Serialize, serde::Deserialize)]
435#[serde(rename_all = "camelCase")]
436#[derive(Clone, PartialEq, ::prost::Message)]
437pub struct ConfigValidationErrorEvent {
438    #[prost(string, tag = "1")]
439    pub error: ::prost::alloc::string::String,
440}
441/// AddressEvent reports node endpoints aggregated from k8s.Endpoints and network.Hostname.
442#[derive(serde::Serialize, serde::Deserialize)]
443#[serde(rename_all = "camelCase")]
444#[derive(Clone, PartialEq, ::prost::Message)]
445pub struct AddressEvent {
446    #[prost(string, tag = "1")]
447    pub hostname: ::prost::alloc::string::String,
448    #[prost(string, repeated, tag = "2")]
449    pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
450}
451/// MachineStatusEvent reports changes to the MachineStatus resource.
452#[derive(serde::Serialize, serde::Deserialize)]
453#[serde(rename_all = "camelCase")]
454#[derive(Clone, PartialEq, ::prost::Message)]
455pub struct MachineStatusEvent {
456    #[prost(enumeration = "machine_status_event::MachineStage", tag = "1")]
457    pub stage: i32,
458    #[prost(message, optional, tag = "2")]
459    pub status: ::core::option::Option<machine_status_event::MachineStatus>,
460}
461/// Nested message and enum types in `MachineStatusEvent`.
462pub mod machine_status_event {
463    #[derive(serde::Serialize, serde::Deserialize)]
464    #[serde(rename_all = "camelCase")]
465    #[derive(Clone, PartialEq, ::prost::Message)]
466    pub struct MachineStatus {
467        #[prost(bool, tag = "1")]
468        pub ready: bool,
469        #[prost(message, repeated, tag = "2")]
470        pub unmet_conditions: ::prost::alloc::vec::Vec<machine_status::UnmetCondition>,
471    }
472    /// Nested message and enum types in `MachineStatus`.
473    pub mod machine_status {
474        #[derive(serde::Serialize, serde::Deserialize)]
475        #[serde(rename_all = "camelCase")]
476        #[derive(Clone, PartialEq, ::prost::Message)]
477        pub struct UnmetCondition {
478            #[prost(string, tag = "1")]
479            pub name: ::prost::alloc::string::String,
480            #[prost(string, tag = "2")]
481            pub reason: ::prost::alloc::string::String,
482        }
483    }
484    #[derive(serde::Serialize, serde::Deserialize)]
485    #[serde(rename_all = "camelCase")]
486    #[derive(
487        Clone,
488        Copy,
489        Debug,
490        PartialEq,
491        Eq,
492        Hash,
493        PartialOrd,
494        Ord,
495        ::prost::Enumeration
496    )]
497    #[repr(i32)]
498    pub enum MachineStage {
499        Unknown = 0,
500        Booting = 1,
501        Installing = 2,
502        Maintenance = 3,
503        Running = 4,
504        Rebooting = 5,
505        ShuttingDown = 6,
506        Resetting = 7,
507        Upgrading = 8,
508    }
509    impl MachineStage {
510        /// String value of the enum field names used in the ProtoBuf definition.
511        ///
512        /// The values are not transformed in any way and thus are considered stable
513        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
514        pub fn as_str_name(&self) -> &'static str {
515            match self {
516                Self::Unknown => "UNKNOWN",
517                Self::Booting => "BOOTING",
518                Self::Installing => "INSTALLING",
519                Self::Maintenance => "MAINTENANCE",
520                Self::Running => "RUNNING",
521                Self::Rebooting => "REBOOTING",
522                Self::ShuttingDown => "SHUTTING_DOWN",
523                Self::Resetting => "RESETTING",
524                Self::Upgrading => "UPGRADING",
525            }
526        }
527        /// Creates an enum from field names used in the ProtoBuf definition.
528        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
529            match value {
530                "UNKNOWN" => Some(Self::Unknown),
531                "BOOTING" => Some(Self::Booting),
532                "INSTALLING" => Some(Self::Installing),
533                "MAINTENANCE" => Some(Self::Maintenance),
534                "RUNNING" => Some(Self::Running),
535                "REBOOTING" => Some(Self::Rebooting),
536                "SHUTTING_DOWN" => Some(Self::ShuttingDown),
537                "RESETTING" => Some(Self::Resetting),
538                "UPGRADING" => Some(Self::Upgrading),
539                _ => None,
540            }
541        }
542    }
543}
544#[derive(serde::Serialize, serde::Deserialize)]
545#[serde(rename_all = "camelCase")]
546#[derive(Clone, PartialEq, ::prost::Message)]
547pub struct EventsRequest {
548    #[prost(int32, tag = "1")]
549    pub tail_events: i32,
550    #[prost(string, tag = "2")]
551    pub tail_id: ::prost::alloc::string::String,
552    #[prost(int32, tag = "3")]
553    pub tail_seconds: i32,
554    #[prost(string, tag = "4")]
555    pub with_actor_id: ::prost::alloc::string::String,
556}
557#[derive(serde::Serialize, serde::Deserialize)]
558#[serde(rename_all = "camelCase")]
559#[derive(Clone, PartialEq, ::prost::Message)]
560pub struct Event {
561    #[prost(message, optional, tag = "1")]
562    pub metadata: ::core::option::Option<super::common::Metadata>,
563    #[prost(message, optional, tag = "2")]
564    pub data: ::core::option::Option<super::google::protobuf::Any>,
565    #[prost(string, tag = "3")]
566    pub id: ::prost::alloc::string::String,
567    #[prost(string, tag = "4")]
568    pub actor_id: ::prost::alloc::string::String,
569}
570/// rpc reset
571#[derive(serde::Serialize, serde::Deserialize)]
572#[serde(rename_all = "camelCase")]
573#[derive(Clone, PartialEq, ::prost::Message)]
574pub struct ResetPartitionSpec {
575    #[prost(string, tag = "1")]
576    pub label: ::prost::alloc::string::String,
577    #[prost(bool, tag = "2")]
578    pub wipe: bool,
579}
580#[derive(serde::Serialize, serde::Deserialize)]
581#[serde(rename_all = "camelCase")]
582#[derive(Clone, PartialEq, ::prost::Message)]
583pub struct ResetRequest {
584    /// Graceful indicates whether node should leave etcd before the upgrade, it also
585    /// enforces etcd checks before leaving.
586    #[prost(bool, tag = "1")]
587    pub graceful: bool,
588    /// Reboot indicates whether node should reboot or halt after resetting.
589    #[prost(bool, tag = "2")]
590    pub reboot: bool,
591    /// System_partitions_to_wipe lists specific system disk partitions to be reset (wiped).
592    /// If system_partitions_to_wipe is empty, all the partitions are erased.
593    #[prost(message, repeated, tag = "3")]
594    pub system_partitions_to_wipe: ::prost::alloc::vec::Vec<ResetPartitionSpec>,
595    /// UserDisksToWipe lists specific connected block devices to be reset (wiped).
596    #[prost(string, repeated, tag = "4")]
597    pub user_disks_to_wipe: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
598    /// WipeMode defines which devices should be wiped.
599    #[prost(enumeration = "reset_request::WipeMode", tag = "5")]
600    pub mode: i32,
601}
602/// Nested message and enum types in `ResetRequest`.
603pub mod reset_request {
604    #[derive(serde::Serialize, serde::Deserialize)]
605    #[serde(rename_all = "camelCase")]
606    #[derive(
607        Clone,
608        Copy,
609        Debug,
610        PartialEq,
611        Eq,
612        Hash,
613        PartialOrd,
614        Ord,
615        ::prost::Enumeration
616    )]
617    #[repr(i32)]
618    pub enum WipeMode {
619        All = 0,
620        SystemDisk = 1,
621        UserDisks = 2,
622    }
623    impl WipeMode {
624        /// String value of the enum field names used in the ProtoBuf definition.
625        ///
626        /// The values are not transformed in any way and thus are considered stable
627        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
628        pub fn as_str_name(&self) -> &'static str {
629            match self {
630                Self::All => "ALL",
631                Self::SystemDisk => "SYSTEM_DISK",
632                Self::UserDisks => "USER_DISKS",
633            }
634        }
635        /// Creates an enum from field names used in the ProtoBuf definition.
636        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
637            match value {
638                "ALL" => Some(Self::All),
639                "SYSTEM_DISK" => Some(Self::SystemDisk),
640                "USER_DISKS" => Some(Self::UserDisks),
641                _ => None,
642            }
643        }
644    }
645}
646/// The reset message containing the restart status.
647#[derive(serde::Serialize, serde::Deserialize)]
648#[serde(rename_all = "camelCase")]
649#[derive(Clone, PartialEq, ::prost::Message)]
650pub struct Reset {
651    #[prost(message, optional, tag = "1")]
652    pub metadata: ::core::option::Option<super::common::Metadata>,
653    #[prost(string, tag = "2")]
654    pub actor_id: ::prost::alloc::string::String,
655}
656#[derive(serde::Serialize, serde::Deserialize)]
657#[serde(rename_all = "camelCase")]
658#[derive(Clone, PartialEq, ::prost::Message)]
659pub struct ResetResponse {
660    #[prost(message, repeated, tag = "1")]
661    pub messages: ::prost::alloc::vec::Vec<Reset>,
662}
663/// rpc shutdown
664/// The messages message containing the shutdown status.
665#[derive(serde::Serialize, serde::Deserialize)]
666#[serde(rename_all = "camelCase")]
667#[derive(Clone, PartialEq, ::prost::Message)]
668pub struct Shutdown {
669    #[prost(message, optional, tag = "1")]
670    pub metadata: ::core::option::Option<super::common::Metadata>,
671    #[prost(string, tag = "2")]
672    pub actor_id: ::prost::alloc::string::String,
673}
674#[derive(serde::Serialize, serde::Deserialize)]
675#[serde(rename_all = "camelCase")]
676#[derive(Clone, Copy, PartialEq, ::prost::Message)]
677pub struct ShutdownRequest {
678    /// Force indicates whether node should shutdown without first cordening and draining
679    #[prost(bool, tag = "1")]
680    pub force: bool,
681}
682#[derive(serde::Serialize, serde::Deserialize)]
683#[serde(rename_all = "camelCase")]
684#[derive(Clone, PartialEq, ::prost::Message)]
685pub struct ShutdownResponse {
686    #[prost(message, repeated, tag = "1")]
687    pub messages: ::prost::alloc::vec::Vec<Shutdown>,
688}
689/// rpc upgrade
690#[derive(serde::Serialize, serde::Deserialize)]
691#[serde(rename_all = "camelCase")]
692#[derive(Clone, PartialEq, ::prost::Message)]
693pub struct UpgradeRequest {
694    #[prost(string, tag = "1")]
695    pub image: ::prost::alloc::string::String,
696    #[prost(bool, tag = "2")]
697    pub preserve: bool,
698    #[prost(bool, tag = "3")]
699    pub stage: bool,
700    #[prost(bool, tag = "4")]
701    pub force: bool,
702    #[prost(enumeration = "upgrade_request::RebootMode", tag = "5")]
703    pub reboot_mode: i32,
704}
705/// Nested message and enum types in `UpgradeRequest`.
706pub mod upgrade_request {
707    #[derive(serde::Serialize, serde::Deserialize)]
708    #[serde(rename_all = "camelCase")]
709    #[derive(
710        Clone,
711        Copy,
712        Debug,
713        PartialEq,
714        Eq,
715        Hash,
716        PartialOrd,
717        Ord,
718        ::prost::Enumeration
719    )]
720    #[repr(i32)]
721    pub enum RebootMode {
722        Default = 0,
723        Powercycle = 1,
724    }
725    impl RebootMode {
726        /// String value of the enum field names used in the ProtoBuf definition.
727        ///
728        /// The values are not transformed in any way and thus are considered stable
729        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
730        pub fn as_str_name(&self) -> &'static str {
731            match self {
732                Self::Default => "DEFAULT",
733                Self::Powercycle => "POWERCYCLE",
734            }
735        }
736        /// Creates an enum from field names used in the ProtoBuf definition.
737        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
738            match value {
739                "DEFAULT" => Some(Self::Default),
740                "POWERCYCLE" => Some(Self::Powercycle),
741                _ => None,
742            }
743        }
744    }
745}
746#[derive(serde::Serialize, serde::Deserialize)]
747#[serde(rename_all = "camelCase")]
748#[derive(Clone, PartialEq, ::prost::Message)]
749pub struct Upgrade {
750    #[prost(message, optional, tag = "1")]
751    pub metadata: ::core::option::Option<super::common::Metadata>,
752    #[prost(string, tag = "2")]
753    pub ack: ::prost::alloc::string::String,
754    #[prost(string, tag = "3")]
755    pub actor_id: ::prost::alloc::string::String,
756}
757#[derive(serde::Serialize, serde::Deserialize)]
758#[serde(rename_all = "camelCase")]
759#[derive(Clone, PartialEq, ::prost::Message)]
760pub struct UpgradeResponse {
761    #[prost(message, repeated, tag = "1")]
762    pub messages: ::prost::alloc::vec::Vec<Upgrade>,
763}
764/// rpc servicelist
765#[derive(serde::Serialize, serde::Deserialize)]
766#[serde(rename_all = "camelCase")]
767#[derive(Clone, PartialEq, ::prost::Message)]
768pub struct ServiceList {
769    #[prost(message, optional, tag = "1")]
770    pub metadata: ::core::option::Option<super::common::Metadata>,
771    #[prost(message, repeated, tag = "2")]
772    pub services: ::prost::alloc::vec::Vec<ServiceInfo>,
773}
774#[derive(serde::Serialize, serde::Deserialize)]
775#[serde(rename_all = "camelCase")]
776#[derive(Clone, PartialEq, ::prost::Message)]
777pub struct ServiceListResponse {
778    #[prost(message, repeated, tag = "1")]
779    pub messages: ::prost::alloc::vec::Vec<ServiceList>,
780}
781#[derive(serde::Serialize, serde::Deserialize)]
782#[serde(rename_all = "camelCase")]
783#[derive(Clone, PartialEq, ::prost::Message)]
784pub struct ServiceInfo {
785    #[prost(string, tag = "1")]
786    pub id: ::prost::alloc::string::String,
787    #[prost(string, tag = "2")]
788    pub state: ::prost::alloc::string::String,
789    #[prost(message, optional, tag = "3")]
790    pub events: ::core::option::Option<ServiceEvents>,
791    #[prost(message, optional, tag = "4")]
792    pub health: ::core::option::Option<ServiceHealth>,
793}
794#[derive(serde::Serialize, serde::Deserialize)]
795#[serde(rename_all = "camelCase")]
796#[derive(Clone, PartialEq, ::prost::Message)]
797pub struct ServiceEvents {
798    #[prost(message, repeated, tag = "1")]
799    pub events: ::prost::alloc::vec::Vec<ServiceEvent>,
800}
801#[derive(serde::Serialize, serde::Deserialize)]
802#[serde(rename_all = "camelCase")]
803#[derive(Clone, PartialEq, ::prost::Message)]
804pub struct ServiceEvent {
805    #[prost(string, tag = "1")]
806    pub msg: ::prost::alloc::string::String,
807    #[prost(string, tag = "2")]
808    pub state: ::prost::alloc::string::String,
809    #[prost(message, optional, tag = "3")]
810    pub ts: ::core::option::Option<super::google::protobuf::Timestamp>,
811}
812#[derive(serde::Serialize, serde::Deserialize)]
813#[serde(rename_all = "camelCase")]
814#[derive(Clone, PartialEq, ::prost::Message)]
815pub struct ServiceHealth {
816    #[prost(bool, tag = "1")]
817    pub unknown: bool,
818    #[prost(bool, tag = "2")]
819    pub healthy: bool,
820    #[prost(string, tag = "3")]
821    pub last_message: ::prost::alloc::string::String,
822    #[prost(message, optional, tag = "4")]
823    pub last_change: ::core::option::Option<super::google::protobuf::Timestamp>,
824}
825/// rpc servicestart
826#[derive(serde::Serialize, serde::Deserialize)]
827#[serde(rename_all = "camelCase")]
828#[derive(Clone, PartialEq, ::prost::Message)]
829pub struct ServiceStartRequest {
830    #[prost(string, tag = "1")]
831    pub id: ::prost::alloc::string::String,
832}
833#[derive(serde::Serialize, serde::Deserialize)]
834#[serde(rename_all = "camelCase")]
835#[derive(Clone, PartialEq, ::prost::Message)]
836pub struct ServiceStart {
837    #[prost(message, optional, tag = "1")]
838    pub metadata: ::core::option::Option<super::common::Metadata>,
839    #[prost(string, tag = "2")]
840    pub resp: ::prost::alloc::string::String,
841}
842#[derive(serde::Serialize, serde::Deserialize)]
843#[serde(rename_all = "camelCase")]
844#[derive(Clone, PartialEq, ::prost::Message)]
845pub struct ServiceStartResponse {
846    #[prost(message, repeated, tag = "1")]
847    pub messages: ::prost::alloc::vec::Vec<ServiceStart>,
848}
849#[derive(serde::Serialize, serde::Deserialize)]
850#[serde(rename_all = "camelCase")]
851#[derive(Clone, PartialEq, ::prost::Message)]
852pub struct ServiceStopRequest {
853    #[prost(string, tag = "1")]
854    pub id: ::prost::alloc::string::String,
855}
856#[derive(serde::Serialize, serde::Deserialize)]
857#[serde(rename_all = "camelCase")]
858#[derive(Clone, PartialEq, ::prost::Message)]
859pub struct ServiceStop {
860    #[prost(message, optional, tag = "1")]
861    pub metadata: ::core::option::Option<super::common::Metadata>,
862    #[prost(string, tag = "2")]
863    pub resp: ::prost::alloc::string::String,
864}
865#[derive(serde::Serialize, serde::Deserialize)]
866#[serde(rename_all = "camelCase")]
867#[derive(Clone, PartialEq, ::prost::Message)]
868pub struct ServiceStopResponse {
869    #[prost(message, repeated, tag = "1")]
870    pub messages: ::prost::alloc::vec::Vec<ServiceStop>,
871}
872#[derive(serde::Serialize, serde::Deserialize)]
873#[serde(rename_all = "camelCase")]
874#[derive(Clone, PartialEq, ::prost::Message)]
875pub struct ServiceRestartRequest {
876    #[prost(string, tag = "1")]
877    pub id: ::prost::alloc::string::String,
878}
879#[derive(serde::Serialize, serde::Deserialize)]
880#[serde(rename_all = "camelCase")]
881#[derive(Clone, PartialEq, ::prost::Message)]
882pub struct ServiceRestart {
883    #[prost(message, optional, tag = "1")]
884    pub metadata: ::core::option::Option<super::common::Metadata>,
885    #[prost(string, tag = "2")]
886    pub resp: ::prost::alloc::string::String,
887}
888#[derive(serde::Serialize, serde::Deserialize)]
889#[serde(rename_all = "camelCase")]
890#[derive(Clone, PartialEq, ::prost::Message)]
891pub struct ServiceRestartResponse {
892    #[prost(message, repeated, tag = "1")]
893    pub messages: ::prost::alloc::vec::Vec<ServiceRestart>,
894}
895/// CopyRequest describes a request to copy data out of Talos node
896///
897/// Copy produces .tar.gz archive which is streamed back to the caller
898#[derive(serde::Serialize, serde::Deserialize)]
899#[serde(rename_all = "camelCase")]
900#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct CopyRequest {
902    /// Root path to start copying data out, it might be either a file or directory
903    #[prost(string, tag = "1")]
904    pub root_path: ::prost::alloc::string::String,
905}
906/// ListRequest describes a request to list the contents of a directory.
907#[derive(serde::Serialize, serde::Deserialize)]
908#[serde(rename_all = "camelCase")]
909#[derive(Clone, PartialEq, ::prost::Message)]
910pub struct ListRequest {
911    /// Root indicates the root directory for the list. If not indicated, '/' is
912    /// presumed.
913    #[prost(string, tag = "1")]
914    pub root: ::prost::alloc::string::String,
915    /// Recurse indicates that subdirectories should be recursed.
916    #[prost(bool, tag = "2")]
917    pub recurse: bool,
918    /// RecursionDepth indicates how many levels of subdirectories should be
919    /// recursed. The default (0) indicates that no limit should be enforced.
920    #[prost(int32, tag = "3")]
921    pub recursion_depth: i32,
922    /// Types indicates what file type should be returned. If not indicated,
923    /// all files will be returned.
924    #[prost(enumeration = "list_request::Type", repeated, tag = "4")]
925    pub types: ::prost::alloc::vec::Vec<i32>,
926    /// Report xattrs
927    #[prost(bool, tag = "5")]
928    pub report_xattrs: bool,
929}
930/// Nested message and enum types in `ListRequest`.
931pub mod list_request {
932    /// File type.
933    #[derive(serde::Serialize, serde::Deserialize)]
934    #[serde(rename_all = "camelCase")]
935    #[derive(
936        Clone,
937        Copy,
938        Debug,
939        PartialEq,
940        Eq,
941        Hash,
942        PartialOrd,
943        Ord,
944        ::prost::Enumeration
945    )]
946    #[repr(i32)]
947    pub enum Type {
948        /// Regular file (not directory, symlink, etc).
949        Regular = 0,
950        /// Directory.
951        Directory = 1,
952        /// Symbolic link.
953        Symlink = 2,
954    }
955    impl Type {
956        /// String value of the enum field names used in the ProtoBuf definition.
957        ///
958        /// The values are not transformed in any way and thus are considered stable
959        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
960        pub fn as_str_name(&self) -> &'static str {
961            match self {
962                Self::Regular => "REGULAR",
963                Self::Directory => "DIRECTORY",
964                Self::Symlink => "SYMLINK",
965            }
966        }
967        /// Creates an enum from field names used in the ProtoBuf definition.
968        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
969            match value {
970                "REGULAR" => Some(Self::Regular),
971                "DIRECTORY" => Some(Self::Directory),
972                "SYMLINK" => Some(Self::Symlink),
973                _ => None,
974            }
975        }
976    }
977}
978/// DiskUsageRequest describes a request to list disk usage of directories and regular files
979#[derive(serde::Serialize, serde::Deserialize)]
980#[serde(rename_all = "camelCase")]
981#[derive(Clone, PartialEq, ::prost::Message)]
982pub struct DiskUsageRequest {
983    /// RecursionDepth indicates how many levels of subdirectories should be
984    /// recursed. The default (0) indicates that no limit should be enforced.
985    #[prost(int32, tag = "1")]
986    pub recursion_depth: i32,
987    /// All write sizes for all files, not just directories.
988    #[prost(bool, tag = "2")]
989    pub all: bool,
990    /// Threshold exclude entries smaller than SIZE if positive,
991    /// or entries greater than SIZE if negative.
992    #[prost(int64, tag = "3")]
993    pub threshold: i64,
994    /// DiskUsagePaths is the list of directories to calculate disk usage for.
995    #[prost(string, repeated, tag = "4")]
996    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
997}
998/// FileInfo describes a file or directory's information
999#[derive(serde::Serialize, serde::Deserialize)]
1000#[serde(rename_all = "camelCase")]
1001#[derive(Clone, PartialEq, ::prost::Message)]
1002pub struct FileInfo {
1003    #[prost(message, optional, tag = "1")]
1004    pub metadata: ::core::option::Option<super::common::Metadata>,
1005    /// Name is the name (including prefixed path) of the file or directory
1006    #[prost(string, tag = "2")]
1007    pub name: ::prost::alloc::string::String,
1008    /// Size indicates the number of bytes contained within the file
1009    #[prost(int64, tag = "3")]
1010    pub size: i64,
1011    /// Mode is the bitmap of UNIX mode/permission flags of the file
1012    #[prost(uint32, tag = "4")]
1013    pub mode: u32,
1014    /// Modified indicates the UNIX timestamp at which the file was last modified
1015    #[prost(int64, tag = "5")]
1016    pub modified: i64,
1017    /// IsDir indicates that the file is a directory
1018    #[prost(bool, tag = "6")]
1019    pub is_dir: bool,
1020    /// Error describes any error encountered while trying to read the file
1021    /// information.
1022    #[prost(string, tag = "7")]
1023    pub error: ::prost::alloc::string::String,
1024    /// Link is filled with symlink target
1025    #[prost(string, tag = "8")]
1026    pub link: ::prost::alloc::string::String,
1027    /// RelativeName is the name of the file or directory relative to the RootPath
1028    #[prost(string, tag = "9")]
1029    pub relative_name: ::prost::alloc::string::String,
1030    /// Owner uid
1031    #[prost(uint32, tag = "10")]
1032    pub uid: u32,
1033    /// Owner gid
1034    #[prost(uint32, tag = "11")]
1035    pub gid: u32,
1036    /// Extended attributes (if present and requested)
1037    #[prost(message, repeated, tag = "12")]
1038    pub xattrs: ::prost::alloc::vec::Vec<Xattr>,
1039}
1040#[derive(serde::Serialize, serde::Deserialize)]
1041#[serde(rename_all = "camelCase")]
1042#[derive(Clone, PartialEq, ::prost::Message)]
1043pub struct Xattr {
1044    #[prost(string, tag = "1")]
1045    pub name: ::prost::alloc::string::String,
1046    #[prost(bytes = "vec", tag = "2")]
1047    pub data: ::prost::alloc::vec::Vec<u8>,
1048}
1049/// DiskUsageInfo describes a file or directory's information for du command
1050#[derive(serde::Serialize, serde::Deserialize)]
1051#[serde(rename_all = "camelCase")]
1052#[derive(Clone, PartialEq, ::prost::Message)]
1053pub struct DiskUsageInfo {
1054    #[prost(message, optional, tag = "1")]
1055    pub metadata: ::core::option::Option<super::common::Metadata>,
1056    /// Name is the name (including prefixed path) of the file or directory
1057    #[prost(string, tag = "2")]
1058    pub name: ::prost::alloc::string::String,
1059    /// Size indicates the number of bytes contained within the file
1060    #[prost(int64, tag = "3")]
1061    pub size: i64,
1062    /// Error describes any error encountered while trying to read the file
1063    /// information.
1064    #[prost(string, tag = "4")]
1065    pub error: ::prost::alloc::string::String,
1066    /// RelativeName is the name of the file or directory relative to the RootPath
1067    #[prost(string, tag = "5")]
1068    pub relative_name: ::prost::alloc::string::String,
1069}
1070/// The messages message containing the requested df stats.
1071#[derive(serde::Serialize, serde::Deserialize)]
1072#[serde(rename_all = "camelCase")]
1073#[derive(Clone, PartialEq, ::prost::Message)]
1074pub struct Mounts {
1075    #[prost(message, optional, tag = "1")]
1076    pub metadata: ::core::option::Option<super::common::Metadata>,
1077    #[prost(message, repeated, tag = "2")]
1078    pub stats: ::prost::alloc::vec::Vec<MountStat>,
1079}
1080#[derive(serde::Serialize, serde::Deserialize)]
1081#[serde(rename_all = "camelCase")]
1082#[derive(Clone, PartialEq, ::prost::Message)]
1083pub struct MountsResponse {
1084    #[prost(message, repeated, tag = "1")]
1085    pub messages: ::prost::alloc::vec::Vec<Mounts>,
1086}
1087/// The messages message containing the requested processes.
1088#[derive(serde::Serialize, serde::Deserialize)]
1089#[serde(rename_all = "camelCase")]
1090#[derive(Clone, PartialEq, ::prost::Message)]
1091pub struct MountStat {
1092    #[prost(string, tag = "1")]
1093    pub filesystem: ::prost::alloc::string::String,
1094    #[prost(uint64, tag = "2")]
1095    pub size: u64,
1096    #[prost(uint64, tag = "3")]
1097    pub available: u64,
1098    #[prost(string, tag = "4")]
1099    pub mounted_on: ::prost::alloc::string::String,
1100}
1101#[derive(serde::Serialize, serde::Deserialize)]
1102#[serde(rename_all = "camelCase")]
1103#[derive(Clone, PartialEq, ::prost::Message)]
1104pub struct Version {
1105    #[prost(message, optional, tag = "1")]
1106    pub metadata: ::core::option::Option<super::common::Metadata>,
1107    #[prost(message, optional, tag = "2")]
1108    pub version: ::core::option::Option<VersionInfo>,
1109    #[prost(message, optional, tag = "3")]
1110    pub platform: ::core::option::Option<PlatformInfo>,
1111    /// Features describe individual Talos features that can be switched on or off.
1112    #[prost(message, optional, tag = "4")]
1113    pub features: ::core::option::Option<FeaturesInfo>,
1114}
1115#[derive(serde::Serialize, serde::Deserialize)]
1116#[serde(rename_all = "camelCase")]
1117#[derive(Clone, PartialEq, ::prost::Message)]
1118pub struct VersionResponse {
1119    #[prost(message, repeated, tag = "1")]
1120    pub messages: ::prost::alloc::vec::Vec<Version>,
1121}
1122#[derive(serde::Serialize, serde::Deserialize)]
1123#[serde(rename_all = "camelCase")]
1124#[derive(Clone, PartialEq, ::prost::Message)]
1125pub struct VersionInfo {
1126    #[prost(string, tag = "1")]
1127    pub tag: ::prost::alloc::string::String,
1128    #[prost(string, tag = "2")]
1129    pub sha: ::prost::alloc::string::String,
1130    #[prost(string, tag = "3")]
1131    pub built: ::prost::alloc::string::String,
1132    #[prost(string, tag = "4")]
1133    pub go_version: ::prost::alloc::string::String,
1134    #[prost(string, tag = "5")]
1135    pub os: ::prost::alloc::string::String,
1136    #[prost(string, tag = "6")]
1137    pub arch: ::prost::alloc::string::String,
1138}
1139#[derive(serde::Serialize, serde::Deserialize)]
1140#[serde(rename_all = "camelCase")]
1141#[derive(Clone, PartialEq, ::prost::Message)]
1142pub struct PlatformInfo {
1143    #[prost(string, tag = "1")]
1144    pub name: ::prost::alloc::string::String,
1145    #[prost(string, tag = "2")]
1146    pub mode: ::prost::alloc::string::String,
1147}
1148/// FeaturesInfo describes individual Talos features that can be switched on or off.
1149#[derive(serde::Serialize, serde::Deserialize)]
1150#[serde(rename_all = "camelCase")]
1151#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1152pub struct FeaturesInfo {
1153    /// RBAC is true if role-based access control is enabled.
1154    #[prost(bool, tag = "1")]
1155    pub rbac: bool,
1156}
1157/// rpc logs
1158/// The request message containing the process name.
1159#[derive(serde::Serialize, serde::Deserialize)]
1160#[serde(rename_all = "camelCase")]
1161#[derive(Clone, PartialEq, ::prost::Message)]
1162pub struct LogsRequest {
1163    #[prost(string, tag = "1")]
1164    pub namespace: ::prost::alloc::string::String,
1165    #[prost(string, tag = "2")]
1166    pub id: ::prost::alloc::string::String,
1167    /// driver might be default "containerd" or "cri"
1168    #[prost(enumeration = "super::common::ContainerDriver", tag = "3")]
1169    pub driver: i32,
1170    #[prost(bool, tag = "4")]
1171    pub follow: bool,
1172    #[prost(int32, tag = "5")]
1173    pub tail_lines: i32,
1174}
1175#[derive(serde::Serialize, serde::Deserialize)]
1176#[serde(rename_all = "camelCase")]
1177#[derive(Clone, PartialEq, ::prost::Message)]
1178pub struct ReadRequest {
1179    #[prost(string, tag = "1")]
1180    pub path: ::prost::alloc::string::String,
1181}
1182/// LogsContainer desribes all avalaible registered log containers.
1183#[derive(serde::Serialize, serde::Deserialize)]
1184#[serde(rename_all = "camelCase")]
1185#[derive(Clone, PartialEq, ::prost::Message)]
1186pub struct LogsContainer {
1187    #[prost(message, optional, tag = "1")]
1188    pub metadata: ::core::option::Option<super::common::Metadata>,
1189    #[prost(string, repeated, tag = "2")]
1190    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1191}
1192#[derive(serde::Serialize, serde::Deserialize)]
1193#[serde(rename_all = "camelCase")]
1194#[derive(Clone, PartialEq, ::prost::Message)]
1195pub struct LogsContainersResponse {
1196    #[prost(message, repeated, tag = "1")]
1197    pub messages: ::prost::alloc::vec::Vec<LogsContainer>,
1198}
1199/// rpc rollback
1200#[derive(serde::Serialize, serde::Deserialize)]
1201#[serde(rename_all = "camelCase")]
1202#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1203pub struct RollbackRequest {}
1204#[derive(serde::Serialize, serde::Deserialize)]
1205#[serde(rename_all = "camelCase")]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct Rollback {
1208    #[prost(message, optional, tag = "1")]
1209    pub metadata: ::core::option::Option<super::common::Metadata>,
1210}
1211#[derive(serde::Serialize, serde::Deserialize)]
1212#[serde(rename_all = "camelCase")]
1213#[derive(Clone, PartialEq, ::prost::Message)]
1214pub struct RollbackResponse {
1215    #[prost(message, repeated, tag = "1")]
1216    pub messages: ::prost::alloc::vec::Vec<Rollback>,
1217}
1218#[derive(serde::Serialize, serde::Deserialize)]
1219#[serde(rename_all = "camelCase")]
1220#[derive(Clone, PartialEq, ::prost::Message)]
1221pub struct ContainersRequest {
1222    #[prost(string, tag = "1")]
1223    pub namespace: ::prost::alloc::string::String,
1224    /// driver might be default "containerd" or "cri"
1225    #[prost(enumeration = "super::common::ContainerDriver", tag = "2")]
1226    pub driver: i32,
1227}
1228/// The messages message containing the requested containers.
1229#[derive(serde::Serialize, serde::Deserialize)]
1230#[serde(rename_all = "camelCase")]
1231#[derive(Clone, PartialEq, ::prost::Message)]
1232pub struct ContainerInfo {
1233    #[prost(string, tag = "1")]
1234    pub namespace: ::prost::alloc::string::String,
1235    #[prost(string, tag = "2")]
1236    pub id: ::prost::alloc::string::String,
1237    #[prost(string, tag = "10")]
1238    pub uid: ::prost::alloc::string::String,
1239    #[prost(string, tag = "9")]
1240    pub internal_id: ::prost::alloc::string::String,
1241    #[prost(string, tag = "3")]
1242    pub image: ::prost::alloc::string::String,
1243    #[prost(uint32, tag = "4")]
1244    pub pid: u32,
1245    #[prost(string, tag = "5")]
1246    pub status: ::prost::alloc::string::String,
1247    #[prost(string, tag = "6")]
1248    pub pod_id: ::prost::alloc::string::String,
1249    #[prost(string, tag = "7")]
1250    pub name: ::prost::alloc::string::String,
1251    #[prost(string, tag = "8")]
1252    pub network_namespace: ::prost::alloc::string::String,
1253}
1254/// The messages message containing the requested containers.
1255#[derive(serde::Serialize, serde::Deserialize)]
1256#[serde(rename_all = "camelCase")]
1257#[derive(Clone, PartialEq, ::prost::Message)]
1258pub struct Container {
1259    #[prost(message, optional, tag = "1")]
1260    pub metadata: ::core::option::Option<super::common::Metadata>,
1261    #[prost(message, repeated, tag = "2")]
1262    pub containers: ::prost::alloc::vec::Vec<ContainerInfo>,
1263}
1264#[derive(serde::Serialize, serde::Deserialize)]
1265#[serde(rename_all = "camelCase")]
1266#[derive(Clone, PartialEq, ::prost::Message)]
1267pub struct ContainersResponse {
1268    #[prost(message, repeated, tag = "1")]
1269    pub messages: ::prost::alloc::vec::Vec<Container>,
1270}
1271/// dmesg
1272#[derive(serde::Serialize, serde::Deserialize)]
1273#[serde(rename_all = "camelCase")]
1274#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1275pub struct DmesgRequest {
1276    #[prost(bool, tag = "1")]
1277    pub follow: bool,
1278    #[prost(bool, tag = "2")]
1279    pub tail: bool,
1280}
1281/// rpc processes
1282#[derive(serde::Serialize, serde::Deserialize)]
1283#[serde(rename_all = "camelCase")]
1284#[derive(Clone, PartialEq, ::prost::Message)]
1285pub struct ProcessesResponse {
1286    #[prost(message, repeated, tag = "1")]
1287    pub messages: ::prost::alloc::vec::Vec<Process>,
1288}
1289#[derive(serde::Serialize, serde::Deserialize)]
1290#[serde(rename_all = "camelCase")]
1291#[derive(Clone, PartialEq, ::prost::Message)]
1292pub struct Process {
1293    #[prost(message, optional, tag = "1")]
1294    pub metadata: ::core::option::Option<super::common::Metadata>,
1295    #[prost(message, repeated, tag = "2")]
1296    pub processes: ::prost::alloc::vec::Vec<ProcessInfo>,
1297}
1298#[derive(serde::Serialize, serde::Deserialize)]
1299#[serde(rename_all = "camelCase")]
1300#[derive(Clone, PartialEq, ::prost::Message)]
1301pub struct ProcessInfo {
1302    #[prost(int32, tag = "1")]
1303    pub pid: i32,
1304    #[prost(int32, tag = "2")]
1305    pub ppid: i32,
1306    #[prost(string, tag = "3")]
1307    pub state: ::prost::alloc::string::String,
1308    #[prost(int32, tag = "4")]
1309    pub threads: i32,
1310    #[prost(double, tag = "5")]
1311    pub cpu_time: f64,
1312    #[prost(uint64, tag = "6")]
1313    pub virtual_memory: u64,
1314    #[prost(uint64, tag = "7")]
1315    pub resident_memory: u64,
1316    #[prost(string, tag = "8")]
1317    pub command: ::prost::alloc::string::String,
1318    #[prost(string, tag = "9")]
1319    pub executable: ::prost::alloc::string::String,
1320    #[prost(string, tag = "10")]
1321    pub args: ::prost::alloc::string::String,
1322    #[prost(string, tag = "11")]
1323    pub label: ::prost::alloc::string::String,
1324}
1325/// rpc restart
1326/// The request message containing the process to restart.
1327#[derive(serde::Serialize, serde::Deserialize)]
1328#[serde(rename_all = "camelCase")]
1329#[derive(Clone, PartialEq, ::prost::Message)]
1330pub struct RestartRequest {
1331    #[prost(string, tag = "1")]
1332    pub namespace: ::prost::alloc::string::String,
1333    #[prost(string, tag = "2")]
1334    pub id: ::prost::alloc::string::String,
1335    /// driver might be default "containerd" or "cri"
1336    #[prost(enumeration = "super::common::ContainerDriver", tag = "3")]
1337    pub driver: i32,
1338}
1339#[derive(serde::Serialize, serde::Deserialize)]
1340#[serde(rename_all = "camelCase")]
1341#[derive(Clone, PartialEq, ::prost::Message)]
1342pub struct Restart {
1343    #[prost(message, optional, tag = "1")]
1344    pub metadata: ::core::option::Option<super::common::Metadata>,
1345}
1346/// The messages message containing the restart status.
1347#[derive(serde::Serialize, serde::Deserialize)]
1348#[serde(rename_all = "camelCase")]
1349#[derive(Clone, PartialEq, ::prost::Message)]
1350pub struct RestartResponse {
1351    #[prost(message, repeated, tag = "1")]
1352    pub messages: ::prost::alloc::vec::Vec<Restart>,
1353}
1354/// The request message containing the containerd namespace.
1355#[derive(serde::Serialize, serde::Deserialize)]
1356#[serde(rename_all = "camelCase")]
1357#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct StatsRequest {
1359    #[prost(string, tag = "1")]
1360    pub namespace: ::prost::alloc::string::String,
1361    /// driver might be default "containerd" or "cri"
1362    #[prost(enumeration = "super::common::ContainerDriver", tag = "2")]
1363    pub driver: i32,
1364}
1365/// The messages message containing the requested stats.
1366#[derive(serde::Serialize, serde::Deserialize)]
1367#[serde(rename_all = "camelCase")]
1368#[derive(Clone, PartialEq, ::prost::Message)]
1369pub struct Stats {
1370    #[prost(message, optional, tag = "1")]
1371    pub metadata: ::core::option::Option<super::common::Metadata>,
1372    #[prost(message, repeated, tag = "2")]
1373    pub stats: ::prost::alloc::vec::Vec<Stat>,
1374}
1375#[derive(serde::Serialize, serde::Deserialize)]
1376#[serde(rename_all = "camelCase")]
1377#[derive(Clone, PartialEq, ::prost::Message)]
1378pub struct StatsResponse {
1379    #[prost(message, repeated, tag = "1")]
1380    pub messages: ::prost::alloc::vec::Vec<Stats>,
1381}
1382/// The messages message containing the requested stat.
1383#[derive(serde::Serialize, serde::Deserialize)]
1384#[serde(rename_all = "camelCase")]
1385#[derive(Clone, PartialEq, ::prost::Message)]
1386pub struct Stat {
1387    #[prost(string, tag = "1")]
1388    pub namespace: ::prost::alloc::string::String,
1389    #[prost(string, tag = "2")]
1390    pub id: ::prost::alloc::string::String,
1391    #[prost(uint64, tag = "4")]
1392    pub memory_usage: u64,
1393    #[prost(uint64, tag = "5")]
1394    pub cpu_usage: u64,
1395    #[prost(string, tag = "6")]
1396    pub pod_id: ::prost::alloc::string::String,
1397    #[prost(string, tag = "7")]
1398    pub name: ::prost::alloc::string::String,
1399}
1400#[derive(serde::Serialize, serde::Deserialize)]
1401#[serde(rename_all = "camelCase")]
1402#[derive(Clone, PartialEq, ::prost::Message)]
1403pub struct Memory {
1404    #[prost(message, optional, tag = "1")]
1405    pub metadata: ::core::option::Option<super::common::Metadata>,
1406    #[prost(message, optional, tag = "2")]
1407    pub meminfo: ::core::option::Option<MemInfo>,
1408}
1409#[derive(serde::Serialize, serde::Deserialize)]
1410#[serde(rename_all = "camelCase")]
1411#[derive(Clone, PartialEq, ::prost::Message)]
1412pub struct MemoryResponse {
1413    #[prost(message, repeated, tag = "1")]
1414    pub messages: ::prost::alloc::vec::Vec<Memory>,
1415}
1416#[derive(serde::Serialize, serde::Deserialize)]
1417#[serde(rename_all = "camelCase")]
1418#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1419pub struct MemInfo {
1420    #[prost(uint64, tag = "1")]
1421    pub memtotal: u64,
1422    #[prost(uint64, tag = "2")]
1423    pub memfree: u64,
1424    #[prost(uint64, tag = "3")]
1425    pub memavailable: u64,
1426    #[prost(uint64, tag = "4")]
1427    pub buffers: u64,
1428    #[prost(uint64, tag = "5")]
1429    pub cached: u64,
1430    #[prost(uint64, tag = "6")]
1431    pub swapcached: u64,
1432    #[prost(uint64, tag = "7")]
1433    pub active: u64,
1434    #[prost(uint64, tag = "8")]
1435    pub inactive: u64,
1436    #[prost(uint64, tag = "9")]
1437    pub activeanon: u64,
1438    #[prost(uint64, tag = "10")]
1439    pub inactiveanon: u64,
1440    #[prost(uint64, tag = "11")]
1441    pub activefile: u64,
1442    #[prost(uint64, tag = "12")]
1443    pub inactivefile: u64,
1444    #[prost(uint64, tag = "13")]
1445    pub unevictable: u64,
1446    #[prost(uint64, tag = "14")]
1447    pub mlocked: u64,
1448    #[prost(uint64, tag = "15")]
1449    pub swaptotal: u64,
1450    #[prost(uint64, tag = "16")]
1451    pub swapfree: u64,
1452    #[prost(uint64, tag = "17")]
1453    pub dirty: u64,
1454    #[prost(uint64, tag = "18")]
1455    pub writeback: u64,
1456    #[prost(uint64, tag = "19")]
1457    pub anonpages: u64,
1458    #[prost(uint64, tag = "20")]
1459    pub mapped: u64,
1460    #[prost(uint64, tag = "21")]
1461    pub shmem: u64,
1462    #[prost(uint64, tag = "22")]
1463    pub slab: u64,
1464    #[prost(uint64, tag = "23")]
1465    pub sreclaimable: u64,
1466    #[prost(uint64, tag = "24")]
1467    pub sunreclaim: u64,
1468    #[prost(uint64, tag = "25")]
1469    pub kernelstack: u64,
1470    #[prost(uint64, tag = "26")]
1471    pub pagetables: u64,
1472    #[prost(uint64, tag = "27")]
1473    pub nfsunstable: u64,
1474    #[prost(uint64, tag = "28")]
1475    pub bounce: u64,
1476    #[prost(uint64, tag = "29")]
1477    pub writebacktmp: u64,
1478    #[prost(uint64, tag = "30")]
1479    pub commitlimit: u64,
1480    #[prost(uint64, tag = "31")]
1481    pub committedas: u64,
1482    #[prost(uint64, tag = "32")]
1483    pub vmalloctotal: u64,
1484    #[prost(uint64, tag = "33")]
1485    pub vmallocused: u64,
1486    #[prost(uint64, tag = "34")]
1487    pub vmallocchunk: u64,
1488    #[prost(uint64, tag = "35")]
1489    pub hardwarecorrupted: u64,
1490    #[prost(uint64, tag = "36")]
1491    pub anonhugepages: u64,
1492    #[prost(uint64, tag = "37")]
1493    pub shmemhugepages: u64,
1494    #[prost(uint64, tag = "38")]
1495    pub shmempmdmapped: u64,
1496    #[prost(uint64, tag = "39")]
1497    pub cmatotal: u64,
1498    #[prost(uint64, tag = "40")]
1499    pub cmafree: u64,
1500    #[prost(uint64, tag = "41")]
1501    pub hugepagestotal: u64,
1502    #[prost(uint64, tag = "42")]
1503    pub hugepagesfree: u64,
1504    #[prost(uint64, tag = "43")]
1505    pub hugepagesrsvd: u64,
1506    #[prost(uint64, tag = "44")]
1507    pub hugepagessurp: u64,
1508    #[prost(uint64, tag = "45")]
1509    pub hugepagesize: u64,
1510    #[prost(uint64, tag = "46")]
1511    pub directmap4k: u64,
1512    #[prost(uint64, tag = "47")]
1513    pub directmap2m: u64,
1514    #[prost(uint64, tag = "48")]
1515    pub directmap1g: u64,
1516}
1517#[derive(serde::Serialize, serde::Deserialize)]
1518#[serde(rename_all = "camelCase")]
1519#[derive(Clone, PartialEq, ::prost::Message)]
1520pub struct HostnameResponse {
1521    #[prost(message, repeated, tag = "1")]
1522    pub messages: ::prost::alloc::vec::Vec<Hostname>,
1523}
1524#[derive(serde::Serialize, serde::Deserialize)]
1525#[serde(rename_all = "camelCase")]
1526#[derive(Clone, PartialEq, ::prost::Message)]
1527pub struct Hostname {
1528    #[prost(message, optional, tag = "1")]
1529    pub metadata: ::core::option::Option<super::common::Metadata>,
1530    #[prost(string, tag = "2")]
1531    pub hostname: ::prost::alloc::string::String,
1532}
1533#[derive(serde::Serialize, serde::Deserialize)]
1534#[serde(rename_all = "camelCase")]
1535#[derive(Clone, PartialEq, ::prost::Message)]
1536pub struct LoadAvgResponse {
1537    #[prost(message, repeated, tag = "1")]
1538    pub messages: ::prost::alloc::vec::Vec<LoadAvg>,
1539}
1540#[derive(serde::Serialize, serde::Deserialize)]
1541#[serde(rename_all = "camelCase")]
1542#[derive(Clone, PartialEq, ::prost::Message)]
1543pub struct LoadAvg {
1544    #[prost(message, optional, tag = "1")]
1545    pub metadata: ::core::option::Option<super::common::Metadata>,
1546    #[prost(double, tag = "2")]
1547    pub load1: f64,
1548    #[prost(double, tag = "3")]
1549    pub load5: f64,
1550    #[prost(double, tag = "4")]
1551    pub load15: f64,
1552}
1553#[derive(serde::Serialize, serde::Deserialize)]
1554#[serde(rename_all = "camelCase")]
1555#[derive(Clone, PartialEq, ::prost::Message)]
1556pub struct SystemStatResponse {
1557    #[prost(message, repeated, tag = "1")]
1558    pub messages: ::prost::alloc::vec::Vec<SystemStat>,
1559}
1560#[derive(serde::Serialize, serde::Deserialize)]
1561#[serde(rename_all = "camelCase")]
1562#[derive(Clone, PartialEq, ::prost::Message)]
1563pub struct SystemStat {
1564    #[prost(message, optional, tag = "1")]
1565    pub metadata: ::core::option::Option<super::common::Metadata>,
1566    #[prost(uint64, tag = "2")]
1567    pub boot_time: u64,
1568    #[prost(message, optional, tag = "3")]
1569    pub cpu_total: ::core::option::Option<CpuStat>,
1570    #[prost(message, repeated, tag = "4")]
1571    pub cpu: ::prost::alloc::vec::Vec<CpuStat>,
1572    #[prost(uint64, tag = "5")]
1573    pub irq_total: u64,
1574    #[prost(uint64, repeated, tag = "6")]
1575    pub irq: ::prost::alloc::vec::Vec<u64>,
1576    #[prost(uint64, tag = "7")]
1577    pub context_switches: u64,
1578    #[prost(uint64, tag = "8")]
1579    pub process_created: u64,
1580    #[prost(uint64, tag = "9")]
1581    pub process_running: u64,
1582    #[prost(uint64, tag = "10")]
1583    pub process_blocked: u64,
1584    #[prost(uint64, tag = "11")]
1585    pub soft_irq_total: u64,
1586    #[prost(message, optional, tag = "12")]
1587    pub soft_irq: ::core::option::Option<SoftIrqStat>,
1588}
1589#[derive(serde::Serialize, serde::Deserialize)]
1590#[serde(rename_all = "camelCase")]
1591#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1592pub struct CpuStat {
1593    #[prost(double, tag = "1")]
1594    pub user: f64,
1595    #[prost(double, tag = "2")]
1596    pub nice: f64,
1597    #[prost(double, tag = "3")]
1598    pub system: f64,
1599    #[prost(double, tag = "4")]
1600    pub idle: f64,
1601    #[prost(double, tag = "5")]
1602    pub iowait: f64,
1603    #[prost(double, tag = "6")]
1604    pub irq: f64,
1605    #[prost(double, tag = "7")]
1606    pub soft_irq: f64,
1607    #[prost(double, tag = "8")]
1608    pub steal: f64,
1609    #[prost(double, tag = "9")]
1610    pub guest: f64,
1611    #[prost(double, tag = "10")]
1612    pub guest_nice: f64,
1613}
1614#[derive(serde::Serialize, serde::Deserialize)]
1615#[serde(rename_all = "camelCase")]
1616#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1617pub struct SoftIrqStat {
1618    #[prost(uint64, tag = "1")]
1619    pub hi: u64,
1620    #[prost(uint64, tag = "2")]
1621    pub timer: u64,
1622    #[prost(uint64, tag = "3")]
1623    pub net_tx: u64,
1624    #[prost(uint64, tag = "4")]
1625    pub net_rx: u64,
1626    #[prost(uint64, tag = "5")]
1627    pub block: u64,
1628    #[prost(uint64, tag = "6")]
1629    pub block_io_poll: u64,
1630    #[prost(uint64, tag = "7")]
1631    pub tasklet: u64,
1632    #[prost(uint64, tag = "8")]
1633    pub sched: u64,
1634    #[prost(uint64, tag = "9")]
1635    pub hrtimer: u64,
1636    #[prost(uint64, tag = "10")]
1637    pub rcu: u64,
1638}
1639#[derive(serde::Serialize, serde::Deserialize)]
1640#[serde(rename_all = "camelCase")]
1641#[derive(Clone, PartialEq, ::prost::Message)]
1642pub struct CpuFreqStatsResponse {
1643    #[prost(message, repeated, tag = "1")]
1644    pub messages: ::prost::alloc::vec::Vec<CpUsFreqStats>,
1645}
1646#[derive(serde::Serialize, serde::Deserialize)]
1647#[serde(rename_all = "camelCase")]
1648#[derive(Clone, PartialEq, ::prost::Message)]
1649pub struct CpUsFreqStats {
1650    #[prost(message, optional, tag = "1")]
1651    pub metadata: ::core::option::Option<super::common::Metadata>,
1652    #[prost(message, repeated, tag = "2")]
1653    pub cpu_freq_stats: ::prost::alloc::vec::Vec<CpuFreqStats>,
1654}
1655#[derive(serde::Serialize, serde::Deserialize)]
1656#[serde(rename_all = "camelCase")]
1657#[derive(Clone, PartialEq, ::prost::Message)]
1658pub struct CpuFreqStats {
1659    #[prost(uint64, tag = "1")]
1660    pub current_frequency: u64,
1661    #[prost(uint64, tag = "2")]
1662    pub minimum_frequency: u64,
1663    #[prost(uint64, tag = "3")]
1664    pub maximum_frequency: u64,
1665    #[prost(string, tag = "4")]
1666    pub governor: ::prost::alloc::string::String,
1667}
1668#[derive(serde::Serialize, serde::Deserialize)]
1669#[serde(rename_all = "camelCase")]
1670#[derive(Clone, PartialEq, ::prost::Message)]
1671pub struct CpuInfoResponse {
1672    #[prost(message, repeated, tag = "1")]
1673    pub messages: ::prost::alloc::vec::Vec<CpUsInfo>,
1674}
1675#[derive(serde::Serialize, serde::Deserialize)]
1676#[serde(rename_all = "camelCase")]
1677#[derive(Clone, PartialEq, ::prost::Message)]
1678pub struct CpUsInfo {
1679    #[prost(message, optional, tag = "1")]
1680    pub metadata: ::core::option::Option<super::common::Metadata>,
1681    #[prost(message, repeated, tag = "2")]
1682    pub cpu_info: ::prost::alloc::vec::Vec<CpuInfo>,
1683}
1684#[derive(serde::Serialize, serde::Deserialize)]
1685#[serde(rename_all = "camelCase")]
1686#[derive(Clone, PartialEq, ::prost::Message)]
1687pub struct CpuInfo {
1688    #[prost(uint32, tag = "1")]
1689    pub processor: u32,
1690    #[prost(string, tag = "2")]
1691    pub vendor_id: ::prost::alloc::string::String,
1692    #[prost(string, tag = "3")]
1693    pub cpu_family: ::prost::alloc::string::String,
1694    #[prost(string, tag = "4")]
1695    pub model: ::prost::alloc::string::String,
1696    #[prost(string, tag = "5")]
1697    pub model_name: ::prost::alloc::string::String,
1698    #[prost(string, tag = "6")]
1699    pub stepping: ::prost::alloc::string::String,
1700    #[prost(string, tag = "7")]
1701    pub microcode: ::prost::alloc::string::String,
1702    #[prost(double, tag = "8")]
1703    pub cpu_mhz: f64,
1704    #[prost(string, tag = "9")]
1705    pub cache_size: ::prost::alloc::string::String,
1706    #[prost(string, tag = "10")]
1707    pub physical_id: ::prost::alloc::string::String,
1708    #[prost(uint32, tag = "11")]
1709    pub siblings: u32,
1710    #[prost(string, tag = "12")]
1711    pub core_id: ::prost::alloc::string::String,
1712    #[prost(uint32, tag = "13")]
1713    pub cpu_cores: u32,
1714    #[prost(string, tag = "14")]
1715    pub apic_id: ::prost::alloc::string::String,
1716    #[prost(string, tag = "15")]
1717    pub initial_apic_id: ::prost::alloc::string::String,
1718    #[prost(string, tag = "16")]
1719    pub fpu: ::prost::alloc::string::String,
1720    #[prost(string, tag = "17")]
1721    pub fpu_exception: ::prost::alloc::string::String,
1722    #[prost(uint32, tag = "18")]
1723    pub cpu_id_level: u32,
1724    #[prost(string, tag = "19")]
1725    pub wp: ::prost::alloc::string::String,
1726    #[prost(string, repeated, tag = "20")]
1727    pub flags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1728    #[prost(string, repeated, tag = "21")]
1729    pub bugs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1730    #[prost(double, tag = "22")]
1731    pub bogo_mips: f64,
1732    #[prost(uint32, tag = "23")]
1733    pub cl_flush_size: u32,
1734    #[prost(uint32, tag = "24")]
1735    pub cache_alignment: u32,
1736    #[prost(string, tag = "25")]
1737    pub address_sizes: ::prost::alloc::string::String,
1738    #[prost(string, tag = "26")]
1739    pub power_management: ::prost::alloc::string::String,
1740}
1741#[derive(serde::Serialize, serde::Deserialize)]
1742#[serde(rename_all = "camelCase")]
1743#[derive(Clone, PartialEq, ::prost::Message)]
1744pub struct NetworkDeviceStatsResponse {
1745    #[prost(message, repeated, tag = "1")]
1746    pub messages: ::prost::alloc::vec::Vec<NetworkDeviceStats>,
1747}
1748#[derive(serde::Serialize, serde::Deserialize)]
1749#[serde(rename_all = "camelCase")]
1750#[derive(Clone, PartialEq, ::prost::Message)]
1751pub struct NetworkDeviceStats {
1752    #[prost(message, optional, tag = "1")]
1753    pub metadata: ::core::option::Option<super::common::Metadata>,
1754    #[prost(message, optional, tag = "2")]
1755    pub total: ::core::option::Option<NetDev>,
1756    #[prost(message, repeated, tag = "3")]
1757    pub devices: ::prost::alloc::vec::Vec<NetDev>,
1758}
1759#[derive(serde::Serialize, serde::Deserialize)]
1760#[serde(rename_all = "camelCase")]
1761#[derive(Clone, PartialEq, ::prost::Message)]
1762pub struct NetDev {
1763    #[prost(string, tag = "1")]
1764    pub name: ::prost::alloc::string::String,
1765    #[prost(uint64, tag = "2")]
1766    pub rx_bytes: u64,
1767    #[prost(uint64, tag = "3")]
1768    pub rx_packets: u64,
1769    #[prost(uint64, tag = "4")]
1770    pub rx_errors: u64,
1771    #[prost(uint64, tag = "5")]
1772    pub rx_dropped: u64,
1773    #[prost(uint64, tag = "6")]
1774    pub rx_fifo: u64,
1775    #[prost(uint64, tag = "7")]
1776    pub rx_frame: u64,
1777    #[prost(uint64, tag = "8")]
1778    pub rx_compressed: u64,
1779    #[prost(uint64, tag = "9")]
1780    pub rx_multicast: u64,
1781    #[prost(uint64, tag = "10")]
1782    pub tx_bytes: u64,
1783    #[prost(uint64, tag = "11")]
1784    pub tx_packets: u64,
1785    #[prost(uint64, tag = "12")]
1786    pub tx_errors: u64,
1787    #[prost(uint64, tag = "13")]
1788    pub tx_dropped: u64,
1789    #[prost(uint64, tag = "14")]
1790    pub tx_fifo: u64,
1791    #[prost(uint64, tag = "15")]
1792    pub tx_collisions: u64,
1793    #[prost(uint64, tag = "16")]
1794    pub tx_carrier: u64,
1795    #[prost(uint64, tag = "17")]
1796    pub tx_compressed: u64,
1797}
1798#[derive(serde::Serialize, serde::Deserialize)]
1799#[serde(rename_all = "camelCase")]
1800#[derive(Clone, PartialEq, ::prost::Message)]
1801pub struct DiskStatsResponse {
1802    #[prost(message, repeated, tag = "1")]
1803    pub messages: ::prost::alloc::vec::Vec<DiskStats>,
1804}
1805#[derive(serde::Serialize, serde::Deserialize)]
1806#[serde(rename_all = "camelCase")]
1807#[derive(Clone, PartialEq, ::prost::Message)]
1808pub struct DiskStats {
1809    #[prost(message, optional, tag = "1")]
1810    pub metadata: ::core::option::Option<super::common::Metadata>,
1811    #[prost(message, optional, tag = "2")]
1812    pub total: ::core::option::Option<DiskStat>,
1813    #[prost(message, repeated, tag = "3")]
1814    pub devices: ::prost::alloc::vec::Vec<DiskStat>,
1815}
1816#[derive(serde::Serialize, serde::Deserialize)]
1817#[serde(rename_all = "camelCase")]
1818#[derive(Clone, PartialEq, ::prost::Message)]
1819pub struct DiskStat {
1820    #[prost(string, tag = "1")]
1821    pub name: ::prost::alloc::string::String,
1822    #[prost(uint64, tag = "2")]
1823    pub read_completed: u64,
1824    #[prost(uint64, tag = "3")]
1825    pub read_merged: u64,
1826    #[prost(uint64, tag = "4")]
1827    pub read_sectors: u64,
1828    #[prost(uint64, tag = "5")]
1829    pub read_time_ms: u64,
1830    #[prost(uint64, tag = "6")]
1831    pub write_completed: u64,
1832    #[prost(uint64, tag = "7")]
1833    pub write_merged: u64,
1834    #[prost(uint64, tag = "8")]
1835    pub write_sectors: u64,
1836    #[prost(uint64, tag = "9")]
1837    pub write_time_ms: u64,
1838    #[prost(uint64, tag = "10")]
1839    pub io_in_progress: u64,
1840    #[prost(uint64, tag = "11")]
1841    pub io_time_ms: u64,
1842    #[prost(uint64, tag = "12")]
1843    pub io_time_weighted_ms: u64,
1844    #[prost(uint64, tag = "13")]
1845    pub discard_completed: u64,
1846    #[prost(uint64, tag = "14")]
1847    pub discard_merged: u64,
1848    #[prost(uint64, tag = "15")]
1849    pub discard_sectors: u64,
1850    #[prost(uint64, tag = "16")]
1851    pub discard_time_ms: u64,
1852}
1853#[derive(serde::Serialize, serde::Deserialize)]
1854#[serde(rename_all = "camelCase")]
1855#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1856pub struct EtcdLeaveClusterRequest {}
1857#[derive(serde::Serialize, serde::Deserialize)]
1858#[serde(rename_all = "camelCase")]
1859#[derive(Clone, PartialEq, ::prost::Message)]
1860pub struct EtcdLeaveCluster {
1861    #[prost(message, optional, tag = "1")]
1862    pub metadata: ::core::option::Option<super::common::Metadata>,
1863}
1864#[derive(serde::Serialize, serde::Deserialize)]
1865#[serde(rename_all = "camelCase")]
1866#[derive(Clone, PartialEq, ::prost::Message)]
1867pub struct EtcdLeaveClusterResponse {
1868    #[prost(message, repeated, tag = "1")]
1869    pub messages: ::prost::alloc::vec::Vec<EtcdLeaveCluster>,
1870}
1871#[derive(serde::Serialize, serde::Deserialize)]
1872#[serde(rename_all = "camelCase")]
1873#[derive(Clone, PartialEq, ::prost::Message)]
1874pub struct EtcdRemoveMemberRequest {
1875    #[prost(string, tag = "1")]
1876    pub member: ::prost::alloc::string::String,
1877}
1878#[derive(serde::Serialize, serde::Deserialize)]
1879#[serde(rename_all = "camelCase")]
1880#[derive(Clone, PartialEq, ::prost::Message)]
1881pub struct EtcdRemoveMember {
1882    #[prost(message, optional, tag = "1")]
1883    pub metadata: ::core::option::Option<super::common::Metadata>,
1884}
1885#[derive(serde::Serialize, serde::Deserialize)]
1886#[serde(rename_all = "camelCase")]
1887#[derive(Clone, PartialEq, ::prost::Message)]
1888pub struct EtcdRemoveMemberResponse {
1889    #[prost(message, repeated, tag = "1")]
1890    pub messages: ::prost::alloc::vec::Vec<EtcdRemoveMember>,
1891}
1892#[derive(serde::Serialize, serde::Deserialize)]
1893#[serde(rename_all = "camelCase")]
1894#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1895pub struct EtcdRemoveMemberByIdRequest {
1896    #[prost(uint64, tag = "1")]
1897    pub member_id: u64,
1898}
1899#[derive(serde::Serialize, serde::Deserialize)]
1900#[serde(rename_all = "camelCase")]
1901#[derive(Clone, PartialEq, ::prost::Message)]
1902pub struct EtcdRemoveMemberById {
1903    #[prost(message, optional, tag = "1")]
1904    pub metadata: ::core::option::Option<super::common::Metadata>,
1905}
1906#[derive(serde::Serialize, serde::Deserialize)]
1907#[serde(rename_all = "camelCase")]
1908#[derive(Clone, PartialEq, ::prost::Message)]
1909pub struct EtcdRemoveMemberByIdResponse {
1910    #[prost(message, repeated, tag = "1")]
1911    pub messages: ::prost::alloc::vec::Vec<EtcdRemoveMemberById>,
1912}
1913#[derive(serde::Serialize, serde::Deserialize)]
1914#[serde(rename_all = "camelCase")]
1915#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1916pub struct EtcdForfeitLeadershipRequest {}
1917#[derive(serde::Serialize, serde::Deserialize)]
1918#[serde(rename_all = "camelCase")]
1919#[derive(Clone, PartialEq, ::prost::Message)]
1920pub struct EtcdForfeitLeadership {
1921    #[prost(message, optional, tag = "1")]
1922    pub metadata: ::core::option::Option<super::common::Metadata>,
1923    #[prost(string, tag = "2")]
1924    pub member: ::prost::alloc::string::String,
1925}
1926#[derive(serde::Serialize, serde::Deserialize)]
1927#[serde(rename_all = "camelCase")]
1928#[derive(Clone, PartialEq, ::prost::Message)]
1929pub struct EtcdForfeitLeadershipResponse {
1930    #[prost(message, repeated, tag = "1")]
1931    pub messages: ::prost::alloc::vec::Vec<EtcdForfeitLeadership>,
1932}
1933#[derive(serde::Serialize, serde::Deserialize)]
1934#[serde(rename_all = "camelCase")]
1935#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1936pub struct EtcdMemberListRequest {
1937    #[prost(bool, tag = "1")]
1938    pub query_local: bool,
1939}
1940/// EtcdMember describes a single etcd member.
1941#[derive(serde::Serialize, serde::Deserialize)]
1942#[serde(rename_all = "camelCase")]
1943#[derive(Clone, PartialEq, ::prost::Message)]
1944pub struct EtcdMember {
1945    /// member ID.
1946    #[prost(uint64, tag = "2")]
1947    pub id: u64,
1948    /// human-readable name of the member.
1949    #[prost(string, tag = "3")]
1950    pub hostname: ::prost::alloc::string::String,
1951    /// the list of URLs the member exposes to clients for communication.
1952    #[prost(string, repeated, tag = "4")]
1953    pub peer_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1954    /// the list of URLs the member exposes to the cluster for communication.
1955    #[prost(string, repeated, tag = "5")]
1956    pub client_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1957    /// learner flag
1958    #[prost(bool, tag = "6")]
1959    pub is_learner: bool,
1960}
1961/// EtcdMembers contains the list of members registered on the host.
1962#[derive(serde::Serialize, serde::Deserialize)]
1963#[serde(rename_all = "camelCase")]
1964#[derive(Clone, PartialEq, ::prost::Message)]
1965pub struct EtcdMembers {
1966    #[prost(message, optional, tag = "1")]
1967    pub metadata: ::core::option::Option<super::common::Metadata>,
1968    /// list of member hostnames.
1969    #[prost(string, repeated, tag = "2")]
1970    pub legacy_members: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1971    /// the list of etcd members registered on the node.
1972    #[prost(message, repeated, tag = "3")]
1973    pub members: ::prost::alloc::vec::Vec<EtcdMember>,
1974}
1975#[derive(serde::Serialize, serde::Deserialize)]
1976#[serde(rename_all = "camelCase")]
1977#[derive(Clone, PartialEq, ::prost::Message)]
1978pub struct EtcdMemberListResponse {
1979    #[prost(message, repeated, tag = "1")]
1980    pub messages: ::prost::alloc::vec::Vec<EtcdMembers>,
1981}
1982#[derive(serde::Serialize, serde::Deserialize)]
1983#[serde(rename_all = "camelCase")]
1984#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1985pub struct EtcdSnapshotRequest {}
1986#[derive(serde::Serialize, serde::Deserialize)]
1987#[serde(rename_all = "camelCase")]
1988#[derive(Clone, PartialEq, ::prost::Message)]
1989pub struct EtcdRecover {
1990    #[prost(message, optional, tag = "1")]
1991    pub metadata: ::core::option::Option<super::common::Metadata>,
1992}
1993#[derive(serde::Serialize, serde::Deserialize)]
1994#[serde(rename_all = "camelCase")]
1995#[derive(Clone, PartialEq, ::prost::Message)]
1996pub struct EtcdRecoverResponse {
1997    #[prost(message, repeated, tag = "1")]
1998    pub messages: ::prost::alloc::vec::Vec<EtcdRecover>,
1999}
2000#[derive(serde::Serialize, serde::Deserialize)]
2001#[serde(rename_all = "camelCase")]
2002#[derive(Clone, PartialEq, ::prost::Message)]
2003pub struct EtcdAlarmListResponse {
2004    #[prost(message, repeated, tag = "1")]
2005    pub messages: ::prost::alloc::vec::Vec<EtcdAlarm>,
2006}
2007#[derive(serde::Serialize, serde::Deserialize)]
2008#[serde(rename_all = "camelCase")]
2009#[derive(Clone, PartialEq, ::prost::Message)]
2010pub struct EtcdAlarm {
2011    #[prost(message, optional, tag = "1")]
2012    pub metadata: ::core::option::Option<super::common::Metadata>,
2013    #[prost(message, repeated, tag = "2")]
2014    pub member_alarms: ::prost::alloc::vec::Vec<EtcdMemberAlarm>,
2015}
2016#[derive(serde::Serialize, serde::Deserialize)]
2017#[serde(rename_all = "camelCase")]
2018#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2019pub struct EtcdMemberAlarm {
2020    #[prost(uint64, tag = "1")]
2021    pub member_id: u64,
2022    #[prost(enumeration = "etcd_member_alarm::AlarmType", tag = "2")]
2023    pub alarm: i32,
2024}
2025/// Nested message and enum types in `EtcdMemberAlarm`.
2026pub mod etcd_member_alarm {
2027    #[derive(serde::Serialize, serde::Deserialize)]
2028    #[serde(rename_all = "camelCase")]
2029    #[derive(
2030        Clone,
2031        Copy,
2032        Debug,
2033        PartialEq,
2034        Eq,
2035        Hash,
2036        PartialOrd,
2037        Ord,
2038        ::prost::Enumeration
2039    )]
2040    #[repr(i32)]
2041    pub enum AlarmType {
2042        None = 0,
2043        Nospace = 1,
2044        Corrupt = 2,
2045    }
2046    impl AlarmType {
2047        /// String value of the enum field names used in the ProtoBuf definition.
2048        ///
2049        /// The values are not transformed in any way and thus are considered stable
2050        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2051        pub fn as_str_name(&self) -> &'static str {
2052            match self {
2053                Self::None => "NONE",
2054                Self::Nospace => "NOSPACE",
2055                Self::Corrupt => "CORRUPT",
2056            }
2057        }
2058        /// Creates an enum from field names used in the ProtoBuf definition.
2059        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2060            match value {
2061                "NONE" => Some(Self::None),
2062                "NOSPACE" => Some(Self::Nospace),
2063                "CORRUPT" => Some(Self::Corrupt),
2064                _ => None,
2065            }
2066        }
2067    }
2068}
2069#[derive(serde::Serialize, serde::Deserialize)]
2070#[serde(rename_all = "camelCase")]
2071#[derive(Clone, PartialEq, ::prost::Message)]
2072pub struct EtcdAlarmDisarmResponse {
2073    #[prost(message, repeated, tag = "1")]
2074    pub messages: ::prost::alloc::vec::Vec<EtcdAlarmDisarm>,
2075}
2076#[derive(serde::Serialize, serde::Deserialize)]
2077#[serde(rename_all = "camelCase")]
2078#[derive(Clone, PartialEq, ::prost::Message)]
2079pub struct EtcdAlarmDisarm {
2080    #[prost(message, optional, tag = "1")]
2081    pub metadata: ::core::option::Option<super::common::Metadata>,
2082    #[prost(message, repeated, tag = "2")]
2083    pub member_alarms: ::prost::alloc::vec::Vec<EtcdMemberAlarm>,
2084}
2085#[derive(serde::Serialize, serde::Deserialize)]
2086#[serde(rename_all = "camelCase")]
2087#[derive(Clone, PartialEq, ::prost::Message)]
2088pub struct EtcdDefragmentResponse {
2089    #[prost(message, repeated, tag = "1")]
2090    pub messages: ::prost::alloc::vec::Vec<EtcdDefragment>,
2091}
2092#[derive(serde::Serialize, serde::Deserialize)]
2093#[serde(rename_all = "camelCase")]
2094#[derive(Clone, PartialEq, ::prost::Message)]
2095pub struct EtcdDefragment {
2096    #[prost(message, optional, tag = "1")]
2097    pub metadata: ::core::option::Option<super::common::Metadata>,
2098}
2099#[derive(serde::Serialize, serde::Deserialize)]
2100#[serde(rename_all = "camelCase")]
2101#[derive(Clone, PartialEq, ::prost::Message)]
2102pub struct EtcdStatusResponse {
2103    #[prost(message, repeated, tag = "1")]
2104    pub messages: ::prost::alloc::vec::Vec<EtcdStatus>,
2105}
2106#[derive(serde::Serialize, serde::Deserialize)]
2107#[serde(rename_all = "camelCase")]
2108#[derive(Clone, PartialEq, ::prost::Message)]
2109pub struct EtcdStatus {
2110    #[prost(message, optional, tag = "1")]
2111    pub metadata: ::core::option::Option<super::common::Metadata>,
2112    #[prost(message, optional, tag = "2")]
2113    pub member_status: ::core::option::Option<EtcdMemberStatus>,
2114}
2115#[derive(serde::Serialize, serde::Deserialize)]
2116#[serde(rename_all = "camelCase")]
2117#[derive(Clone, PartialEq, ::prost::Message)]
2118pub struct EtcdMemberStatus {
2119    #[prost(uint64, tag = "10")]
2120    pub member_id: u64,
2121    #[prost(string, tag = "1")]
2122    pub protocol_version: ::prost::alloc::string::String,
2123    #[prost(int64, tag = "2")]
2124    pub db_size: i64,
2125    #[prost(int64, tag = "3")]
2126    pub db_size_in_use: i64,
2127    #[prost(uint64, tag = "4")]
2128    pub leader: u64,
2129    #[prost(uint64, tag = "5")]
2130    pub raft_index: u64,
2131    #[prost(uint64, tag = "6")]
2132    pub raft_term: u64,
2133    #[prost(uint64, tag = "7")]
2134    pub raft_applied_index: u64,
2135    #[prost(string, repeated, tag = "8")]
2136    pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2137    #[prost(bool, tag = "9")]
2138    pub is_learner: bool,
2139}
2140#[derive(serde::Serialize, serde::Deserialize)]
2141#[serde(rename_all = "camelCase")]
2142#[derive(Clone, PartialEq, ::prost::Message)]
2143pub struct RouteConfig {
2144    #[prost(string, tag = "1")]
2145    pub network: ::prost::alloc::string::String,
2146    #[prost(string, tag = "2")]
2147    pub gateway: ::prost::alloc::string::String,
2148    #[prost(uint32, tag = "3")]
2149    pub metric: u32,
2150}
2151#[derive(serde::Serialize, serde::Deserialize)]
2152#[serde(rename_all = "camelCase")]
2153#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2154pub struct DhcpOptionsConfig {
2155    #[prost(uint32, tag = "1")]
2156    pub route_metric: u32,
2157}
2158#[derive(serde::Serialize, serde::Deserialize)]
2159#[serde(rename_all = "camelCase")]
2160#[derive(Clone, PartialEq, ::prost::Message)]
2161pub struct NetworkDeviceConfig {
2162    #[prost(string, tag = "1")]
2163    pub interface: ::prost::alloc::string::String,
2164    #[prost(string, tag = "2")]
2165    pub cidr: ::prost::alloc::string::String,
2166    #[prost(int32, tag = "3")]
2167    pub mtu: i32,
2168    #[prost(bool, tag = "4")]
2169    pub dhcp: bool,
2170    #[prost(bool, tag = "5")]
2171    pub ignore: bool,
2172    #[prost(message, optional, tag = "6")]
2173    pub dhcp_options: ::core::option::Option<DhcpOptionsConfig>,
2174    #[prost(message, repeated, tag = "7")]
2175    pub routes: ::prost::alloc::vec::Vec<RouteConfig>,
2176}
2177#[derive(serde::Serialize, serde::Deserialize)]
2178#[serde(rename_all = "camelCase")]
2179#[derive(Clone, PartialEq, ::prost::Message)]
2180pub struct NetworkConfig {
2181    #[prost(string, tag = "1")]
2182    pub hostname: ::prost::alloc::string::String,
2183    #[prost(message, repeated, tag = "2")]
2184    pub interfaces: ::prost::alloc::vec::Vec<NetworkDeviceConfig>,
2185}
2186#[derive(serde::Serialize, serde::Deserialize)]
2187#[serde(rename_all = "camelCase")]
2188#[derive(Clone, PartialEq, ::prost::Message)]
2189pub struct InstallConfig {
2190    #[prost(string, tag = "1")]
2191    pub install_disk: ::prost::alloc::string::String,
2192    #[prost(string, tag = "2")]
2193    pub install_image: ::prost::alloc::string::String,
2194}
2195#[derive(serde::Serialize, serde::Deserialize)]
2196#[serde(rename_all = "camelCase")]
2197#[derive(Clone, PartialEq, ::prost::Message)]
2198pub struct MachineConfig {
2199    #[prost(enumeration = "machine_config::MachineType", tag = "1")]
2200    pub r#type: i32,
2201    #[prost(message, optional, tag = "2")]
2202    pub install_config: ::core::option::Option<InstallConfig>,
2203    #[prost(message, optional, tag = "3")]
2204    pub network_config: ::core::option::Option<NetworkConfig>,
2205    #[prost(string, tag = "4")]
2206    pub kubernetes_version: ::prost::alloc::string::String,
2207}
2208/// Nested message and enum types in `MachineConfig`.
2209pub mod machine_config {
2210    #[derive(serde::Serialize, serde::Deserialize)]
2211    #[serde(rename_all = "camelCase")]
2212    #[derive(
2213        Clone,
2214        Copy,
2215        Debug,
2216        PartialEq,
2217        Eq,
2218        Hash,
2219        PartialOrd,
2220        Ord,
2221        ::prost::Enumeration
2222    )]
2223    #[repr(i32)]
2224    pub enum MachineType {
2225        TypeUnknown = 0,
2226        TypeInit = 1,
2227        TypeControlPlane = 2,
2228        TypeWorker = 3,
2229    }
2230    impl MachineType {
2231        /// String value of the enum field names used in the ProtoBuf definition.
2232        ///
2233        /// The values are not transformed in any way and thus are considered stable
2234        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2235        pub fn as_str_name(&self) -> &'static str {
2236            match self {
2237                Self::TypeUnknown => "TYPE_UNKNOWN",
2238                Self::TypeInit => "TYPE_INIT",
2239                Self::TypeControlPlane => "TYPE_CONTROL_PLANE",
2240                Self::TypeWorker => "TYPE_WORKER",
2241            }
2242        }
2243        /// Creates an enum from field names used in the ProtoBuf definition.
2244        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2245            match value {
2246                "TYPE_UNKNOWN" => Some(Self::TypeUnknown),
2247                "TYPE_INIT" => Some(Self::TypeInit),
2248                "TYPE_CONTROL_PLANE" => Some(Self::TypeControlPlane),
2249                "TYPE_WORKER" => Some(Self::TypeWorker),
2250                _ => None,
2251            }
2252        }
2253    }
2254}
2255#[derive(serde::Serialize, serde::Deserialize)]
2256#[serde(rename_all = "camelCase")]
2257#[derive(Clone, PartialEq, ::prost::Message)]
2258pub struct ControlPlaneConfig {
2259    #[prost(string, tag = "1")]
2260    pub endpoint: ::prost::alloc::string::String,
2261}
2262#[derive(serde::Serialize, serde::Deserialize)]
2263#[serde(rename_all = "camelCase")]
2264#[derive(Clone, PartialEq, ::prost::Message)]
2265pub struct CniConfig {
2266    #[prost(string, tag = "1")]
2267    pub name: ::prost::alloc::string::String,
2268    #[prost(string, repeated, tag = "2")]
2269    pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2270}
2271#[derive(serde::Serialize, serde::Deserialize)]
2272#[serde(rename_all = "camelCase")]
2273#[derive(Clone, PartialEq, ::prost::Message)]
2274pub struct ClusterNetworkConfig {
2275    #[prost(string, tag = "1")]
2276    pub dns_domain: ::prost::alloc::string::String,
2277    #[prost(message, optional, tag = "2")]
2278    pub cni_config: ::core::option::Option<CniConfig>,
2279}
2280#[derive(serde::Serialize, serde::Deserialize)]
2281#[serde(rename_all = "camelCase")]
2282#[derive(Clone, PartialEq, ::prost::Message)]
2283pub struct ClusterConfig {
2284    #[prost(string, tag = "1")]
2285    pub name: ::prost::alloc::string::String,
2286    #[prost(message, optional, tag = "2")]
2287    pub control_plane: ::core::option::Option<ControlPlaneConfig>,
2288    #[prost(message, optional, tag = "3")]
2289    pub cluster_network: ::core::option::Option<ClusterNetworkConfig>,
2290    #[prost(bool, tag = "4")]
2291    pub allow_scheduling_on_control_planes: bool,
2292}
2293/// GenerateConfigurationRequest describes a request to generate a new configuration
2294/// on a node.
2295#[derive(serde::Serialize, serde::Deserialize)]
2296#[serde(rename_all = "camelCase")]
2297#[derive(Clone, PartialEq, ::prost::Message)]
2298pub struct GenerateConfigurationRequest {
2299    #[prost(string, tag = "1")]
2300    pub config_version: ::prost::alloc::string::String,
2301    #[prost(message, optional, tag = "2")]
2302    pub cluster_config: ::core::option::Option<ClusterConfig>,
2303    #[prost(message, optional, tag = "3")]
2304    pub machine_config: ::core::option::Option<MachineConfig>,
2305    #[prost(message, optional, tag = "4")]
2306    pub override_time: ::core::option::Option<super::google::protobuf::Timestamp>,
2307}
2308/// GenerateConfiguration describes the response to a generate configuration request.
2309#[derive(serde::Serialize, serde::Deserialize)]
2310#[serde(rename_all = "camelCase")]
2311#[derive(Clone, PartialEq, ::prost::Message)]
2312pub struct GenerateConfiguration {
2313    #[prost(message, optional, tag = "1")]
2314    pub metadata: ::core::option::Option<super::common::Metadata>,
2315    #[prost(bytes = "vec", repeated, tag = "2")]
2316    pub data: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
2317    #[prost(bytes = "vec", tag = "3")]
2318    pub talosconfig: ::prost::alloc::vec::Vec<u8>,
2319}
2320#[derive(serde::Serialize, serde::Deserialize)]
2321#[serde(rename_all = "camelCase")]
2322#[derive(Clone, PartialEq, ::prost::Message)]
2323pub struct GenerateConfigurationResponse {
2324    #[prost(message, repeated, tag = "1")]
2325    pub messages: ::prost::alloc::vec::Vec<GenerateConfiguration>,
2326}
2327#[derive(serde::Serialize, serde::Deserialize)]
2328#[serde(rename_all = "camelCase")]
2329#[derive(Clone, PartialEq, ::prost::Message)]
2330pub struct GenerateClientConfigurationRequest {
2331    /// Roles in the generated client certificate.
2332    #[prost(string, repeated, tag = "1")]
2333    pub roles: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2334    /// Client certificate TTL.
2335    #[prost(message, optional, tag = "2")]
2336    pub crt_ttl: ::core::option::Option<super::google::protobuf::Duration>,
2337}
2338#[derive(serde::Serialize, serde::Deserialize)]
2339#[serde(rename_all = "camelCase")]
2340#[derive(Clone, PartialEq, ::prost::Message)]
2341pub struct GenerateClientConfiguration {
2342    #[prost(message, optional, tag = "1")]
2343    pub metadata: ::core::option::Option<super::common::Metadata>,
2344    /// PEM-encoded CA certificate.
2345    #[prost(bytes = "vec", tag = "2")]
2346    pub ca: ::prost::alloc::vec::Vec<u8>,
2347    /// PEM-encoded generated client certificate.
2348    #[prost(bytes = "vec", tag = "3")]
2349    pub crt: ::prost::alloc::vec::Vec<u8>,
2350    /// PEM-encoded generated client key.
2351    #[prost(bytes = "vec", tag = "4")]
2352    pub key: ::prost::alloc::vec::Vec<u8>,
2353    /// Client configuration (talosconfig) file content.
2354    #[prost(bytes = "vec", tag = "5")]
2355    pub talosconfig: ::prost::alloc::vec::Vec<u8>,
2356}
2357#[derive(serde::Serialize, serde::Deserialize)]
2358#[serde(rename_all = "camelCase")]
2359#[derive(Clone, PartialEq, ::prost::Message)]
2360pub struct GenerateClientConfigurationResponse {
2361    #[prost(message, repeated, tag = "1")]
2362    pub messages: ::prost::alloc::vec::Vec<GenerateClientConfiguration>,
2363}
2364#[derive(serde::Serialize, serde::Deserialize)]
2365#[serde(rename_all = "camelCase")]
2366#[derive(Clone, PartialEq, ::prost::Message)]
2367pub struct PacketCaptureRequest {
2368    /// Interface name to perform packet capture on.
2369    #[prost(string, tag = "1")]
2370    pub interface: ::prost::alloc::string::String,
2371    /// Enable promiscuous mode.
2372    #[prost(bool, tag = "2")]
2373    pub promiscuous: bool,
2374    /// Snap length in bytes.
2375    #[prost(uint32, tag = "3")]
2376    pub snap_len: u32,
2377    /// BPF filter.
2378    #[prost(message, repeated, tag = "4")]
2379    pub bpf_filter: ::prost::alloc::vec::Vec<BpfInstruction>,
2380}
2381#[derive(serde::Serialize, serde::Deserialize)]
2382#[serde(rename_all = "camelCase")]
2383#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2384pub struct BpfInstruction {
2385    #[prost(uint32, tag = "1")]
2386    pub op: u32,
2387    #[prost(uint32, tag = "2")]
2388    pub jt: u32,
2389    #[prost(uint32, tag = "3")]
2390    pub jf: u32,
2391    #[prost(uint32, tag = "4")]
2392    pub k: u32,
2393}
2394#[derive(serde::Serialize, serde::Deserialize)]
2395#[serde(rename_all = "camelCase")]
2396#[derive(Clone, PartialEq, ::prost::Message)]
2397pub struct NetstatRequest {
2398    #[prost(enumeration = "netstat_request::Filter", tag = "1")]
2399    pub filter: i32,
2400    #[prost(message, optional, tag = "2")]
2401    pub feature: ::core::option::Option<netstat_request::Feature>,
2402    #[prost(message, optional, tag = "3")]
2403    pub l4proto: ::core::option::Option<netstat_request::L4proto>,
2404    #[prost(message, optional, tag = "4")]
2405    pub netns: ::core::option::Option<netstat_request::NetNs>,
2406}
2407/// Nested message and enum types in `NetstatRequest`.
2408pub mod netstat_request {
2409    #[derive(serde::Serialize, serde::Deserialize)]
2410    #[serde(rename_all = "camelCase")]
2411    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2412    pub struct Feature {
2413        #[prost(bool, tag = "1")]
2414        pub pid: bool,
2415    }
2416    #[derive(serde::Serialize, serde::Deserialize)]
2417    #[serde(rename_all = "camelCase")]
2418    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2419    pub struct L4proto {
2420        #[prost(bool, tag = "1")]
2421        pub tcp: bool,
2422        #[prost(bool, tag = "2")]
2423        pub tcp6: bool,
2424        #[prost(bool, tag = "3")]
2425        pub udp: bool,
2426        #[prost(bool, tag = "4")]
2427        pub udp6: bool,
2428        #[prost(bool, tag = "5")]
2429        pub udplite: bool,
2430        #[prost(bool, tag = "6")]
2431        pub udplite6: bool,
2432        #[prost(bool, tag = "7")]
2433        pub raw: bool,
2434        #[prost(bool, tag = "8")]
2435        pub raw6: bool,
2436    }
2437    #[derive(serde::Serialize, serde::Deserialize)]
2438    #[serde(rename_all = "camelCase")]
2439    #[derive(Clone, PartialEq, ::prost::Message)]
2440    pub struct NetNs {
2441        #[prost(bool, tag = "1")]
2442        pub hostnetwork: bool,
2443        #[prost(string, repeated, tag = "2")]
2444        pub netns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2445        #[prost(bool, tag = "3")]
2446        pub allnetns: bool,
2447    }
2448    #[derive(serde::Serialize, serde::Deserialize)]
2449    #[serde(rename_all = "camelCase")]
2450    #[derive(
2451        Clone,
2452        Copy,
2453        Debug,
2454        PartialEq,
2455        Eq,
2456        Hash,
2457        PartialOrd,
2458        Ord,
2459        ::prost::Enumeration
2460    )]
2461    #[repr(i32)]
2462    pub enum Filter {
2463        All = 0,
2464        Connected = 1,
2465        Listening = 2,
2466    }
2467    impl Filter {
2468        /// String value of the enum field names used in the ProtoBuf definition.
2469        ///
2470        /// The values are not transformed in any way and thus are considered stable
2471        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2472        pub fn as_str_name(&self) -> &'static str {
2473            match self {
2474                Self::All => "ALL",
2475                Self::Connected => "CONNECTED",
2476                Self::Listening => "LISTENING",
2477            }
2478        }
2479        /// Creates an enum from field names used in the ProtoBuf definition.
2480        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2481            match value {
2482                "ALL" => Some(Self::All),
2483                "CONNECTED" => Some(Self::Connected),
2484                "LISTENING" => Some(Self::Listening),
2485                _ => None,
2486            }
2487        }
2488    }
2489}
2490#[derive(serde::Serialize, serde::Deserialize)]
2491#[serde(rename_all = "camelCase")]
2492#[derive(Clone, PartialEq, ::prost::Message)]
2493pub struct ConnectRecord {
2494    #[prost(string, tag = "1")]
2495    pub l4proto: ::prost::alloc::string::String,
2496    #[prost(string, tag = "2")]
2497    pub localip: ::prost::alloc::string::String,
2498    #[prost(uint32, tag = "3")]
2499    pub localport: u32,
2500    #[prost(string, tag = "4")]
2501    pub remoteip: ::prost::alloc::string::String,
2502    #[prost(uint32, tag = "5")]
2503    pub remoteport: u32,
2504    #[prost(enumeration = "connect_record::State", tag = "6")]
2505    pub state: i32,
2506    #[prost(uint64, tag = "7")]
2507    pub txqueue: u64,
2508    #[prost(uint64, tag = "8")]
2509    pub rxqueue: u64,
2510    #[prost(enumeration = "connect_record::TimerActive", tag = "9")]
2511    pub tr: i32,
2512    #[prost(uint64, tag = "10")]
2513    pub timerwhen: u64,
2514    #[prost(uint64, tag = "11")]
2515    pub retrnsmt: u64,
2516    #[prost(uint32, tag = "12")]
2517    pub uid: u32,
2518    #[prost(uint64, tag = "13")]
2519    pub timeout: u64,
2520    #[prost(uint64, tag = "14")]
2521    pub inode: u64,
2522    #[prost(uint64, tag = "15")]
2523    pub r#ref: u64,
2524    #[prost(uint64, tag = "16")]
2525    pub pointer: u64,
2526    #[prost(message, optional, tag = "17")]
2527    pub process: ::core::option::Option<connect_record::Process>,
2528    #[prost(string, tag = "18")]
2529    pub netns: ::prost::alloc::string::String,
2530}
2531/// Nested message and enum types in `ConnectRecord`.
2532pub mod connect_record {
2533    #[derive(serde::Serialize, serde::Deserialize)]
2534    #[serde(rename_all = "camelCase")]
2535    #[derive(Clone, PartialEq, ::prost::Message)]
2536    pub struct Process {
2537        #[prost(uint32, tag = "1")]
2538        pub pid: u32,
2539        #[prost(string, tag = "2")]
2540        pub name: ::prost::alloc::string::String,
2541    }
2542    #[derive(serde::Serialize, serde::Deserialize)]
2543    #[serde(rename_all = "camelCase")]
2544    #[derive(
2545        Clone,
2546        Copy,
2547        Debug,
2548        PartialEq,
2549        Eq,
2550        Hash,
2551        PartialOrd,
2552        Ord,
2553        ::prost::Enumeration
2554    )]
2555    #[repr(i32)]
2556    pub enum State {
2557        Reserved = 0,
2558        Established = 1,
2559        SynSent = 2,
2560        SynRecv = 3,
2561        FinWait1 = 4,
2562        FinWait2 = 5,
2563        TimeWait = 6,
2564        Close = 7,
2565        Closewait = 8,
2566        Lastack = 9,
2567        Listen = 10,
2568        Closing = 11,
2569    }
2570    impl State {
2571        /// String value of the enum field names used in the ProtoBuf definition.
2572        ///
2573        /// The values are not transformed in any way and thus are considered stable
2574        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2575        pub fn as_str_name(&self) -> &'static str {
2576            match self {
2577                Self::Reserved => "RESERVED",
2578                Self::Established => "ESTABLISHED",
2579                Self::SynSent => "SYN_SENT",
2580                Self::SynRecv => "SYN_RECV",
2581                Self::FinWait1 => "FIN_WAIT1",
2582                Self::FinWait2 => "FIN_WAIT2",
2583                Self::TimeWait => "TIME_WAIT",
2584                Self::Close => "CLOSE",
2585                Self::Closewait => "CLOSEWAIT",
2586                Self::Lastack => "LASTACK",
2587                Self::Listen => "LISTEN",
2588                Self::Closing => "CLOSING",
2589            }
2590        }
2591        /// Creates an enum from field names used in the ProtoBuf definition.
2592        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2593            match value {
2594                "RESERVED" => Some(Self::Reserved),
2595                "ESTABLISHED" => Some(Self::Established),
2596                "SYN_SENT" => Some(Self::SynSent),
2597                "SYN_RECV" => Some(Self::SynRecv),
2598                "FIN_WAIT1" => Some(Self::FinWait1),
2599                "FIN_WAIT2" => Some(Self::FinWait2),
2600                "TIME_WAIT" => Some(Self::TimeWait),
2601                "CLOSE" => Some(Self::Close),
2602                "CLOSEWAIT" => Some(Self::Closewait),
2603                "LASTACK" => Some(Self::Lastack),
2604                "LISTEN" => Some(Self::Listen),
2605                "CLOSING" => Some(Self::Closing),
2606                _ => None,
2607            }
2608        }
2609    }
2610    #[derive(serde::Serialize, serde::Deserialize)]
2611    #[serde(rename_all = "camelCase")]
2612    #[derive(
2613        Clone,
2614        Copy,
2615        Debug,
2616        PartialEq,
2617        Eq,
2618        Hash,
2619        PartialOrd,
2620        Ord,
2621        ::prost::Enumeration
2622    )]
2623    #[repr(i32)]
2624    pub enum TimerActive {
2625        Off = 0,
2626        On = 1,
2627        Keepalive = 2,
2628        Timewait = 3,
2629        Probe = 4,
2630    }
2631    impl TimerActive {
2632        /// String value of the enum field names used in the ProtoBuf definition.
2633        ///
2634        /// The values are not transformed in any way and thus are considered stable
2635        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2636        pub fn as_str_name(&self) -> &'static str {
2637            match self {
2638                Self::Off => "OFF",
2639                Self::On => "ON",
2640                Self::Keepalive => "KEEPALIVE",
2641                Self::Timewait => "TIMEWAIT",
2642                Self::Probe => "PROBE",
2643            }
2644        }
2645        /// Creates an enum from field names used in the ProtoBuf definition.
2646        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2647            match value {
2648                "OFF" => Some(Self::Off),
2649                "ON" => Some(Self::On),
2650                "KEEPALIVE" => Some(Self::Keepalive),
2651                "TIMEWAIT" => Some(Self::Timewait),
2652                "PROBE" => Some(Self::Probe),
2653                _ => None,
2654            }
2655        }
2656    }
2657}
2658#[derive(serde::Serialize, serde::Deserialize)]
2659#[serde(rename_all = "camelCase")]
2660#[derive(Clone, PartialEq, ::prost::Message)]
2661pub struct Netstat {
2662    #[prost(message, optional, tag = "1")]
2663    pub metadata: ::core::option::Option<super::common::Metadata>,
2664    #[prost(message, repeated, tag = "2")]
2665    pub connectrecord: ::prost::alloc::vec::Vec<ConnectRecord>,
2666}
2667#[derive(serde::Serialize, serde::Deserialize)]
2668#[serde(rename_all = "camelCase")]
2669#[derive(Clone, PartialEq, ::prost::Message)]
2670pub struct NetstatResponse {
2671    #[prost(message, repeated, tag = "1")]
2672    pub messages: ::prost::alloc::vec::Vec<Netstat>,
2673}
2674#[derive(serde::Serialize, serde::Deserialize)]
2675#[serde(rename_all = "camelCase")]
2676#[derive(Clone, PartialEq, ::prost::Message)]
2677pub struct MetaWriteRequest {
2678    #[prost(uint32, tag = "1")]
2679    pub key: u32,
2680    #[prost(bytes = "vec", tag = "2")]
2681    pub value: ::prost::alloc::vec::Vec<u8>,
2682}
2683#[derive(serde::Serialize, serde::Deserialize)]
2684#[serde(rename_all = "camelCase")]
2685#[derive(Clone, PartialEq, ::prost::Message)]
2686pub struct MetaWrite {
2687    #[prost(message, optional, tag = "1")]
2688    pub metadata: ::core::option::Option<super::common::Metadata>,
2689}
2690#[derive(serde::Serialize, serde::Deserialize)]
2691#[serde(rename_all = "camelCase")]
2692#[derive(Clone, PartialEq, ::prost::Message)]
2693pub struct MetaWriteResponse {
2694    #[prost(message, repeated, tag = "1")]
2695    pub messages: ::prost::alloc::vec::Vec<MetaWrite>,
2696}
2697#[derive(serde::Serialize, serde::Deserialize)]
2698#[serde(rename_all = "camelCase")]
2699#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2700pub struct MetaDeleteRequest {
2701    #[prost(uint32, tag = "1")]
2702    pub key: u32,
2703}
2704#[derive(serde::Serialize, serde::Deserialize)]
2705#[serde(rename_all = "camelCase")]
2706#[derive(Clone, PartialEq, ::prost::Message)]
2707pub struct MetaDelete {
2708    #[prost(message, optional, tag = "1")]
2709    pub metadata: ::core::option::Option<super::common::Metadata>,
2710}
2711#[derive(serde::Serialize, serde::Deserialize)]
2712#[serde(rename_all = "camelCase")]
2713#[derive(Clone, PartialEq, ::prost::Message)]
2714pub struct MetaDeleteResponse {
2715    #[prost(message, repeated, tag = "1")]
2716    pub messages: ::prost::alloc::vec::Vec<MetaDelete>,
2717}
2718#[derive(serde::Serialize, serde::Deserialize)]
2719#[serde(rename_all = "camelCase")]
2720#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2721pub struct ImageListRequest {
2722    /// Containerd namespace to use.
2723    #[prost(enumeration = "super::common::ContainerdNamespace", tag = "1")]
2724    pub namespace: i32,
2725}
2726#[derive(serde::Serialize, serde::Deserialize)]
2727#[serde(rename_all = "camelCase")]
2728#[derive(Clone, PartialEq, ::prost::Message)]
2729pub struct ImageListResponse {
2730    #[prost(message, optional, tag = "1")]
2731    pub metadata: ::core::option::Option<super::common::Metadata>,
2732    #[prost(string, tag = "2")]
2733    pub name: ::prost::alloc::string::String,
2734    #[prost(string, tag = "3")]
2735    pub digest: ::prost::alloc::string::String,
2736    #[prost(int64, tag = "4")]
2737    pub size: i64,
2738    #[prost(message, optional, tag = "5")]
2739    pub created_at: ::core::option::Option<super::google::protobuf::Timestamp>,
2740}
2741#[derive(serde::Serialize, serde::Deserialize)]
2742#[serde(rename_all = "camelCase")]
2743#[derive(Clone, PartialEq, ::prost::Message)]
2744pub struct ImagePullRequest {
2745    /// Containerd namespace to use.
2746    #[prost(enumeration = "super::common::ContainerdNamespace", tag = "1")]
2747    pub namespace: i32,
2748    /// Image reference to pull.
2749    #[prost(string, tag = "2")]
2750    pub reference: ::prost::alloc::string::String,
2751}
2752#[derive(serde::Serialize, serde::Deserialize)]
2753#[serde(rename_all = "camelCase")]
2754#[derive(Clone, PartialEq, ::prost::Message)]
2755pub struct ImagePull {
2756    #[prost(message, optional, tag = "1")]
2757    pub metadata: ::core::option::Option<super::common::Metadata>,
2758}
2759#[derive(serde::Serialize, serde::Deserialize)]
2760#[serde(rename_all = "camelCase")]
2761#[derive(Clone, PartialEq, ::prost::Message)]
2762pub struct ImagePullResponse {
2763    #[prost(message, repeated, tag = "1")]
2764    pub messages: ::prost::alloc::vec::Vec<ImagePull>,
2765}
2766/// Generated client implementations.
2767pub mod machine_service_client {
2768    #![allow(
2769        unused_variables,
2770        dead_code,
2771        missing_docs,
2772        clippy::wildcard_imports,
2773        clippy::let_unit_value,
2774    )]
2775    use tonic::codegen::*;
2776    use tonic::codegen::http::Uri;
2777    /// The machine service definition.
2778    #[derive(Debug, Clone)]
2779    pub struct MachineServiceClient<T> {
2780        inner: tonic::client::Grpc<T>,
2781    }
2782    impl MachineServiceClient<tonic::transport::Channel> {
2783        /// Attempt to create a new client by connecting to a given endpoint.
2784        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2785        where
2786            D: TryInto<tonic::transport::Endpoint>,
2787            D::Error: Into<StdError>,
2788        {
2789            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2790            Ok(Self::new(conn))
2791        }
2792    }
2793    impl<T> MachineServiceClient<T>
2794    where
2795        T: tonic::client::GrpcService<tonic::body::BoxBody>,
2796        T::Error: Into<StdError>,
2797        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2798        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2799    {
2800        pub fn new(inner: T) -> Self {
2801            let inner = tonic::client::Grpc::new(inner);
2802            Self { inner }
2803        }
2804        pub fn with_origin(inner: T, origin: Uri) -> Self {
2805            let inner = tonic::client::Grpc::with_origin(inner, origin);
2806            Self { inner }
2807        }
2808        pub fn with_interceptor<F>(
2809            inner: T,
2810            interceptor: F,
2811        ) -> MachineServiceClient<InterceptedService<T, F>>
2812        where
2813            F: tonic::service::Interceptor,
2814            T::ResponseBody: Default,
2815            T: tonic::codegen::Service<
2816                http::Request<tonic::body::BoxBody>,
2817                Response = http::Response<
2818                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
2819                >,
2820            >,
2821            <T as tonic::codegen::Service<
2822                http::Request<tonic::body::BoxBody>,
2823            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2824        {
2825            MachineServiceClient::new(InterceptedService::new(inner, interceptor))
2826        }
2827        /// Compress requests with the given encoding.
2828        ///
2829        /// This requires the server to support it otherwise it might respond with an
2830        /// error.
2831        #[must_use]
2832        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2833            self.inner = self.inner.send_compressed(encoding);
2834            self
2835        }
2836        /// Enable decompressing responses.
2837        #[must_use]
2838        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2839            self.inner = self.inner.accept_compressed(encoding);
2840            self
2841        }
2842        /// Limits the maximum size of a decoded message.
2843        ///
2844        /// Default: `4MB`
2845        #[must_use]
2846        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2847            self.inner = self.inner.max_decoding_message_size(limit);
2848            self
2849        }
2850        /// Limits the maximum size of an encoded message.
2851        ///
2852        /// Default: `usize::MAX`
2853        #[must_use]
2854        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2855            self.inner = self.inner.max_encoding_message_size(limit);
2856            self
2857        }
2858        pub async fn apply_configuration(
2859            &mut self,
2860            request: impl tonic::IntoRequest<super::ApplyConfigurationRequest>,
2861        ) -> std::result::Result<
2862            tonic::Response<super::ApplyConfigurationResponse>,
2863            tonic::Status,
2864        > {
2865            self.inner
2866                .ready()
2867                .await
2868                .map_err(|e| {
2869                    tonic::Status::unknown(
2870                        format!("Service was not ready: {}", e.into()),
2871                    )
2872                })?;
2873            let codec = tonic::codec::ProstCodec::default();
2874            let path = http::uri::PathAndQuery::from_static(
2875                "/machine.MachineService/ApplyConfiguration",
2876            );
2877            let mut req = request.into_request();
2878            req.extensions_mut()
2879                .insert(GrpcMethod::new("machine.MachineService", "ApplyConfiguration"));
2880            self.inner.unary(req, path, codec).await
2881        }
2882        /// Bootstrap method makes control plane node enter etcd bootstrap mode.
2883        /// Node aborts etcd join sequence and creates single-node etcd cluster.
2884        /// If recover_etcd argument is specified, etcd is recovered from a snapshot
2885        /// uploaded with EtcdRecover.
2886        pub async fn bootstrap(
2887            &mut self,
2888            request: impl tonic::IntoRequest<super::BootstrapRequest>,
2889        ) -> std::result::Result<
2890            tonic::Response<super::BootstrapResponse>,
2891            tonic::Status,
2892        > {
2893            self.inner
2894                .ready()
2895                .await
2896                .map_err(|e| {
2897                    tonic::Status::unknown(
2898                        format!("Service was not ready: {}", e.into()),
2899                    )
2900                })?;
2901            let codec = tonic::codec::ProstCodec::default();
2902            let path = http::uri::PathAndQuery::from_static(
2903                "/machine.MachineService/Bootstrap",
2904            );
2905            let mut req = request.into_request();
2906            req.extensions_mut()
2907                .insert(GrpcMethod::new("machine.MachineService", "Bootstrap"));
2908            self.inner.unary(req, path, codec).await
2909        }
2910        pub async fn containers(
2911            &mut self,
2912            request: impl tonic::IntoRequest<super::ContainersRequest>,
2913        ) -> std::result::Result<
2914            tonic::Response<super::ContainersResponse>,
2915            tonic::Status,
2916        > {
2917            self.inner
2918                .ready()
2919                .await
2920                .map_err(|e| {
2921                    tonic::Status::unknown(
2922                        format!("Service was not ready: {}", e.into()),
2923                    )
2924                })?;
2925            let codec = tonic::codec::ProstCodec::default();
2926            let path = http::uri::PathAndQuery::from_static(
2927                "/machine.MachineService/Containers",
2928            );
2929            let mut req = request.into_request();
2930            req.extensions_mut()
2931                .insert(GrpcMethod::new("machine.MachineService", "Containers"));
2932            self.inner.unary(req, path, codec).await
2933        }
2934        pub async fn copy(
2935            &mut self,
2936            request: impl tonic::IntoRequest<super::CopyRequest>,
2937        ) -> std::result::Result<
2938            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
2939            tonic::Status,
2940        > {
2941            self.inner
2942                .ready()
2943                .await
2944                .map_err(|e| {
2945                    tonic::Status::unknown(
2946                        format!("Service was not ready: {}", e.into()),
2947                    )
2948                })?;
2949            let codec = tonic::codec::ProstCodec::default();
2950            let path = http::uri::PathAndQuery::from_static(
2951                "/machine.MachineService/Copy",
2952            );
2953            let mut req = request.into_request();
2954            req.extensions_mut()
2955                .insert(GrpcMethod::new("machine.MachineService", "Copy"));
2956            self.inner.server_streaming(req, path, codec).await
2957        }
2958        pub async fn cpu_freq_stats(
2959            &mut self,
2960            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
2961        ) -> std::result::Result<
2962            tonic::Response<super::CpuFreqStatsResponse>,
2963            tonic::Status,
2964        > {
2965            self.inner
2966                .ready()
2967                .await
2968                .map_err(|e| {
2969                    tonic::Status::unknown(
2970                        format!("Service was not ready: {}", e.into()),
2971                    )
2972                })?;
2973            let codec = tonic::codec::ProstCodec::default();
2974            let path = http::uri::PathAndQuery::from_static(
2975                "/machine.MachineService/CPUFreqStats",
2976            );
2977            let mut req = request.into_request();
2978            req.extensions_mut()
2979                .insert(GrpcMethod::new("machine.MachineService", "CPUFreqStats"));
2980            self.inner.unary(req, path, codec).await
2981        }
2982        pub async fn cpu_info(
2983            &mut self,
2984            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
2985        ) -> std::result::Result<
2986            tonic::Response<super::CpuInfoResponse>,
2987            tonic::Status,
2988        > {
2989            self.inner
2990                .ready()
2991                .await
2992                .map_err(|e| {
2993                    tonic::Status::unknown(
2994                        format!("Service was not ready: {}", e.into()),
2995                    )
2996                })?;
2997            let codec = tonic::codec::ProstCodec::default();
2998            let path = http::uri::PathAndQuery::from_static(
2999                "/machine.MachineService/CPUInfo",
3000            );
3001            let mut req = request.into_request();
3002            req.extensions_mut()
3003                .insert(GrpcMethod::new("machine.MachineService", "CPUInfo"));
3004            self.inner.unary(req, path, codec).await
3005        }
3006        pub async fn disk_stats(
3007            &mut self,
3008            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3009        ) -> std::result::Result<
3010            tonic::Response<super::DiskStatsResponse>,
3011            tonic::Status,
3012        > {
3013            self.inner
3014                .ready()
3015                .await
3016                .map_err(|e| {
3017                    tonic::Status::unknown(
3018                        format!("Service was not ready: {}", e.into()),
3019                    )
3020                })?;
3021            let codec = tonic::codec::ProstCodec::default();
3022            let path = http::uri::PathAndQuery::from_static(
3023                "/machine.MachineService/DiskStats",
3024            );
3025            let mut req = request.into_request();
3026            req.extensions_mut()
3027                .insert(GrpcMethod::new("machine.MachineService", "DiskStats"));
3028            self.inner.unary(req, path, codec).await
3029        }
3030        pub async fn dmesg(
3031            &mut self,
3032            request: impl tonic::IntoRequest<super::DmesgRequest>,
3033        ) -> std::result::Result<
3034            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
3035            tonic::Status,
3036        > {
3037            self.inner
3038                .ready()
3039                .await
3040                .map_err(|e| {
3041                    tonic::Status::unknown(
3042                        format!("Service was not ready: {}", e.into()),
3043                    )
3044                })?;
3045            let codec = tonic::codec::ProstCodec::default();
3046            let path = http::uri::PathAndQuery::from_static(
3047                "/machine.MachineService/Dmesg",
3048            );
3049            let mut req = request.into_request();
3050            req.extensions_mut()
3051                .insert(GrpcMethod::new("machine.MachineService", "Dmesg"));
3052            self.inner.server_streaming(req, path, codec).await
3053        }
3054        pub async fn events(
3055            &mut self,
3056            request: impl tonic::IntoRequest<super::EventsRequest>,
3057        ) -> std::result::Result<
3058            tonic::Response<tonic::codec::Streaming<super::Event>>,
3059            tonic::Status,
3060        > {
3061            self.inner
3062                .ready()
3063                .await
3064                .map_err(|e| {
3065                    tonic::Status::unknown(
3066                        format!("Service was not ready: {}", e.into()),
3067                    )
3068                })?;
3069            let codec = tonic::codec::ProstCodec::default();
3070            let path = http::uri::PathAndQuery::from_static(
3071                "/machine.MachineService/Events",
3072            );
3073            let mut req = request.into_request();
3074            req.extensions_mut()
3075                .insert(GrpcMethod::new("machine.MachineService", "Events"));
3076            self.inner.server_streaming(req, path, codec).await
3077        }
3078        pub async fn etcd_member_list(
3079            &mut self,
3080            request: impl tonic::IntoRequest<super::EtcdMemberListRequest>,
3081        ) -> std::result::Result<
3082            tonic::Response<super::EtcdMemberListResponse>,
3083            tonic::Status,
3084        > {
3085            self.inner
3086                .ready()
3087                .await
3088                .map_err(|e| {
3089                    tonic::Status::unknown(
3090                        format!("Service was not ready: {}", e.into()),
3091                    )
3092                })?;
3093            let codec = tonic::codec::ProstCodec::default();
3094            let path = http::uri::PathAndQuery::from_static(
3095                "/machine.MachineService/EtcdMemberList",
3096            );
3097            let mut req = request.into_request();
3098            req.extensions_mut()
3099                .insert(GrpcMethod::new("machine.MachineService", "EtcdMemberList"));
3100            self.inner.unary(req, path, codec).await
3101        }
3102        /// EtcdRemoveMemberByID removes a member from the etcd cluster identified by member ID.
3103        /// This API should be used to remove members which don't have an associated Talos node anymore.
3104        /// To remove a member with a running Talos node, use EtcdLeaveCluster API on the node to be removed.
3105        pub async fn etcd_remove_member_by_id(
3106            &mut self,
3107            request: impl tonic::IntoRequest<super::EtcdRemoveMemberByIdRequest>,
3108        ) -> std::result::Result<
3109            tonic::Response<super::EtcdRemoveMemberByIdResponse>,
3110            tonic::Status,
3111        > {
3112            self.inner
3113                .ready()
3114                .await
3115                .map_err(|e| {
3116                    tonic::Status::unknown(
3117                        format!("Service was not ready: {}", e.into()),
3118                    )
3119                })?;
3120            let codec = tonic::codec::ProstCodec::default();
3121            let path = http::uri::PathAndQuery::from_static(
3122                "/machine.MachineService/EtcdRemoveMemberByID",
3123            );
3124            let mut req = request.into_request();
3125            req.extensions_mut()
3126                .insert(
3127                    GrpcMethod::new("machine.MachineService", "EtcdRemoveMemberByID"),
3128                );
3129            self.inner.unary(req, path, codec).await
3130        }
3131        pub async fn etcd_leave_cluster(
3132            &mut self,
3133            request: impl tonic::IntoRequest<super::EtcdLeaveClusterRequest>,
3134        ) -> std::result::Result<
3135            tonic::Response<super::EtcdLeaveClusterResponse>,
3136            tonic::Status,
3137        > {
3138            self.inner
3139                .ready()
3140                .await
3141                .map_err(|e| {
3142                    tonic::Status::unknown(
3143                        format!("Service was not ready: {}", e.into()),
3144                    )
3145                })?;
3146            let codec = tonic::codec::ProstCodec::default();
3147            let path = http::uri::PathAndQuery::from_static(
3148                "/machine.MachineService/EtcdLeaveCluster",
3149            );
3150            let mut req = request.into_request();
3151            req.extensions_mut()
3152                .insert(GrpcMethod::new("machine.MachineService", "EtcdLeaveCluster"));
3153            self.inner.unary(req, path, codec).await
3154        }
3155        pub async fn etcd_forfeit_leadership(
3156            &mut self,
3157            request: impl tonic::IntoRequest<super::EtcdForfeitLeadershipRequest>,
3158        ) -> std::result::Result<
3159            tonic::Response<super::EtcdForfeitLeadershipResponse>,
3160            tonic::Status,
3161        > {
3162            self.inner
3163                .ready()
3164                .await
3165                .map_err(|e| {
3166                    tonic::Status::unknown(
3167                        format!("Service was not ready: {}", e.into()),
3168                    )
3169                })?;
3170            let codec = tonic::codec::ProstCodec::default();
3171            let path = http::uri::PathAndQuery::from_static(
3172                "/machine.MachineService/EtcdForfeitLeadership",
3173            );
3174            let mut req = request.into_request();
3175            req.extensions_mut()
3176                .insert(
3177                    GrpcMethod::new("machine.MachineService", "EtcdForfeitLeadership"),
3178                );
3179            self.inner.unary(req, path, codec).await
3180        }
3181        /// EtcdRecover method uploads etcd data snapshot created with EtcdSnapshot
3182        /// to the node.
3183        /// Snapshot can be later used to recover the cluster via Bootstrap method.
3184        pub async fn etcd_recover(
3185            &mut self,
3186            request: impl tonic::IntoStreamingRequest<
3187                Message = super::super::common::Data,
3188            >,
3189        ) -> std::result::Result<
3190            tonic::Response<super::EtcdRecoverResponse>,
3191            tonic::Status,
3192        > {
3193            self.inner
3194                .ready()
3195                .await
3196                .map_err(|e| {
3197                    tonic::Status::unknown(
3198                        format!("Service was not ready: {}", e.into()),
3199                    )
3200                })?;
3201            let codec = tonic::codec::ProstCodec::default();
3202            let path = http::uri::PathAndQuery::from_static(
3203                "/machine.MachineService/EtcdRecover",
3204            );
3205            let mut req = request.into_streaming_request();
3206            req.extensions_mut()
3207                .insert(GrpcMethod::new("machine.MachineService", "EtcdRecover"));
3208            self.inner.client_streaming(req, path, codec).await
3209        }
3210        /// EtcdSnapshot method creates etcd data snapshot (backup) from the local etcd instance
3211        /// and streams it back to the client.
3212        /// This method is available only on control plane nodes (which run etcd).
3213        pub async fn etcd_snapshot(
3214            &mut self,
3215            request: impl tonic::IntoRequest<super::EtcdSnapshotRequest>,
3216        ) -> std::result::Result<
3217            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
3218            tonic::Status,
3219        > {
3220            self.inner
3221                .ready()
3222                .await
3223                .map_err(|e| {
3224                    tonic::Status::unknown(
3225                        format!("Service was not ready: {}", e.into()),
3226                    )
3227                })?;
3228            let codec = tonic::codec::ProstCodec::default();
3229            let path = http::uri::PathAndQuery::from_static(
3230                "/machine.MachineService/EtcdSnapshot",
3231            );
3232            let mut req = request.into_request();
3233            req.extensions_mut()
3234                .insert(GrpcMethod::new("machine.MachineService", "EtcdSnapshot"));
3235            self.inner.server_streaming(req, path, codec).await
3236        }
3237        /// EtcdAlarmList lists etcd alarms for the current node.
3238        /// This method is available only on control plane nodes (which run etcd).
3239        pub async fn etcd_alarm_list(
3240            &mut self,
3241            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3242        ) -> std::result::Result<
3243            tonic::Response<super::EtcdAlarmListResponse>,
3244            tonic::Status,
3245        > {
3246            self.inner
3247                .ready()
3248                .await
3249                .map_err(|e| {
3250                    tonic::Status::unknown(
3251                        format!("Service was not ready: {}", e.into()),
3252                    )
3253                })?;
3254            let codec = tonic::codec::ProstCodec::default();
3255            let path = http::uri::PathAndQuery::from_static(
3256                "/machine.MachineService/EtcdAlarmList",
3257            );
3258            let mut req = request.into_request();
3259            req.extensions_mut()
3260                .insert(GrpcMethod::new("machine.MachineService", "EtcdAlarmList"));
3261            self.inner.unary(req, path, codec).await
3262        }
3263        /// EtcdAlarmDisarm disarms etcd alarms for the current node.
3264        /// This method is available only on control plane nodes (which run etcd).
3265        pub async fn etcd_alarm_disarm(
3266            &mut self,
3267            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3268        ) -> std::result::Result<
3269            tonic::Response<super::EtcdAlarmDisarmResponse>,
3270            tonic::Status,
3271        > {
3272            self.inner
3273                .ready()
3274                .await
3275                .map_err(|e| {
3276                    tonic::Status::unknown(
3277                        format!("Service was not ready: {}", e.into()),
3278                    )
3279                })?;
3280            let codec = tonic::codec::ProstCodec::default();
3281            let path = http::uri::PathAndQuery::from_static(
3282                "/machine.MachineService/EtcdAlarmDisarm",
3283            );
3284            let mut req = request.into_request();
3285            req.extensions_mut()
3286                .insert(GrpcMethod::new("machine.MachineService", "EtcdAlarmDisarm"));
3287            self.inner.unary(req, path, codec).await
3288        }
3289        /// EtcdDefragment defragments etcd data directory for the current node.
3290        /// Defragmentation is a resource-heavy operation, so it should only run on a specific
3291        /// node.
3292        /// This method is available only on control plane nodes (which run etcd).
3293        pub async fn etcd_defragment(
3294            &mut self,
3295            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3296        ) -> std::result::Result<
3297            tonic::Response<super::EtcdDefragmentResponse>,
3298            tonic::Status,
3299        > {
3300            self.inner
3301                .ready()
3302                .await
3303                .map_err(|e| {
3304                    tonic::Status::unknown(
3305                        format!("Service was not ready: {}", e.into()),
3306                    )
3307                })?;
3308            let codec = tonic::codec::ProstCodec::default();
3309            let path = http::uri::PathAndQuery::from_static(
3310                "/machine.MachineService/EtcdDefragment",
3311            );
3312            let mut req = request.into_request();
3313            req.extensions_mut()
3314                .insert(GrpcMethod::new("machine.MachineService", "EtcdDefragment"));
3315            self.inner.unary(req, path, codec).await
3316        }
3317        /// EtcdStatus returns etcd status for the current member.
3318        /// This method is available only on control plane nodes (which run etcd).
3319        pub async fn etcd_status(
3320            &mut self,
3321            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3322        ) -> std::result::Result<
3323            tonic::Response<super::EtcdStatusResponse>,
3324            tonic::Status,
3325        > {
3326            self.inner
3327                .ready()
3328                .await
3329                .map_err(|e| {
3330                    tonic::Status::unknown(
3331                        format!("Service was not ready: {}", e.into()),
3332                    )
3333                })?;
3334            let codec = tonic::codec::ProstCodec::default();
3335            let path = http::uri::PathAndQuery::from_static(
3336                "/machine.MachineService/EtcdStatus",
3337            );
3338            let mut req = request.into_request();
3339            req.extensions_mut()
3340                .insert(GrpcMethod::new("machine.MachineService", "EtcdStatus"));
3341            self.inner.unary(req, path, codec).await
3342        }
3343        pub async fn generate_configuration(
3344            &mut self,
3345            request: impl tonic::IntoRequest<super::GenerateConfigurationRequest>,
3346        ) -> std::result::Result<
3347            tonic::Response<super::GenerateConfigurationResponse>,
3348            tonic::Status,
3349        > {
3350            self.inner
3351                .ready()
3352                .await
3353                .map_err(|e| {
3354                    tonic::Status::unknown(
3355                        format!("Service was not ready: {}", e.into()),
3356                    )
3357                })?;
3358            let codec = tonic::codec::ProstCodec::default();
3359            let path = http::uri::PathAndQuery::from_static(
3360                "/machine.MachineService/GenerateConfiguration",
3361            );
3362            let mut req = request.into_request();
3363            req.extensions_mut()
3364                .insert(
3365                    GrpcMethod::new("machine.MachineService", "GenerateConfiguration"),
3366                );
3367            self.inner.unary(req, path, codec).await
3368        }
3369        pub async fn hostname(
3370            &mut self,
3371            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3372        ) -> std::result::Result<
3373            tonic::Response<super::HostnameResponse>,
3374            tonic::Status,
3375        > {
3376            self.inner
3377                .ready()
3378                .await
3379                .map_err(|e| {
3380                    tonic::Status::unknown(
3381                        format!("Service was not ready: {}", e.into()),
3382                    )
3383                })?;
3384            let codec = tonic::codec::ProstCodec::default();
3385            let path = http::uri::PathAndQuery::from_static(
3386                "/machine.MachineService/Hostname",
3387            );
3388            let mut req = request.into_request();
3389            req.extensions_mut()
3390                .insert(GrpcMethod::new("machine.MachineService", "Hostname"));
3391            self.inner.unary(req, path, codec).await
3392        }
3393        pub async fn kubeconfig(
3394            &mut self,
3395            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3396        ) -> std::result::Result<
3397            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
3398            tonic::Status,
3399        > {
3400            self.inner
3401                .ready()
3402                .await
3403                .map_err(|e| {
3404                    tonic::Status::unknown(
3405                        format!("Service was not ready: {}", e.into()),
3406                    )
3407                })?;
3408            let codec = tonic::codec::ProstCodec::default();
3409            let path = http::uri::PathAndQuery::from_static(
3410                "/machine.MachineService/Kubeconfig",
3411            );
3412            let mut req = request.into_request();
3413            req.extensions_mut()
3414                .insert(GrpcMethod::new("machine.MachineService", "Kubeconfig"));
3415            self.inner.server_streaming(req, path, codec).await
3416        }
3417        pub async fn list(
3418            &mut self,
3419            request: impl tonic::IntoRequest<super::ListRequest>,
3420        ) -> std::result::Result<
3421            tonic::Response<tonic::codec::Streaming<super::FileInfo>>,
3422            tonic::Status,
3423        > {
3424            self.inner
3425                .ready()
3426                .await
3427                .map_err(|e| {
3428                    tonic::Status::unknown(
3429                        format!("Service was not ready: {}", e.into()),
3430                    )
3431                })?;
3432            let codec = tonic::codec::ProstCodec::default();
3433            let path = http::uri::PathAndQuery::from_static(
3434                "/machine.MachineService/List",
3435            );
3436            let mut req = request.into_request();
3437            req.extensions_mut()
3438                .insert(GrpcMethod::new("machine.MachineService", "List"));
3439            self.inner.server_streaming(req, path, codec).await
3440        }
3441        pub async fn disk_usage(
3442            &mut self,
3443            request: impl tonic::IntoRequest<super::DiskUsageRequest>,
3444        ) -> std::result::Result<
3445            tonic::Response<tonic::codec::Streaming<super::DiskUsageInfo>>,
3446            tonic::Status,
3447        > {
3448            self.inner
3449                .ready()
3450                .await
3451                .map_err(|e| {
3452                    tonic::Status::unknown(
3453                        format!("Service was not ready: {}", e.into()),
3454                    )
3455                })?;
3456            let codec = tonic::codec::ProstCodec::default();
3457            let path = http::uri::PathAndQuery::from_static(
3458                "/machine.MachineService/DiskUsage",
3459            );
3460            let mut req = request.into_request();
3461            req.extensions_mut()
3462                .insert(GrpcMethod::new("machine.MachineService", "DiskUsage"));
3463            self.inner.server_streaming(req, path, codec).await
3464        }
3465        pub async fn load_avg(
3466            &mut self,
3467            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3468        ) -> std::result::Result<
3469            tonic::Response<super::LoadAvgResponse>,
3470            tonic::Status,
3471        > {
3472            self.inner
3473                .ready()
3474                .await
3475                .map_err(|e| {
3476                    tonic::Status::unknown(
3477                        format!("Service was not ready: {}", e.into()),
3478                    )
3479                })?;
3480            let codec = tonic::codec::ProstCodec::default();
3481            let path = http::uri::PathAndQuery::from_static(
3482                "/machine.MachineService/LoadAvg",
3483            );
3484            let mut req = request.into_request();
3485            req.extensions_mut()
3486                .insert(GrpcMethod::new("machine.MachineService", "LoadAvg"));
3487            self.inner.unary(req, path, codec).await
3488        }
3489        pub async fn logs(
3490            &mut self,
3491            request: impl tonic::IntoRequest<super::LogsRequest>,
3492        ) -> std::result::Result<
3493            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
3494            tonic::Status,
3495        > {
3496            self.inner
3497                .ready()
3498                .await
3499                .map_err(|e| {
3500                    tonic::Status::unknown(
3501                        format!("Service was not ready: {}", e.into()),
3502                    )
3503                })?;
3504            let codec = tonic::codec::ProstCodec::default();
3505            let path = http::uri::PathAndQuery::from_static(
3506                "/machine.MachineService/Logs",
3507            );
3508            let mut req = request.into_request();
3509            req.extensions_mut()
3510                .insert(GrpcMethod::new("machine.MachineService", "Logs"));
3511            self.inner.server_streaming(req, path, codec).await
3512        }
3513        pub async fn logs_containers(
3514            &mut self,
3515            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3516        ) -> std::result::Result<
3517            tonic::Response<super::LogsContainersResponse>,
3518            tonic::Status,
3519        > {
3520            self.inner
3521                .ready()
3522                .await
3523                .map_err(|e| {
3524                    tonic::Status::unknown(
3525                        format!("Service was not ready: {}", e.into()),
3526                    )
3527                })?;
3528            let codec = tonic::codec::ProstCodec::default();
3529            let path = http::uri::PathAndQuery::from_static(
3530                "/machine.MachineService/LogsContainers",
3531            );
3532            let mut req = request.into_request();
3533            req.extensions_mut()
3534                .insert(GrpcMethod::new("machine.MachineService", "LogsContainers"));
3535            self.inner.unary(req, path, codec).await
3536        }
3537        pub async fn memory(
3538            &mut self,
3539            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3540        ) -> std::result::Result<tonic::Response<super::MemoryResponse>, tonic::Status> {
3541            self.inner
3542                .ready()
3543                .await
3544                .map_err(|e| {
3545                    tonic::Status::unknown(
3546                        format!("Service was not ready: {}", e.into()),
3547                    )
3548                })?;
3549            let codec = tonic::codec::ProstCodec::default();
3550            let path = http::uri::PathAndQuery::from_static(
3551                "/machine.MachineService/Memory",
3552            );
3553            let mut req = request.into_request();
3554            req.extensions_mut()
3555                .insert(GrpcMethod::new("machine.MachineService", "Memory"));
3556            self.inner.unary(req, path, codec).await
3557        }
3558        pub async fn mounts(
3559            &mut self,
3560            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3561        ) -> std::result::Result<tonic::Response<super::MountsResponse>, tonic::Status> {
3562            self.inner
3563                .ready()
3564                .await
3565                .map_err(|e| {
3566                    tonic::Status::unknown(
3567                        format!("Service was not ready: {}", e.into()),
3568                    )
3569                })?;
3570            let codec = tonic::codec::ProstCodec::default();
3571            let path = http::uri::PathAndQuery::from_static(
3572                "/machine.MachineService/Mounts",
3573            );
3574            let mut req = request.into_request();
3575            req.extensions_mut()
3576                .insert(GrpcMethod::new("machine.MachineService", "Mounts"));
3577            self.inner.unary(req, path, codec).await
3578        }
3579        pub async fn network_device_stats(
3580            &mut self,
3581            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3582        ) -> std::result::Result<
3583            tonic::Response<super::NetworkDeviceStatsResponse>,
3584            tonic::Status,
3585        > {
3586            self.inner
3587                .ready()
3588                .await
3589                .map_err(|e| {
3590                    tonic::Status::unknown(
3591                        format!("Service was not ready: {}", e.into()),
3592                    )
3593                })?;
3594            let codec = tonic::codec::ProstCodec::default();
3595            let path = http::uri::PathAndQuery::from_static(
3596                "/machine.MachineService/NetworkDeviceStats",
3597            );
3598            let mut req = request.into_request();
3599            req.extensions_mut()
3600                .insert(GrpcMethod::new("machine.MachineService", "NetworkDeviceStats"));
3601            self.inner.unary(req, path, codec).await
3602        }
3603        pub async fn processes(
3604            &mut self,
3605            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3606        ) -> std::result::Result<
3607            tonic::Response<super::ProcessesResponse>,
3608            tonic::Status,
3609        > {
3610            self.inner
3611                .ready()
3612                .await
3613                .map_err(|e| {
3614                    tonic::Status::unknown(
3615                        format!("Service was not ready: {}", e.into()),
3616                    )
3617                })?;
3618            let codec = tonic::codec::ProstCodec::default();
3619            let path = http::uri::PathAndQuery::from_static(
3620                "/machine.MachineService/Processes",
3621            );
3622            let mut req = request.into_request();
3623            req.extensions_mut()
3624                .insert(GrpcMethod::new("machine.MachineService", "Processes"));
3625            self.inner.unary(req, path, codec).await
3626        }
3627        pub async fn read(
3628            &mut self,
3629            request: impl tonic::IntoRequest<super::ReadRequest>,
3630        ) -> std::result::Result<
3631            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
3632            tonic::Status,
3633        > {
3634            self.inner
3635                .ready()
3636                .await
3637                .map_err(|e| {
3638                    tonic::Status::unknown(
3639                        format!("Service was not ready: {}", e.into()),
3640                    )
3641                })?;
3642            let codec = tonic::codec::ProstCodec::default();
3643            let path = http::uri::PathAndQuery::from_static(
3644                "/machine.MachineService/Read",
3645            );
3646            let mut req = request.into_request();
3647            req.extensions_mut()
3648                .insert(GrpcMethod::new("machine.MachineService", "Read"));
3649            self.inner.server_streaming(req, path, codec).await
3650        }
3651        pub async fn reboot(
3652            &mut self,
3653            request: impl tonic::IntoRequest<super::RebootRequest>,
3654        ) -> std::result::Result<tonic::Response<super::RebootResponse>, tonic::Status> {
3655            self.inner
3656                .ready()
3657                .await
3658                .map_err(|e| {
3659                    tonic::Status::unknown(
3660                        format!("Service was not ready: {}", e.into()),
3661                    )
3662                })?;
3663            let codec = tonic::codec::ProstCodec::default();
3664            let path = http::uri::PathAndQuery::from_static(
3665                "/machine.MachineService/Reboot",
3666            );
3667            let mut req = request.into_request();
3668            req.extensions_mut()
3669                .insert(GrpcMethod::new("machine.MachineService", "Reboot"));
3670            self.inner.unary(req, path, codec).await
3671        }
3672        pub async fn restart(
3673            &mut self,
3674            request: impl tonic::IntoRequest<super::RestartRequest>,
3675        ) -> std::result::Result<
3676            tonic::Response<super::RestartResponse>,
3677            tonic::Status,
3678        > {
3679            self.inner
3680                .ready()
3681                .await
3682                .map_err(|e| {
3683                    tonic::Status::unknown(
3684                        format!("Service was not ready: {}", e.into()),
3685                    )
3686                })?;
3687            let codec = tonic::codec::ProstCodec::default();
3688            let path = http::uri::PathAndQuery::from_static(
3689                "/machine.MachineService/Restart",
3690            );
3691            let mut req = request.into_request();
3692            req.extensions_mut()
3693                .insert(GrpcMethod::new("machine.MachineService", "Restart"));
3694            self.inner.unary(req, path, codec).await
3695        }
3696        pub async fn rollback(
3697            &mut self,
3698            request: impl tonic::IntoRequest<super::RollbackRequest>,
3699        ) -> std::result::Result<
3700            tonic::Response<super::RollbackResponse>,
3701            tonic::Status,
3702        > {
3703            self.inner
3704                .ready()
3705                .await
3706                .map_err(|e| {
3707                    tonic::Status::unknown(
3708                        format!("Service was not ready: {}", e.into()),
3709                    )
3710                })?;
3711            let codec = tonic::codec::ProstCodec::default();
3712            let path = http::uri::PathAndQuery::from_static(
3713                "/machine.MachineService/Rollback",
3714            );
3715            let mut req = request.into_request();
3716            req.extensions_mut()
3717                .insert(GrpcMethod::new("machine.MachineService", "Rollback"));
3718            self.inner.unary(req, path, codec).await
3719        }
3720        pub async fn reset(
3721            &mut self,
3722            request: impl tonic::IntoRequest<super::ResetRequest>,
3723        ) -> std::result::Result<tonic::Response<super::ResetResponse>, tonic::Status> {
3724            self.inner
3725                .ready()
3726                .await
3727                .map_err(|e| {
3728                    tonic::Status::unknown(
3729                        format!("Service was not ready: {}", e.into()),
3730                    )
3731                })?;
3732            let codec = tonic::codec::ProstCodec::default();
3733            let path = http::uri::PathAndQuery::from_static(
3734                "/machine.MachineService/Reset",
3735            );
3736            let mut req = request.into_request();
3737            req.extensions_mut()
3738                .insert(GrpcMethod::new("machine.MachineService", "Reset"));
3739            self.inner.unary(req, path, codec).await
3740        }
3741        pub async fn service_list(
3742            &mut self,
3743            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3744        ) -> std::result::Result<
3745            tonic::Response<super::ServiceListResponse>,
3746            tonic::Status,
3747        > {
3748            self.inner
3749                .ready()
3750                .await
3751                .map_err(|e| {
3752                    tonic::Status::unknown(
3753                        format!("Service was not ready: {}", e.into()),
3754                    )
3755                })?;
3756            let codec = tonic::codec::ProstCodec::default();
3757            let path = http::uri::PathAndQuery::from_static(
3758                "/machine.MachineService/ServiceList",
3759            );
3760            let mut req = request.into_request();
3761            req.extensions_mut()
3762                .insert(GrpcMethod::new("machine.MachineService", "ServiceList"));
3763            self.inner.unary(req, path, codec).await
3764        }
3765        pub async fn service_restart(
3766            &mut self,
3767            request: impl tonic::IntoRequest<super::ServiceRestartRequest>,
3768        ) -> std::result::Result<
3769            tonic::Response<super::ServiceRestartResponse>,
3770            tonic::Status,
3771        > {
3772            self.inner
3773                .ready()
3774                .await
3775                .map_err(|e| {
3776                    tonic::Status::unknown(
3777                        format!("Service was not ready: {}", e.into()),
3778                    )
3779                })?;
3780            let codec = tonic::codec::ProstCodec::default();
3781            let path = http::uri::PathAndQuery::from_static(
3782                "/machine.MachineService/ServiceRestart",
3783            );
3784            let mut req = request.into_request();
3785            req.extensions_mut()
3786                .insert(GrpcMethod::new("machine.MachineService", "ServiceRestart"));
3787            self.inner.unary(req, path, codec).await
3788        }
3789        pub async fn service_start(
3790            &mut self,
3791            request: impl tonic::IntoRequest<super::ServiceStartRequest>,
3792        ) -> std::result::Result<
3793            tonic::Response<super::ServiceStartResponse>,
3794            tonic::Status,
3795        > {
3796            self.inner
3797                .ready()
3798                .await
3799                .map_err(|e| {
3800                    tonic::Status::unknown(
3801                        format!("Service was not ready: {}", e.into()),
3802                    )
3803                })?;
3804            let codec = tonic::codec::ProstCodec::default();
3805            let path = http::uri::PathAndQuery::from_static(
3806                "/machine.MachineService/ServiceStart",
3807            );
3808            let mut req = request.into_request();
3809            req.extensions_mut()
3810                .insert(GrpcMethod::new("machine.MachineService", "ServiceStart"));
3811            self.inner.unary(req, path, codec).await
3812        }
3813        pub async fn service_stop(
3814            &mut self,
3815            request: impl tonic::IntoRequest<super::ServiceStopRequest>,
3816        ) -> std::result::Result<
3817            tonic::Response<super::ServiceStopResponse>,
3818            tonic::Status,
3819        > {
3820            self.inner
3821                .ready()
3822                .await
3823                .map_err(|e| {
3824                    tonic::Status::unknown(
3825                        format!("Service was not ready: {}", e.into()),
3826                    )
3827                })?;
3828            let codec = tonic::codec::ProstCodec::default();
3829            let path = http::uri::PathAndQuery::from_static(
3830                "/machine.MachineService/ServiceStop",
3831            );
3832            let mut req = request.into_request();
3833            req.extensions_mut()
3834                .insert(GrpcMethod::new("machine.MachineService", "ServiceStop"));
3835            self.inner.unary(req, path, codec).await
3836        }
3837        pub async fn shutdown(
3838            &mut self,
3839            request: impl tonic::IntoRequest<super::ShutdownRequest>,
3840        ) -> std::result::Result<
3841            tonic::Response<super::ShutdownResponse>,
3842            tonic::Status,
3843        > {
3844            self.inner
3845                .ready()
3846                .await
3847                .map_err(|e| {
3848                    tonic::Status::unknown(
3849                        format!("Service was not ready: {}", e.into()),
3850                    )
3851                })?;
3852            let codec = tonic::codec::ProstCodec::default();
3853            let path = http::uri::PathAndQuery::from_static(
3854                "/machine.MachineService/Shutdown",
3855            );
3856            let mut req = request.into_request();
3857            req.extensions_mut()
3858                .insert(GrpcMethod::new("machine.MachineService", "Shutdown"));
3859            self.inner.unary(req, path, codec).await
3860        }
3861        pub async fn stats(
3862            &mut self,
3863            request: impl tonic::IntoRequest<super::StatsRequest>,
3864        ) -> std::result::Result<tonic::Response<super::StatsResponse>, tonic::Status> {
3865            self.inner
3866                .ready()
3867                .await
3868                .map_err(|e| {
3869                    tonic::Status::unknown(
3870                        format!("Service was not ready: {}", e.into()),
3871                    )
3872                })?;
3873            let codec = tonic::codec::ProstCodec::default();
3874            let path = http::uri::PathAndQuery::from_static(
3875                "/machine.MachineService/Stats",
3876            );
3877            let mut req = request.into_request();
3878            req.extensions_mut()
3879                .insert(GrpcMethod::new("machine.MachineService", "Stats"));
3880            self.inner.unary(req, path, codec).await
3881        }
3882        pub async fn system_stat(
3883            &mut self,
3884            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3885        ) -> std::result::Result<
3886            tonic::Response<super::SystemStatResponse>,
3887            tonic::Status,
3888        > {
3889            self.inner
3890                .ready()
3891                .await
3892                .map_err(|e| {
3893                    tonic::Status::unknown(
3894                        format!("Service was not ready: {}", e.into()),
3895                    )
3896                })?;
3897            let codec = tonic::codec::ProstCodec::default();
3898            let path = http::uri::PathAndQuery::from_static(
3899                "/machine.MachineService/SystemStat",
3900            );
3901            let mut req = request.into_request();
3902            req.extensions_mut()
3903                .insert(GrpcMethod::new("machine.MachineService", "SystemStat"));
3904            self.inner.unary(req, path, codec).await
3905        }
3906        pub async fn upgrade(
3907            &mut self,
3908            request: impl tonic::IntoRequest<super::UpgradeRequest>,
3909        ) -> std::result::Result<
3910            tonic::Response<super::UpgradeResponse>,
3911            tonic::Status,
3912        > {
3913            self.inner
3914                .ready()
3915                .await
3916                .map_err(|e| {
3917                    tonic::Status::unknown(
3918                        format!("Service was not ready: {}", e.into()),
3919                    )
3920                })?;
3921            let codec = tonic::codec::ProstCodec::default();
3922            let path = http::uri::PathAndQuery::from_static(
3923                "/machine.MachineService/Upgrade",
3924            );
3925            let mut req = request.into_request();
3926            req.extensions_mut()
3927                .insert(GrpcMethod::new("machine.MachineService", "Upgrade"));
3928            self.inner.unary(req, path, codec).await
3929        }
3930        pub async fn version(
3931            &mut self,
3932            request: impl tonic::IntoRequest<super::super::google::protobuf::Empty>,
3933        ) -> std::result::Result<
3934            tonic::Response<super::VersionResponse>,
3935            tonic::Status,
3936        > {
3937            self.inner
3938                .ready()
3939                .await
3940                .map_err(|e| {
3941                    tonic::Status::unknown(
3942                        format!("Service was not ready: {}", e.into()),
3943                    )
3944                })?;
3945            let codec = tonic::codec::ProstCodec::default();
3946            let path = http::uri::PathAndQuery::from_static(
3947                "/machine.MachineService/Version",
3948            );
3949            let mut req = request.into_request();
3950            req.extensions_mut()
3951                .insert(GrpcMethod::new("machine.MachineService", "Version"));
3952            self.inner.unary(req, path, codec).await
3953        }
3954        /// GenerateClientConfiguration generates talosctl client configuration (talosconfig).
3955        pub async fn generate_client_configuration(
3956            &mut self,
3957            request: impl tonic::IntoRequest<super::GenerateClientConfigurationRequest>,
3958        ) -> std::result::Result<
3959            tonic::Response<super::GenerateClientConfigurationResponse>,
3960            tonic::Status,
3961        > {
3962            self.inner
3963                .ready()
3964                .await
3965                .map_err(|e| {
3966                    tonic::Status::unknown(
3967                        format!("Service was not ready: {}", e.into()),
3968                    )
3969                })?;
3970            let codec = tonic::codec::ProstCodec::default();
3971            let path = http::uri::PathAndQuery::from_static(
3972                "/machine.MachineService/GenerateClientConfiguration",
3973            );
3974            let mut req = request.into_request();
3975            req.extensions_mut()
3976                .insert(
3977                    GrpcMethod::new(
3978                        "machine.MachineService",
3979                        "GenerateClientConfiguration",
3980                    ),
3981                );
3982            self.inner.unary(req, path, codec).await
3983        }
3984        /// PacketCapture performs packet capture and streams back pcap file.
3985        pub async fn packet_capture(
3986            &mut self,
3987            request: impl tonic::IntoRequest<super::PacketCaptureRequest>,
3988        ) -> std::result::Result<
3989            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
3990            tonic::Status,
3991        > {
3992            self.inner
3993                .ready()
3994                .await
3995                .map_err(|e| {
3996                    tonic::Status::unknown(
3997                        format!("Service was not ready: {}", e.into()),
3998                    )
3999                })?;
4000            let codec = tonic::codec::ProstCodec::default();
4001            let path = http::uri::PathAndQuery::from_static(
4002                "/machine.MachineService/PacketCapture",
4003            );
4004            let mut req = request.into_request();
4005            req.extensions_mut()
4006                .insert(GrpcMethod::new("machine.MachineService", "PacketCapture"));
4007            self.inner.server_streaming(req, path, codec).await
4008        }
4009        /// Netstat provides information about network connections.
4010        pub async fn netstat(
4011            &mut self,
4012            request: impl tonic::IntoRequest<super::NetstatRequest>,
4013        ) -> std::result::Result<
4014            tonic::Response<super::NetstatResponse>,
4015            tonic::Status,
4016        > {
4017            self.inner
4018                .ready()
4019                .await
4020                .map_err(|e| {
4021                    tonic::Status::unknown(
4022                        format!("Service was not ready: {}", e.into()),
4023                    )
4024                })?;
4025            let codec = tonic::codec::ProstCodec::default();
4026            let path = http::uri::PathAndQuery::from_static(
4027                "/machine.MachineService/Netstat",
4028            );
4029            let mut req = request.into_request();
4030            req.extensions_mut()
4031                .insert(GrpcMethod::new("machine.MachineService", "Netstat"));
4032            self.inner.unary(req, path, codec).await
4033        }
4034        /// MetaWrite writes a META key-value pair.
4035        pub async fn meta_write(
4036            &mut self,
4037            request: impl tonic::IntoRequest<super::MetaWriteRequest>,
4038        ) -> std::result::Result<
4039            tonic::Response<super::MetaWriteResponse>,
4040            tonic::Status,
4041        > {
4042            self.inner
4043                .ready()
4044                .await
4045                .map_err(|e| {
4046                    tonic::Status::unknown(
4047                        format!("Service was not ready: {}", e.into()),
4048                    )
4049                })?;
4050            let codec = tonic::codec::ProstCodec::default();
4051            let path = http::uri::PathAndQuery::from_static(
4052                "/machine.MachineService/MetaWrite",
4053            );
4054            let mut req = request.into_request();
4055            req.extensions_mut()
4056                .insert(GrpcMethod::new("machine.MachineService", "MetaWrite"));
4057            self.inner.unary(req, path, codec).await
4058        }
4059        /// MetaDelete deletes a META key.
4060        pub async fn meta_delete(
4061            &mut self,
4062            request: impl tonic::IntoRequest<super::MetaDeleteRequest>,
4063        ) -> std::result::Result<
4064            tonic::Response<super::MetaDeleteResponse>,
4065            tonic::Status,
4066        > {
4067            self.inner
4068                .ready()
4069                .await
4070                .map_err(|e| {
4071                    tonic::Status::unknown(
4072                        format!("Service was not ready: {}", e.into()),
4073                    )
4074                })?;
4075            let codec = tonic::codec::ProstCodec::default();
4076            let path = http::uri::PathAndQuery::from_static(
4077                "/machine.MachineService/MetaDelete",
4078            );
4079            let mut req = request.into_request();
4080            req.extensions_mut()
4081                .insert(GrpcMethod::new("machine.MachineService", "MetaDelete"));
4082            self.inner.unary(req, path, codec).await
4083        }
4084        /// ImageList lists images in the CRI.
4085        pub async fn image_list(
4086            &mut self,
4087            request: impl tonic::IntoRequest<super::ImageListRequest>,
4088        ) -> std::result::Result<
4089            tonic::Response<tonic::codec::Streaming<super::ImageListResponse>>,
4090            tonic::Status,
4091        > {
4092            self.inner
4093                .ready()
4094                .await
4095                .map_err(|e| {
4096                    tonic::Status::unknown(
4097                        format!("Service was not ready: {}", e.into()),
4098                    )
4099                })?;
4100            let codec = tonic::codec::ProstCodec::default();
4101            let path = http::uri::PathAndQuery::from_static(
4102                "/machine.MachineService/ImageList",
4103            );
4104            let mut req = request.into_request();
4105            req.extensions_mut()
4106                .insert(GrpcMethod::new("machine.MachineService", "ImageList"));
4107            self.inner.server_streaming(req, path, codec).await
4108        }
4109        /// ImagePull pulls an image into the CRI.
4110        pub async fn image_pull(
4111            &mut self,
4112            request: impl tonic::IntoRequest<super::ImagePullRequest>,
4113        ) -> std::result::Result<
4114            tonic::Response<super::ImagePullResponse>,
4115            tonic::Status,
4116        > {
4117            self.inner
4118                .ready()
4119                .await
4120                .map_err(|e| {
4121                    tonic::Status::unknown(
4122                        format!("Service was not ready: {}", e.into()),
4123                    )
4124                })?;
4125            let codec = tonic::codec::ProstCodec::default();
4126            let path = http::uri::PathAndQuery::from_static(
4127                "/machine.MachineService/ImagePull",
4128            );
4129            let mut req = request.into_request();
4130            req.extensions_mut()
4131                .insert(GrpcMethod::new("machine.MachineService", "ImagePull"));
4132            self.inner.unary(req, path, codec).await
4133        }
4134    }
4135}