proxmox_api/generated/nodes/node/lxc/
vmid.rs

1pub mod clone;
2pub mod config;
3pub mod feature;
4pub mod firewall;
5pub mod interfaces;
6pub mod migrate;
7pub mod move_volume;
8pub mod mtunnel;
9pub mod mtunnelwebsocket;
10pub mod pending;
11pub mod remote_migrate;
12pub mod resize;
13pub mod rrd;
14pub mod rrddata;
15pub mod snapshot;
16pub mod spiceproxy;
17pub mod status;
18pub mod template;
19pub mod termproxy;
20pub mod vncproxy;
21pub mod vncwebsocket;
22pub struct VmidClient<T> {
23    client: T,
24    path: String,
25}
26impl<T> VmidClient<T>
27where
28    T: crate::client::Client,
29{
30    pub fn new(client: T, parent_path: &str, vmid: crate::types::VmId) -> Self {
31        Self {
32            client,
33            path: format!("{}/{}", parent_path, vmid),
34        }
35    }
36}
37impl<T> VmidClient<T>
38where
39    T: crate::client::Client,
40{
41    #[doc = "Destroy the container (also delete all uses files)."]
42    pub fn delete(&self, params: DeleteParams) -> Result<String, T::Error> {
43        let path = self.path.to_string();
44        self.client.delete(&path, &params)
45    }
46}
47impl<T> VmidClient<T>
48where
49    T: crate::client::Client,
50{
51    #[doc = "Directory index"]
52    pub fn get(&self) -> Result<Vec<GetOutputItems>, T::Error> {
53        let path = self.path.to_string();
54        self.client.get(&path, &())
55    }
56}
57#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
58pub struct DeleteParams {
59    #[serde(rename = "destroy-unreferenced-disks")]
60    #[serde(
61        serialize_with = "crate::types::serialize_bool_optional",
62        deserialize_with = "crate::types::deserialize_bool_optional"
63    )]
64    #[serde(skip_serializing_if = "Option::is_none", default)]
65    #[doc = "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config."]
66    pub destroy_unreferenced_disks: Option<bool>,
67    #[serde(
68        serialize_with = "crate::types::serialize_bool_optional",
69        deserialize_with = "crate::types::deserialize_bool_optional"
70    )]
71    #[serde(skip_serializing_if = "Option::is_none", default)]
72    #[doc = "Force destroy, even if running."]
73    pub force: Option<bool>,
74    #[serde(
75        serialize_with = "crate::types::serialize_bool_optional",
76        deserialize_with = "crate::types::deserialize_bool_optional"
77    )]
78    #[serde(skip_serializing_if = "Option::is_none", default)]
79    #[doc = "Remove container from all related configurations. For example, backup jobs, replication jobs or HA. Related ACLs and Firewall entries will *always* be removed."]
80    pub purge: Option<bool>,
81    #[serde(
82        flatten,
83        default,
84        skip_serializing_if = "::std::collections::HashMap::is_empty"
85    )]
86    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
87}
88impl GetOutputItems {
89    pub fn new(subdir: String) -> Self {
90        Self {
91            subdir,
92            additional_properties: Default::default(),
93        }
94    }
95}
96#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
97pub struct GetOutputItems {
98    pub subdir: String,
99    #[serde(
100        flatten,
101        default,
102        skip_serializing_if = "::std::collections::HashMap::is_empty"
103    )]
104    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
105}
106impl<T> VmidClient<T>
107where
108    T: crate::client::Client,
109{
110    pub fn config(&self) -> config::ConfigClient<T> {
111        config::ConfigClient::<T>::new(self.client.clone(), &self.path)
112    }
113}
114impl<T> VmidClient<T>
115where
116    T: crate::client::Client,
117{
118    pub fn status(&self) -> status::StatusClient<T> {
119        status::StatusClient::<T>::new(self.client.clone(), &self.path)
120    }
121}
122impl<T> VmidClient<T>
123where
124    T: crate::client::Client,
125{
126    pub fn snapshot(&self) -> snapshot::SnapshotClient<T> {
127        snapshot::SnapshotClient::<T>::new(self.client.clone(), &self.path)
128    }
129}
130impl<T> VmidClient<T>
131where
132    T: crate::client::Client,
133{
134    pub fn firewall(&self) -> firewall::FirewallClient<T> {
135        firewall::FirewallClient::<T>::new(self.client.clone(), &self.path)
136    }
137}
138impl<T> VmidClient<T>
139where
140    T: crate::client::Client,
141{
142    pub fn rrd(&self) -> rrd::RrdClient<T> {
143        rrd::RrdClient::<T>::new(self.client.clone(), &self.path)
144    }
145}
146impl<T> VmidClient<T>
147where
148    T: crate::client::Client,
149{
150    pub fn rrddata(&self) -> rrddata::RrddataClient<T> {
151        rrddata::RrddataClient::<T>::new(self.client.clone(), &self.path)
152    }
153}
154impl<T> VmidClient<T>
155where
156    T: crate::client::Client,
157{
158    pub fn vncproxy(&self) -> vncproxy::VncproxyClient<T> {
159        vncproxy::VncproxyClient::<T>::new(self.client.clone(), &self.path)
160    }
161}
162impl<T> VmidClient<T>
163where
164    T: crate::client::Client,
165{
166    pub fn termproxy(&self) -> termproxy::TermproxyClient<T> {
167        termproxy::TermproxyClient::<T>::new(self.client.clone(), &self.path)
168    }
169}
170impl<T> VmidClient<T>
171where
172    T: crate::client::Client,
173{
174    pub fn vncwebsocket(&self) -> vncwebsocket::VncwebsocketClient<T> {
175        vncwebsocket::VncwebsocketClient::<T>::new(self.client.clone(), &self.path)
176    }
177}
178impl<T> VmidClient<T>
179where
180    T: crate::client::Client,
181{
182    pub fn spiceproxy(&self) -> spiceproxy::SpiceproxyClient<T> {
183        spiceproxy::SpiceproxyClient::<T>::new(self.client.clone(), &self.path)
184    }
185}
186impl<T> VmidClient<T>
187where
188    T: crate::client::Client,
189{
190    pub fn remote_migrate(&self) -> remote_migrate::RemoteMigrateClient<T> {
191        remote_migrate::RemoteMigrateClient::<T>::new(self.client.clone(), &self.path)
192    }
193}
194impl<T> VmidClient<T>
195where
196    T: crate::client::Client,
197{
198    pub fn migrate(&self) -> migrate::MigrateClient<T> {
199        migrate::MigrateClient::<T>::new(self.client.clone(), &self.path)
200    }
201}
202impl<T> VmidClient<T>
203where
204    T: crate::client::Client,
205{
206    pub fn feature(&self) -> feature::FeatureClient<T> {
207        feature::FeatureClient::<T>::new(self.client.clone(), &self.path)
208    }
209}
210impl<T> VmidClient<T>
211where
212    T: crate::client::Client,
213{
214    pub fn template(&self) -> template::TemplateClient<T> {
215        template::TemplateClient::<T>::new(self.client.clone(), &self.path)
216    }
217}
218impl<T> VmidClient<T>
219where
220    T: crate::client::Client,
221{
222    pub fn clone(&self) -> clone::CloneClient<T> {
223        clone::CloneClient::<T>::new(self.client.clone(), &self.path)
224    }
225}
226impl<T> VmidClient<T>
227where
228    T: crate::client::Client,
229{
230    pub fn resize(&self) -> resize::ResizeClient<T> {
231        resize::ResizeClient::<T>::new(self.client.clone(), &self.path)
232    }
233}
234impl<T> VmidClient<T>
235where
236    T: crate::client::Client,
237{
238    pub fn move_volume(&self) -> move_volume::MoveVolumeClient<T> {
239        move_volume::MoveVolumeClient::<T>::new(self.client.clone(), &self.path)
240    }
241}
242impl<T> VmidClient<T>
243where
244    T: crate::client::Client,
245{
246    pub fn pending(&self) -> pending::PendingClient<T> {
247        pending::PendingClient::<T>::new(self.client.clone(), &self.path)
248    }
249}
250impl<T> VmidClient<T>
251where
252    T: crate::client::Client,
253{
254    pub fn interfaces(&self) -> interfaces::InterfacesClient<T> {
255        interfaces::InterfacesClient::<T>::new(self.client.clone(), &self.path)
256    }
257}
258impl<T> VmidClient<T>
259where
260    T: crate::client::Client,
261{
262    pub fn mtunnel(&self) -> mtunnel::MtunnelClient<T> {
263        mtunnel::MtunnelClient::<T>::new(self.client.clone(), &self.path)
264    }
265}
266impl<T> VmidClient<T>
267where
268    T: crate::client::Client,
269{
270    pub fn mtunnelwebsocket(&self) -> mtunnelwebsocket::MtunnelwebsocketClient<T> {
271        mtunnelwebsocket::MtunnelwebsocketClient::<T>::new(self.client.clone(), &self.path)
272    }
273}