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 NodesAptCreateRepositoriesError {
22 Status400(models::PbsError),
23 Status401(models::PbsError),
24 Status403(models::PbsError),
25 Status404(models::PbsError),
26 Status500(models::PbsError),
27 Status501(models::PbsError),
28 Status503(models::PbsError),
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum NodesAptCreateUpdateError {
36 Status400(models::PbsError),
37 Status401(models::PbsError),
38 Status403(models::PbsError),
39 Status404(models::PbsError),
40 Status500(models::PbsError),
41 Status501(models::PbsError),
42 Status503(models::PbsError),
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum NodesAptGetAptError {
50 Status400(models::PbsError),
51 Status401(models::PbsError),
52 Status403(models::PbsError),
53 Status404(models::PbsError),
54 Status500(models::PbsError),
55 Status501(models::PbsError),
56 Status503(models::PbsError),
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum NodesAptGetChangelogError {
64 Status400(models::PbsError),
65 Status401(models::PbsError),
66 Status403(models::PbsError),
67 Status404(models::PbsError),
68 Status500(models::PbsError),
69 Status501(models::PbsError),
70 Status503(models::PbsError),
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum NodesAptGetRepositoriesError {
78 Status400(models::PbsError),
79 Status401(models::PbsError),
80 Status403(models::PbsError),
81 Status404(models::PbsError),
82 Status500(models::PbsError),
83 Status501(models::PbsError),
84 Status503(models::PbsError),
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum NodesAptGetUpdateError {
92 Status400(models::PbsError),
93 Status401(models::PbsError),
94 Status403(models::PbsError),
95 Status404(models::PbsError),
96 Status500(models::PbsError),
97 Status501(models::PbsError),
98 Status503(models::PbsError),
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum NodesAptGetVersionsError {
106 Status400(models::PbsError),
107 Status401(models::PbsError),
108 Status403(models::PbsError),
109 Status404(models::PbsError),
110 Status500(models::PbsError),
111 Status501(models::PbsError),
112 Status503(models::PbsError),
113 UnknownValue(serde_json::Value),
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum NodesAptUpdateRepositoriesError {
120 Status400(models::PbsError),
121 Status401(models::PbsError),
122 Status403(models::PbsError),
123 Status404(models::PbsError),
124 Status500(models::PbsError),
125 Status501(models::PbsError),
126 Status503(models::PbsError),
127 UnknownValue(serde_json::Value),
128}
129
130
131pub async fn nodes_apt_create_repositories(configuration: &configuration::Configuration, node: &str, nodes_apt_create_repositories_request: models::NodesAptCreateRepositoriesRequest) -> Result<models::NodesAptCreateRepositoriesResponse, Error<NodesAptCreateRepositoriesError>> {
133 let p_path_node = node;
135 let p_body_nodes_apt_create_repositories_request = nodes_apt_create_repositories_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::POST, &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_create_repositories_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::NodesAptCreateRepositoriesResponse`"))),
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::NodesAptCreateRepositoriesResponse`")))),
178 }
179 } else {
180 let content = resp.text().await?;
181 let entity: Option<NodesAptCreateRepositoriesError> = serde_json::from_str(&content).ok();
182 Err(Error::ResponseError(ResponseContent { status, content, entity }))
183 }
184}
185
186pub async fn nodes_apt_create_update(configuration: &configuration::Configuration, node: &str, nodes_apt_create_update_request: Option<models::NodesAptCreateUpdateRequest>) -> Result<models::NodesAptCreateUpdateResponse, Error<NodesAptCreateUpdateError>> {
188 let p_path_node = node;
190 let p_body_nodes_apt_create_update_request = nodes_apt_create_update_request;
191
192 let uri_str = format!("{}/nodes/{node}/apt/update", 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_create_update_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::NodesAptCreateUpdateResponse`"))),
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::NodesAptCreateUpdateResponse`")))),
233 }
234 } else {
235 let content = resp.text().await?;
236 let entity: Option<NodesAptCreateUpdateError> = serde_json::from_str(&content).ok();
237 Err(Error::ResponseError(ResponseContent { status, content, entity }))
238 }
239}
240
241pub async fn nodes_apt_get_apt(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptGetAptResponse, Error<NodesAptGetAptError>> {
243 let p_path_node = node;
245
246 let uri_str = format!("{}/nodes/{node}/apt", configuration.base_path, node=crate::apis::urlencode(p_path_node));
247 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
248
249 if let Some(ref user_agent) = configuration.user_agent {
250 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
251 }
252 if let Some(ref apikey) = configuration.api_key {
253 let key = apikey.key.clone();
254 let value = match apikey.prefix {
255 Some(ref prefix) => format!("{} {}", prefix, key),
256 None => key,
257 };
258 req_builder = req_builder.header("Authorization", value);
259 };
260 if let Some(ref apikey) = configuration.api_key {
261 let key = apikey.key.clone();
262 let value = match apikey.prefix {
263 Some(ref prefix) => format!("{} {}", prefix, key),
264 None => key,
265 };
266 req_builder = req_builder.header("CSRFPreventionToken", value);
267 };
268
269 let req = req_builder.build()?;
270 let resp = configuration.client.execute(req).await?;
271
272 let status = resp.status();
273 let content_type = resp
274 .headers()
275 .get("content-type")
276 .and_then(|v| v.to_str().ok())
277 .unwrap_or("application/octet-stream");
278 let content_type = super::ContentType::from(content_type);
279
280 if !status.is_client_error() && !status.is_server_error() {
281 let content = resp.text().await?;
282 match content_type {
283 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
284 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptGetAptResponse`"))),
285 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`")))),
286 }
287 } else {
288 let content = resp.text().await?;
289 let entity: Option<NodesAptGetAptError> = serde_json::from_str(&content).ok();
290 Err(Error::ResponseError(ResponseContent { status, content, entity }))
291 }
292}
293
294pub async fn nodes_apt_get_changelog(configuration: &configuration::Configuration, name: &str, node: &str, version: Option<&str>) -> Result<models::NodesAptGetChangelogResponse, Error<NodesAptGetChangelogError>> {
296 let p_query_name = name;
298 let p_path_node = node;
299 let p_query_version = version;
300
301 let uri_str = format!("{}/nodes/{node}/apt/changelog", configuration.base_path, node=crate::apis::urlencode(p_path_node));
302 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
303
304 req_builder = req_builder.query(&[("name", &p_query_name.to_string())]);
305 if let Some(ref param_value) = p_query_version {
306 req_builder = req_builder.query(&[("version", ¶m_value.to_string())]);
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::NodesAptGetChangelogResponse`"))),
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::NodesAptGetChangelogResponse`")))),
345 }
346 } else {
347 let content = resp.text().await?;
348 let entity: Option<NodesAptGetChangelogError> = serde_json::from_str(&content).ok();
349 Err(Error::ResponseError(ResponseContent { status, content, entity }))
350 }
351}
352
353pub async fn nodes_apt_get_repositories(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptGetRepositoriesResponse, Error<NodesAptGetRepositoriesError>> {
355 let p_path_node = node;
357
358 let uri_str = format!("{}/nodes/{node}/apt/repositories", 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::NodesAptGetRepositoriesResponse`"))),
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::NodesAptGetRepositoriesResponse`")))),
398 }
399 } else {
400 let content = resp.text().await?;
401 let entity: Option<NodesAptGetRepositoriesError> = serde_json::from_str(&content).ok();
402 Err(Error::ResponseError(ResponseContent { status, content, entity }))
403 }
404}
405
406pub async fn nodes_apt_get_update(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptGetUpdateResponse, Error<NodesAptGetUpdateError>> {
408 let p_path_node = node;
410
411 let uri_str = format!("{}/nodes/{node}/apt/update", 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::NodesAptGetUpdateResponse`"))),
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::NodesAptGetUpdateResponse`")))),
451 }
452 } else {
453 let content = resp.text().await?;
454 let entity: Option<NodesAptGetUpdateError> = serde_json::from_str(&content).ok();
455 Err(Error::ResponseError(ResponseContent { status, content, entity }))
456 }
457}
458
459pub async fn nodes_apt_get_versions(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesAptGetVersionsResponse, Error<NodesAptGetVersionsError>> {
461 let p_path_node = node;
463
464 let uri_str = format!("{}/nodes/{node}/apt/versions", configuration.base_path, node=crate::apis::urlencode(p_path_node));
465 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
466
467 if let Some(ref user_agent) = configuration.user_agent {
468 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
469 }
470 if let Some(ref apikey) = configuration.api_key {
471 let key = apikey.key.clone();
472 let value = match apikey.prefix {
473 Some(ref prefix) => format!("{} {}", prefix, key),
474 None => key,
475 };
476 req_builder = req_builder.header("Authorization", value);
477 };
478 if let Some(ref apikey) = configuration.api_key {
479 let key = apikey.key.clone();
480 let value = match apikey.prefix {
481 Some(ref prefix) => format!("{} {}", prefix, key),
482 None => key,
483 };
484 req_builder = req_builder.header("CSRFPreventionToken", value);
485 };
486
487 let req = req_builder.build()?;
488 let resp = configuration.client.execute(req).await?;
489
490 let status = resp.status();
491 let content_type = resp
492 .headers()
493 .get("content-type")
494 .and_then(|v| v.to_str().ok())
495 .unwrap_or("application/octet-stream");
496 let content_type = super::ContentType::from(content_type);
497
498 if !status.is_client_error() && !status.is_server_error() {
499 let content = resp.text().await?;
500 match content_type {
501 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
502 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesAptGetVersionsResponse`"))),
503 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::NodesAptGetVersionsResponse`")))),
504 }
505 } else {
506 let content = resp.text().await?;
507 let entity: Option<NodesAptGetVersionsError> = serde_json::from_str(&content).ok();
508 Err(Error::ResponseError(ResponseContent { status, content, entity }))
509 }
510}
511
512pub async fn nodes_apt_update_repositories(configuration: &configuration::Configuration, node: &str, nodes_apt_update_repositories_request: models::NodesAptUpdateRepositoriesRequest) -> Result<models::NodesAptUpdateRepositoriesResponse, Error<NodesAptUpdateRepositoriesError>> {
514 let p_path_node = node;
516 let p_body_nodes_apt_update_repositories_request = nodes_apt_update_repositories_request;
517
518 let uri_str = format!("{}/nodes/{node}/apt/repositories", configuration.base_path, node=crate::apis::urlencode(p_path_node));
519 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
520
521 if let Some(ref user_agent) = configuration.user_agent {
522 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
523 }
524 if let Some(ref apikey) = configuration.api_key {
525 let key = apikey.key.clone();
526 let value = match apikey.prefix {
527 Some(ref prefix) => format!("{} {}", prefix, key),
528 None => key,
529 };
530 req_builder = req_builder.header("Authorization", value);
531 };
532 if let Some(ref apikey) = configuration.api_key {
533 let key = apikey.key.clone();
534 let value = match apikey.prefix {
535 Some(ref prefix) => format!("{} {}", prefix, key),
536 None => key,
537 };
538 req_builder = req_builder.header("CSRFPreventionToken", value);
539 };
540 req_builder = req_builder.json(&p_body_nodes_apt_update_repositories_request);
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::NodesAptUpdateRepositoriesResponse`"))),
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::NodesAptUpdateRepositoriesResponse`")))),
559 }
560 } else {
561 let content = resp.text().await?;
562 let entity: Option<NodesAptUpdateRepositoriesError> = serde_json::from_str(&content).ok();
563 Err(Error::ResponseError(ResponseContent { status, content, entity }))
564 }
565}
566