proxmox_api/generated/nodes/node/disks/
zfs.rs1pub 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, ¶ms)
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}