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 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#[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#[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#[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#[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#[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#[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
117pub async fn nodes_services_create_reload(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateReloadResponse, Error<NodesServicesCreateReloadError>> {
119 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
171pub async fn nodes_services_create_restart(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateRestartResponse, Error<NodesServicesCreateRestartError>> {
173 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
225pub async fn nodes_services_create_start(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateStartResponse, Error<NodesServicesCreateStartError>> {
227 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
279pub async fn nodes_services_create_stop(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesCreateStopResponse, Error<NodesServicesCreateStopError>> {
281 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
333pub async fn nodes_services_get_nodes_by_node_services_by_service(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesGetNodesByNodeServicesByServiceResponse, Error<NodesServicesGetNodesByNodeServicesByServiceError>> {
335 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
387pub async fn nodes_services_get_services(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesServicesGetServicesResponse, Error<NodesServicesGetServicesError>> {
389 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
440pub async fn nodes_services_get_state(configuration: &configuration::Configuration, node: &str, service: &str) -> Result<models::NodesServicesGetStateResponse, Error<NodesServicesGetStateError>> {
442 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