podman_client/secrets/
create.rs

1use url::form_urlencoded;
2
3use crate::{
4    client::Client,
5    models::{
6        connection::SendRequestOptions,
7        lib::Error,
8        podman::secrets::create::{SecretCreate, SecretCreateOptions},
9    },
10};
11
12impl Client {
13    pub async fn secret_create(
14        &self,
15        options: SecretCreateOptions<'_>,
16    ) -> Result<SecretCreate, Error> {
17        let mut query = form_urlencoded::Serializer::new(String::new());
18        query.append_pair("name", &options.name);
19        if let Some(driver) = options.driver {
20            query.append_pair("driver", &driver);
21        }
22        if let Some(driver_opts) = options.driver_opts {
23            query.append_pair("driveropts", &driver_opts);
24        }
25        if let Some(labels) = options.labels {
26            query.append_pair("labels", &labels);
27        }
28        let query_string = query.finish();
29
30        let (_, data) = self
31            .send_request::<_, (), _>(SendRequestOptions {
32                method: "POST",
33                path: &["/libpod/secrets/create?", &query_string].concat(),
34                header: None,
35                body: options.secret.to_owned(),
36            })
37            .await?;
38
39        Ok(data)
40    }
41}