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 NodesAptAddRepositoryError {
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 NodesAptChangeRepositoryError {
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 NodesAptChangelogError {
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 NodesAptGetAptError {
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 NodesAptListUpdatesError {
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 NodesAptRepositoriesError {
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 NodesAptUpdateDatabaseError {
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#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum NodesAptVersionsError {
120 Status400(models::PveError),
121 Status401(models::PveError),
122 Status403(models::PveError),
123 Status404(models::PveError),
124 Status500(models::PveError),
125 Status501(models::PveError),
126 Status503(models::PveError),
127 UnknownValue(serde_json::Value),
128}
129
130
131pub async fn nodes_apt_add_repository(configuration: &configuration::Configuration, node: &str, nodes_apt_add_repository_request: models::NodesAptAddRepositoryRequest) -> Result<models::NodesAptAddRepositoryResponse, Error<NodesAptAddRepositoryError>> {
133 let p_path_node = node;
135 let p_body_nodes_apt_add_repository_request = nodes_apt_add_repository_request;
136
137 let uri_str = format!("{}/nodes/{node}/apt/repositories", configuration.base_path, node=crate::apis::urlencode(p_path_node));
138 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
139
140 if let Some(ref user_agent) = configuration.user_agent {
141 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
142 }
143 if let Some(ref apikey) = configuration.api_key {
144 let key = apikey.key.clone();
145 let value = match apikey.prefix {
146 Some(ref prefix) => format!("{} {}", prefix, key),
147 None => key,
148 };
149 req_builder = req_builder.header("Authorization", value);
150 };
151 if let Some(ref apikey) = configuration.api_key {
152 let key = apikey.key.clone();
153 let value = match apikey.prefix {
154 Some(ref prefix) => format!("{} {}", prefix, key),
155 None => key,
156 };
157 req_builder = req_builder.header("CSRFPreventionToken", value);
158 };
159 req_builder = req_builder.json(&p_body_nodes_apt_add_repository_request);
160
161 let req = req_builder.build()?;
162 let resp = configuration.client.execute(req).await?;
163
164 let status = resp.status();
165 let content_type = resp
166 .headers()
167 .get("content-type")
168 .and_then(|v| v.to_str().ok())
169 .unwrap_or("application/octet-stream");
170 let content_type = super::ContentType::from(content_type);
171
172 if !status.is_client_error() && !status.is_server_error() {
173 let content = resp.text().await?;
174 match content_type {
175 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
176 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptAddRepositoryResponse`"))),
177 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::NodesAptAddRepositoryResponse`")))),
178 }
179 } else {
180 let content = resp.text().await?;
181 let entity: Option<NodesAptAddRepositoryError> = serde_json::from_str(&content).ok();
182 Err(Error::ResponseError(ResponseContent { status, content, entity }))
183 }
184}
185
186pub async fn nodes_apt_change_repository(configuration: &configuration::Configuration, node: &str, nodes_apt_change_repository_request: models::NodesAptChangeRepositoryRequest) -> Result<models::NodesAptChangeRepositoryResponse, Error<NodesAptChangeRepositoryError>> {
188 let p_path_node = node;
190 let p_body_nodes_apt_change_repository_request = nodes_apt_change_repository_request;
191
192 let uri_str = format!("{}/nodes/{node}/apt/repositories", configuration.base_path, node=crate::apis::urlencode(p_path_node));
193 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
194
195 if let Some(ref user_agent) = configuration.user_agent {
196 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
197 }
198 if let Some(ref apikey) = configuration.api_key {
199 let key = apikey.key.clone();
200 let value = match apikey.prefix {
201 Some(ref prefix) => format!("{} {}", prefix, key),
202 None => key,
203 };
204 req_builder = req_builder.header("Authorization", value);
205 };
206 if let Some(ref apikey) = configuration.api_key {
207 let key = apikey.key.clone();
208 let value = match apikey.prefix {
209 Some(ref prefix) => format!("{} {}", prefix, key),
210 None => key,
211 };
212 req_builder = req_builder.header("CSRFPreventionToken", value);
213 };
214 req_builder = req_builder.json(&p_body_nodes_apt_change_repository_request);
215
216 let req = req_builder.build()?;
217 let resp = configuration.client.execute(req).await?;
218
219 let status = resp.status();
220 let content_type = resp
221 .headers()
222 .get("content-type")
223 .and_then(|v| v.to_str().ok())
224 .unwrap_or("application/octet-stream");
225 let content_type = super::ContentType::from(content_type);
226
227 if !status.is_client_error() && !status.is_server_error() {
228 let content = resp.text().await?;
229 match content_type {
230 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
231 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptChangeRepositoryResponse`"))),
232 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::NodesAptChangeRepositoryResponse`")))),
233 }
234 } else {
235 let content = resp.text().await?;
236 let entity: Option<NodesAptChangeRepositoryError> = serde_json::from_str(&content).ok();
237 Err(Error::ResponseError(ResponseContent { status, content, entity }))
238 }
239}
240
241pub async fn nodes_apt_changelog(configuration: &configuration::Configuration, name: &str, node: &str, version: Option<&str>) -> Result<models::NodesAptChangelogResponse, Error<NodesAptChangelogError>> {
243 let p_query_name = name;
245 let p_path_node = node;
246 let p_query_version = version;
247
248 let uri_str = format!("{}/nodes/{node}/apt/changelog", configuration.base_path, node=crate::apis::urlencode(p_path_node));
249 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
250
251 req_builder = req_builder.query(&[("name", &p_query_name.to_string())]);
252 if let Some(ref param_value) = p_query_version {
253 req_builder = req_builder.query(&[("version", ¶m_value.to_string())]);
254 }
255 if let Some(ref user_agent) = configuration.user_agent {
256 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
257 }
258 if let Some(ref apikey) = configuration.api_key {
259 let key = apikey.key.clone();
260 let value = match apikey.prefix {
261 Some(ref prefix) => format!("{} {}", prefix, key),
262 None => key,
263 };
264 req_builder = req_builder.header("Authorization", value);
265 };
266 if let Some(ref apikey) = configuration.api_key {
267 let key = apikey.key.clone();
268 let value = match apikey.prefix {
269 Some(ref prefix) => format!("{} {}", prefix, key),
270 None => key,
271 };
272 req_builder = req_builder.header("CSRFPreventionToken", value);
273 };
274
275 let req = req_builder.build()?;
276 let resp = configuration.client.execute(req).await?;
277
278 let status = resp.status();
279 let content_type = resp
280 .headers()
281 .get("content-type")
282 .and_then(|v| v.to_str().ok())
283 .unwrap_or("application/octet-stream");
284 let content_type = super::ContentType::from(content_type);
285
286 if !status.is_client_error() && !status.is_server_error() {
287 let content = resp.text().await?;
288 match content_type {
289 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
290 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptChangelogResponse`"))),
291 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::NodesAptChangelogResponse`")))),
292 }
293 } else {
294 let content = resp.text().await?;
295 let entity: Option<NodesAptChangelogError> = serde_json::from_str(&content).ok();
296 Err(Error::ResponseError(ResponseContent { status, content, entity }))
297 }
298}
299
300pub async fn nodes_apt_get_apt(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptGetAptResponse, Error<NodesAptGetAptError>> {
302 let p_path_node = node;
304
305 let uri_str = format!("{}/nodes/{node}/apt", configuration.base_path, node=crate::apis::urlencode(p_path_node));
306 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
307
308 if let Some(ref user_agent) = configuration.user_agent {
309 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
310 }
311 if let Some(ref apikey) = configuration.api_key {
312 let key = apikey.key.clone();
313 let value = match apikey.prefix {
314 Some(ref prefix) => format!("{} {}", prefix, key),
315 None => key,
316 };
317 req_builder = req_builder.header("Authorization", value);
318 };
319 if let Some(ref apikey) = configuration.api_key {
320 let key = apikey.key.clone();
321 let value = match apikey.prefix {
322 Some(ref prefix) => format!("{} {}", prefix, key),
323 None => key,
324 };
325 req_builder = req_builder.header("CSRFPreventionToken", value);
326 };
327
328 let req = req_builder.build()?;
329 let resp = configuration.client.execute(req).await?;
330
331 let status = resp.status();
332 let content_type = resp
333 .headers()
334 .get("content-type")
335 .and_then(|v| v.to_str().ok())
336 .unwrap_or("application/octet-stream");
337 let content_type = super::ContentType::from(content_type);
338
339 if !status.is_client_error() && !status.is_server_error() {
340 let content = resp.text().await?;
341 match content_type {
342 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
343 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptGetAptResponse`"))),
344 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::NodesAptGetAptResponse`")))),
345 }
346 } else {
347 let content = resp.text().await?;
348 let entity: Option<NodesAptGetAptError> = serde_json::from_str(&content).ok();
349 Err(Error::ResponseError(ResponseContent { status, content, entity }))
350 }
351}
352
353pub async fn nodes_apt_list_updates(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptListUpdatesResponse, Error<NodesAptListUpdatesError>> {
355 let p_path_node = node;
357
358 let uri_str = format!("{}/nodes/{node}/apt/update", configuration.base_path, node=crate::apis::urlencode(p_path_node));
359 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
360
361 if let Some(ref user_agent) = configuration.user_agent {
362 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
363 }
364 if let Some(ref apikey) = configuration.api_key {
365 let key = apikey.key.clone();
366 let value = match apikey.prefix {
367 Some(ref prefix) => format!("{} {}", prefix, key),
368 None => key,
369 };
370 req_builder = req_builder.header("Authorization", value);
371 };
372 if let Some(ref apikey) = configuration.api_key {
373 let key = apikey.key.clone();
374 let value = match apikey.prefix {
375 Some(ref prefix) => format!("{} {}", prefix, key),
376 None => key,
377 };
378 req_builder = req_builder.header("CSRFPreventionToken", value);
379 };
380
381 let req = req_builder.build()?;
382 let resp = configuration.client.execute(req).await?;
383
384 let status = resp.status();
385 let content_type = resp
386 .headers()
387 .get("content-type")
388 .and_then(|v| v.to_str().ok())
389 .unwrap_or("application/octet-stream");
390 let content_type = super::ContentType::from(content_type);
391
392 if !status.is_client_error() && !status.is_server_error() {
393 let content = resp.text().await?;
394 match content_type {
395 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
396 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptListUpdatesResponse`"))),
397 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::NodesAptListUpdatesResponse`")))),
398 }
399 } else {
400 let content = resp.text().await?;
401 let entity: Option<NodesAptListUpdatesError> = serde_json::from_str(&content).ok();
402 Err(Error::ResponseError(ResponseContent { status, content, entity }))
403 }
404}
405
406pub async fn nodes_apt_repositories(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptRepositoriesResponse, Error<NodesAptRepositoriesError>> {
408 let p_path_node = node;
410
411 let uri_str = format!("{}/nodes/{node}/apt/repositories", configuration.base_path, node=crate::apis::urlencode(p_path_node));
412 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
413
414 if let Some(ref user_agent) = configuration.user_agent {
415 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
416 }
417 if let Some(ref apikey) = configuration.api_key {
418 let key = apikey.key.clone();
419 let value = match apikey.prefix {
420 Some(ref prefix) => format!("{} {}", prefix, key),
421 None => key,
422 };
423 req_builder = req_builder.header("Authorization", value);
424 };
425 if let Some(ref apikey) = configuration.api_key {
426 let key = apikey.key.clone();
427 let value = match apikey.prefix {
428 Some(ref prefix) => format!("{} {}", prefix, key),
429 None => key,
430 };
431 req_builder = req_builder.header("CSRFPreventionToken", value);
432 };
433
434 let req = req_builder.build()?;
435 let resp = configuration.client.execute(req).await?;
436
437 let status = resp.status();
438 let content_type = resp
439 .headers()
440 .get("content-type")
441 .and_then(|v| v.to_str().ok())
442 .unwrap_or("application/octet-stream");
443 let content_type = super::ContentType::from(content_type);
444
445 if !status.is_client_error() && !status.is_server_error() {
446 let content = resp.text().await?;
447 match content_type {
448 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
449 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptRepositoriesResponse`"))),
450 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::NodesAptRepositoriesResponse`")))),
451 }
452 } else {
453 let content = resp.text().await?;
454 let entity: Option<NodesAptRepositoriesError> = serde_json::from_str(&content).ok();
455 Err(Error::ResponseError(ResponseContent { status, content, entity }))
456 }
457}
458
459pub async fn nodes_apt_update_database(configuration: &configuration::Configuration, node: &str, nodes_apt_update_database_request: Option<models::NodesAptUpdateDatabaseRequest>) -> Result<models::NodesAptUpdateDatabaseResponse, Error<NodesAptUpdateDatabaseError>> {
461 let p_path_node = node;
463 let p_body_nodes_apt_update_database_request = nodes_apt_update_database_request;
464
465 let uri_str = format!("{}/nodes/{node}/apt/update", configuration.base_path, node=crate::apis::urlencode(p_path_node));
466 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
467
468 if let Some(ref user_agent) = configuration.user_agent {
469 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
470 }
471 if let Some(ref apikey) = configuration.api_key {
472 let key = apikey.key.clone();
473 let value = match apikey.prefix {
474 Some(ref prefix) => format!("{} {}", prefix, key),
475 None => key,
476 };
477 req_builder = req_builder.header("Authorization", value);
478 };
479 if let Some(ref apikey) = configuration.api_key {
480 let key = apikey.key.clone();
481 let value = match apikey.prefix {
482 Some(ref prefix) => format!("{} {}", prefix, key),
483 None => key,
484 };
485 req_builder = req_builder.header("CSRFPreventionToken", value);
486 };
487 req_builder = req_builder.json(&p_body_nodes_apt_update_database_request);
488
489 let req = req_builder.build()?;
490 let resp = configuration.client.execute(req).await?;
491
492 let status = resp.status();
493 let content_type = resp
494 .headers()
495 .get("content-type")
496 .and_then(|v| v.to_str().ok())
497 .unwrap_or("application/octet-stream");
498 let content_type = super::ContentType::from(content_type);
499
500 if !status.is_client_error() && !status.is_server_error() {
501 let content = resp.text().await?;
502 match content_type {
503 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
504 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptUpdateDatabaseResponse`"))),
505 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::NodesAptUpdateDatabaseResponse`")))),
506 }
507 } else {
508 let content = resp.text().await?;
509 let entity: Option<NodesAptUpdateDatabaseError> = serde_json::from_str(&content).ok();
510 Err(Error::ResponseError(ResponseContent { status, content, entity }))
511 }
512}
513
514pub async fn nodes_apt_versions(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptVersionsResponse, Error<NodesAptVersionsError>> {
516 let p_path_node = node;
518
519 let uri_str = format!("{}/nodes/{node}/apt/versions", configuration.base_path, node=crate::apis::urlencode(p_path_node));
520 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
521
522 if let Some(ref user_agent) = configuration.user_agent {
523 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
524 }
525 if let Some(ref apikey) = configuration.api_key {
526 let key = apikey.key.clone();
527 let value = match apikey.prefix {
528 Some(ref prefix) => format!("{} {}", prefix, key),
529 None => key,
530 };
531 req_builder = req_builder.header("Authorization", value);
532 };
533 if let Some(ref apikey) = configuration.api_key {
534 let key = apikey.key.clone();
535 let value = match apikey.prefix {
536 Some(ref prefix) => format!("{} {}", prefix, key),
537 None => key,
538 };
539 req_builder = req_builder.header("CSRFPreventionToken", value);
540 };
541
542 let req = req_builder.build()?;
543 let resp = configuration.client.execute(req).await?;
544
545 let status = resp.status();
546 let content_type = resp
547 .headers()
548 .get("content-type")
549 .and_then(|v| v.to_str().ok())
550 .unwrap_or("application/octet-stream");
551 let content_type = super::ContentType::from(content_type);
552
553 if !status.is_client_error() && !status.is_server_error() {
554 let content = resp.text().await?;
555 match content_type {
556 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
557 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptVersionsResponse`"))),
558 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::NodesAptVersionsResponse`")))),
559 }
560 } else {
561 let content = resp.text().await?;
562 let entity: Option<NodesAptVersionsError> = serde_json::from_str(&content).ok();
563 Err(Error::ResponseError(ResponseContent { status, content, entity }))
564 }
565}
566