podman_client/containers/
update_configuration.rs1use http_body_util::Full;
2use hyper::body::Bytes;
3use url::form_urlencoded;
4
5use crate::{
6 client::Client,
7 models::{
8 connection::SendRequestOptions,
9 lib::Error,
10 podman::containers::update_configuration::{
11 ContainerUpdateConfiguration, ContainerUpdateConfigurationOptions,
12 },
13 },
14};
15
16impl Client {
17 pub async fn container_update_configuration(
18 &self,
19 options: ContainerUpdateConfigurationOptions<'_>,
20 ) -> Result<ContainerUpdateConfiguration, Error> {
21 let mut path = ["/libpod/containers/", options.name, "/update"].concat();
22
23 let mut query = form_urlencoded::Serializer::new(String::new());
24 if let Some(restart_policy) = options.restart_policy {
25 query.append_pair("restartPolicy", restart_policy);
26 }
27 if let Some(restart_retries) = options.restart_retries {
28 query.append_pair(
29 "restartRetries",
30 itoa::Buffer::new().format(restart_retries),
31 );
32 }
33 let query_string = query.finish();
34 if !query_string.is_empty() {
35 path += &["?", &query_string].concat();
36 }
37
38 let (_, data) = self
39 .send_request::<_, (), _>(SendRequestOptions {
40 method: "POST",
41 path: &path,
42 header: None,
43 body: Full::new(Bytes::from(serde_json::to_string(&options.request)?)),
44 })
45 .await?;
46
47 Ok(data)
48 }
49}