docker_client_async/types/
mounts.rs1use derive_builder::Builder;
19use serde::{Deserialize, Serialize};
20use std::collections::HashMap;
21
22#[derive(Clone, Debug, Default, Deserialize, Serialize, Builder)]
29#[builder(default, setter(into))]
30pub struct MountPoint {
31 #[serde(rename = "Source")]
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub source: Option<String>,
36 #[serde(rename = "Destination")]
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub destination: Option<String>,
41 #[serde(rename = "RW")]
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub rw: Option<bool>,
45 #[serde(rename = "Name")]
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub name: Option<String>,
50 #[serde(rename = "Driver")]
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub driver: Option<String>,
54 #[serde(rename = "Type")]
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub mount_type: Option<MountType>,
58 #[serde(rename = "Mode", alias = "Relabel")]
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub mode: Option<String>,
64 #[serde(rename = "Propagation")]
69 #[serde(skip_serializing_if = "Option::is_none")]
70 pub propagation: Option<MountPropagation>,
71 #[serde(rename = "ID")]
74 #[serde(skip_serializing_if = "Option::is_none")]
75 pub id: Option<String>,
76 #[serde(rename = "Spec")]
78 #[serde(skip_serializing_if = "Option::is_none")]
79 pub spec: Option<Mount>,
80 #[serde(rename = "SkipMountpointCreation")]
85 #[serde(skip_serializing_if = "Option::is_none")]
86 pub skip_mountpoint_creation: Option<bool>,
87 #[serde(skip_serializing_if = "Option::is_none")]
91 pub active: Option<i32>,
92}
93
94#[derive(Clone, Debug, Deserialize, Serialize)]
95pub enum MountType {
96 #[serde(rename = "bind")]
98 TypeBind,
99 #[serde(rename = "volume")]
101 TypeVolume,
102 #[serde(rename = "tmpfs")]
104 TypeTmpfs,
105 #[serde(rename = "npipe")]
107 TypeNamedPipe,
108}
109
110#[derive(Clone, Debug, Deserialize, Serialize)]
112pub enum MountPropagation {
113 #[serde(rename = "rprivate")]
115 PropagationRPrivate,
116 #[serde(rename = "private")]
118 PropagationPrivate,
119 #[serde(rename = "rshared")]
121 PropagationRShared,
122 #[serde(rename = "shared")]
124 PropagationShared,
125 #[serde(rename = "rslave")]
127 PropagationRSlave,
128 #[serde(rename = "slave")]
130 PropagationSlave,
131}
132
133#[derive(Clone, Debug, Default, Deserialize, Serialize, Builder)]
135#[builder(default, setter(into))]
136pub struct Mount {
137 #[serde(rename = "Type")]
138 #[serde(skip_serializing_if = "Option::is_none")]
139 pub mount_type: Option<MountType>,
140 #[serde(rename = "Source")]
144 #[serde(skip_serializing_if = "Option::is_none")]
145 pub source: Option<String>,
146 #[serde(rename = "Target")]
147 #[serde(skip_serializing_if = "Option::is_none")]
148 pub target: Option<String>,
149 #[serde(rename = "ReadOnly")]
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub read_only: Option<bool>,
152 #[serde(rename = "Consistency")]
153 #[serde(skip_serializing_if = "Option::is_none")]
154 pub consistency: Option<MountConsistency>,
155 #[serde(rename = "BindOptions")]
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub bind_options: Option<MountBindOptions>,
158 #[serde(rename = "VolumeOptions")]
159 #[serde(skip_serializing_if = "Option::is_none")]
160 pub volume_options: Option<MountVolumeOptions>,
161 #[serde(rename = "TmpfsOptions")]
162 #[serde(skip_serializing_if = "Option::is_none")]
163 pub tmpfs_options: Option<MountTmpfsOptions>,
164}
165
166#[derive(Clone, Debug, Deserialize, Serialize)]
168pub enum MountConsistency {
169 #[serde(rename = "consistent")]
171 ConsistencyFull,
172 #[serde(rename = "cached")]
174 ConsistencyCached,
175 #[serde(rename = "delegated")]
177 ConsistencyDelegated,
178 #[serde(rename = "default")]
180 ConsistencyDefault,
181}
182
183#[derive(Clone, Debug, Default, Deserialize, Serialize, Builder)]
185#[builder(default, setter(into))]
186pub struct MountBindOptions {
187 #[serde(rename = "Propagation")]
188 #[serde(skip_serializing_if = "Option::is_none")]
189 pub propagation: Option<MountPropagation>,
190 #[serde(rename = "NonRecursive")]
191 #[serde(skip_serializing_if = "Option::is_none")]
192 pub non_recursive: Option<bool>,
193}
194
195#[derive(Clone, Debug, Default, Deserialize, Serialize, Builder)]
197#[builder(default, setter(into))]
198pub struct MountVolumeOptions {
199 #[serde(rename = "NoCopy")]
200 #[serde(skip_serializing_if = "Option::is_none")]
201 pub no_copy: Option<bool>,
202 #[serde(rename = "Labels")]
203 #[serde(skip_serializing_if = "Option::is_none")]
204 pub labels: Option<HashMap<String, String>>,
205 #[serde(rename = "DriverConfig")]
206 #[serde(skip_serializing_if = "Option::is_none")]
207 pub driver_config: Option<MountDriver>,
208}
209
210#[derive(Clone, Debug, Default, Deserialize, Serialize, Builder)]
212#[builder(default, setter(into))]
213pub struct MountDriver {
214 #[serde(rename = "Name")]
215 #[serde(skip_serializing_if = "Option::is_none")]
216 pub name: Option<String>,
217 #[serde(rename = "Options")]
218 #[serde(skip_serializing_if = "Option::is_none")]
219 pub options: Option<HashMap<String, String>>,
220}
221
222#[derive(Clone, Debug, Default, Deserialize, Serialize, Builder)]
224#[builder(default, setter(into))]
225pub struct MountTmpfsOptions {
226 #[serde(rename = "SizeBytes")]
235 #[serde(skip_serializing_if = "Option::is_none")]
236 pub size_bytes: Option<i64>,
237 #[serde(rename = "Mode")]
239 #[serde(skip_serializing_if = "Option::is_none")]
240 pub mode: Option<u32>,
241}