podman_client/pods/
kube_generate.rs

1use http_body_util::Empty;
2use hyper::body::Bytes;
3use url::form_urlencoded;
4
5use crate::{
6    client::Client,
7    models::{
8        connection::SendRequestOptions,
9        lib::Error,
10        podman::pods::kube_generate::{PodKubeGenerate, PodKubeGenerateOptions},
11    },
12    utils::bool_to_str::bool_to_str,
13};
14
15impl Client {
16    pub async fn pod_kube_generate(
17        &self,
18        options: PodKubeGenerateOptions<'_>,
19    ) -> Result<PodKubeGenerate, Error> {
20        let mut query = form_urlencoded::Serializer::new(String::new());
21        for name in options.names {
22            query.append_pair("names", name);
23        }
24        if let Some(no_trunc) = options.no_trunc {
25            query.append_pair("noTrunc", bool_to_str(no_trunc));
26        }
27        if let Some(podman_only) = options.podman_only {
28            query.append_pair("podmanOnly", bool_to_str(podman_only));
29        }
30        if let Some(replicas) = options.replicas {
31            query.append_pair("replicas", itoa::Buffer::new().format(replicas));
32        }
33        if let Some(service) = options.service {
34            query.append_pair("service", bool_to_str(service));
35        }
36        if let Some(r#type) = options.r#type {
37            query.append_pair("type", r#type);
38        }
39        let query_string = query.finish();
40
41        let (_, data) = self
42            .send_request::<_, (), _>(SendRequestOptions {
43                method: "GET",
44                path: &["/libpod/generate/kube?", &query_string].concat(),
45                header: None,
46                body: Empty::<Bytes>::new(),
47            })
48            .await?;
49
50        Ok(data)
51    }
52}