1pub mod poolid;
2pub struct PoolsClient<T> {
3 client: T,
4 path: String,
5}
6impl<T> PoolsClient<T>
7where
8 T: crate::client::Client,
9{
10 pub fn new(client: T) -> Self {
11 Self {
12 client,
13 path: "/pools".to_string(),
14 }
15 }
16}
17impl<T> PoolsClient<T>
18where
19 T: crate::client::Client,
20{
21 #[doc = "Delete pool."]
22 pub fn delete(&self, params: DeleteParams) -> Result<(), T::Error> {
23 let path = self.path.to_string();
24 self.client.delete(&path, ¶ms)
25 }
26}
27impl<T> PoolsClient<T>
28where
29 T: crate::client::Client,
30{
31 #[doc = "List pools or get pool configuration."]
32 pub fn get(&self, params: GetParams) -> Result<Vec<GetOutputItems>, T::Error> {
33 let path = self.path.to_string();
34 self.client.get(&path, ¶ms)
35 }
36}
37impl<T> PoolsClient<T>
38where
39 T: crate::client::Client,
40{
41 #[doc = "Create new pool."]
42 pub fn post(&self, params: PostParams) -> Result<(), T::Error> {
43 let path = self.path.to_string();
44 self.client.post(&path, ¶ms)
45 }
46}
47impl<T> PoolsClient<T>
48where
49 T: crate::client::Client,
50{
51 #[doc = "Update pool."]
52 pub fn put(&self, params: PutParams) -> Result<(), T::Error> {
53 let path = self.path.to_string();
54 self.client.put(&path, ¶ms)
55 }
56}
57impl DeleteParams {
58 pub fn new(poolid: String) -> Self {
59 Self {
60 poolid,
61 additional_properties: Default::default(),
62 }
63 }
64}
65#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
66pub struct DeleteParams {
67 pub poolid: String,
68 #[serde(
69 flatten,
70 default,
71 skip_serializing_if = "::std::collections::HashMap::is_empty"
72 )]
73 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
74}
75impl GetOutputItems {
76 pub fn new(poolid: String) -> Self {
77 Self {
78 poolid,
79 comment: Default::default(),
80 members: Default::default(),
81 additional_properties: Default::default(),
82 }
83 }
84}
85#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
86pub struct GetOutputItems {
87 #[serde(skip_serializing_if = "Option::is_none", default)]
88 pub comment: Option<String>,
89 #[serde(skip_serializing_if = "::std::vec::Vec::is_empty", default)]
90 pub members: Vec<MembersGetOutputItemsMembersItems>,
91 pub poolid: String,
92 #[serde(
93 flatten,
94 default,
95 skip_serializing_if = "::std::collections::HashMap::is_empty"
96 )]
97 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
98}
99#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
100pub struct GetParams {
101 #[serde(skip_serializing_if = "Option::is_none", default)]
102 pub poolid: Option<String>,
103 #[serde(rename = "type")]
104 #[serde(skip_serializing_if = "Option::is_none", default)]
105 pub ty: Option<Type>,
106 #[serde(
107 flatten,
108 default,
109 skip_serializing_if = "::std::collections::HashMap::is_empty"
110 )]
111 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
112}
113impl MembersGetOutputItemsMembersItems {
114 pub fn new(id: String, node: String, ty: Type) -> Self {
115 Self {
116 id,
117 node,
118 ty,
119 storage: Default::default(),
120 vmid: Default::default(),
121 additional_properties: Default::default(),
122 }
123 }
124}
125#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
126pub struct MembersGetOutputItemsMembersItems {
127 pub id: String,
128 pub node: String,
129 #[serde(skip_serializing_if = "Option::is_none", default)]
130 pub storage: Option<String>,
131 #[serde(rename = "type")]
132 pub ty: Type,
133 #[serde(
134 serialize_with = "crate::types::serialize_int_optional",
135 deserialize_with = "crate::types::deserialize_int_optional"
136 )]
137 #[serde(skip_serializing_if = "Option::is_none", default)]
138 pub vmid: Option<u64>,
139 #[serde(
140 flatten,
141 default,
142 skip_serializing_if = "::std::collections::HashMap::is_empty"
143 )]
144 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
145}
146impl PostParams {
147 pub fn new(poolid: String) -> Self {
148 Self {
149 poolid,
150 comment: Default::default(),
151 additional_properties: Default::default(),
152 }
153 }
154}
155#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
156pub struct PostParams {
157 #[serde(skip_serializing_if = "Option::is_none", default)]
158 pub comment: Option<String>,
159 pub poolid: String,
160 #[serde(
161 flatten,
162 default,
163 skip_serializing_if = "::std::collections::HashMap::is_empty"
164 )]
165 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
166}
167impl PutParams {
168 pub fn new(poolid: String) -> Self {
169 Self {
170 poolid,
171 allow_move: Default::default(),
172 comment: Default::default(),
173 delete: Default::default(),
174 storage: Default::default(),
175 vms: Default::default(),
176 additional_properties: Default::default(),
177 }
178 }
179}
180#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
181pub struct PutParams {
182 #[serde(rename = "allow-move")]
183 #[serde(
184 serialize_with = "crate::types::serialize_bool_optional",
185 deserialize_with = "crate::types::deserialize_bool_optional"
186 )]
187 #[serde(skip_serializing_if = "Option::is_none", default)]
188 #[doc = "Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one."]
189 pub allow_move: Option<bool>,
190 #[serde(skip_serializing_if = "Option::is_none", default)]
191 pub comment: Option<String>,
192 #[serde(
193 serialize_with = "crate::types::serialize_bool_optional",
194 deserialize_with = "crate::types::deserialize_bool_optional"
195 )]
196 #[serde(skip_serializing_if = "Option::is_none", default)]
197 #[doc = "Remove the passed VMIDs and/or storage IDs instead of adding them."]
198 pub delete: Option<bool>,
199 pub poolid: String,
200 #[serde(skip_serializing_if = "Option::is_none", default)]
201 #[doc = "List of storage IDs to add or remove from this pool."]
202 pub storage: Option<String>,
203 #[serde(skip_serializing_if = "Option::is_none", default)]
204 #[doc = "List of guest VMIDs to add or remove from this pool."]
205 pub vms: Option<String>,
206 #[serde(
207 flatten,
208 default,
209 skip_serializing_if = "::std::collections::HashMap::is_empty"
210 )]
211 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
212}
213#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
214pub enum Type {
215 #[serde(rename = "lxc")]
216 Lxc,
217 #[serde(rename = "openvz")]
218 Openvz,
219 #[serde(rename = "qemu")]
220 Qemu,
221 #[serde(rename = "storage")]
222 Storage,
223}
224impl<T> PoolsClient<T>
225where
226 T: crate::client::Client,
227{
228 pub fn poolid(&self, poolid: &str) -> poolid::PoolidClient<T> {
229 poolid::PoolidClient::<T>::new(self.client.clone(), &self.path, poolid)
230 }
231}