podman_client/models/podman/containers/
update_configuration.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5use crate::models::podman::common::{
6    blkio_weight_device::BlkioWeightDevice,
7    linux_device_cgroup::LinuxDeviceCgroup,
8    linux_resources::{
9        LinuxResourcesBlockIo, LinuxResourcesCpu, LinuxResourcesHugepageLimit,
10        LinuxResourcesMemory, LinuxResourcesNetwork, LinuxResourcesPids, LinuxResourcesRdma,
11    },
12};
13
14#[derive(Default)]
15pub struct ContainerUpdateConfigurationOptions<'a> {
16    pub name: &'a str,
17    pub restart_policy: Option<&'a str>,
18    pub restart_retries: Option<i64>,
19    pub request: Option<ContainerUpdateConfigurationRequest>,
20}
21
22#[derive(Serialize, Default)]
23pub struct ContainerUpdateConfigurationRequest {
24    #[serde(rename = "BlkIOWeightDevice")]
25    pub blkio_weight_device: Option<Vec<BlkioWeightDevice>>,
26    #[serde(rename = "blockIO")]
27    pub block_io: Option<LinuxResourcesBlockIo>,
28    pub cpu: Option<LinuxResourcesCpu>,
29    #[serde(rename = "DeviceReadBPs")]
30    pub device_read_bps: Option<Vec<ContainerUpdateConfigurationRequestThrottleDevice>>,
31    #[serde(rename = "DeviceReadIOPs")]
32    pub device_read_iops: Option<Vec<ContainerUpdateConfigurationRequestThrottleDevice>>,
33    pub devices: Option<Vec<LinuxDeviceCgroup>>,
34    #[serde(rename = "DeviceWriteBPs")]
35    pub device_write_bps: Option<Vec<ContainerUpdateConfigurationRequestThrottleDevice>>,
36    #[serde(rename = "DeviceWriteIOPs")]
37    pub device_write_iops: Option<Vec<ContainerUpdateConfigurationRequestThrottleDevice>>,
38    #[serde(rename = "Env")]
39    pub env: Option<Vec<String>>,
40    pub health_cmd: Option<String>,
41    pub health_interval: Option<String>,
42    pub health_log_destination: Option<String>,
43    pub health_max_log_count: Option<u64>,
44    pub health_max_log_size: Option<u64>,
45    pub health_on_failure: Option<String>,
46    pub health_retries: Option<u64>,
47    pub health_start_period: Option<String>,
48    pub health_startup_cmd: Option<String>,
49    pub health_startup_interval: Option<String>,
50    pub health_startup_retries: Option<u64>,
51    pub health_startup_success: Option<u64>,
52    pub health_startup_timeout: Option<String>,
53    pub health_timeout: Option<String>,
54    #[serde(rename = "hugepageLimits")]
55    pub hugepage_limits: Option<Vec<LinuxResourcesHugepageLimit>>,
56    pub memory: Option<LinuxResourcesMemory>,
57    pub network: Option<LinuxResourcesNetwork>,
58    pub no_healthcheck: Option<bool>,
59    pub pids: Option<LinuxResourcesPids>,
60    pub rdma: Option<HashMap<String, LinuxResourcesRdma>>,
61    pub unified: Option<HashMap<String, String>>,
62    #[serde(rename = "UnsetEnv")]
63    pub unset_env: Option<Vec<String>>,
64}
65
66#[derive(Serialize)]
67pub struct ContainerUpdateConfigurationRequestThrottleDevice {
68    pub path: String,
69    pub rate: u64,
70}
71
72#[derive(Deserialize, Serialize)]
73#[serde(rename_all = "UPPERCASE")]
74pub struct ContainerUpdateConfiguration {
75    pub id: String,
76}