Skip to main content

clientapi_pbs/apis/
nodes_services_api.rs

1/*
2 * Proxmox Backup Server API
3 *
4 * Generated from apidoc.js. NOT an official Proxmox specification. See https://pbs.proxmox.com/docs/api-viewer/ for the upstream documentation.
5 *
6 * The version of the OpenAPI document: 9.x
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18/// struct for typed errors of method [`nodes_services_create_reload`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum NodesServicesCreateReloadError {
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/// struct for typed errors of method [`nodes_services_create_restart`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum NodesServicesCreateRestartError {
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/// struct for typed errors of method [`nodes_services_create_start`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum NodesServicesCreateStartError {
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/// struct for typed errors of method [`nodes_services_create_stop`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum NodesServicesCreateStopError {
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/// struct for typed errors of method [`nodes_services_get_nodes_by_node_services_by_service`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum NodesServicesGetNodesByNodeServicesByServiceError {
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/// struct for typed errors of method [`nodes_services_get_services`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum NodesServicesGetServicesError {
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/// struct for typed errors of method [`nodes_services_get_state`]
103#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum NodesServicesGetStateError {
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
117/// Reload service.
118pub async fn nodes_services_create_reload(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateReloadResponse, Error<NodesServicesCreateReloadError>> {
119    // add a prefix to parameters to efficiently prevent name collisions
120    let p_path_node = node;
121    let p_path_service = service;
122
123    let uri_str = format!("{}/nodes/{node}/services/{service}/reload", configuration.base_path, node=crate::apis::urlencode(p_path_node), service=crate::apis::urlencode(p_path_service));
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
146    let req = req_builder.build()?;
147    let resp = configuration.client.execute(req).await?;
148
149    let status = resp.status();
150    let content_type = resp
151        .headers()
152        .get("content-type")
153        .and_then(|v| v.to_str().ok())
154        .unwrap_or("application/octet-stream");
155    let content_type = super::ContentType::from(content_type);
156
157    if !status.is_client_error() && !status.is_server_error() {
158        let content = resp.text().await?;
159        match content_type {
160            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
161            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesServicesCreateReloadResponse`"))),
162            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::NodesServicesCreateReloadResponse`")))),
163        }
164    } else {
165        let content = resp.text().await?;
166        let entity: Option<NodesServicesCreateReloadError> = serde_json::from_str(&content).ok();
167        Err(Error::ResponseError(ResponseContent { status, content, entity }))
168    }
169}
170
171/// Restart service.
172pub async fn nodes_services_create_restart(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateRestartResponse, Error<NodesServicesCreateRestartError>> {
173    // add a prefix to parameters to efficiently prevent name collisions
174    let p_path_node = node;
175    let p_path_service = service;
176
177    let uri_str = format!("{}/nodes/{node}/services/{service}/restart", configuration.base_path, node=crate::apis::urlencode(p_path_node), service=crate::apis::urlencode(p_path_service));
178    let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
179
180    if let Some(ref user_agent) = configuration.user_agent {
181        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
182    }
183    if let Some(ref apikey) = configuration.api_key {
184        let key = apikey.key.clone();
185        let value = match apikey.prefix {
186            Some(ref prefix) => format!("{} {}", prefix, key),
187            None => key,
188        };
189        req_builder = req_builder.header("Authorization", value);
190    };
191    if let Some(ref apikey) = configuration.api_key {
192        let key = apikey.key.clone();
193        let value = match apikey.prefix {
194            Some(ref prefix) => format!("{} {}", prefix, key),
195            None => key,
196        };
197        req_builder = req_builder.header("CSRFPreventionToken", value);
198    };
199
200    let req = req_builder.build()?;
201    let resp = configuration.client.execute(req).await?;
202
203    let status = resp.status();
204    let content_type = resp
205        .headers()
206        .get("content-type")
207        .and_then(|v| v.to_str().ok())
208        .unwrap_or("application/octet-stream");
209    let content_type = super::ContentType::from(content_type);
210
211    if !status.is_client_error() && !status.is_server_error() {
212        let content = resp.text().await?;
213        match content_type {
214            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
215            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesServicesCreateRestartResponse`"))),
216            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::NodesServicesCreateRestartResponse`")))),
217        }
218    } else {
219        let content = resp.text().await?;
220        let entity: Option<NodesServicesCreateRestartError> = serde_json::from_str(&content).ok();
221        Err(Error::ResponseError(ResponseContent { status, content, entity }))
222    }
223}
224
225/// Start service.
226pub async fn nodes_services_create_start(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateStartResponse, Error<NodesServicesCreateStartError>> {
227    // add a prefix to parameters to efficiently prevent name collisions
228    let p_path_node = node;
229    let p_path_service = service;
230
231    let uri_str = format!("{}/nodes/{node}/services/{service}/start", configuration.base_path, node=crate::apis::urlencode(p_path_node), service=crate::apis::urlencode(p_path_service));
232    let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
233
234    if let Some(ref user_agent) = configuration.user_agent {
235        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
236    }
237    if let Some(ref apikey) = configuration.api_key {
238        let key = apikey.key.clone();
239        let value = match apikey.prefix {
240            Some(ref prefix) => format!("{} {}", prefix, key),
241            None => key,
242        };
243        req_builder = req_builder.header("Authorization", value);
244    };
245    if let Some(ref apikey) = configuration.api_key {
246        let key = apikey.key.clone();
247        let value = match apikey.prefix {
248            Some(ref prefix) => format!("{} {}", prefix, key),
249            None => key,
250        };
251        req_builder = req_builder.header("CSRFPreventionToken", value);
252    };
253
254    let req = req_builder.build()?;
255    let resp = configuration.client.execute(req).await?;
256
257    let status = resp.status();
258    let content_type = resp
259        .headers()
260        .get("content-type")
261        .and_then(|v| v.to_str().ok())
262        .unwrap_or("application/octet-stream");
263    let content_type = super::ContentType::from(content_type);
264
265    if !status.is_client_error() && !status.is_server_error() {
266        let content = resp.text().await?;
267        match content_type {
268            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
269            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesServicesCreateStartResponse`"))),
270            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::NodesServicesCreateStartResponse`")))),
271        }
272    } else {
273        let content = resp.text().await?;
274        let entity: Option<NodesServicesCreateStartError> = serde_json::from_str(&content).ok();
275        Err(Error::ResponseError(ResponseContent { status, content, entity }))
276    }
277}
278
279/// Stop service.
280pub async fn nodes_services_create_stop(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateStopResponse, Error<NodesServicesCreateStopError>> {
281    // add a prefix to parameters to efficiently prevent name collisions
282    let p_path_node = node;
283    let p_path_service = service;
284
285    let uri_str = format!("{}/nodes/{node}/services/{service}/stop", configuration.base_path, node=crate::apis::urlencode(p_path_node), service=crate::apis::urlencode(p_path_service));
286    let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
287
288    if let Some(ref user_agent) = configuration.user_agent {
289        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
290    }
291    if let Some(ref apikey) = configuration.api_key {
292        let key = apikey.key.clone();
293        let value = match apikey.prefix {
294            Some(ref prefix) => format!("{} {}", prefix, key),
295            None => key,
296        };
297        req_builder = req_builder.header("Authorization", value);
298    };
299    if let Some(ref apikey) = configuration.api_key {
300        let key = apikey.key.clone();
301        let value = match apikey.prefix {
302            Some(ref prefix) => format!("{} {}", prefix, key),
303            None => key,
304        };
305        req_builder = req_builder.header("CSRFPreventionToken", value);
306    };
307
308    let req = req_builder.build()?;
309    let resp = configuration.client.execute(req).await?;
310
311    let status = resp.status();
312    let content_type = resp
313        .headers()
314        .get("content-type")
315        .and_then(|v| v.to_str().ok())
316        .unwrap_or("application/octet-stream");
317    let content_type = super::ContentType::from(content_type);
318
319    if !status.is_client_error() && !status.is_server_error() {
320        let content = resp.text().await?;
321        match content_type {
322            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
323            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesServicesCreateStopResponse`"))),
324            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::NodesServicesCreateStopResponse`")))),
325        }
326    } else {
327        let content = resp.text().await?;
328        let entity: Option<NodesServicesCreateStopError> = serde_json::from_str(&content).ok();
329        Err(Error::ResponseError(ResponseContent { status, content, entity }))
330    }
331}
332
333/// Directory index.
334pub async fn nodes_services_get_nodes_by_node_services_by_service(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesGetNodesByNodeServicesByServiceResponse, Error<NodesServicesGetNodesByNodeServicesByServiceError>> {
335    // add a prefix to parameters to efficiently prevent name collisions
336    let p_path_node = node;
337    let p_path_service = service;
338
339    let uri_str = format!("{}/nodes/{node}/services/{service}", configuration.base_path, node=crate::apis::urlencode(p_path_node), service=crate::apis::urlencode(p_path_service));
340    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
341
342    if let Some(ref user_agent) = configuration.user_agent {
343        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
344    }
345    if let Some(ref apikey) = configuration.api_key {
346        let key = apikey.key.clone();
347        let value = match apikey.prefix {
348            Some(ref prefix) => format!("{} {}", prefix, key),
349            None => key,
350        };
351        req_builder = req_builder.header("Authorization", value);
352    };
353    if let Some(ref apikey) = configuration.api_key {
354        let key = apikey.key.clone();
355        let value = match apikey.prefix {
356            Some(ref prefix) => format!("{} {}", prefix, key),
357            None => key,
358        };
359        req_builder = req_builder.header("CSRFPreventionToken", value);
360    };
361
362    let req = req_builder.build()?;
363    let resp = configuration.client.execute(req).await?;
364
365    let status = resp.status();
366    let content_type = resp
367        .headers()
368        .get("content-type")
369        .and_then(|v| v.to_str().ok())
370        .unwrap_or("application/octet-stream");
371    let content_type = super::ContentType::from(content_type);
372
373    if !status.is_client_error() && !status.is_server_error() {
374        let content = resp.text().await?;
375        match content_type {
376            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
377            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesServicesGetNodesByNodeServicesByServiceResponse`"))),
378            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::NodesServicesGetNodesByNodeServicesByServiceResponse`")))),
379        }
380    } else {
381        let content = resp.text().await?;
382        let entity: Option<NodesServicesGetNodesByNodeServicesByServiceError> = serde_json::from_str(&content).ok();
383        Err(Error::ResponseError(ResponseContent { status, content, entity }))
384    }
385}
386
387/// Service list.
388pub async fn nodes_services_get_services(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesServicesGetServicesResponse, Error<NodesServicesGetServicesError>> {
389    // add a prefix to parameters to efficiently prevent name collisions
390    let p_path_node = node;
391
392    let uri_str = format!("{}/nodes/{node}/services", configuration.base_path, node=crate::apis::urlencode(p_path_node));
393    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
394
395    if let Some(ref user_agent) = configuration.user_agent {
396        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
397    }
398    if let Some(ref apikey) = configuration.api_key {
399        let key = apikey.key.clone();
400        let value = match apikey.prefix {
401            Some(ref prefix) => format!("{} {}", prefix, key),
402            None => key,
403        };
404        req_builder = req_builder.header("Authorization", value);
405    };
406    if let Some(ref apikey) = configuration.api_key {
407        let key = apikey.key.clone();
408        let value = match apikey.prefix {
409            Some(ref prefix) => format!("{} {}", prefix, key),
410            None => key,
411        };
412        req_builder = req_builder.header("CSRFPreventionToken", value);
413    };
414
415    let req = req_builder.build()?;
416    let resp = configuration.client.execute(req).await?;
417
418    let status = resp.status();
419    let content_type = resp
420        .headers()
421        .get("content-type")
422        .and_then(|v| v.to_str().ok())
423        .unwrap_or("application/octet-stream");
424    let content_type = super::ContentType::from(content_type);
425
426    if !status.is_client_error() && !status.is_server_error() {
427        let content = resp.text().await?;
428        match content_type {
429            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
430            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesServicesGetServicesResponse`"))),
431            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::NodesServicesGetServicesResponse`")))),
432        }
433    } else {
434        let content = resp.text().await?;
435        let entity: Option<NodesServicesGetServicesError> = serde_json::from_str(&content).ok();
436        Err(Error::ResponseError(ResponseContent { status, content, entity }))
437    }
438}
439
440/// Read service properties.
441pub async fn nodes_services_get_state(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesGetStateResponse, Error<NodesServicesGetStateError>> {
442    // add a prefix to parameters to efficiently prevent name collisions
443    let p_path_node = node;
444    let p_path_service = service;
445
446    let uri_str = format!("{}/nodes/{node}/services/{service}/state", configuration.base_path, node=crate::apis::urlencode(p_path_node), service=crate::apis::urlencode(p_path_service));
447    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
448
449    if let Some(ref user_agent) = configuration.user_agent {
450        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
451    }
452    if let Some(ref apikey) = configuration.api_key {
453        let key = apikey.key.clone();
454        let value = match apikey.prefix {
455            Some(ref prefix) => format!("{} {}", prefix, key),
456            None => key,
457        };
458        req_builder = req_builder.header("Authorization", value);
459    };
460    if let Some(ref apikey) = configuration.api_key {
461        let key = apikey.key.clone();
462        let value = match apikey.prefix {
463            Some(ref prefix) => format!("{} {}", prefix, key),
464            None => key,
465        };
466        req_builder = req_builder.header("CSRFPreventionToken", value);
467    };
468
469    let req = req_builder.build()?;
470    let resp = configuration.client.execute(req).await?;
471
472    let status = resp.status();
473    let content_type = resp
474        .headers()
475        .get("content-type")
476        .and_then(|v| v.to_str().ok())
477        .unwrap_or("application/octet-stream");
478    let content_type = super::ContentType::from(content_type);
479
480    if !status.is_client_error() && !status.is_server_error() {
481        let content = resp.text().await?;
482        match content_type {
483            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
484            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesServicesGetStateResponse`"))),
485            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::NodesServicesGetStateResponse`")))),
486        }
487    } else {
488        let content = resp.text().await?;
489        let entity: Option<NodesServicesGetStateError> = serde_json::from_str(&content).ok();
490        Err(Error::ResponseError(ResponseContent { status, content, entity }))
491    }
492}
493