1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum NodesNetworkCreateNetworkError {
22 Status400(models::PveError),
23 Status401(models::PveError),
24 Status403(models::PveError),
25 Status404(models::PveError),
26 Status500(models::PveError),
27 Status501(models::PveError),
28 Status503(models::PveError),
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum NodesNetworkDeleteNetworkError {
36 Status400(models::PveError),
37 Status401(models::PveError),
38 Status403(models::PveError),
39 Status404(models::PveError),
40 Status500(models::PveError),
41 Status501(models::PveError),
42 Status503(models::PveError),
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum NodesNetworkGetNetworkError {
50 Status400(models::PveError),
51 Status401(models::PveError),
52 Status403(models::PveError),
53 Status404(models::PveError),
54 Status500(models::PveError),
55 Status501(models::PveError),
56 Status503(models::PveError),
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum NodesNetworkNetworkConfigError {
64 Status400(models::PveError),
65 Status401(models::PveError),
66 Status403(models::PveError),
67 Status404(models::PveError),
68 Status500(models::PveError),
69 Status501(models::PveError),
70 Status503(models::PveError),
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum NodesNetworkReloadNetworkConfigError {
78 Status400(models::PveError),
79 Status401(models::PveError),
80 Status403(models::PveError),
81 Status404(models::PveError),
82 Status500(models::PveError),
83 Status501(models::PveError),
84 Status503(models::PveError),
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum NodesNetworkRevertNetworkChangesError {
92 Status400(models::PveError),
93 Status401(models::PveError),
94 Status403(models::PveError),
95 Status404(models::PveError),
96 Status500(models::PveError),
97 Status501(models::PveError),
98 Status503(models::PveError),
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum NodesNetworkUpdateNetworkError {
106 Status400(models::PveError),
107 Status401(models::PveError),
108 Status403(models::PveError),
109 Status404(models::PveError),
110 Status500(models::PveError),
111 Status501(models::PveError),
112 Status503(models::PveError),
113 UnknownValue(serde_json::Value),
114}
115
116
117pub async fn nodes_network_create_network(configuration: &configuration::Configuration, node: &str, nodes_network_create_network_request: models::NodesNetworkCreateNetworkRequest) -> Result<models::NodesNetworkCreateNetworkResponse, Error<NodesNetworkCreateNetworkError>> {
119 let p_path_node = node;
121 let p_body_nodes_network_create_network_request = nodes_network_create_network_request;
122
123 let uri_str = format!("{}/nodes/{node}/network", configuration.base_path, node=crate::apis::urlencode(p_path_node));
124 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
125
126 if let Some(ref user_agent) = configuration.user_agent {
127 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
128 }
129 if let Some(ref apikey) = configuration.api_key {
130 let key = apikey.key.clone();
131 let value = match apikey.prefix {
132 Some(ref prefix) => format!("{} {}", prefix, key),
133 None => key,
134 };
135 req_builder = req_builder.header("Authorization", value);
136 };
137 if let Some(ref apikey) = configuration.api_key {
138 let key = apikey.key.clone();
139 let value = match apikey.prefix {
140 Some(ref prefix) => format!("{} {}", prefix, key),
141 None => key,
142 };
143 req_builder = req_builder.header("CSRFPreventionToken", value);
144 };
145 req_builder = req_builder.json(&p_body_nodes_network_create_network_request);
146
147 let req = req_builder.build()?;
148 let resp = configuration.client.execute(req).await?;
149
150 let status = resp.status();
151 let content_type = resp
152 .headers()
153 .get("content-type")
154 .and_then(|v| v.to_str().ok())
155 .unwrap_or("application/octet-stream");
156 let content_type = super::ContentType::from(content_type);
157
158 if !status.is_client_error() && !status.is_server_error() {
159 let content = resp.text().await?;
160 match content_type {
161 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
162 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesNetworkCreateNetworkResponse`"))),
163 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::NodesNetworkCreateNetworkResponse`")))),
164 }
165 } else {
166 let content = resp.text().await?;
167 let entity: Option<NodesNetworkCreateNetworkError> = serde_json::from_str(&content).ok();
168 Err(Error::ResponseError(ResponseContent { status, content, entity }))
169 }
170}
171
172pub async fn nodes_network_delete_network(configuration: &configuration::Configuration, iface: &str, node: &str) -> Result<models::NodesNetworkDeleteNetworkResponse, Error<NodesNetworkDeleteNetworkError>> {
174 let p_path_iface = iface;
176 let p_path_node = node;
177
178 let uri_str = format!("{}/nodes/{node}/network/{iface}", configuration.base_path, iface=crate::apis::urlencode(p_path_iface), node=crate::apis::urlencode(p_path_node));
179 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
180
181 if let Some(ref user_agent) = configuration.user_agent {
182 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
183 }
184 if let Some(ref apikey) = configuration.api_key {
185 let key = apikey.key.clone();
186 let value = match apikey.prefix {
187 Some(ref prefix) => format!("{} {}", prefix, key),
188 None => key,
189 };
190 req_builder = req_builder.header("Authorization", value);
191 };
192 if let Some(ref apikey) = configuration.api_key {
193 let key = apikey.key.clone();
194 let value = match apikey.prefix {
195 Some(ref prefix) => format!("{} {}", prefix, key),
196 None => key,
197 };
198 req_builder = req_builder.header("CSRFPreventionToken", value);
199 };
200
201 let req = req_builder.build()?;
202 let resp = configuration.client.execute(req).await?;
203
204 let status = resp.status();
205 let content_type = resp
206 .headers()
207 .get("content-type")
208 .and_then(|v| v.to_str().ok())
209 .unwrap_or("application/octet-stream");
210 let content_type = super::ContentType::from(content_type);
211
212 if !status.is_client_error() && !status.is_server_error() {
213 let content = resp.text().await?;
214 match content_type {
215 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
216 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesNetworkDeleteNetworkResponse`"))),
217 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::NodesNetworkDeleteNetworkResponse`")))),
218 }
219 } else {
220 let content = resp.text().await?;
221 let entity: Option<NodesNetworkDeleteNetworkError> = serde_json::from_str(&content).ok();
222 Err(Error::ResponseError(ResponseContent { status, content, entity }))
223 }
224}
225
226pub async fn nodes_network_get_network(configuration: &configuration::Configuration, node: &str, r#type: Option<models::PveNodesNetworkTypeEnum>) -> Result<models::NodesNetworkGetNetworkResponse, Error<NodesNetworkGetNetworkError>> {
228 let p_path_node = node;
230 let p_query_type = r#type;
231
232 let uri_str = format!("{}/nodes/{node}/network", configuration.base_path, node=crate::apis::urlencode(p_path_node));
233 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
234
235 if let Some(ref param_value) = p_query_type {
236 req_builder = req_builder.query(&[("type", ¶m_value.to_string())]);
237 }
238 if let Some(ref user_agent) = configuration.user_agent {
239 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
240 }
241 if let Some(ref apikey) = configuration.api_key {
242 let key = apikey.key.clone();
243 let value = match apikey.prefix {
244 Some(ref prefix) => format!("{} {}", prefix, key),
245 None => key,
246 };
247 req_builder = req_builder.header("Authorization", value);
248 };
249 if let Some(ref apikey) = configuration.api_key {
250 let key = apikey.key.clone();
251 let value = match apikey.prefix {
252 Some(ref prefix) => format!("{} {}", prefix, key),
253 None => key,
254 };
255 req_builder = req_builder.header("CSRFPreventionToken", value);
256 };
257
258 let req = req_builder.build()?;
259 let resp = configuration.client.execute(req).await?;
260
261 let status = resp.status();
262 let content_type = resp
263 .headers()
264 .get("content-type")
265 .and_then(|v| v.to_str().ok())
266 .unwrap_or("application/octet-stream");
267 let content_type = super::ContentType::from(content_type);
268
269 if !status.is_client_error() && !status.is_server_error() {
270 let content = resp.text().await?;
271 match content_type {
272 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
273 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesNetworkGetNetworkResponse`"))),
274 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::NodesNetworkGetNetworkResponse`")))),
275 }
276 } else {
277 let content = resp.text().await?;
278 let entity: Option<NodesNetworkGetNetworkError> = serde_json::from_str(&content).ok();
279 Err(Error::ResponseError(ResponseContent { status, content, entity }))
280 }
281}
282
283pub async fn nodes_network_network_config(configuration: &configuration::Configuration, iface: &str, node: &str) -> Result<models::NodesNetworkNetworkConfigResponse, Error<NodesNetworkNetworkConfigError>> {
285 let p_path_iface = iface;
287 let p_path_node = node;
288
289 let uri_str = format!("{}/nodes/{node}/network/{iface}", configuration.base_path, iface=crate::apis::urlencode(p_path_iface), node=crate::apis::urlencode(p_path_node));
290 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
291
292 if let Some(ref user_agent) = configuration.user_agent {
293 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
294 }
295 if let Some(ref apikey) = configuration.api_key {
296 let key = apikey.key.clone();
297 let value = match apikey.prefix {
298 Some(ref prefix) => format!("{} {}", prefix, key),
299 None => key,
300 };
301 req_builder = req_builder.header("Authorization", value);
302 };
303 if let Some(ref apikey) = configuration.api_key {
304 let key = apikey.key.clone();
305 let value = match apikey.prefix {
306 Some(ref prefix) => format!("{} {}", prefix, key),
307 None => key,
308 };
309 req_builder = req_builder.header("CSRFPreventionToken", value);
310 };
311
312 let req = req_builder.build()?;
313 let resp = configuration.client.execute(req).await?;
314
315 let status = resp.status();
316 let content_type = resp
317 .headers()
318 .get("content-type")
319 .and_then(|v| v.to_str().ok())
320 .unwrap_or("application/octet-stream");
321 let content_type = super::ContentType::from(content_type);
322
323 if !status.is_client_error() && !status.is_server_error() {
324 let content = resp.text().await?;
325 match content_type {
326 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
327 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesNetworkNetworkConfigResponse`"))),
328 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::NodesNetworkNetworkConfigResponse`")))),
329 }
330 } else {
331 let content = resp.text().await?;
332 let entity: Option<NodesNetworkNetworkConfigError> = serde_json::from_str(&content).ok();
333 Err(Error::ResponseError(ResponseContent { status, content, entity }))
334 }
335}
336
337pub async fn nodes_network_reload_network_config(configuration: &configuration::Configuration, node: &str, nodes_network_reload_network_config_request: Option<models::NodesNetworkReloadNetworkConfigRequest>) -> Result<models::NodesNetworkReloadNetworkConfigResponse, Error<NodesNetworkReloadNetworkConfigError>> {
339 let p_path_node = node;
341 let p_body_nodes_network_reload_network_config_request = nodes_network_reload_network_config_request;
342
343 let uri_str = format!("{}/nodes/{node}/network", configuration.base_path, node=crate::apis::urlencode(p_path_node));
344 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
345
346 if let Some(ref user_agent) = configuration.user_agent {
347 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
348 }
349 if let Some(ref apikey) = configuration.api_key {
350 let key = apikey.key.clone();
351 let value = match apikey.prefix {
352 Some(ref prefix) => format!("{} {}", prefix, key),
353 None => key,
354 };
355 req_builder = req_builder.header("Authorization", value);
356 };
357 if let Some(ref apikey) = configuration.api_key {
358 let key = apikey.key.clone();
359 let value = match apikey.prefix {
360 Some(ref prefix) => format!("{} {}", prefix, key),
361 None => key,
362 };
363 req_builder = req_builder.header("CSRFPreventionToken", value);
364 };
365 req_builder = req_builder.json(&p_body_nodes_network_reload_network_config_request);
366
367 let req = req_builder.build()?;
368 let resp = configuration.client.execute(req).await?;
369
370 let status = resp.status();
371 let content_type = resp
372 .headers()
373 .get("content-type")
374 .and_then(|v| v.to_str().ok())
375 .unwrap_or("application/octet-stream");
376 let content_type = super::ContentType::from(content_type);
377
378 if !status.is_client_error() && !status.is_server_error() {
379 let content = resp.text().await?;
380 match content_type {
381 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
382 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesNetworkReloadNetworkConfigResponse`"))),
383 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::NodesNetworkReloadNetworkConfigResponse`")))),
384 }
385 } else {
386 let content = resp.text().await?;
387 let entity: Option<NodesNetworkReloadNetworkConfigError> = serde_json::from_str(&content).ok();
388 Err(Error::ResponseError(ResponseContent { status, content, entity }))
389 }
390}
391
392pub async fn nodes_network_revert_network_changes(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesNetworkRevertNetworkChangesResponse, Error<NodesNetworkRevertNetworkChangesError>> {
394 let p_path_node = node;
396
397 let uri_str = format!("{}/nodes/{node}/network", configuration.base_path, node=crate::apis::urlencode(p_path_node));
398 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
399
400 if let Some(ref user_agent) = configuration.user_agent {
401 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
402 }
403 if let Some(ref apikey) = configuration.api_key {
404 let key = apikey.key.clone();
405 let value = match apikey.prefix {
406 Some(ref prefix) => format!("{} {}", prefix, key),
407 None => key,
408 };
409 req_builder = req_builder.header("Authorization", value);
410 };
411 if let Some(ref apikey) = configuration.api_key {
412 let key = apikey.key.clone();
413 let value = match apikey.prefix {
414 Some(ref prefix) => format!("{} {}", prefix, key),
415 None => key,
416 };
417 req_builder = req_builder.header("CSRFPreventionToken", value);
418 };
419
420 let req = req_builder.build()?;
421 let resp = configuration.client.execute(req).await?;
422
423 let status = resp.status();
424 let content_type = resp
425 .headers()
426 .get("content-type")
427 .and_then(|v| v.to_str().ok())
428 .unwrap_or("application/octet-stream");
429 let content_type = super::ContentType::from(content_type);
430
431 if !status.is_client_error() && !status.is_server_error() {
432 let content = resp.text().await?;
433 match content_type {
434 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
435 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesNetworkRevertNetworkChangesResponse`"))),
436 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::NodesNetworkRevertNetworkChangesResponse`")))),
437 }
438 } else {
439 let content = resp.text().await?;
440 let entity: Option<NodesNetworkRevertNetworkChangesError> = serde_json::from_str(&content).ok();
441 Err(Error::ResponseError(ResponseContent { status, content, entity }))
442 }
443}
444
445pub async fn nodes_network_update_network(configuration: &configuration::Configuration, iface: &str, node: &str, nodes_network_update_network_request: models::NodesNetworkUpdateNetworkRequest) -> Result<models::NodesNetworkUpdateNetworkResponse, Error<NodesNetworkUpdateNetworkError>> {
447 let p_path_iface = iface;
449 let p_path_node = node;
450 let p_body_nodes_network_update_network_request = nodes_network_update_network_request;
451
452 let uri_str = format!("{}/nodes/{node}/network/{iface}", configuration.base_path, iface=crate::apis::urlencode(p_path_iface), node=crate::apis::urlencode(p_path_node));
453 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
454
455 if let Some(ref user_agent) = configuration.user_agent {
456 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
457 }
458 if let Some(ref apikey) = configuration.api_key {
459 let key = apikey.key.clone();
460 let value = match apikey.prefix {
461 Some(ref prefix) => format!("{} {}", prefix, key),
462 None => key,
463 };
464 req_builder = req_builder.header("Authorization", value);
465 };
466 if let Some(ref apikey) = configuration.api_key {
467 let key = apikey.key.clone();
468 let value = match apikey.prefix {
469 Some(ref prefix) => format!("{} {}", prefix, key),
470 None => key,
471 };
472 req_builder = req_builder.header("CSRFPreventionToken", value);
473 };
474 req_builder = req_builder.json(&p_body_nodes_network_update_network_request);
475
476 let req = req_builder.build()?;
477 let resp = configuration.client.execute(req).await?;
478
479 let status = resp.status();
480 let content_type = resp
481 .headers()
482 .get("content-type")
483 .and_then(|v| v.to_str().ok())
484 .unwrap_or("application/octet-stream");
485 let content_type = super::ContentType::from(content_type);
486
487 if !status.is_client_error() && !status.is_server_error() {
488 let content = resp.text().await?;
489 match content_type {
490 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
491 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesNetworkUpdateNetworkResponse`"))),
492 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::NodesNetworkUpdateNetworkResponse`")))),
493 }
494 } else {
495 let content = resp.text().await?;
496 let entity: Option<NodesNetworkUpdateNetworkError> = serde_json::from_str(&content).ok();
497 Err(Error::ResponseError(ResponseContent { status, content, entity }))
498 }
499}
500