proxmox_api/generated/nodes/node/disks/
zfs.rs

1pub mod name;
2pub struct ZfsClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> ZfsClient<T>
7where
8    T: crate::client::Client,
9{
10    pub fn new(client: T, parent_path: &str) -> Self {
11        Self {
12            client,
13            path: format!("{}{}", parent_path, "/zfs"),
14        }
15    }
16}
17impl<T> ZfsClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "List Zpools."]
22    pub fn get(&self) -> Result<Vec<GetOutputItems>, T::Error> {
23        let path = self.path.to_string();
24        self.client.get(&path, &())
25    }
26}
27impl<T> ZfsClient<T>
28where
29    T: crate::client::Client,
30{
31    #[doc = "Create a ZFS pool."]
32    pub fn post(&self, params: PostParams) -> Result<String, T::Error> {
33        let path = self.path.to_string();
34        self.client.post(&path, &params)
35    }
36}
37impl GetOutputItems {
38    pub fn new(
39        alloc: u64,
40        dedup: f64,
41        frag: u64,
42        free: u64,
43        health: String,
44        name: String,
45        size: u64,
46    ) -> Self {
47        Self {
48            alloc,
49            dedup,
50            frag,
51            free,
52            health,
53            name,
54            size,
55            additional_properties: Default::default(),
56        }
57    }
58}
59#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
60pub struct GetOutputItems {
61    #[serde(
62        serialize_with = "crate::types::serialize_int",
63        deserialize_with = "crate::types::deserialize_int"
64    )]
65    #[doc = ""]
66    pub alloc: u64,
67    #[serde(
68        serialize_with = "crate::types::serialize_number",
69        deserialize_with = "crate::types::deserialize_number"
70    )]
71    #[doc = ""]
72    pub dedup: f64,
73    #[serde(
74        serialize_with = "crate::types::serialize_int",
75        deserialize_with = "crate::types::deserialize_int"
76    )]
77    #[doc = ""]
78    pub frag: u64,
79    #[serde(
80        serialize_with = "crate::types::serialize_int",
81        deserialize_with = "crate::types::deserialize_int"
82    )]
83    #[doc = ""]
84    pub free: u64,
85    #[doc = ""]
86    pub health: String,
87    #[doc = ""]
88    pub name: String,
89    #[serde(
90        serialize_with = "crate::types::serialize_int",
91        deserialize_with = "crate::types::deserialize_int"
92    )]
93    #[doc = ""]
94    pub size: u64,
95    #[serde(
96        flatten,
97        default,
98        skip_serializing_if = "::std::collections::HashMap::is_empty"
99    )]
100    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
101}
102impl PostParams {
103    pub fn new(devices: String, name: String, raidlevel: Raidlevel) -> Self {
104        Self {
105            devices,
106            name,
107            raidlevel,
108            add_storage: Default::default(),
109            ashift: Default::default(),
110            compression: Default::default(),
111            draid_config: Default::default(),
112            additional_properties: Default::default(),
113        }
114    }
115}
116#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
117pub struct PostParams {
118    #[serde(
119        serialize_with = "crate::types::serialize_bool_optional",
120        deserialize_with = "crate::types::deserialize_bool_optional"
121    )]
122    #[serde(skip_serializing_if = "Option::is_none", default)]
123    #[doc = "Configure storage using the zpool."]
124    pub add_storage: Option<bool>,
125    #[serde(
126        serialize_with = "crate::types::serialize_int_optional",
127        deserialize_with = "crate::types::deserialize_int_optional"
128    )]
129    #[serde(skip_serializing_if = "Option::is_none", default)]
130    #[doc = "Pool sector size exponent."]
131    pub ashift: Option<u64>,
132    #[serde(skip_serializing_if = "Option::is_none", default)]
133    #[doc = "The compression algorithm to use."]
134    pub compression: Option<Compression>,
135    #[doc = "The block devices you want to create the zpool on."]
136    pub devices: String,
137    #[serde(rename = "draid-config")]
138    #[serde(skip_serializing_if = "Option::is_none", default)]
139    pub draid_config: Option<String>,
140    #[doc = "The storage identifier."]
141    pub name: String,
142    #[doc = "The RAID level to use."]
143    pub raidlevel: Raidlevel,
144    #[serde(
145        flatten,
146        default,
147        skip_serializing_if = "::std::collections::HashMap::is_empty"
148    )]
149    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
150}
151#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
152pub enum Compression {
153    #[serde(rename = "gzip")]
154    Gzip,
155    #[serde(rename = "lz4")]
156    Lz4,
157    #[serde(rename = "lzjb")]
158    Lzjb,
159    #[serde(rename = "off")]
160    Off,
161    #[serde(rename = "on")]
162    On,
163    #[serde(rename = "zle")]
164    Zle,
165    #[serde(rename = "zstd")]
166    Zstd,
167}
168impl Default for Compression {
169    fn default() -> Self {
170        Self::On
171    }
172}
173#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
174pub enum Raidlevel {
175    #[serde(rename = "draid")]
176    Draid,
177    #[serde(rename = "draid2")]
178    Draid2,
179    #[serde(rename = "draid3")]
180    Draid3,
181    #[serde(rename = "mirror")]
182    Mirror,
183    #[serde(rename = "raid10")]
184    Raid10,
185    #[serde(rename = "raidz")]
186    Raidz,
187    #[serde(rename = "raidz2")]
188    Raidz2,
189    #[serde(rename = "raidz3")]
190    Raidz3,
191    #[serde(rename = "single")]
192    Single,
193}
194impl<T> ZfsClient<T>
195where
196    T: crate::client::Client,
197{
198    pub fn name(&self, name: &str) -> name::NameClient<T> {
199        name::NameClient::<T>::new(self.client.clone(), &self.path, name)
200    }
201}