podman_rest_client/v5/models/
host_config.rs

1use serde::{Deserialize, Serialize};
2#[derive(Default, Debug, Serialize, Deserialize)]
3/// HostConfig the non-portable Config structure of a container.
4/// Here, "non-portable" means "dependent of the host we are running on".
5/// Portable information *should* appear in Config.
6pub struct HostConfig {
7    #[serde(rename = "Annotations")]
8    pub annotations: Option<std::collections::HashMap<String, String>>,
9    #[serde(rename = "AutoRemove")]
10    pub auto_remove: Option<bool>,
11    /// Applicable to all platforms
12    #[serde(rename = "Binds")]
13    pub binds: Option<Vec<String>>,
14    #[serde(rename = "BlkioDeviceReadBps")]
15    pub blkio_device_read_bps: Option<Vec<crate::v5::models::ThrottleDevice>>,
16    #[serde(rename = "BlkioDeviceReadIOps")]
17    pub blkio_device_read_i_ops: Option<Vec<crate::v5::models::ThrottleDevice>>,
18    #[serde(rename = "BlkioDeviceWriteBps")]
19    pub blkio_device_write_bps: Option<Vec<crate::v5::models::ThrottleDevice>>,
20    #[serde(rename = "BlkioDeviceWriteIOps")]
21    pub blkio_device_write_i_ops: Option<Vec<crate::v5::models::ThrottleDevice>>,
22    #[serde(rename = "BlkioWeight")]
23    pub blkio_weight: Option<u16>,
24    #[serde(rename = "BlkioWeightDevice")]
25    pub blkio_weight_device: Option<Vec<crate::v5::models::WeightDevice>>,
26    #[serde(rename = "CapAdd")]
27    pub cap_add: Option<Vec<String>>,
28    #[serde(rename = "CapDrop")]
29    pub cap_drop: Option<Vec<String>>,
30    #[serde(rename = "Cgroup")]
31    pub cgroup: Option<String>,
32    /// Applicable to UNIX platforms
33    #[serde(rename = "CgroupParent")]
34    pub cgroup_parent: Option<String>,
35    #[serde(rename = "CgroupnsMode")]
36    pub cgroupns_mode: Option<String>,
37    #[serde(rename = "ConsoleSize")]
38    pub console_size: Option<Vec<u64>>,
39    #[serde(rename = "ContainerIDFile")]
40    pub container_id_file: Option<String>,
41    /// Applicable to Windows
42    #[serde(rename = "CpuCount")]
43    pub cpu_count: Option<i64>,
44    #[serde(rename = "CpuPercent")]
45    pub cpu_percent: Option<i64>,
46    #[serde(rename = "CpuPeriod")]
47    pub cpu_period: Option<i64>,
48    #[serde(rename = "CpuQuota")]
49    pub cpu_quota: Option<i64>,
50    #[serde(rename = "CpuRealtimePeriod")]
51    pub cpu_realtime_period: Option<i64>,
52    #[serde(rename = "CpuRealtimeRuntime")]
53    pub cpu_realtime_runtime: Option<i64>,
54    /// Applicable to all platforms
55    #[serde(rename = "CpuShares")]
56    pub cpu_shares: Option<i64>,
57    #[serde(rename = "CpusetCpus")]
58    pub cpuset_cpus: Option<String>,
59    #[serde(rename = "CpusetMems")]
60    pub cpuset_mems: Option<String>,
61    #[serde(rename = "DeviceCgroupRules")]
62    pub device_cgroup_rules: Option<Vec<String>>,
63    #[serde(rename = "DeviceRequests")]
64    pub device_requests: Option<Vec<crate::v5::models::DeviceRequest>>,
65    #[serde(rename = "Devices")]
66    pub devices: Option<Vec<crate::v5::models::DeviceMapping>>,
67    #[serde(rename = "Dns")]
68    pub dns: Option<Vec<String>>,
69    #[serde(rename = "DnsOptions")]
70    pub dns_options: Option<Vec<String>>,
71    #[serde(rename = "DnsSearch")]
72    pub dns_search: Option<Vec<String>>,
73    #[serde(rename = "ExtraHosts")]
74    pub extra_hosts: Option<Vec<String>>,
75    #[serde(rename = "GroupAdd")]
76    pub group_add: Option<Vec<String>>,
77    #[serde(rename = "IOMaximumBandwidth")]
78    pub io_maximum_bandwidth: Option<u64>,
79    #[serde(rename = "IOMaximumIOps")]
80    pub io_maximum_i_ops: Option<u64>,
81    /// Run a custom init inside the container, if null, use the daemon's configured settings
82    #[serde(rename = "Init")]
83    pub init: Option<bool>,
84    #[serde(rename = "IpcMode")]
85    pub ipc_mode: Option<String>,
86    #[serde(rename = "Isolation")]
87    pub isolation: Option<String>,
88    /// KernelMemory specifies the kernel memory limit (in bytes) for the container.
89    /// Deprecated: kernel 5.4 deprecated kmem.limit_in_bytes.
90    #[serde(rename = "KernelMemory")]
91    pub kernel_memory: Option<i64>,
92    #[serde(rename = "KernelMemoryTCP")]
93    pub kernel_memory_tcp: Option<i64>,
94    #[serde(rename = "Links")]
95    pub links: Option<Vec<String>>,
96    #[serde(rename = "LogConfig")]
97    pub log_config: Option<crate::v5::models::LogConfig>,
98    /// MaskedPaths is the list of paths to be masked inside the container (this overrides the default set of paths)
99    #[serde(rename = "MaskedPaths")]
100    pub masked_paths: Option<Vec<String>>,
101    #[serde(rename = "Memory")]
102    pub memory: Option<i64>,
103    #[serde(rename = "MemoryReservation")]
104    pub memory_reservation: Option<i64>,
105    #[serde(rename = "MemorySwap")]
106    pub memory_swap: Option<i64>,
107    #[serde(rename = "MemorySwappiness")]
108    pub memory_swappiness: Option<i64>,
109    /// Mounts specs used by the container
110    #[serde(rename = "Mounts")]
111    pub mounts: Option<Vec<crate::v5::models::Mount>>,
112    #[serde(rename = "NanoCpus")]
113    pub nano_cpus: Option<i64>,
114    #[serde(rename = "NetworkMode")]
115    pub network_mode: Option<String>,
116    #[serde(rename = "OomKillDisable")]
117    pub oom_kill_disable: Option<bool>,
118    #[serde(rename = "OomScoreAdj")]
119    pub oom_score_adj: Option<i64>,
120    #[serde(rename = "PidMode")]
121    pub pid_mode: Option<String>,
122    #[serde(rename = "PidsLimit")]
123    pub pids_limit: Option<i64>,
124    #[serde(rename = "PortBindings")]
125    pub port_bindings:
126        Option<std::collections::HashMap<String, Vec<crate::v5::models::PortBinding>>>,
127    #[serde(rename = "Privileged")]
128    pub privileged: Option<bool>,
129    #[serde(rename = "PublishAllPorts")]
130    pub publish_all_ports: Option<bool>,
131    /// ReadonlyPaths is the list of paths to be set as read-only inside the container (this overrides the default set of paths)
132    #[serde(rename = "ReadonlyPaths")]
133    pub readonly_paths: Option<Vec<String>>,
134    #[serde(rename = "ReadonlyRootfs")]
135    pub readonly_rootfs: Option<bool>,
136    #[serde(rename = "RestartPolicy")]
137    pub restart_policy: Option<crate::v5::models::RestartPolicy>,
138    #[serde(rename = "Runtime")]
139    pub runtime: Option<String>,
140    #[serde(rename = "SecurityOpt")]
141    pub security_opt: Option<Vec<String>>,
142    #[serde(rename = "ShmSize")]
143    pub shm_size: Option<i64>,
144    #[serde(rename = "StorageOpt")]
145    pub storage_opt: Option<std::collections::HashMap<String, String>>,
146    #[serde(rename = "Sysctls")]
147    pub sysctls: Option<std::collections::HashMap<String, String>>,
148    #[serde(rename = "Tmpfs")]
149    pub tmpfs: Option<std::collections::HashMap<String, String>>,
150    #[serde(rename = "UTSMode")]
151    pub uts_mode: Option<String>,
152    #[serde(rename = "Ulimits")]
153    pub ulimits: Option<Vec<crate::v5::models::Ulimit>>,
154    #[serde(rename = "UsernsMode")]
155    pub userns_mode: Option<String>,
156    #[serde(rename = "VolumeDriver")]
157    pub volume_driver: Option<String>,
158    #[serde(rename = "VolumesFrom")]
159    pub volumes_from: Option<Vec<String>>,
160}