1#![allow(
2 unused_imports,
3 unused_qualifications,
4 unused_extern_crates,
5 clippy::all
6)]
7
8#[cfg(feature = "buildkit")]
9use prost::Message;
10use serde::de::{DeserializeOwned, Deserializer};
11use serde::ser::Serializer;
12use serde::{Deserialize, Serialize};
13use serde_repr::{Serialize_repr, Deserialize_repr};
14
15use std::cmp::Eq;
16use std::collections::HashMap;
17use std::default::Default;
18use std::hash::Hash;
19
20fn deserialize_nonoptional_vec<'de, D: Deserializer<'de>, T: DeserializeOwned>(
21 d: D,
22) -> Result<Vec<T>, D::Error> {
23 serde::Deserialize::deserialize(d).map(|x: Option<_>| x.unwrap_or(Vec::new()))
24}
25
26fn deserialize_nonoptional_map<'de, D: Deserializer<'de>, T: DeserializeOwned>(
27 d: D,
28) -> Result<HashMap<String, T>, D::Error> {
29 serde::Deserialize::deserialize(d).map(|x: Option<_>| x.unwrap_or(HashMap::new()))
30}
31
32#[cfg(feature = "time")]
33pub type BollardDate = time::OffsetDateTime;
34#[cfg(all(feature = "chrono", not(feature = "time")))]
35pub type BollardDate = chrono::DateTime<chrono::Utc>;
36#[cfg(not(any(feature = "chrono", feature = "time")))]
37pub type BollardDate = String;
38
39#[cfg(feature = "time")]
40fn deserialize_timestamp<'de, D: Deserializer<'de>>(
41 d: D
42) -> Result<Option<BollardDate>, D::Error> {
43 let opt: Option<String> = serde::Deserialize::deserialize(d)?;
44 if let Some(s) = opt {
45 Ok(Some(
46 time::OffsetDateTime::parse(&s, &time::format_description::well_known::Rfc3339)
47 .map_err(|e| serde::de::Error::custom(format!("{:?}", e)))?,
48 ))
49 } else {
50 Ok(None)
51 }
52}
53
54#[cfg(not(feature = "time"))]
55fn deserialize_timestamp<'de, D: Deserializer<'de>>(
56 d: D
57) -> Result<Option<BollardDate>, D::Error> {
58 serde::Deserialize::deserialize(d)
59}
60
61#[cfg(feature = "time")]
62fn serialize_timestamp<S: Serializer>(date: &Option<BollardDate>, s: S) -> Result<S::Ok, S::Error> {
63 match date {
64 Some(inner) => Ok(s.serialize_str(&inner.format(&time::format_description::well_known::Rfc3339)
65 .map_err(|e| serde::ser::Error::custom(format!("{:?}", e)))?)?),
66 None => Ok(s.serialize_str("")?)
67 }
68}
69
70#[cfg(not(feature = "time"))]
71fn serialize_timestamp<S: Serializer>(date: &Option<BollardDate>, s: S) -> Result<S::Ok, S::Error> {
72 match date {
73 Some(inner) => s.serialize_some(inner),
74 None => s.serialize_none()
75 }
76}
77
78#[cfg(feature = "buildkit")]
79fn deserialize_buildinfo_aux<'de, D: Deserializer<'de>>(
80 d: D,
81) -> Result<crate::moby::buildkit::v1::StatusResponse, D::Error> {
82 let aux: String = serde::Deserialize::deserialize(d)?;
83 let raw = base64::Engine::decode(&base64::engine::general_purpose::STANDARD, &aux)
84 .map_err(|e| serde::de::Error::custom(format!("{:?}", e)))?;
85 let buf = bytes::BytesMut::from(&raw[..]);
86
87 let res = crate::moby::buildkit::v1::StatusResponse::decode(buf)
88 .map_err(|e| serde::de::Error::custom(format!("{:?}", e)))?;
89 Ok(res)
90}
91
92#[cfg(feature = "buildkit")]
93#[derive(Debug, Clone, PartialEq, Deserialize)]
94#[serde(untagged)]
95pub enum BuildInfoAux {
96 #[serde(deserialize_with = "deserialize_buildinfo_aux")]
97 BuildKit(crate::moby::buildkit::v1::StatusResponse),
98 Default(ImageId)
99}
100
101
102#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
104pub struct Address {
105 #[serde(rename = "Addr")]
107 #[serde(skip_serializing_if = "Option::is_none")]
108 pub addr: Option<String>,
109
110 #[serde(rename = "PrefixLen")]
112 #[serde(skip_serializing_if = "Option::is_none")]
113 pub prefix_len: Option<i64>,
114
115}
116
117#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
118pub struct AuthConfig {
119 #[serde(rename = "username")]
120 #[serde(skip_serializing_if = "Option::is_none")]
121 pub username: Option<String>,
122
123 #[serde(rename = "password")]
124 #[serde(skip_serializing_if = "Option::is_none")]
125 pub password: Option<String>,
126
127 #[serde(rename = "email")]
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub email: Option<String>,
130
131 #[serde(rename = "serveraddress")]
132 #[serde(skip_serializing_if = "Option::is_none")]
133 pub serveraddress: Option<String>,
134
135}
136
137#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
139pub struct Body {
140 #[serde(rename = "Spec")]
141 #[serde(skip_serializing_if = "Option::is_none")]
142 pub spec: Option<ClusterVolumeSpec>,
143
144}
145
146#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
148pub struct BuildCache {
149 #[serde(rename = "ID")]
151 #[serde(skip_serializing_if = "Option::is_none")]
152 pub id: Option<String>,
153
154 #[serde(rename = "Parent")]
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub parent: Option<String>,
158
159 #[serde(rename = "Parents")]
161 #[serde(skip_serializing_if = "Option::is_none")]
162 pub parents: Option<Vec<String>>,
163
164 #[serde(rename = "Type")]
166 #[serde(skip_serializing_if = "Option::is_none")]
167 pub typ: Option<BuildCacheTypeEnum>,
168
169 #[serde(rename = "Description")]
171 #[serde(skip_serializing_if = "Option::is_none")]
172 pub description: Option<String>,
173
174 #[serde(rename = "InUse")]
176 #[serde(skip_serializing_if = "Option::is_none")]
177 pub in_use: Option<bool>,
178
179 #[serde(rename = "Shared")]
181 #[serde(skip_serializing_if = "Option::is_none")]
182 pub shared: Option<bool>,
183
184 #[serde(rename = "Size")]
186 #[serde(skip_serializing_if = "Option::is_none")]
187 pub size: Option<i64>,
188
189 #[serde(rename = "CreatedAt")]
191 #[serde(skip_serializing_if = "Option::is_none")]
192 #[serde(
193 default,
194 deserialize_with = "deserialize_timestamp",
195 serialize_with = "serialize_timestamp"
196 )]
197 pub created_at: Option<BollardDate>,
198
199 #[serde(rename = "LastUsedAt")]
201 #[serde(skip_serializing_if = "Option::is_none")]
202 #[serde(
203 default,
204 deserialize_with = "deserialize_timestamp",
205 serialize_with = "serialize_timestamp"
206 )]
207 pub last_used_at: Option<BollardDate>,
208
209 #[serde(rename = "UsageCount")]
210 #[serde(skip_serializing_if = "Option::is_none")]
211 pub usage_count: Option<i64>,
212
213}
214
215#[allow(non_camel_case_types)]
216#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
217pub enum BuildCacheTypeEnum {
218 #[serde(rename = "")]
219 EMPTY,
220 #[serde(rename = "internal")]
221 INTERNAL,
222 #[serde(rename = "frontend")]
223 FRONTEND,
224 #[serde(rename = "source.local")]
225 SOURCE_LOCAL,
226 #[serde(rename = "source.git.checkout")]
227 SOURCE_GIT_CHECKOUT,
228 #[serde(rename = "exec.cachemount")]
229 EXEC_CACHEMOUNT,
230 #[serde(rename = "regular")]
231 REGULAR,
232}
233
234impl ::std::fmt::Display for BuildCacheTypeEnum {
235 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
236 match *self {
237 BuildCacheTypeEnum::EMPTY => write!(f, ""),
238 BuildCacheTypeEnum::INTERNAL => write!(f, "{}", "internal"),
239 BuildCacheTypeEnum::FRONTEND => write!(f, "{}", "frontend"),
240 BuildCacheTypeEnum::SOURCE_LOCAL => write!(f, "{}", "source.local"),
241 BuildCacheTypeEnum::SOURCE_GIT_CHECKOUT => write!(f, "{}", "source.git.checkout"),
242 BuildCacheTypeEnum::EXEC_CACHEMOUNT => write!(f, "{}", "exec.cachemount"),
243 BuildCacheTypeEnum::REGULAR => write!(f, "{}", "regular"),
244
245 }
246 }
247}
248
249impl ::std::str::FromStr for BuildCacheTypeEnum {
250 type Err = String;
251 fn from_str(s: &str) -> Result<Self, Self::Err> {
252 match s {
253 "" => Ok(BuildCacheTypeEnum::EMPTY),
254 "internal" => Ok(BuildCacheTypeEnum::INTERNAL),
255 "frontend" => Ok(BuildCacheTypeEnum::FRONTEND),
256 "source.local" => Ok(BuildCacheTypeEnum::SOURCE_LOCAL),
257 "source.git.checkout" => Ok(BuildCacheTypeEnum::SOURCE_GIT_CHECKOUT),
258 "exec.cachemount" => Ok(BuildCacheTypeEnum::EXEC_CACHEMOUNT),
259 "regular" => Ok(BuildCacheTypeEnum::REGULAR),
260 x => Err(format!("Invalid enum type: {}", x)),
261 }
262 }
263}
264
265impl ::std::convert::AsRef<str> for BuildCacheTypeEnum {
266 fn as_ref(&self) -> &str {
267 match self {
268 BuildCacheTypeEnum::EMPTY => "",
269 BuildCacheTypeEnum::INTERNAL => "internal",
270 BuildCacheTypeEnum::FRONTEND => "frontend",
271 BuildCacheTypeEnum::SOURCE_LOCAL => "source.local",
272 BuildCacheTypeEnum::SOURCE_GIT_CHECKOUT => "source.git.checkout",
273 BuildCacheTypeEnum::EXEC_CACHEMOUNT => "exec.cachemount",
274 BuildCacheTypeEnum::REGULAR => "regular",
275 }
276 }
277}
278
279#[derive(Debug, Clone, Default, PartialEq, Deserialize)]
280pub struct BuildInfo {
281 #[serde(rename = "id")]
282 #[serde(skip_serializing_if = "Option::is_none")]
283 pub id: Option<String>,
284
285 #[serde(rename = "stream")]
286 #[serde(skip_serializing_if = "Option::is_none")]
287 pub stream: Option<String>,
288
289 #[serde(rename = "error")]
291 #[serde(skip_serializing_if = "Option::is_none")]
292 pub error: Option<String>,
293
294 #[serde(rename = "errorDetail")]
295 #[serde(skip_serializing_if = "Option::is_none")]
296 pub error_detail: Option<ErrorDetail>,
297
298 #[serde(rename = "status")]
299 #[serde(skip_serializing_if = "Option::is_none")]
300 pub status: Option<String>,
301
302 #[serde(rename = "progress")]
304 #[serde(skip_serializing_if = "Option::is_none")]
305 pub progress: Option<String>,
306
307 #[serde(rename = "progressDetail")]
308 #[serde(skip_serializing_if = "Option::is_none")]
309 pub progress_detail: Option<ProgressDetail>,
310
311 #[serde(rename = "aux")]
312 #[serde(skip_serializing_if = "Option::is_none")]
313 #[cfg(feature = "buildkit")]
314 pub aux: Option<BuildInfoAux>,
315
316 #[serde(rename = "aux")]
317 #[serde(skip_serializing_if = "Option::is_none")]
318 #[cfg(not(feature = "buildkit"))]
319 pub aux: Option<ImageId>,
320
321}
322
323#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
324pub struct BuildPruneResponse {
325 #[serde(rename = "CachesDeleted")]
326 #[serde(skip_serializing_if = "Option::is_none")]
327 pub caches_deleted: Option<Vec<String>>,
328
329 #[serde(rename = "SpaceReclaimed")]
331 #[serde(skip_serializing_if = "Option::is_none")]
332 pub space_reclaimed: Option<i64>,
333
334}
335
336#[allow(non_camel_case_types)]
341#[repr(i32)]
342#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize_repr, Deserialize_repr, Eq, Ord)]
343pub enum ChangeType {
344 _0 = 0,
345 _1 = 1,
346 _2 = 2,
347}
348
349impl ::std::fmt::Display for ChangeType {
350 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
351 match *self {
352 ChangeType::_0 => write!(f, "{}", 0),
353 ChangeType::_1 => write!(f, "{}", 1),
354 ChangeType::_2 => write!(f, "{}", 2),
355 }
356 }
357}
358
359impl std::default::Default for ChangeType {
360 fn default() -> Self {
361 ChangeType::_0
362 }
363}
364
365#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
367pub struct ClusterInfo {
368 #[serde(rename = "ID")]
370 #[serde(skip_serializing_if = "Option::is_none")]
371 pub id: Option<String>,
372
373 #[serde(rename = "Version")]
374 #[serde(skip_serializing_if = "Option::is_none")]
375 pub version: Option<ObjectVersion>,
376
377 #[serde(rename = "CreatedAt")]
379 #[serde(skip_serializing_if = "Option::is_none")]
380 #[serde(
381 default,
382 deserialize_with = "deserialize_timestamp",
383 serialize_with = "serialize_timestamp"
384 )]
385 pub created_at: Option<BollardDate>,
386
387 #[serde(rename = "UpdatedAt")]
389 #[serde(skip_serializing_if = "Option::is_none")]
390 #[serde(
391 default,
392 deserialize_with = "deserialize_timestamp",
393 serialize_with = "serialize_timestamp"
394 )]
395 pub updated_at: Option<BollardDate>,
396
397 #[serde(rename = "Spec")]
398 #[serde(skip_serializing_if = "Option::is_none")]
399 pub spec: Option<SwarmSpec>,
400
401 #[serde(rename = "TLSInfo")]
402 #[serde(skip_serializing_if = "Option::is_none")]
403 pub tls_info: Option<TlsInfo>,
404
405 #[serde(rename = "RootRotationInProgress")]
407 #[serde(skip_serializing_if = "Option::is_none")]
408 pub root_rotation_in_progress: Option<bool>,
409
410 #[serde(rename = "DataPathPort")]
412 #[serde(skip_serializing_if = "Option::is_none")]
413 pub data_path_port: Option<u32>,
414
415 #[serde(rename = "DefaultAddrPool")]
417 #[serde(skip_serializing_if = "Option::is_none")]
418 pub default_addr_pool: Option<Vec<String>>,
419
420 #[serde(rename = "SubnetSize")]
422 #[serde(skip_serializing_if = "Option::is_none")]
423 pub subnet_size: Option<u32>,
424
425}
426
427#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
429pub struct ClusterVolume {
430 #[serde(rename = "ID")]
432 #[serde(skip_serializing_if = "Option::is_none")]
433 pub id: Option<String>,
434
435 #[serde(rename = "Version")]
436 #[serde(skip_serializing_if = "Option::is_none")]
437 pub version: Option<ObjectVersion>,
438
439 #[serde(rename = "CreatedAt")]
440 #[serde(skip_serializing_if = "Option::is_none")]
441 #[serde(
442 default,
443 deserialize_with = "deserialize_timestamp",
444 serialize_with = "serialize_timestamp"
445 )]
446 pub created_at: Option<BollardDate>,
447
448 #[serde(rename = "UpdatedAt")]
449 #[serde(skip_serializing_if = "Option::is_none")]
450 #[serde(
451 default,
452 deserialize_with = "deserialize_timestamp",
453 serialize_with = "serialize_timestamp"
454 )]
455 pub updated_at: Option<BollardDate>,
456
457 #[serde(rename = "Spec")]
458 #[serde(skip_serializing_if = "Option::is_none")]
459 pub spec: Option<ClusterVolumeSpec>,
460
461 #[serde(rename = "Info")]
462 #[serde(skip_serializing_if = "Option::is_none")]
463 pub info: Option<ClusterVolumeInfo>,
464
465 #[serde(rename = "PublishStatus")]
467 #[serde(skip_serializing_if = "Option::is_none")]
468 pub publish_status: Option<Vec<ClusterVolumePublishStatus>>,
469
470}
471
472#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
474pub struct ClusterVolumeInfo {
475 #[serde(rename = "CapacityBytes")]
477 #[serde(skip_serializing_if = "Option::is_none")]
478 pub capacity_bytes: Option<i64>,
479
480 #[serde(rename = "VolumeContext")]
482 #[serde(skip_serializing_if = "Option::is_none")]
483 pub volume_context: Option<HashMap<String, String>>,
484
485 #[serde(rename = "VolumeID")]
487 #[serde(skip_serializing_if = "Option::is_none")]
488 pub volume_id: Option<String>,
489
490 #[serde(rename = "AccessibleTopology")]
492 #[serde(skip_serializing_if = "Option::is_none")]
493 pub accessible_topology: Option<Vec<Topology>>,
494
495}
496
497#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
498pub struct ClusterVolumePublishStatus {
499 #[serde(rename = "NodeID")]
501 #[serde(skip_serializing_if = "Option::is_none")]
502 pub node_id: Option<String>,
503
504 #[serde(rename = "State")]
506 #[serde(skip_serializing_if = "Option::is_none")]
507 pub state: Option<ClusterVolumePublishStatusStateEnum>,
508
509 #[serde(rename = "PublishContext")]
511 #[serde(skip_serializing_if = "Option::is_none")]
512 pub publish_context: Option<HashMap<String, String>>,
513
514}
515
516#[allow(non_camel_case_types)]
517#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
518pub enum ClusterVolumePublishStatusStateEnum {
519 #[serde(rename = "")]
520 EMPTY,
521 #[serde(rename = "pending-publish")]
522 PENDING_PUBLISH,
523 #[serde(rename = "published")]
524 PUBLISHED,
525 #[serde(rename = "pending-node-unpublish")]
526 PENDING_NODE_UNPUBLISH,
527 #[serde(rename = "pending-controller-unpublish")]
528 PENDING_CONTROLLER_UNPUBLISH,
529}
530
531impl ::std::fmt::Display for ClusterVolumePublishStatusStateEnum {
532 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
533 match *self {
534 ClusterVolumePublishStatusStateEnum::EMPTY => write!(f, ""),
535 ClusterVolumePublishStatusStateEnum::PENDING_PUBLISH => write!(f, "{}", "pending-publish"),
536 ClusterVolumePublishStatusStateEnum::PUBLISHED => write!(f, "{}", "published"),
537 ClusterVolumePublishStatusStateEnum::PENDING_NODE_UNPUBLISH => write!(f, "{}", "pending-node-unpublish"),
538 ClusterVolumePublishStatusStateEnum::PENDING_CONTROLLER_UNPUBLISH => write!(f, "{}", "pending-controller-unpublish"),
539
540 }
541 }
542}
543
544impl ::std::str::FromStr for ClusterVolumePublishStatusStateEnum {
545 type Err = String;
546 fn from_str(s: &str) -> Result<Self, Self::Err> {
547 match s {
548 "" => Ok(ClusterVolumePublishStatusStateEnum::EMPTY),
549 "pending-publish" => Ok(ClusterVolumePublishStatusStateEnum::PENDING_PUBLISH),
550 "published" => Ok(ClusterVolumePublishStatusStateEnum::PUBLISHED),
551 "pending-node-unpublish" => Ok(ClusterVolumePublishStatusStateEnum::PENDING_NODE_UNPUBLISH),
552 "pending-controller-unpublish" => Ok(ClusterVolumePublishStatusStateEnum::PENDING_CONTROLLER_UNPUBLISH),
553 x => Err(format!("Invalid enum type: {}", x)),
554 }
555 }
556}
557
558impl ::std::convert::AsRef<str> for ClusterVolumePublishStatusStateEnum {
559 fn as_ref(&self) -> &str {
560 match self {
561 ClusterVolumePublishStatusStateEnum::EMPTY => "",
562 ClusterVolumePublishStatusStateEnum::PENDING_PUBLISH => "pending-publish",
563 ClusterVolumePublishStatusStateEnum::PUBLISHED => "published",
564 ClusterVolumePublishStatusStateEnum::PENDING_NODE_UNPUBLISH => "pending-node-unpublish",
565 ClusterVolumePublishStatusStateEnum::PENDING_CONTROLLER_UNPUBLISH => "pending-controller-unpublish",
566 }
567 }
568}
569
570#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
572pub struct ClusterVolumeSpec {
573 #[serde(rename = "Group")]
575 #[serde(skip_serializing_if = "Option::is_none")]
576 pub group: Option<String>,
577
578 #[serde(rename = "AccessMode")]
579 #[serde(skip_serializing_if = "Option::is_none")]
580 pub access_mode: Option<ClusterVolumeSpecAccessMode>,
581
582}
583
584#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
586pub struct ClusterVolumeSpecAccessMode {
587 #[serde(rename = "Scope")]
589 #[serde(skip_serializing_if = "Option::is_none")]
590 pub scope: Option<ClusterVolumeSpecAccessModeScopeEnum>,
591
592 #[serde(rename = "Sharing")]
594 #[serde(skip_serializing_if = "Option::is_none")]
595 pub sharing: Option<ClusterVolumeSpecAccessModeSharingEnum>,
596
597 #[serde(rename = "MountVolume")]
599 #[serde(skip_serializing_if = "Option::is_none")]
600 pub mount_volume: Option<HashMap<(), ()>>,
601
602 #[serde(rename = "Secrets")]
604 #[serde(skip_serializing_if = "Option::is_none")]
605 pub secrets: Option<Vec<ClusterVolumeSpecAccessModeSecrets>>,
606
607 #[serde(rename = "AccessibilityRequirements")]
608 #[serde(skip_serializing_if = "Option::is_none")]
609 pub accessibility_requirements: Option<ClusterVolumeSpecAccessModeAccessibilityRequirements>,
610
611 #[serde(rename = "CapacityRange")]
612 #[serde(skip_serializing_if = "Option::is_none")]
613 pub capacity_range: Option<ClusterVolumeSpecAccessModeCapacityRange>,
614
615 #[serde(rename = "Availability")]
617 #[serde(skip_serializing_if = "Option::is_none")]
618 pub availability: Option<ClusterVolumeSpecAccessModeAvailabilityEnum>,
619
620}
621
622#[allow(non_camel_case_types)]
623#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
624pub enum ClusterVolumeSpecAccessModeScopeEnum {
625 #[serde(rename = "")]
626 EMPTY,
627 #[serde(rename = "single")]
628 SINGLE,
629 #[serde(rename = "multi")]
630 MULTI,
631}
632
633impl ::std::fmt::Display for ClusterVolumeSpecAccessModeScopeEnum {
634 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
635 match *self {
636 ClusterVolumeSpecAccessModeScopeEnum::EMPTY => write!(f, ""),
637 ClusterVolumeSpecAccessModeScopeEnum::SINGLE => write!(f, "{}", "single"),
638 ClusterVolumeSpecAccessModeScopeEnum::MULTI => write!(f, "{}", "multi"),
639
640 }
641 }
642}
643
644impl ::std::str::FromStr for ClusterVolumeSpecAccessModeScopeEnum {
645 type Err = String;
646 fn from_str(s: &str) -> Result<Self, Self::Err> {
647 match s {
648 "" => Ok(ClusterVolumeSpecAccessModeScopeEnum::EMPTY),
649 "single" => Ok(ClusterVolumeSpecAccessModeScopeEnum::SINGLE),
650 "multi" => Ok(ClusterVolumeSpecAccessModeScopeEnum::MULTI),
651 x => Err(format!("Invalid enum type: {}", x)),
652 }
653 }
654}
655
656impl ::std::convert::AsRef<str> for ClusterVolumeSpecAccessModeScopeEnum {
657 fn as_ref(&self) -> &str {
658 match self {
659 ClusterVolumeSpecAccessModeScopeEnum::EMPTY => "",
660 ClusterVolumeSpecAccessModeScopeEnum::SINGLE => "single",
661 ClusterVolumeSpecAccessModeScopeEnum::MULTI => "multi",
662 }
663 }
664}
665
666#[allow(non_camel_case_types)]
667#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
668pub enum ClusterVolumeSpecAccessModeSharingEnum {
669 #[serde(rename = "")]
670 EMPTY,
671 #[serde(rename = "none")]
672 NONE,
673 #[serde(rename = "readonly")]
674 READONLY,
675 #[serde(rename = "onewriter")]
676 ONEWRITER,
677 #[serde(rename = "all")]
678 ALL,
679}
680
681impl ::std::fmt::Display for ClusterVolumeSpecAccessModeSharingEnum {
682 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
683 match *self {
684 ClusterVolumeSpecAccessModeSharingEnum::EMPTY => write!(f, ""),
685 ClusterVolumeSpecAccessModeSharingEnum::NONE => write!(f, "{}", "none"),
686 ClusterVolumeSpecAccessModeSharingEnum::READONLY => write!(f, "{}", "readonly"),
687 ClusterVolumeSpecAccessModeSharingEnum::ONEWRITER => write!(f, "{}", "onewriter"),
688 ClusterVolumeSpecAccessModeSharingEnum::ALL => write!(f, "{}", "all"),
689
690 }
691 }
692}
693
694impl ::std::str::FromStr for ClusterVolumeSpecAccessModeSharingEnum {
695 type Err = String;
696 fn from_str(s: &str) -> Result<Self, Self::Err> {
697 match s {
698 "" => Ok(ClusterVolumeSpecAccessModeSharingEnum::EMPTY),
699 "none" => Ok(ClusterVolumeSpecAccessModeSharingEnum::NONE),
700 "readonly" => Ok(ClusterVolumeSpecAccessModeSharingEnum::READONLY),
701 "onewriter" => Ok(ClusterVolumeSpecAccessModeSharingEnum::ONEWRITER),
702 "all" => Ok(ClusterVolumeSpecAccessModeSharingEnum::ALL),
703 x => Err(format!("Invalid enum type: {}", x)),
704 }
705 }
706}
707
708impl ::std::convert::AsRef<str> for ClusterVolumeSpecAccessModeSharingEnum {
709 fn as_ref(&self) -> &str {
710 match self {
711 ClusterVolumeSpecAccessModeSharingEnum::EMPTY => "",
712 ClusterVolumeSpecAccessModeSharingEnum::NONE => "none",
713 ClusterVolumeSpecAccessModeSharingEnum::READONLY => "readonly",
714 ClusterVolumeSpecAccessModeSharingEnum::ONEWRITER => "onewriter",
715 ClusterVolumeSpecAccessModeSharingEnum::ALL => "all",
716 }
717 }
718}
719
720#[allow(non_camel_case_types)]
721#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
722pub enum ClusterVolumeSpecAccessModeAvailabilityEnum {
723 #[serde(rename = "")]
724 EMPTY,
725 #[serde(rename = "active")]
726 ACTIVE,
727 #[serde(rename = "pause")]
728 PAUSE,
729 #[serde(rename = "drain")]
730 DRAIN,
731}
732
733impl ::std::fmt::Display for ClusterVolumeSpecAccessModeAvailabilityEnum {
734 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
735 match *self {
736 ClusterVolumeSpecAccessModeAvailabilityEnum::EMPTY => write!(f, ""),
737 ClusterVolumeSpecAccessModeAvailabilityEnum::ACTIVE => write!(f, "{}", "active"),
738 ClusterVolumeSpecAccessModeAvailabilityEnum::PAUSE => write!(f, "{}", "pause"),
739 ClusterVolumeSpecAccessModeAvailabilityEnum::DRAIN => write!(f, "{}", "drain"),
740
741 }
742 }
743}
744
745impl ::std::str::FromStr for ClusterVolumeSpecAccessModeAvailabilityEnum {
746 type Err = String;
747 fn from_str(s: &str) -> Result<Self, Self::Err> {
748 match s {
749 "" => Ok(ClusterVolumeSpecAccessModeAvailabilityEnum::EMPTY),
750 "active" => Ok(ClusterVolumeSpecAccessModeAvailabilityEnum::ACTIVE),
751 "pause" => Ok(ClusterVolumeSpecAccessModeAvailabilityEnum::PAUSE),
752 "drain" => Ok(ClusterVolumeSpecAccessModeAvailabilityEnum::DRAIN),
753 x => Err(format!("Invalid enum type: {}", x)),
754 }
755 }
756}
757
758impl ::std::convert::AsRef<str> for ClusterVolumeSpecAccessModeAvailabilityEnum {
759 fn as_ref(&self) -> &str {
760 match self {
761 ClusterVolumeSpecAccessModeAvailabilityEnum::EMPTY => "",
762 ClusterVolumeSpecAccessModeAvailabilityEnum::ACTIVE => "active",
763 ClusterVolumeSpecAccessModeAvailabilityEnum::PAUSE => "pause",
764 ClusterVolumeSpecAccessModeAvailabilityEnum::DRAIN => "drain",
765 }
766 }
767}
768
769#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
771pub struct ClusterVolumeSpecAccessModeAccessibilityRequirements {
772 #[serde(rename = "Requisite")]
774 #[serde(skip_serializing_if = "Option::is_none")]
775 pub requisite: Option<Vec<Topology>>,
776
777 #[serde(rename = "Preferred")]
779 #[serde(skip_serializing_if = "Option::is_none")]
780 pub preferred: Option<Vec<Topology>>,
781
782}
783
784#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
786pub struct ClusterVolumeSpecAccessModeCapacityRange {
787 #[serde(rename = "RequiredBytes")]
789 #[serde(skip_serializing_if = "Option::is_none")]
790 pub required_bytes: Option<i64>,
791
792 #[serde(rename = "LimitBytes")]
794 #[serde(skip_serializing_if = "Option::is_none")]
795 pub limit_bytes: Option<i64>,
796
797}
798
799#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
801pub struct ClusterVolumeSpecAccessModeSecrets {
802 #[serde(rename = "Key")]
804 #[serde(skip_serializing_if = "Option::is_none")]
805 pub key: Option<String>,
806
807 #[serde(rename = "Secret")]
809 #[serde(skip_serializing_if = "Option::is_none")]
810 pub secret: Option<String>,
811
812}
813
814#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
816pub struct Commit {
817 #[serde(rename = "ID")]
819 #[serde(skip_serializing_if = "Option::is_none")]
820 pub id: Option<String>,
821
822 #[serde(rename = "Expected")]
824 #[serde(skip_serializing_if = "Option::is_none")]
825 pub expected: Option<String>,
826
827}
828
829#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
830pub struct Config {
831 #[serde(rename = "ID")]
832 #[serde(skip_serializing_if = "Option::is_none")]
833 pub id: Option<String>,
834
835 #[serde(rename = "Version")]
836 #[serde(skip_serializing_if = "Option::is_none")]
837 pub version: Option<ObjectVersion>,
838
839 #[serde(rename = "CreatedAt")]
840 #[serde(skip_serializing_if = "Option::is_none")]
841 #[serde(
842 default,
843 deserialize_with = "deserialize_timestamp",
844 serialize_with = "serialize_timestamp"
845 )]
846 pub created_at: Option<BollardDate>,
847
848 #[serde(rename = "UpdatedAt")]
849 #[serde(skip_serializing_if = "Option::is_none")]
850 #[serde(
851 default,
852 deserialize_with = "deserialize_timestamp",
853 serialize_with = "serialize_timestamp"
854 )]
855 pub updated_at: Option<BollardDate>,
856
857 #[serde(rename = "Spec")]
858 #[serde(skip_serializing_if = "Option::is_none")]
859 pub spec: Option<ConfigSpec>,
860
861}
862
863#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
865pub struct ConfigReference {
866 #[serde(rename = "Network")]
868 #[serde(skip_serializing_if = "Option::is_none")]
869 pub network: Option<String>,
870
871}
872
873#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
874pub struct ConfigSpec {
875 #[serde(rename = "Name")]
877 #[serde(skip_serializing_if = "Option::is_none")]
878 pub name: Option<String>,
879
880 #[serde(rename = "Labels")]
882 #[serde(skip_serializing_if = "Option::is_none")]
883 pub labels: Option<HashMap<String, String>>,
884
885 #[serde(rename = "Data")]
887 #[serde(skip_serializing_if = "Option::is_none")]
888 pub data: Option<String>,
889
890 #[serde(rename = "Templating")]
892 #[serde(skip_serializing_if = "Option::is_none")]
893 pub templating: Option<Driver>,
894
895}
896
897#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
899pub struct ContainerBlkioStatEntry {
900 #[serde(rename = "major")]
901 #[serde(skip_serializing_if = "Option::is_none")]
902 pub major: Option<u64>,
903
904 #[serde(rename = "minor")]
905 #[serde(skip_serializing_if = "Option::is_none")]
906 pub minor: Option<u64>,
907
908 #[serde(rename = "op")]
909 #[serde(skip_serializing_if = "Option::is_none")]
910 pub op: Option<String>,
911
912 #[serde(rename = "value")]
913 #[serde(skip_serializing_if = "Option::is_none")]
914 pub value: Option<u64>,
915
916}
917
918#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
920pub struct ContainerBlkioStats {
921 #[serde(rename = "io_service_bytes_recursive")]
922 #[serde(skip_serializing_if = "Option::is_none")]
923 pub io_service_bytes_recursive: Option<Vec<ContainerBlkioStatEntry>>,
924
925 #[serde(rename = "io_serviced_recursive")]
927 #[serde(skip_serializing_if = "Option::is_none")]
928 pub io_serviced_recursive: Option<Vec<ContainerBlkioStatEntry>>,
929
930 #[serde(rename = "io_queue_recursive")]
932 #[serde(skip_serializing_if = "Option::is_none")]
933 pub io_queue_recursive: Option<Vec<ContainerBlkioStatEntry>>,
934
935 #[serde(rename = "io_service_time_recursive")]
937 #[serde(skip_serializing_if = "Option::is_none")]
938 pub io_service_time_recursive: Option<Vec<ContainerBlkioStatEntry>>,
939
940 #[serde(rename = "io_wait_time_recursive")]
942 #[serde(skip_serializing_if = "Option::is_none")]
943 pub io_wait_time_recursive: Option<Vec<ContainerBlkioStatEntry>>,
944
945 #[serde(rename = "io_merged_recursive")]
947 #[serde(skip_serializing_if = "Option::is_none")]
948 pub io_merged_recursive: Option<Vec<ContainerBlkioStatEntry>>,
949
950 #[serde(rename = "io_time_recursive")]
952 #[serde(skip_serializing_if = "Option::is_none")]
953 pub io_time_recursive: Option<Vec<ContainerBlkioStatEntry>>,
954
955 #[serde(rename = "sectors_recursive")]
957 #[serde(skip_serializing_if = "Option::is_none")]
958 pub sectors_recursive: Option<Vec<ContainerBlkioStatEntry>>,
959
960}
961
962#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
964pub struct ContainerConfig {
965 #[serde(rename = "Hostname")]
967 #[serde(skip_serializing_if = "Option::is_none")]
968 pub hostname: Option<String>,
969
970 #[serde(rename = "Domainname")]
972 #[serde(skip_serializing_if = "Option::is_none")]
973 pub domainname: Option<String>,
974
975 #[serde(rename = "User")]
977 #[serde(skip_serializing_if = "Option::is_none")]
978 pub user: Option<String>,
979
980 #[serde(rename = "AttachStdin")]
982 #[serde(skip_serializing_if = "Option::is_none")]
983 pub attach_stdin: Option<bool>,
984
985 #[serde(rename = "AttachStdout")]
987 #[serde(skip_serializing_if = "Option::is_none")]
988 pub attach_stdout: Option<bool>,
989
990 #[serde(rename = "AttachStderr")]
992 #[serde(skip_serializing_if = "Option::is_none")]
993 pub attach_stderr: Option<bool>,
994
995 #[serde(rename = "ExposedPorts")]
997 #[serde(skip_serializing_if = "Option::is_none")]
998 pub exposed_ports: Option<HashMap<String, HashMap<(), ()>>>,
999
1000 #[serde(rename = "Tty")]
1002 #[serde(skip_serializing_if = "Option::is_none")]
1003 pub tty: Option<bool>,
1004
1005 #[serde(rename = "OpenStdin")]
1007 #[serde(skip_serializing_if = "Option::is_none")]
1008 pub open_stdin: Option<bool>,
1009
1010 #[serde(rename = "StdinOnce")]
1012 #[serde(skip_serializing_if = "Option::is_none")]
1013 pub stdin_once: Option<bool>,
1014
1015 #[serde(rename = "Env")]
1017 #[serde(skip_serializing_if = "Option::is_none")]
1018 pub env: Option<Vec<String>>,
1019
1020 #[serde(rename = "Cmd")]
1022 #[serde(skip_serializing_if = "Option::is_none")]
1023 pub cmd: Option<Vec<String>>,
1024
1025 #[serde(rename = "Healthcheck")]
1026 #[serde(skip_serializing_if = "Option::is_none")]
1027 pub healthcheck: Option<HealthConfig>,
1028
1029 #[serde(rename = "ArgsEscaped")]
1031 #[serde(skip_serializing_if = "Option::is_none")]
1032 pub args_escaped: Option<bool>,
1033
1034 #[serde(rename = "Image")]
1036 #[serde(skip_serializing_if = "Option::is_none")]
1037 pub image: Option<String>,
1038
1039 #[serde(rename = "Volumes")]
1041 #[serde(skip_serializing_if = "Option::is_none")]
1042 pub volumes: Option<HashMap<String, HashMap<(), ()>>>,
1043
1044 #[serde(rename = "WorkingDir")]
1046 #[serde(skip_serializing_if = "Option::is_none")]
1047 pub working_dir: Option<String>,
1048
1049 #[serde(rename = "Entrypoint")]
1051 #[serde(skip_serializing_if = "Option::is_none")]
1052 pub entrypoint: Option<Vec<String>>,
1053
1054 #[serde(rename = "NetworkDisabled")]
1056 #[serde(skip_serializing_if = "Option::is_none")]
1057 pub network_disabled: Option<bool>,
1058
1059 #[serde(rename = "MacAddress")]
1061 #[serde(skip_serializing_if = "Option::is_none")]
1062 pub mac_address: Option<String>,
1063
1064 #[serde(rename = "OnBuild")]
1066 #[serde(skip_serializing_if = "Option::is_none")]
1067 pub on_build: Option<Vec<String>>,
1068
1069 #[serde(rename = "Labels")]
1071 #[serde(skip_serializing_if = "Option::is_none")]
1072 pub labels: Option<HashMap<String, String>>,
1073
1074 #[serde(rename = "StopSignal")]
1076 #[serde(skip_serializing_if = "Option::is_none")]
1077 pub stop_signal: Option<String>,
1078
1079 #[serde(rename = "StopTimeout")]
1081 #[serde(skip_serializing_if = "Option::is_none")]
1082 pub stop_timeout: Option<i64>,
1083
1084 #[serde(rename = "Shell")]
1086 #[serde(skip_serializing_if = "Option::is_none")]
1087 pub shell: Option<Vec<String>>,
1088
1089}
1090
1091#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1093pub struct ContainerCpuStats {
1094 #[serde(rename = "cpu_usage")]
1095 #[serde(skip_serializing_if = "Option::is_none")]
1096 pub cpu_usage: Option<ContainerCpuUsage>,
1097
1098 #[serde(rename = "system_cpu_usage")]
1100 #[serde(skip_serializing_if = "Option::is_none")]
1101 pub system_cpu_usage: Option<u64>,
1102
1103 #[serde(rename = "online_cpus")]
1105 #[serde(skip_serializing_if = "Option::is_none")]
1106 pub online_cpus: Option<u32>,
1107
1108 #[serde(rename = "throttling_data")]
1109 #[serde(skip_serializing_if = "Option::is_none")]
1110 pub throttling_data: Option<ContainerThrottlingData>,
1111
1112}
1113
1114#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1116pub struct ContainerCpuUsage {
1117 #[serde(rename = "total_usage")]
1119 #[serde(skip_serializing_if = "Option::is_none")]
1120 pub total_usage: Option<u64>,
1121
1122 #[serde(rename = "percpu_usage")]
1124 #[serde(skip_serializing_if = "Option::is_none")]
1125 pub percpu_usage: Option<Vec<i32>>,
1126
1127 #[serde(rename = "usage_in_kernelmode")]
1129 #[serde(skip_serializing_if = "Option::is_none")]
1130 pub usage_in_kernelmode: Option<u64>,
1131
1132 #[serde(rename = "usage_in_usermode")]
1134 #[serde(skip_serializing_if = "Option::is_none")]
1135 pub usage_in_usermode: Option<u64>,
1136
1137}
1138
1139#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1140pub struct ContainerCreateBody {
1141 #[serde(rename = "Hostname")]
1143 #[serde(skip_serializing_if = "Option::is_none")]
1144 pub hostname: Option<String>,
1145
1146 #[serde(rename = "Domainname")]
1148 #[serde(skip_serializing_if = "Option::is_none")]
1149 pub domainname: Option<String>,
1150
1151 #[serde(rename = "User")]
1153 #[serde(skip_serializing_if = "Option::is_none")]
1154 pub user: Option<String>,
1155
1156 #[serde(rename = "AttachStdin")]
1158 #[serde(skip_serializing_if = "Option::is_none")]
1159 pub attach_stdin: Option<bool>,
1160
1161 #[serde(rename = "AttachStdout")]
1163 #[serde(skip_serializing_if = "Option::is_none")]
1164 pub attach_stdout: Option<bool>,
1165
1166 #[serde(rename = "AttachStderr")]
1168 #[serde(skip_serializing_if = "Option::is_none")]
1169 pub attach_stderr: Option<bool>,
1170
1171 #[serde(rename = "ExposedPorts")]
1173 #[serde(skip_serializing_if = "Option::is_none")]
1174 pub exposed_ports: Option<HashMap<String, HashMap<(), ()>>>,
1175
1176 #[serde(rename = "Tty")]
1178 #[serde(skip_serializing_if = "Option::is_none")]
1179 pub tty: Option<bool>,
1180
1181 #[serde(rename = "OpenStdin")]
1183 #[serde(skip_serializing_if = "Option::is_none")]
1184 pub open_stdin: Option<bool>,
1185
1186 #[serde(rename = "StdinOnce")]
1188 #[serde(skip_serializing_if = "Option::is_none")]
1189 pub stdin_once: Option<bool>,
1190
1191 #[serde(rename = "Env")]
1193 #[serde(skip_serializing_if = "Option::is_none")]
1194 pub env: Option<Vec<String>>,
1195
1196 #[serde(rename = "Cmd")]
1198 #[serde(skip_serializing_if = "Option::is_none")]
1199 pub cmd: Option<Vec<String>>,
1200
1201 #[serde(rename = "Healthcheck")]
1202 #[serde(skip_serializing_if = "Option::is_none")]
1203 pub healthcheck: Option<HealthConfig>,
1204
1205 #[serde(rename = "ArgsEscaped")]
1207 #[serde(skip_serializing_if = "Option::is_none")]
1208 pub args_escaped: Option<bool>,
1209
1210 #[serde(rename = "Image")]
1212 #[serde(skip_serializing_if = "Option::is_none")]
1213 pub image: Option<String>,
1214
1215 #[serde(rename = "Volumes")]
1217 #[serde(skip_serializing_if = "Option::is_none")]
1218 pub volumes: Option<HashMap<String, HashMap<(), ()>>>,
1219
1220 #[serde(rename = "WorkingDir")]
1222 #[serde(skip_serializing_if = "Option::is_none")]
1223 pub working_dir: Option<String>,
1224
1225 #[serde(rename = "Entrypoint")]
1227 #[serde(skip_serializing_if = "Option::is_none")]
1228 pub entrypoint: Option<Vec<String>>,
1229
1230 #[serde(rename = "NetworkDisabled")]
1232 #[serde(skip_serializing_if = "Option::is_none")]
1233 pub network_disabled: Option<bool>,
1234
1235 #[serde(rename = "MacAddress")]
1237 #[serde(skip_serializing_if = "Option::is_none")]
1238 pub mac_address: Option<String>,
1239
1240 #[serde(rename = "OnBuild")]
1242 #[serde(skip_serializing_if = "Option::is_none")]
1243 pub on_build: Option<Vec<String>>,
1244
1245 #[serde(rename = "Labels")]
1247 #[serde(skip_serializing_if = "Option::is_none")]
1248 pub labels: Option<HashMap<String, String>>,
1249
1250 #[serde(rename = "StopSignal")]
1252 #[serde(skip_serializing_if = "Option::is_none")]
1253 pub stop_signal: Option<String>,
1254
1255 #[serde(rename = "StopTimeout")]
1257 #[serde(skip_serializing_if = "Option::is_none")]
1258 pub stop_timeout: Option<i64>,
1259
1260 #[serde(rename = "Shell")]
1262 #[serde(skip_serializing_if = "Option::is_none")]
1263 pub shell: Option<Vec<String>>,
1264
1265 #[serde(rename = "HostConfig")]
1266 #[serde(skip_serializing_if = "Option::is_none")]
1267 pub host_config: Option<HostConfig>,
1268
1269 #[serde(rename = "NetworkingConfig")]
1270 #[serde(skip_serializing_if = "Option::is_none")]
1271 pub networking_config: Option<NetworkingConfig>,
1272
1273}
1274
1275#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1277pub struct ContainerCreateResponse {
1278 #[serde(rename = "Id")]
1280 pub id: String,
1281
1282 #[serde(rename = "Warnings")]
1284 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
1285 pub warnings: Vec<String>,
1286
1287}
1288
1289#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1290pub struct ContainerInspectResponse {
1291 #[serde(rename = "Id")]
1293 #[serde(skip_serializing_if = "Option::is_none")]
1294 pub id: Option<String>,
1295
1296 #[serde(rename = "Created")]
1298 #[serde(skip_serializing_if = "Option::is_none")]
1299 #[serde(
1300 default,
1301 deserialize_with = "deserialize_timestamp",
1302 serialize_with = "serialize_timestamp"
1303 )]
1304 pub created: Option<BollardDate>,
1305
1306 #[serde(rename = "Path")]
1308 #[serde(skip_serializing_if = "Option::is_none")]
1309 pub path: Option<String>,
1310
1311 #[serde(rename = "Args")]
1313 #[serde(skip_serializing_if = "Option::is_none")]
1314 pub args: Option<Vec<String>>,
1315
1316 #[serde(rename = "State")]
1317 #[serde(skip_serializing_if = "Option::is_none")]
1318 pub state: Option<ContainerState>,
1319
1320 #[serde(rename = "Image")]
1322 #[serde(skip_serializing_if = "Option::is_none")]
1323 pub image: Option<String>,
1324
1325 #[serde(rename = "ResolvConfPath")]
1327 #[serde(skip_serializing_if = "Option::is_none")]
1328 pub resolv_conf_path: Option<String>,
1329
1330 #[serde(rename = "HostnamePath")]
1332 #[serde(skip_serializing_if = "Option::is_none")]
1333 pub hostname_path: Option<String>,
1334
1335 #[serde(rename = "HostsPath")]
1337 #[serde(skip_serializing_if = "Option::is_none")]
1338 pub hosts_path: Option<String>,
1339
1340 #[serde(rename = "LogPath")]
1342 #[serde(skip_serializing_if = "Option::is_none")]
1343 pub log_path: Option<String>,
1344
1345 #[serde(rename = "Name")]
1347 #[serde(skip_serializing_if = "Option::is_none")]
1348 pub name: Option<String>,
1349
1350 #[serde(rename = "RestartCount")]
1352 #[serde(skip_serializing_if = "Option::is_none")]
1353 pub restart_count: Option<i64>,
1354
1355 #[serde(rename = "Driver")]
1357 #[serde(skip_serializing_if = "Option::is_none")]
1358 pub driver: Option<String>,
1359
1360 #[serde(rename = "Platform")]
1362 #[serde(skip_serializing_if = "Option::is_none")]
1363 pub platform: Option<String>,
1364
1365 #[serde(rename = "ImageManifestDescriptor")]
1367 #[serde(skip_serializing_if = "Option::is_none")]
1368 pub image_manifest_descriptor: Option<OciDescriptor>,
1369
1370 #[serde(rename = "MountLabel")]
1372 #[serde(skip_serializing_if = "Option::is_none")]
1373 pub mount_label: Option<String>,
1374
1375 #[serde(rename = "ProcessLabel")]
1377 #[serde(skip_serializing_if = "Option::is_none")]
1378 pub process_label: Option<String>,
1379
1380 #[serde(rename = "AppArmorProfile")]
1382 #[serde(skip_serializing_if = "Option::is_none")]
1383 pub app_armor_profile: Option<String>,
1384
1385 #[serde(rename = "ExecIDs")]
1387 #[serde(skip_serializing_if = "Option::is_none")]
1388 pub exec_ids: Option<Vec<String>>,
1389
1390 #[serde(rename = "HostConfig")]
1391 #[serde(skip_serializing_if = "Option::is_none")]
1392 pub host_config: Option<HostConfig>,
1393
1394 #[serde(rename = "GraphDriver")]
1395 #[serde(skip_serializing_if = "Option::is_none")]
1396 pub graph_driver: Option<DriverData>,
1397
1398 #[serde(rename = "SizeRw")]
1400 #[serde(skip_serializing_if = "Option::is_none")]
1401 pub size_rw: Option<i64>,
1402
1403 #[serde(rename = "SizeRootFs")]
1405 #[serde(skip_serializing_if = "Option::is_none")]
1406 pub size_root_fs: Option<i64>,
1407
1408 #[serde(rename = "Mounts")]
1410 #[serde(skip_serializing_if = "Option::is_none")]
1411 pub mounts: Option<Vec<MountPoint>>,
1412
1413 #[serde(rename = "Config")]
1414 #[serde(skip_serializing_if = "Option::is_none")]
1415 pub config: Option<ContainerConfig>,
1416
1417 #[serde(rename = "NetworkSettings")]
1418 #[serde(skip_serializing_if = "Option::is_none")]
1419 pub network_settings: Option<NetworkSettings>,
1420
1421}
1422
1423#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1425pub struct ContainerMemoryStats {
1426 #[serde(rename = "usage")]
1428 #[serde(skip_serializing_if = "Option::is_none")]
1429 pub usage: Option<u64>,
1430
1431 #[serde(rename = "max_usage")]
1433 #[serde(skip_serializing_if = "Option::is_none")]
1434 pub max_usage: Option<u64>,
1435
1436 #[serde(rename = "stats")]
1438 #[serde(skip_serializing_if = "Option::is_none")]
1439 pub stats: Option<HashMap<String, i32>>,
1440
1441 #[serde(rename = "failcnt")]
1443 #[serde(skip_serializing_if = "Option::is_none")]
1444 pub failcnt: Option<u64>,
1445
1446 #[serde(rename = "limit")]
1448 #[serde(skip_serializing_if = "Option::is_none")]
1449 pub limit: Option<u64>,
1450
1451 #[serde(rename = "commitbytes")]
1453 #[serde(skip_serializing_if = "Option::is_none")]
1454 pub commitbytes: Option<u64>,
1455
1456 #[serde(rename = "commitpeakbytes")]
1458 #[serde(skip_serializing_if = "Option::is_none")]
1459 pub commitpeakbytes: Option<u64>,
1460
1461 #[serde(rename = "privateworkingset")]
1463 #[serde(skip_serializing_if = "Option::is_none")]
1464 pub privateworkingset: Option<u64>,
1465
1466}
1467
1468#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1470pub struct ContainerNetworkStats {
1471 #[serde(rename = "rx_bytes")]
1473 #[serde(skip_serializing_if = "Option::is_none")]
1474 pub rx_bytes: Option<u64>,
1475
1476 #[serde(rename = "rx_packets")]
1478 #[serde(skip_serializing_if = "Option::is_none")]
1479 pub rx_packets: Option<u64>,
1480
1481 #[serde(rename = "rx_errors")]
1483 #[serde(skip_serializing_if = "Option::is_none")]
1484 pub rx_errors: Option<u64>,
1485
1486 #[serde(rename = "rx_dropped")]
1488 #[serde(skip_serializing_if = "Option::is_none")]
1489 pub rx_dropped: Option<u64>,
1490
1491 #[serde(rename = "tx_bytes")]
1493 #[serde(skip_serializing_if = "Option::is_none")]
1494 pub tx_bytes: Option<u64>,
1495
1496 #[serde(rename = "tx_packets")]
1498 #[serde(skip_serializing_if = "Option::is_none")]
1499 pub tx_packets: Option<u64>,
1500
1501 #[serde(rename = "tx_errors")]
1503 #[serde(skip_serializing_if = "Option::is_none")]
1504 pub tx_errors: Option<u64>,
1505
1506 #[serde(rename = "tx_dropped")]
1508 #[serde(skip_serializing_if = "Option::is_none")]
1509 pub tx_dropped: Option<u64>,
1510
1511 #[serde(rename = "endpoint_id")]
1513 #[serde(skip_serializing_if = "Option::is_none")]
1514 pub endpoint_id: Option<String>,
1515
1516 #[serde(rename = "instance_id")]
1518 #[serde(skip_serializing_if = "Option::is_none")]
1519 pub instance_id: Option<String>,
1520
1521}
1522
1523#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1525pub struct ContainerPidsStats {
1526 #[serde(rename = "current")]
1528 #[serde(skip_serializing_if = "Option::is_none")]
1529 pub current: Option<u64>,
1530
1531 #[serde(rename = "limit")]
1533 #[serde(skip_serializing_if = "Option::is_none")]
1534 pub limit: Option<u64>,
1535
1536}
1537
1538#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1539pub struct ContainerPruneResponse {
1540 #[serde(rename = "ContainersDeleted")]
1542 #[serde(skip_serializing_if = "Option::is_none")]
1543 pub containers_deleted: Option<Vec<String>>,
1544
1545 #[serde(rename = "SpaceReclaimed")]
1547 #[serde(skip_serializing_if = "Option::is_none")]
1548 pub space_reclaimed: Option<i64>,
1549
1550}
1551
1552#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1554pub struct ContainerState {
1555 #[serde(rename = "Status")]
1557 #[serde(skip_serializing_if = "Option::is_none")]
1558 pub status: Option<ContainerStateStatusEnum>,
1559
1560 #[serde(rename = "Running")]
1562 #[serde(skip_serializing_if = "Option::is_none")]
1563 pub running: Option<bool>,
1564
1565 #[serde(rename = "Paused")]
1567 #[serde(skip_serializing_if = "Option::is_none")]
1568 pub paused: Option<bool>,
1569
1570 #[serde(rename = "Restarting")]
1572 #[serde(skip_serializing_if = "Option::is_none")]
1573 pub restarting: Option<bool>,
1574
1575 #[serde(rename = "OOMKilled")]
1577 #[serde(skip_serializing_if = "Option::is_none")]
1578 pub oom_killed: Option<bool>,
1579
1580 #[serde(rename = "Dead")]
1581 #[serde(skip_serializing_if = "Option::is_none")]
1582 pub dead: Option<bool>,
1583
1584 #[serde(rename = "Pid")]
1586 #[serde(skip_serializing_if = "Option::is_none")]
1587 pub pid: Option<i64>,
1588
1589 #[serde(rename = "ExitCode")]
1591 #[serde(skip_serializing_if = "Option::is_none")]
1592 pub exit_code: Option<i64>,
1593
1594 #[serde(rename = "Error")]
1595 #[serde(skip_serializing_if = "Option::is_none")]
1596 pub error: Option<String>,
1597
1598 #[serde(rename = "StartedAt")]
1600 #[serde(skip_serializing_if = "Option::is_none")]
1601 pub started_at: Option<String>,
1602
1603 #[serde(rename = "FinishedAt")]
1605 #[serde(skip_serializing_if = "Option::is_none")]
1606 pub finished_at: Option<String>,
1607
1608 #[serde(rename = "Health")]
1609 #[serde(skip_serializing_if = "Option::is_none")]
1610 pub health: Option<Health>,
1611
1612}
1613
1614#[allow(non_camel_case_types)]
1615#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
1616pub enum ContainerStateStatusEnum {
1617 #[serde(rename = "")]
1618 EMPTY,
1619 #[serde(rename = "created")]
1620 CREATED,
1621 #[serde(rename = "running")]
1622 RUNNING,
1623 #[serde(rename = "paused")]
1624 PAUSED,
1625 #[serde(rename = "restarting")]
1626 RESTARTING,
1627 #[serde(rename = "removing")]
1628 REMOVING,
1629 #[serde(rename = "exited")]
1630 EXITED,
1631 #[serde(rename = "dead")]
1632 DEAD,
1633}
1634
1635impl ::std::fmt::Display for ContainerStateStatusEnum {
1636 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1637 match *self {
1638 ContainerStateStatusEnum::EMPTY => write!(f, ""),
1639 ContainerStateStatusEnum::CREATED => write!(f, "{}", "created"),
1640 ContainerStateStatusEnum::RUNNING => write!(f, "{}", "running"),
1641 ContainerStateStatusEnum::PAUSED => write!(f, "{}", "paused"),
1642 ContainerStateStatusEnum::RESTARTING => write!(f, "{}", "restarting"),
1643 ContainerStateStatusEnum::REMOVING => write!(f, "{}", "removing"),
1644 ContainerStateStatusEnum::EXITED => write!(f, "{}", "exited"),
1645 ContainerStateStatusEnum::DEAD => write!(f, "{}", "dead"),
1646
1647 }
1648 }
1649}
1650
1651impl ::std::str::FromStr for ContainerStateStatusEnum {
1652 type Err = String;
1653 fn from_str(s: &str) -> Result<Self, Self::Err> {
1654 match s {
1655 "" => Ok(ContainerStateStatusEnum::EMPTY),
1656 "created" => Ok(ContainerStateStatusEnum::CREATED),
1657 "running" => Ok(ContainerStateStatusEnum::RUNNING),
1658 "paused" => Ok(ContainerStateStatusEnum::PAUSED),
1659 "restarting" => Ok(ContainerStateStatusEnum::RESTARTING),
1660 "removing" => Ok(ContainerStateStatusEnum::REMOVING),
1661 "exited" => Ok(ContainerStateStatusEnum::EXITED),
1662 "dead" => Ok(ContainerStateStatusEnum::DEAD),
1663 x => Err(format!("Invalid enum type: {}", x)),
1664 }
1665 }
1666}
1667
1668impl ::std::convert::AsRef<str> for ContainerStateStatusEnum {
1669 fn as_ref(&self) -> &str {
1670 match self {
1671 ContainerStateStatusEnum::EMPTY => "",
1672 ContainerStateStatusEnum::CREATED => "created",
1673 ContainerStateStatusEnum::RUNNING => "running",
1674 ContainerStateStatusEnum::PAUSED => "paused",
1675 ContainerStateStatusEnum::RESTARTING => "restarting",
1676 ContainerStateStatusEnum::REMOVING => "removing",
1677 ContainerStateStatusEnum::EXITED => "exited",
1678 ContainerStateStatusEnum::DEAD => "dead",
1679 }
1680 }
1681}
1682
1683#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1685pub struct ContainerStatsResponse {
1686 #[serde(rename = "name")]
1688 #[serde(skip_serializing_if = "Option::is_none")]
1689 pub name: Option<String>,
1690
1691 #[serde(rename = "id")]
1693 #[serde(skip_serializing_if = "Option::is_none")]
1694 pub id: Option<String>,
1695
1696 #[serde(rename = "read")]
1698 #[serde(skip_serializing_if = "Option::is_none")]
1699 #[serde(
1700 default,
1701 deserialize_with = "deserialize_timestamp",
1702 serialize_with = "serialize_timestamp"
1703 )]
1704 pub read: Option<BollardDate>,
1705
1706 #[serde(rename = "preread")]
1708 #[serde(skip_serializing_if = "Option::is_none")]
1709 #[serde(
1710 default,
1711 deserialize_with = "deserialize_timestamp",
1712 serialize_with = "serialize_timestamp"
1713 )]
1714 pub preread: Option<BollardDate>,
1715
1716 #[serde(rename = "pids_stats")]
1717 #[serde(skip_serializing_if = "Option::is_none")]
1718 pub pids_stats: Option<ContainerPidsStats>,
1719
1720 #[serde(rename = "blkio_stats")]
1721 #[serde(skip_serializing_if = "Option::is_none")]
1722 pub blkio_stats: Option<ContainerBlkioStats>,
1723
1724 #[serde(rename = "num_procs")]
1726 #[serde(skip_serializing_if = "Option::is_none")]
1727 pub num_procs: Option<u32>,
1728
1729 #[serde(rename = "storage_stats")]
1730 #[serde(skip_serializing_if = "Option::is_none")]
1731 pub storage_stats: Option<ContainerStorageStats>,
1732
1733 #[serde(rename = "cpu_stats")]
1734 #[serde(skip_serializing_if = "Option::is_none")]
1735 pub cpu_stats: Option<ContainerCpuStats>,
1736
1737 #[serde(rename = "precpu_stats")]
1738 #[serde(skip_serializing_if = "Option::is_none")]
1739 pub precpu_stats: Option<ContainerCpuStats>,
1740
1741 #[serde(rename = "memory_stats")]
1742 #[serde(skip_serializing_if = "Option::is_none")]
1743 pub memory_stats: Option<ContainerMemoryStats>,
1744
1745 #[serde(rename = "networks")]
1747 #[serde(skip_serializing_if = "Option::is_none")]
1748 pub networks: Option<ContainerNetworkStats>,
1749
1750}
1751
1752#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1754pub struct ContainerStatus {
1755 #[serde(rename = "ContainerID")]
1756 #[serde(skip_serializing_if = "Option::is_none")]
1757 pub container_id: Option<String>,
1758
1759 #[serde(rename = "PID")]
1760 #[serde(skip_serializing_if = "Option::is_none")]
1761 pub pid: Option<i64>,
1762
1763 #[serde(rename = "ExitCode")]
1764 #[serde(skip_serializing_if = "Option::is_none")]
1765 pub exit_code: Option<i64>,
1766
1767}
1768
1769#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1771pub struct ContainerStorageStats {
1772 #[serde(rename = "read_count_normalized")]
1773 #[serde(skip_serializing_if = "Option::is_none")]
1774 pub read_count_normalized: Option<u64>,
1775
1776 #[serde(rename = "read_size_bytes")]
1777 #[serde(skip_serializing_if = "Option::is_none")]
1778 pub read_size_bytes: Option<u64>,
1779
1780 #[serde(rename = "write_count_normalized")]
1781 #[serde(skip_serializing_if = "Option::is_none")]
1782 pub write_count_normalized: Option<u64>,
1783
1784 #[serde(rename = "write_size_bytes")]
1785 #[serde(skip_serializing_if = "Option::is_none")]
1786 pub write_size_bytes: Option<u64>,
1787
1788}
1789
1790#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1791pub struct ContainerSummary {
1792 #[serde(rename = "Id")]
1794 #[serde(skip_serializing_if = "Option::is_none")]
1795 pub id: Option<String>,
1796
1797 #[serde(rename = "Names")]
1799 #[serde(skip_serializing_if = "Option::is_none")]
1800 pub names: Option<Vec<String>>,
1801
1802 #[serde(rename = "Image")]
1804 #[serde(skip_serializing_if = "Option::is_none")]
1805 pub image: Option<String>,
1806
1807 #[serde(rename = "ImageID")]
1809 #[serde(skip_serializing_if = "Option::is_none")]
1810 pub image_id: Option<String>,
1811
1812 #[serde(rename = "ImageManifestDescriptor")]
1814 #[serde(skip_serializing_if = "Option::is_none")]
1815 pub image_manifest_descriptor: Option<OciDescriptor>,
1816
1817 #[serde(rename = "Command")]
1819 #[serde(skip_serializing_if = "Option::is_none")]
1820 pub command: Option<String>,
1821
1822 #[serde(rename = "Created")]
1824 #[serde(skip_serializing_if = "Option::is_none")]
1825 pub created: Option<i64>,
1826
1827 #[serde(rename = "Ports")]
1829 #[serde(skip_serializing_if = "Option::is_none")]
1830 pub ports: Option<Vec<Port>>,
1831
1832 #[serde(rename = "SizeRw")]
1834 #[serde(skip_serializing_if = "Option::is_none")]
1835 pub size_rw: Option<i64>,
1836
1837 #[serde(rename = "SizeRootFs")]
1839 #[serde(skip_serializing_if = "Option::is_none")]
1840 pub size_root_fs: Option<i64>,
1841
1842 #[serde(rename = "Labels")]
1844 #[serde(skip_serializing_if = "Option::is_none")]
1845 pub labels: Option<HashMap<String, String>>,
1846
1847 #[serde(rename = "State")]
1849 #[serde(skip_serializing_if = "Option::is_none")]
1850 pub state: Option<ContainerSummaryStateEnum>,
1851
1852 #[serde(rename = "Status")]
1854 #[serde(skip_serializing_if = "Option::is_none")]
1855 pub status: Option<String>,
1856
1857 #[serde(rename = "HostConfig")]
1858 #[serde(skip_serializing_if = "Option::is_none")]
1859 pub host_config: Option<ContainerSummaryHostConfig>,
1860
1861 #[serde(rename = "NetworkSettings")]
1862 #[serde(skip_serializing_if = "Option::is_none")]
1863 pub network_settings: Option<ContainerSummaryNetworkSettings>,
1864
1865 #[serde(rename = "Mounts")]
1867 #[serde(skip_serializing_if = "Option::is_none")]
1868 pub mounts: Option<Vec<MountPoint>>,
1869
1870}
1871
1872#[allow(non_camel_case_types)]
1873#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
1874pub enum ContainerSummaryStateEnum {
1875 #[serde(rename = "")]
1876 EMPTY,
1877 #[serde(rename = "created")]
1878 CREATED,
1879 #[serde(rename = "running")]
1880 RUNNING,
1881 #[serde(rename = "paused")]
1882 PAUSED,
1883 #[serde(rename = "restarting")]
1884 RESTARTING,
1885 #[serde(rename = "exited")]
1886 EXITED,
1887 #[serde(rename = "removing")]
1888 REMOVING,
1889 #[serde(rename = "dead")]
1890 DEAD,
1891}
1892
1893impl ::std::fmt::Display for ContainerSummaryStateEnum {
1894 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1895 match *self {
1896 ContainerSummaryStateEnum::EMPTY => write!(f, ""),
1897 ContainerSummaryStateEnum::CREATED => write!(f, "{}", "created"),
1898 ContainerSummaryStateEnum::RUNNING => write!(f, "{}", "running"),
1899 ContainerSummaryStateEnum::PAUSED => write!(f, "{}", "paused"),
1900 ContainerSummaryStateEnum::RESTARTING => write!(f, "{}", "restarting"),
1901 ContainerSummaryStateEnum::EXITED => write!(f, "{}", "exited"),
1902 ContainerSummaryStateEnum::REMOVING => write!(f, "{}", "removing"),
1903 ContainerSummaryStateEnum::DEAD => write!(f, "{}", "dead"),
1904
1905 }
1906 }
1907}
1908
1909impl ::std::str::FromStr for ContainerSummaryStateEnum {
1910 type Err = String;
1911 fn from_str(s: &str) -> Result<Self, Self::Err> {
1912 match s {
1913 "" => Ok(ContainerSummaryStateEnum::EMPTY),
1914 "created" => Ok(ContainerSummaryStateEnum::CREATED),
1915 "running" => Ok(ContainerSummaryStateEnum::RUNNING),
1916 "paused" => Ok(ContainerSummaryStateEnum::PAUSED),
1917 "restarting" => Ok(ContainerSummaryStateEnum::RESTARTING),
1918 "exited" => Ok(ContainerSummaryStateEnum::EXITED),
1919 "removing" => Ok(ContainerSummaryStateEnum::REMOVING),
1920 "dead" => Ok(ContainerSummaryStateEnum::DEAD),
1921 x => Err(format!("Invalid enum type: {}", x)),
1922 }
1923 }
1924}
1925
1926impl ::std::convert::AsRef<str> for ContainerSummaryStateEnum {
1927 fn as_ref(&self) -> &str {
1928 match self {
1929 ContainerSummaryStateEnum::EMPTY => "",
1930 ContainerSummaryStateEnum::CREATED => "created",
1931 ContainerSummaryStateEnum::RUNNING => "running",
1932 ContainerSummaryStateEnum::PAUSED => "paused",
1933 ContainerSummaryStateEnum::RESTARTING => "restarting",
1934 ContainerSummaryStateEnum::EXITED => "exited",
1935 ContainerSummaryStateEnum::REMOVING => "removing",
1936 ContainerSummaryStateEnum::DEAD => "dead",
1937 }
1938 }
1939}
1940
1941#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1943pub struct ContainerSummaryHostConfig {
1944 #[serde(rename = "NetworkMode")]
1946 #[serde(skip_serializing_if = "Option::is_none")]
1947 pub network_mode: Option<String>,
1948
1949 #[serde(rename = "Annotations")]
1951 #[serde(skip_serializing_if = "Option::is_none")]
1952 pub annotations: Option<HashMap<String, String>>,
1953
1954}
1955
1956#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1958pub struct ContainerSummaryNetworkSettings {
1959 #[serde(rename = "Networks")]
1961 #[serde(skip_serializing_if = "Option::is_none")]
1962 pub networks: Option<HashMap<String, EndpointSettings>>,
1963
1964}
1965
1966#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1968pub struct ContainerThrottlingData {
1969 #[serde(rename = "periods")]
1971 #[serde(skip_serializing_if = "Option::is_none")]
1972 pub periods: Option<u64>,
1973
1974 #[serde(rename = "throttled_periods")]
1976 #[serde(skip_serializing_if = "Option::is_none")]
1977 pub throttled_periods: Option<u64>,
1978
1979 #[serde(rename = "throttled_time")]
1981 #[serde(skip_serializing_if = "Option::is_none")]
1982 pub throttled_time: Option<u64>,
1983
1984}
1985
1986#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1988pub struct ContainerTopResponse {
1989 #[serde(rename = "Titles")]
1991 #[serde(skip_serializing_if = "Option::is_none")]
1992 pub titles: Option<Vec<String>>,
1993
1994 #[serde(rename = "Processes")]
1996 #[serde(skip_serializing_if = "Option::is_none")]
1997 pub processes: Option<Vec<Vec<String>>>,
1998
1999}
2000
2001#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2002pub struct ContainerUpdateBody {
2003 #[serde(rename = "CpuShares")]
2005 #[serde(skip_serializing_if = "Option::is_none")]
2006 pub cpu_shares: Option<i64>,
2007
2008 #[serde(rename = "Memory")]
2010 #[serde(skip_serializing_if = "Option::is_none")]
2011 pub memory: Option<i64>,
2012
2013 #[serde(rename = "CgroupParent")]
2015 #[serde(skip_serializing_if = "Option::is_none")]
2016 pub cgroup_parent: Option<String>,
2017
2018 #[serde(rename = "BlkioWeight")]
2020 #[serde(skip_serializing_if = "Option::is_none")]
2021 pub blkio_weight: Option<u16>,
2022
2023 #[serde(rename = "BlkioWeightDevice")]
2025 #[serde(skip_serializing_if = "Option::is_none")]
2026 pub blkio_weight_device: Option<Vec<ResourcesBlkioWeightDevice>>,
2027
2028 #[serde(rename = "BlkioDeviceReadBps")]
2030 #[serde(skip_serializing_if = "Option::is_none")]
2031 pub blkio_device_read_bps: Option<Vec<ThrottleDevice>>,
2032
2033 #[serde(rename = "BlkioDeviceWriteBps")]
2035 #[serde(skip_serializing_if = "Option::is_none")]
2036 pub blkio_device_write_bps: Option<Vec<ThrottleDevice>>,
2037
2038 #[serde(rename = "BlkioDeviceReadIOps")]
2040 #[serde(skip_serializing_if = "Option::is_none")]
2041 pub blkio_device_read_iops: Option<Vec<ThrottleDevice>>,
2042
2043 #[serde(rename = "BlkioDeviceWriteIOps")]
2045 #[serde(skip_serializing_if = "Option::is_none")]
2046 pub blkio_device_write_iops: Option<Vec<ThrottleDevice>>,
2047
2048 #[serde(rename = "CpuPeriod")]
2050 #[serde(skip_serializing_if = "Option::is_none")]
2051 pub cpu_period: Option<i64>,
2052
2053 #[serde(rename = "CpuQuota")]
2055 #[serde(skip_serializing_if = "Option::is_none")]
2056 pub cpu_quota: Option<i64>,
2057
2058 #[serde(rename = "CpuRealtimePeriod")]
2060 #[serde(skip_serializing_if = "Option::is_none")]
2061 pub cpu_realtime_period: Option<i64>,
2062
2063 #[serde(rename = "CpuRealtimeRuntime")]
2065 #[serde(skip_serializing_if = "Option::is_none")]
2066 pub cpu_realtime_runtime: Option<i64>,
2067
2068 #[serde(rename = "CpusetCpus")]
2070 #[serde(skip_serializing_if = "Option::is_none")]
2071 pub cpuset_cpus: Option<String>,
2072
2073 #[serde(rename = "CpusetMems")]
2075 #[serde(skip_serializing_if = "Option::is_none")]
2076 pub cpuset_mems: Option<String>,
2077
2078 #[serde(rename = "Devices")]
2080 #[serde(skip_serializing_if = "Option::is_none")]
2081 pub devices: Option<Vec<DeviceMapping>>,
2082
2083 #[serde(rename = "DeviceCgroupRules")]
2085 #[serde(skip_serializing_if = "Option::is_none")]
2086 pub device_cgroup_rules: Option<Vec<String>>,
2087
2088 #[serde(rename = "DeviceRequests")]
2090 #[serde(skip_serializing_if = "Option::is_none")]
2091 pub device_requests: Option<Vec<DeviceRequest>>,
2092
2093 #[serde(rename = "KernelMemoryTCP")]
2095 #[serde(skip_serializing_if = "Option::is_none")]
2096 pub kernel_memory_tcp: Option<i64>,
2097
2098 #[serde(rename = "MemoryReservation")]
2100 #[serde(skip_serializing_if = "Option::is_none")]
2101 pub memory_reservation: Option<i64>,
2102
2103 #[serde(rename = "MemorySwap")]
2105 #[serde(skip_serializing_if = "Option::is_none")]
2106 pub memory_swap: Option<i64>,
2107
2108 #[serde(rename = "MemorySwappiness")]
2110 #[serde(skip_serializing_if = "Option::is_none")]
2111 pub memory_swappiness: Option<i64>,
2112
2113 #[serde(rename = "NanoCpus")]
2115 #[serde(skip_serializing_if = "Option::is_none")]
2116 pub nano_cpus: Option<i64>,
2117
2118 #[serde(rename = "OomKillDisable")]
2120 #[serde(skip_serializing_if = "Option::is_none")]
2121 pub oom_kill_disable: Option<bool>,
2122
2123 #[serde(rename = "Init")]
2125 #[serde(skip_serializing_if = "Option::is_none")]
2126 pub init: Option<bool>,
2127
2128 #[serde(rename = "PidsLimit")]
2130 #[serde(skip_serializing_if = "Option::is_none")]
2131 pub pids_limit: Option<i64>,
2132
2133 #[serde(rename = "Ulimits")]
2135 #[serde(skip_serializing_if = "Option::is_none")]
2136 pub ulimits: Option<Vec<ResourcesUlimits>>,
2137
2138 #[serde(rename = "CpuCount")]
2140 #[serde(skip_serializing_if = "Option::is_none")]
2141 pub cpu_count: Option<i64>,
2142
2143 #[serde(rename = "CpuPercent")]
2145 #[serde(skip_serializing_if = "Option::is_none")]
2146 pub cpu_percent: Option<i64>,
2147
2148 #[serde(rename = "IOMaximumIOps")]
2150 #[serde(skip_serializing_if = "Option::is_none")]
2151 pub io_maximum_iops: Option<i64>,
2152
2153 #[serde(rename = "IOMaximumBandwidth")]
2155 #[serde(skip_serializing_if = "Option::is_none")]
2156 pub io_maximum_bandwidth: Option<i64>,
2157
2158 #[serde(rename = "RestartPolicy")]
2159 #[serde(skip_serializing_if = "Option::is_none")]
2160 pub restart_policy: Option<RestartPolicy>,
2161
2162}
2163
2164#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2166pub struct ContainerUpdateResponse {
2167 #[serde(rename = "Warnings")]
2169 #[serde(skip_serializing_if = "Option::is_none")]
2170 pub warnings: Option<Vec<String>>,
2171
2172}
2173
2174#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2176pub struct ContainerWaitExitError {
2177 #[serde(rename = "Message")]
2179 #[serde(skip_serializing_if = "Option::is_none")]
2180 pub message: Option<String>,
2181
2182}
2183
2184#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2186pub struct ContainerWaitResponse {
2187 #[serde(rename = "StatusCode")]
2189 pub status_code: i64,
2190
2191 #[serde(rename = "Error")]
2192 #[serde(skip_serializing_if = "Option::is_none")]
2193 pub error: Option<ContainerWaitExitError>,
2194
2195}
2196
2197#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2199pub struct ContainerdInfo {
2200 #[serde(rename = "Address")]
2202 #[serde(skip_serializing_if = "Option::is_none")]
2203 pub address: Option<String>,
2204
2205 #[serde(rename = "Namespaces")]
2206 #[serde(skip_serializing_if = "Option::is_none")]
2207 pub namespaces: Option<ContainerdInfoNamespaces>,
2208
2209}
2210
2211#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2213pub struct ContainerdInfoNamespaces {
2214 #[serde(rename = "Containers")]
2216 #[serde(skip_serializing_if = "Option::is_none")]
2217 pub containers: Option<String>,
2218
2219 #[serde(rename = "Plugins")]
2221 #[serde(skip_serializing_if = "Option::is_none")]
2222 pub plugins: Option<String>,
2223
2224}
2225
2226#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2227pub struct CreateImageInfo {
2228 #[serde(rename = "id")]
2229 #[serde(skip_serializing_if = "Option::is_none")]
2230 pub id: Option<String>,
2231
2232 #[serde(rename = "error")]
2234 #[serde(skip_serializing_if = "Option::is_none")]
2235 pub error: Option<String>,
2236
2237 #[serde(rename = "errorDetail")]
2238 #[serde(skip_serializing_if = "Option::is_none")]
2239 pub error_detail: Option<ErrorDetail>,
2240
2241 #[serde(rename = "status")]
2242 #[serde(skip_serializing_if = "Option::is_none")]
2243 pub status: Option<String>,
2244
2245 #[serde(rename = "progress")]
2247 #[serde(skip_serializing_if = "Option::is_none")]
2248 pub progress: Option<String>,
2249
2250 #[serde(rename = "progressDetail")]
2251 #[serde(skip_serializing_if = "Option::is_none")]
2252 pub progress_detail: Option<ProgressDetail>,
2253
2254}
2255
2256#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2258pub struct DeviceMapping {
2259 #[serde(rename = "PathOnHost")]
2260 #[serde(skip_serializing_if = "Option::is_none")]
2261 pub path_on_host: Option<String>,
2262
2263 #[serde(rename = "PathInContainer")]
2264 #[serde(skip_serializing_if = "Option::is_none")]
2265 pub path_in_container: Option<String>,
2266
2267 #[serde(rename = "CgroupPermissions")]
2268 #[serde(skip_serializing_if = "Option::is_none")]
2269 pub cgroup_permissions: Option<String>,
2270
2271}
2272
2273#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2275pub struct DeviceRequest {
2276 #[serde(rename = "Driver")]
2277 #[serde(skip_serializing_if = "Option::is_none")]
2278 pub driver: Option<String>,
2279
2280 #[serde(rename = "Count")]
2281 #[serde(skip_serializing_if = "Option::is_none")]
2282 pub count: Option<i64>,
2283
2284 #[serde(rename = "DeviceIDs")]
2285 #[serde(skip_serializing_if = "Option::is_none")]
2286 pub device_ids: Option<Vec<String>>,
2287
2288 #[serde(rename = "Capabilities")]
2290 #[serde(skip_serializing_if = "Option::is_none")]
2291 pub capabilities: Option<Vec<Vec<String>>>,
2292
2293 #[serde(rename = "Options")]
2295 #[serde(skip_serializing_if = "Option::is_none")]
2296 pub options: Option<HashMap<String, String>>,
2297
2298}
2299
2300#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2302pub struct DistributionInspect {
2303 #[serde(rename = "Descriptor")]
2304 pub descriptor: OciDescriptor,
2305
2306 #[serde(rename = "Platforms")]
2308 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
2309 pub platforms: Vec<OciPlatform>,
2310
2311}
2312
2313#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2315pub struct Driver {
2316 #[serde(rename = "Name")]
2318 pub name: String,
2319
2320 #[serde(rename = "Options")]
2322 #[serde(skip_serializing_if = "Option::is_none")]
2323 pub options: Option<HashMap<String, String>>,
2324
2325}
2326
2327#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2329pub struct DriverData {
2330 #[serde(rename = "Name")]
2332 pub name: String,
2333
2334 #[serde(rename = "Data")]
2336 #[serde(deserialize_with = "deserialize_nonoptional_map")]
2337 pub data: HashMap<String, String>,
2338
2339}
2340
2341#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2343pub struct EndpointIpamConfig {
2344 #[serde(rename = "IPv4Address")]
2345 #[serde(skip_serializing_if = "Option::is_none")]
2346 pub ipv4_address: Option<String>,
2347
2348 #[serde(rename = "IPv6Address")]
2349 #[serde(skip_serializing_if = "Option::is_none")]
2350 pub ipv6_address: Option<String>,
2351
2352 #[serde(rename = "LinkLocalIPs")]
2353 #[serde(skip_serializing_if = "Option::is_none")]
2354 pub link_local_ips: Option<Vec<String>>,
2355
2356}
2357
2358#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2359pub struct EndpointPortConfig {
2360 #[serde(rename = "Name")]
2361 #[serde(skip_serializing_if = "Option::is_none")]
2362 pub name: Option<String>,
2363
2364 #[serde(rename = "Protocol")]
2365 #[serde(skip_serializing_if = "Option::is_none")]
2366 pub protocol: Option<EndpointPortConfigProtocolEnum>,
2367
2368 #[serde(rename = "TargetPort")]
2370 #[serde(skip_serializing_if = "Option::is_none")]
2371 pub target_port: Option<i64>,
2372
2373 #[serde(rename = "PublishedPort")]
2375 #[serde(skip_serializing_if = "Option::is_none")]
2376 pub published_port: Option<i64>,
2377
2378 #[serde(rename = "PublishMode")]
2380 #[serde(skip_serializing_if = "Option::is_none")]
2381 pub publish_mode: Option<EndpointPortConfigPublishModeEnum>,
2382
2383}
2384
2385#[allow(non_camel_case_types)]
2386#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
2387pub enum EndpointPortConfigProtocolEnum {
2388 #[serde(rename = "")]
2389 EMPTY,
2390 #[serde(rename = "tcp")]
2391 TCP,
2392 #[serde(rename = "udp")]
2393 UDP,
2394 #[serde(rename = "sctp")]
2395 SCTP,
2396}
2397
2398impl ::std::fmt::Display for EndpointPortConfigProtocolEnum {
2399 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2400 match *self {
2401 EndpointPortConfigProtocolEnum::EMPTY => write!(f, ""),
2402 EndpointPortConfigProtocolEnum::TCP => write!(f, "{}", "tcp"),
2403 EndpointPortConfigProtocolEnum::UDP => write!(f, "{}", "udp"),
2404 EndpointPortConfigProtocolEnum::SCTP => write!(f, "{}", "sctp"),
2405
2406 }
2407 }
2408}
2409
2410impl ::std::str::FromStr for EndpointPortConfigProtocolEnum {
2411 type Err = String;
2412 fn from_str(s: &str) -> Result<Self, Self::Err> {
2413 match s {
2414 "" => Ok(EndpointPortConfigProtocolEnum::EMPTY),
2415 "tcp" => Ok(EndpointPortConfigProtocolEnum::TCP),
2416 "udp" => Ok(EndpointPortConfigProtocolEnum::UDP),
2417 "sctp" => Ok(EndpointPortConfigProtocolEnum::SCTP),
2418 x => Err(format!("Invalid enum type: {}", x)),
2419 }
2420 }
2421}
2422
2423impl ::std::convert::AsRef<str> for EndpointPortConfigProtocolEnum {
2424 fn as_ref(&self) -> &str {
2425 match self {
2426 EndpointPortConfigProtocolEnum::EMPTY => "",
2427 EndpointPortConfigProtocolEnum::TCP => "tcp",
2428 EndpointPortConfigProtocolEnum::UDP => "udp",
2429 EndpointPortConfigProtocolEnum::SCTP => "sctp",
2430 }
2431 }
2432}
2433
2434#[allow(non_camel_case_types)]
2435#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
2436pub enum EndpointPortConfigPublishModeEnum {
2437 #[serde(rename = "")]
2438 EMPTY,
2439 #[serde(rename = "ingress")]
2440 INGRESS,
2441 #[serde(rename = "host")]
2442 HOST,
2443}
2444
2445impl ::std::fmt::Display for EndpointPortConfigPublishModeEnum {
2446 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2447 match *self {
2448 EndpointPortConfigPublishModeEnum::EMPTY => write!(f, ""),
2449 EndpointPortConfigPublishModeEnum::INGRESS => write!(f, "{}", "ingress"),
2450 EndpointPortConfigPublishModeEnum::HOST => write!(f, "{}", "host"),
2451
2452 }
2453 }
2454}
2455
2456impl ::std::str::FromStr for EndpointPortConfigPublishModeEnum {
2457 type Err = String;
2458 fn from_str(s: &str) -> Result<Self, Self::Err> {
2459 match s {
2460 "" => Ok(EndpointPortConfigPublishModeEnum::EMPTY),
2461 "ingress" => Ok(EndpointPortConfigPublishModeEnum::INGRESS),
2462 "host" => Ok(EndpointPortConfigPublishModeEnum::HOST),
2463 x => Err(format!("Invalid enum type: {}", x)),
2464 }
2465 }
2466}
2467
2468impl ::std::convert::AsRef<str> for EndpointPortConfigPublishModeEnum {
2469 fn as_ref(&self) -> &str {
2470 match self {
2471 EndpointPortConfigPublishModeEnum::EMPTY => "",
2472 EndpointPortConfigPublishModeEnum::INGRESS => "ingress",
2473 EndpointPortConfigPublishModeEnum::HOST => "host",
2474 }
2475 }
2476}
2477
2478#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2480pub struct EndpointSettings {
2481 #[serde(rename = "IPAMConfig")]
2482 #[serde(skip_serializing_if = "Option::is_none")]
2483 pub ipam_config: Option<EndpointIpamConfig>,
2484
2485 #[serde(rename = "Links")]
2486 #[serde(skip_serializing_if = "Option::is_none")]
2487 pub links: Option<Vec<String>>,
2488
2489 #[serde(rename = "MacAddress")]
2491 #[serde(skip_serializing_if = "Option::is_none")]
2492 pub mac_address: Option<String>,
2493
2494 #[serde(rename = "Aliases")]
2495 #[serde(skip_serializing_if = "Option::is_none")]
2496 pub aliases: Option<Vec<String>>,
2497
2498 #[serde(rename = "DriverOpts")]
2500 #[serde(skip_serializing_if = "Option::is_none")]
2501 pub driver_opts: Option<HashMap<String, String>>,
2502
2503 #[serde(rename = "GwPriority")]
2505 #[serde(skip_serializing_if = "Option::is_none")]
2506 pub gw_priority: Option<f64>,
2507
2508 #[serde(rename = "NetworkID")]
2510 #[serde(skip_serializing_if = "Option::is_none")]
2511 pub network_id: Option<String>,
2512
2513 #[serde(rename = "EndpointID")]
2515 #[serde(skip_serializing_if = "Option::is_none")]
2516 pub endpoint_id: Option<String>,
2517
2518 #[serde(rename = "Gateway")]
2520 #[serde(skip_serializing_if = "Option::is_none")]
2521 pub gateway: Option<String>,
2522
2523 #[serde(rename = "IPAddress")]
2525 #[serde(skip_serializing_if = "Option::is_none")]
2526 pub ip_address: Option<String>,
2527
2528 #[serde(rename = "IPPrefixLen")]
2530 #[serde(skip_serializing_if = "Option::is_none")]
2531 pub ip_prefix_len: Option<i64>,
2532
2533 #[serde(rename = "IPv6Gateway")]
2535 #[serde(skip_serializing_if = "Option::is_none")]
2536 pub ipv6_gateway: Option<String>,
2537
2538 #[serde(rename = "GlobalIPv6Address")]
2540 #[serde(skip_serializing_if = "Option::is_none")]
2541 pub global_ipv6_address: Option<String>,
2542
2543 #[serde(rename = "GlobalIPv6PrefixLen")]
2545 #[serde(skip_serializing_if = "Option::is_none")]
2546 pub global_ipv6_prefix_len: Option<i64>,
2547
2548 #[serde(rename = "DNSNames")]
2550 #[serde(skip_serializing_if = "Option::is_none")]
2551 pub dns_names: Option<Vec<String>>,
2552
2553}
2554
2555#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2557pub struct EndpointSpec {
2558 #[serde(rename = "Mode")]
2560 #[serde(skip_serializing_if = "Option::is_none")]
2561 pub mode: Option<EndpointSpecModeEnum>,
2562
2563 #[serde(rename = "Ports")]
2565 #[serde(skip_serializing_if = "Option::is_none")]
2566 pub ports: Option<Vec<EndpointPortConfig>>,
2567
2568}
2569
2570#[allow(non_camel_case_types)]
2571#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
2572pub enum EndpointSpecModeEnum {
2573 #[serde(rename = "")]
2574 EMPTY,
2575 #[serde(rename = "vip")]
2576 VIP,
2577 #[serde(rename = "dnsrr")]
2578 DNSRR,
2579}
2580
2581impl ::std::fmt::Display for EndpointSpecModeEnum {
2582 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2583 match *self {
2584 EndpointSpecModeEnum::EMPTY => write!(f, ""),
2585 EndpointSpecModeEnum::VIP => write!(f, "{}", "vip"),
2586 EndpointSpecModeEnum::DNSRR => write!(f, "{}", "dnsrr"),
2587
2588 }
2589 }
2590}
2591
2592impl ::std::str::FromStr for EndpointSpecModeEnum {
2593 type Err = String;
2594 fn from_str(s: &str) -> Result<Self, Self::Err> {
2595 match s {
2596 "" => Ok(EndpointSpecModeEnum::EMPTY),
2597 "vip" => Ok(EndpointSpecModeEnum::VIP),
2598 "dnsrr" => Ok(EndpointSpecModeEnum::DNSRR),
2599 x => Err(format!("Invalid enum type: {}", x)),
2600 }
2601 }
2602}
2603
2604impl ::std::convert::AsRef<str> for EndpointSpecModeEnum {
2605 fn as_ref(&self) -> &str {
2606 match self {
2607 EndpointSpecModeEnum::EMPTY => "",
2608 EndpointSpecModeEnum::VIP => "vip",
2609 EndpointSpecModeEnum::DNSRR => "dnsrr",
2610 }
2611 }
2612}
2613
2614#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2616pub struct EngineDescription {
2617 #[serde(rename = "EngineVersion")]
2618 #[serde(skip_serializing_if = "Option::is_none")]
2619 pub engine_version: Option<String>,
2620
2621 #[serde(rename = "Labels")]
2622 #[serde(skip_serializing_if = "Option::is_none")]
2623 pub labels: Option<HashMap<String, String>>,
2624
2625 #[serde(rename = "Plugins")]
2626 #[serde(skip_serializing_if = "Option::is_none")]
2627 pub plugins: Option<Vec<EngineDescriptionPlugins>>,
2628
2629}
2630
2631#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2632pub struct EngineDescriptionPlugins {
2633 #[serde(rename = "Type")]
2634 #[serde(skip_serializing_if = "Option::is_none")]
2635 pub typ: Option<String>,
2636
2637 #[serde(rename = "Name")]
2638 #[serde(skip_serializing_if = "Option::is_none")]
2639 pub name: Option<String>,
2640
2641}
2642
2643#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2644pub struct ErrorDetail {
2645 #[serde(rename = "code")]
2646 #[serde(skip_serializing_if = "Option::is_none")]
2647 pub code: Option<i64>,
2648
2649 #[serde(rename = "message")]
2650 #[serde(skip_serializing_if = "Option::is_none")]
2651 pub message: Option<String>,
2652
2653}
2654
2655#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2657pub struct ErrorResponse {
2658 #[serde(rename = "message")]
2660 pub message: String,
2661
2662}
2663
2664#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2666pub struct EventActor {
2667 #[serde(rename = "ID")]
2669 #[serde(skip_serializing_if = "Option::is_none")]
2670 pub id: Option<String>,
2671
2672 #[serde(rename = "Attributes")]
2674 #[serde(skip_serializing_if = "Option::is_none")]
2675 pub attributes: Option<HashMap<String, String>>,
2676
2677}
2678
2679#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2681pub struct EventMessage {
2682 #[serde(rename = "Type")]
2684 #[serde(skip_serializing_if = "Option::is_none")]
2685 pub typ: Option<EventMessageTypeEnum>,
2686
2687 #[serde(rename = "Action")]
2689 #[serde(skip_serializing_if = "Option::is_none")]
2690 pub action: Option<String>,
2691
2692 #[serde(rename = "Actor")]
2693 #[serde(skip_serializing_if = "Option::is_none")]
2694 pub actor: Option<EventActor>,
2695
2696 #[serde(rename = "scope")]
2698 #[serde(skip_serializing_if = "Option::is_none")]
2699 pub scope: Option<EventMessageScopeEnum>,
2700
2701 #[serde(rename = "time")]
2703 #[serde(skip_serializing_if = "Option::is_none")]
2704 pub time: Option<i64>,
2705
2706 #[serde(rename = "timeNano")]
2708 #[serde(skip_serializing_if = "Option::is_none")]
2709 pub time_nano: Option<i64>,
2710
2711}
2712
2713#[allow(non_camel_case_types)]
2714#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
2715pub enum EventMessageTypeEnum {
2716 #[serde(rename = "")]
2717 EMPTY,
2718 #[serde(rename = "builder")]
2719 BUILDER,
2720 #[serde(rename = "config")]
2721 CONFIG,
2722 #[serde(rename = "container")]
2723 CONTAINER,
2724 #[serde(rename = "daemon")]
2725 DAEMON,
2726 #[serde(rename = "image")]
2727 IMAGE,
2728 #[serde(rename = "network")]
2729 NETWORK,
2730 #[serde(rename = "node")]
2731 NODE,
2732 #[serde(rename = "plugin")]
2733 PLUGIN,
2734 #[serde(rename = "secret")]
2735 SECRET,
2736 #[serde(rename = "service")]
2737 SERVICE,
2738 #[serde(rename = "volume")]
2739 VOLUME,
2740}
2741
2742impl ::std::fmt::Display for EventMessageTypeEnum {
2743 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2744 match *self {
2745 EventMessageTypeEnum::EMPTY => write!(f, ""),
2746 EventMessageTypeEnum::BUILDER => write!(f, "{}", "builder"),
2747 EventMessageTypeEnum::CONFIG => write!(f, "{}", "config"),
2748 EventMessageTypeEnum::CONTAINER => write!(f, "{}", "container"),
2749 EventMessageTypeEnum::DAEMON => write!(f, "{}", "daemon"),
2750 EventMessageTypeEnum::IMAGE => write!(f, "{}", "image"),
2751 EventMessageTypeEnum::NETWORK => write!(f, "{}", "network"),
2752 EventMessageTypeEnum::NODE => write!(f, "{}", "node"),
2753 EventMessageTypeEnum::PLUGIN => write!(f, "{}", "plugin"),
2754 EventMessageTypeEnum::SECRET => write!(f, "{}", "secret"),
2755 EventMessageTypeEnum::SERVICE => write!(f, "{}", "service"),
2756 EventMessageTypeEnum::VOLUME => write!(f, "{}", "volume"),
2757
2758 }
2759 }
2760}
2761
2762impl ::std::str::FromStr for EventMessageTypeEnum {
2763 type Err = String;
2764 fn from_str(s: &str) -> Result<Self, Self::Err> {
2765 match s {
2766 "" => Ok(EventMessageTypeEnum::EMPTY),
2767 "builder" => Ok(EventMessageTypeEnum::BUILDER),
2768 "config" => Ok(EventMessageTypeEnum::CONFIG),
2769 "container" => Ok(EventMessageTypeEnum::CONTAINER),
2770 "daemon" => Ok(EventMessageTypeEnum::DAEMON),
2771 "image" => Ok(EventMessageTypeEnum::IMAGE),
2772 "network" => Ok(EventMessageTypeEnum::NETWORK),
2773 "node" => Ok(EventMessageTypeEnum::NODE),
2774 "plugin" => Ok(EventMessageTypeEnum::PLUGIN),
2775 "secret" => Ok(EventMessageTypeEnum::SECRET),
2776 "service" => Ok(EventMessageTypeEnum::SERVICE),
2777 "volume" => Ok(EventMessageTypeEnum::VOLUME),
2778 x => Err(format!("Invalid enum type: {}", x)),
2779 }
2780 }
2781}
2782
2783impl ::std::convert::AsRef<str> for EventMessageTypeEnum {
2784 fn as_ref(&self) -> &str {
2785 match self {
2786 EventMessageTypeEnum::EMPTY => "",
2787 EventMessageTypeEnum::BUILDER => "builder",
2788 EventMessageTypeEnum::CONFIG => "config",
2789 EventMessageTypeEnum::CONTAINER => "container",
2790 EventMessageTypeEnum::DAEMON => "daemon",
2791 EventMessageTypeEnum::IMAGE => "image",
2792 EventMessageTypeEnum::NETWORK => "network",
2793 EventMessageTypeEnum::NODE => "node",
2794 EventMessageTypeEnum::PLUGIN => "plugin",
2795 EventMessageTypeEnum::SECRET => "secret",
2796 EventMessageTypeEnum::SERVICE => "service",
2797 EventMessageTypeEnum::VOLUME => "volume",
2798 }
2799 }
2800}
2801
2802#[allow(non_camel_case_types)]
2803#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
2804pub enum EventMessageScopeEnum {
2805 #[serde(rename = "")]
2806 EMPTY,
2807 #[serde(rename = "local")]
2808 LOCAL,
2809 #[serde(rename = "swarm")]
2810 SWARM,
2811}
2812
2813impl ::std::fmt::Display for EventMessageScopeEnum {
2814 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2815 match *self {
2816 EventMessageScopeEnum::EMPTY => write!(f, ""),
2817 EventMessageScopeEnum::LOCAL => write!(f, "{}", "local"),
2818 EventMessageScopeEnum::SWARM => write!(f, "{}", "swarm"),
2819
2820 }
2821 }
2822}
2823
2824impl ::std::str::FromStr for EventMessageScopeEnum {
2825 type Err = String;
2826 fn from_str(s: &str) -> Result<Self, Self::Err> {
2827 match s {
2828 "" => Ok(EventMessageScopeEnum::EMPTY),
2829 "local" => Ok(EventMessageScopeEnum::LOCAL),
2830 "swarm" => Ok(EventMessageScopeEnum::SWARM),
2831 x => Err(format!("Invalid enum type: {}", x)),
2832 }
2833 }
2834}
2835
2836impl ::std::convert::AsRef<str> for EventMessageScopeEnum {
2837 fn as_ref(&self) -> &str {
2838 match self {
2839 EventMessageScopeEnum::EMPTY => "",
2840 EventMessageScopeEnum::LOCAL => "local",
2841 EventMessageScopeEnum::SWARM => "swarm",
2842 }
2843 }
2844}
2845
2846#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2847pub struct ExecConfig {
2848 #[serde(rename = "AttachStdin")]
2850 #[serde(skip_serializing_if = "Option::is_none")]
2851 pub attach_stdin: Option<bool>,
2852
2853 #[serde(rename = "AttachStdout")]
2855 #[serde(skip_serializing_if = "Option::is_none")]
2856 pub attach_stdout: Option<bool>,
2857
2858 #[serde(rename = "AttachStderr")]
2860 #[serde(skip_serializing_if = "Option::is_none")]
2861 pub attach_stderr: Option<bool>,
2862
2863 #[serde(rename = "ConsoleSize")]
2865 #[serde(skip_serializing_if = "Option::is_none")]
2866 pub console_size: Option<Vec<i32>>,
2867
2868 #[serde(rename = "DetachKeys")]
2870 #[serde(skip_serializing_if = "Option::is_none")]
2871 pub detach_keys: Option<String>,
2872
2873 #[serde(rename = "Tty")]
2875 #[serde(skip_serializing_if = "Option::is_none")]
2876 pub tty: Option<bool>,
2877
2878 #[serde(rename = "Env")]
2880 #[serde(skip_serializing_if = "Option::is_none")]
2881 pub env: Option<Vec<String>>,
2882
2883 #[serde(rename = "Cmd")]
2885 #[serde(skip_serializing_if = "Option::is_none")]
2886 pub cmd: Option<Vec<String>>,
2887
2888 #[serde(rename = "Privileged")]
2890 #[serde(skip_serializing_if = "Option::is_none")]
2891 pub privileged: Option<bool>,
2892
2893 #[serde(rename = "User")]
2895 #[serde(skip_serializing_if = "Option::is_none")]
2896 pub user: Option<String>,
2897
2898 #[serde(rename = "WorkingDir")]
2900 #[serde(skip_serializing_if = "Option::is_none")]
2901 pub working_dir: Option<String>,
2902
2903}
2904
2905#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2906pub struct ExecInspectResponse {
2907 #[serde(rename = "CanRemove")]
2908 #[serde(skip_serializing_if = "Option::is_none")]
2909 pub can_remove: Option<bool>,
2910
2911 #[serde(rename = "DetachKeys")]
2912 #[serde(skip_serializing_if = "Option::is_none")]
2913 pub detach_keys: Option<String>,
2914
2915 #[serde(rename = "ID")]
2916 #[serde(skip_serializing_if = "Option::is_none")]
2917 pub id: Option<String>,
2918
2919 #[serde(rename = "Running")]
2920 #[serde(skip_serializing_if = "Option::is_none")]
2921 pub running: Option<bool>,
2922
2923 #[serde(rename = "ExitCode")]
2924 #[serde(skip_serializing_if = "Option::is_none")]
2925 pub exit_code: Option<i64>,
2926
2927 #[serde(rename = "ProcessConfig")]
2928 #[serde(skip_serializing_if = "Option::is_none")]
2929 pub process_config: Option<ProcessConfig>,
2930
2931 #[serde(rename = "OpenStdin")]
2932 #[serde(skip_serializing_if = "Option::is_none")]
2933 pub open_stdin: Option<bool>,
2934
2935 #[serde(rename = "OpenStderr")]
2936 #[serde(skip_serializing_if = "Option::is_none")]
2937 pub open_stderr: Option<bool>,
2938
2939 #[serde(rename = "OpenStdout")]
2940 #[serde(skip_serializing_if = "Option::is_none")]
2941 pub open_stdout: Option<bool>,
2942
2943 #[serde(rename = "ContainerID")]
2944 #[serde(skip_serializing_if = "Option::is_none")]
2945 pub container_id: Option<String>,
2946
2947 #[serde(rename = "Pid")]
2949 #[serde(skip_serializing_if = "Option::is_none")]
2950 pub pid: Option<i64>,
2951
2952}
2953
2954#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2955pub struct ExecStartConfig {
2956 #[serde(rename = "Detach")]
2958 #[serde(skip_serializing_if = "Option::is_none")]
2959 pub detach: Option<bool>,
2960
2961 #[serde(rename = "Tty")]
2963 #[serde(skip_serializing_if = "Option::is_none")]
2964 pub tty: Option<bool>,
2965
2966 #[serde(rename = "ConsoleSize")]
2968 #[serde(skip_serializing_if = "Option::is_none")]
2969 pub console_size: Option<Vec<i32>>,
2970
2971}
2972
2973#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2975pub struct FilesystemChange {
2976 #[serde(rename = "Path")]
2978 pub path: String,
2979
2980 #[serde(rename = "Kind")]
2981 pub kind: ChangeType,
2982
2983}
2984
2985pub type GenericResources = GenericResourcesInner;
2988
2989#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
2990pub struct GenericResourcesInner {
2991 #[serde(rename = "NamedResourceSpec")]
2992 #[serde(skip_serializing_if = "Option::is_none")]
2993 pub named_resource_spec: Option<GenericResourcesInnerNamedResourceSpec>,
2994
2995 #[serde(rename = "DiscreteResourceSpec")]
2996 #[serde(skip_serializing_if = "Option::is_none")]
2997 pub discrete_resource_spec: Option<GenericResourcesInnerDiscreteResourceSpec>,
2998
2999}
3000
3001#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3002pub struct GenericResourcesInnerDiscreteResourceSpec {
3003 #[serde(rename = "Kind")]
3004 #[serde(skip_serializing_if = "Option::is_none")]
3005 pub kind: Option<String>,
3006
3007 #[serde(rename = "Value")]
3008 #[serde(skip_serializing_if = "Option::is_none")]
3009 pub value: Option<i64>,
3010
3011}
3012
3013#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3014pub struct GenericResourcesInnerNamedResourceSpec {
3015 #[serde(rename = "Kind")]
3016 #[serde(skip_serializing_if = "Option::is_none")]
3017 pub kind: Option<String>,
3018
3019 #[serde(rename = "Value")]
3020 #[serde(skip_serializing_if = "Option::is_none")]
3021 pub value: Option<String>,
3022
3023}
3024
3025#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3027pub struct Health {
3028 #[serde(rename = "Status")]
3030 #[serde(skip_serializing_if = "Option::is_none")]
3031 pub status: Option<HealthStatusEnum>,
3032
3033 #[serde(rename = "FailingStreak")]
3035 #[serde(skip_serializing_if = "Option::is_none")]
3036 pub failing_streak: Option<i64>,
3037
3038 #[serde(rename = "Log")]
3040 #[serde(skip_serializing_if = "Option::is_none")]
3041 pub log: Option<Vec<HealthcheckResult>>,
3042
3043}
3044
3045#[allow(non_camel_case_types)]
3046#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
3047pub enum HealthStatusEnum {
3048 #[serde(rename = "")]
3049 EMPTY,
3050 #[serde(rename = "none")]
3051 NONE,
3052 #[serde(rename = "starting")]
3053 STARTING,
3054 #[serde(rename = "healthy")]
3055 HEALTHY,
3056 #[serde(rename = "unhealthy")]
3057 UNHEALTHY,
3058}
3059
3060impl ::std::fmt::Display for HealthStatusEnum {
3061 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3062 match *self {
3063 HealthStatusEnum::EMPTY => write!(f, ""),
3064 HealthStatusEnum::NONE => write!(f, "{}", "none"),
3065 HealthStatusEnum::STARTING => write!(f, "{}", "starting"),
3066 HealthStatusEnum::HEALTHY => write!(f, "{}", "healthy"),
3067 HealthStatusEnum::UNHEALTHY => write!(f, "{}", "unhealthy"),
3068
3069 }
3070 }
3071}
3072
3073impl ::std::str::FromStr for HealthStatusEnum {
3074 type Err = String;
3075 fn from_str(s: &str) -> Result<Self, Self::Err> {
3076 match s {
3077 "" => Ok(HealthStatusEnum::EMPTY),
3078 "none" => Ok(HealthStatusEnum::NONE),
3079 "starting" => Ok(HealthStatusEnum::STARTING),
3080 "healthy" => Ok(HealthStatusEnum::HEALTHY),
3081 "unhealthy" => Ok(HealthStatusEnum::UNHEALTHY),
3082 x => Err(format!("Invalid enum type: {}", x)),
3083 }
3084 }
3085}
3086
3087impl ::std::convert::AsRef<str> for HealthStatusEnum {
3088 fn as_ref(&self) -> &str {
3089 match self {
3090 HealthStatusEnum::EMPTY => "",
3091 HealthStatusEnum::NONE => "none",
3092 HealthStatusEnum::STARTING => "starting",
3093 HealthStatusEnum::HEALTHY => "healthy",
3094 HealthStatusEnum::UNHEALTHY => "unhealthy",
3095 }
3096 }
3097}
3098
3099#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3101pub struct HealthConfig {
3102 #[serde(rename = "Test")]
3104 #[serde(skip_serializing_if = "Option::is_none")]
3105 pub test: Option<Vec<String>>,
3106
3107 #[serde(rename = "Interval")]
3109 #[serde(skip_serializing_if = "Option::is_none")]
3110 pub interval: Option<i64>,
3111
3112 #[serde(rename = "Timeout")]
3114 #[serde(skip_serializing_if = "Option::is_none")]
3115 pub timeout: Option<i64>,
3116
3117 #[serde(rename = "Retries")]
3119 #[serde(skip_serializing_if = "Option::is_none")]
3120 pub retries: Option<i64>,
3121
3122 #[serde(rename = "StartPeriod")]
3124 #[serde(skip_serializing_if = "Option::is_none")]
3125 pub start_period: Option<i64>,
3126
3127 #[serde(rename = "StartInterval")]
3129 #[serde(skip_serializing_if = "Option::is_none")]
3130 pub start_interval: Option<i64>,
3131
3132}
3133
3134#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3136pub struct HealthcheckResult {
3137 #[serde(rename = "Start")]
3139 #[serde(skip_serializing_if = "Option::is_none")]
3140 #[serde(
3141 default,
3142 deserialize_with = "deserialize_timestamp",
3143 serialize_with = "serialize_timestamp"
3144 )]
3145 pub start: Option<BollardDate>,
3146
3147 #[serde(rename = "End")]
3149 #[serde(skip_serializing_if = "Option::is_none")]
3150 #[serde(
3151 default,
3152 deserialize_with = "deserialize_timestamp",
3153 serialize_with = "serialize_timestamp"
3154 )]
3155 pub end: Option<BollardDate>,
3156
3157 #[serde(rename = "ExitCode")]
3159 #[serde(skip_serializing_if = "Option::is_none")]
3160 pub exit_code: Option<i64>,
3161
3162 #[serde(rename = "Output")]
3164 #[serde(skip_serializing_if = "Option::is_none")]
3165 pub output: Option<String>,
3166
3167}
3168
3169#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3171pub struct HistoryResponseItem {
3172 #[serde(rename = "Id")]
3173 pub id: String,
3174
3175 #[serde(rename = "Created")]
3176 pub created: i64,
3177
3178 #[serde(rename = "CreatedBy")]
3179 pub created_by: String,
3180
3181 #[serde(rename = "Tags")]
3182 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
3183 pub tags: Vec<String>,
3184
3185 #[serde(rename = "Size")]
3186 pub size: i64,
3187
3188 #[serde(rename = "Comment")]
3189 pub comment: String,
3190
3191}
3192
3193#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3195pub struct HostConfig {
3196 #[serde(rename = "CpuShares")]
3198 #[serde(skip_serializing_if = "Option::is_none")]
3199 pub cpu_shares: Option<i64>,
3200
3201 #[serde(rename = "Memory")]
3203 #[serde(skip_serializing_if = "Option::is_none")]
3204 pub memory: Option<i64>,
3205
3206 #[serde(rename = "CgroupParent")]
3208 #[serde(skip_serializing_if = "Option::is_none")]
3209 pub cgroup_parent: Option<String>,
3210
3211 #[serde(rename = "BlkioWeight")]
3213 #[serde(skip_serializing_if = "Option::is_none")]
3214 pub blkio_weight: Option<u16>,
3215
3216 #[serde(rename = "BlkioWeightDevice")]
3218 #[serde(skip_serializing_if = "Option::is_none")]
3219 pub blkio_weight_device: Option<Vec<ResourcesBlkioWeightDevice>>,
3220
3221 #[serde(rename = "BlkioDeviceReadBps")]
3223 #[serde(skip_serializing_if = "Option::is_none")]
3224 pub blkio_device_read_bps: Option<Vec<ThrottleDevice>>,
3225
3226 #[serde(rename = "BlkioDeviceWriteBps")]
3228 #[serde(skip_serializing_if = "Option::is_none")]
3229 pub blkio_device_write_bps: Option<Vec<ThrottleDevice>>,
3230
3231 #[serde(rename = "BlkioDeviceReadIOps")]
3233 #[serde(skip_serializing_if = "Option::is_none")]
3234 pub blkio_device_read_iops: Option<Vec<ThrottleDevice>>,
3235
3236 #[serde(rename = "BlkioDeviceWriteIOps")]
3238 #[serde(skip_serializing_if = "Option::is_none")]
3239 pub blkio_device_write_iops: Option<Vec<ThrottleDevice>>,
3240
3241 #[serde(rename = "CpuPeriod")]
3243 #[serde(skip_serializing_if = "Option::is_none")]
3244 pub cpu_period: Option<i64>,
3245
3246 #[serde(rename = "CpuQuota")]
3248 #[serde(skip_serializing_if = "Option::is_none")]
3249 pub cpu_quota: Option<i64>,
3250
3251 #[serde(rename = "CpuRealtimePeriod")]
3253 #[serde(skip_serializing_if = "Option::is_none")]
3254 pub cpu_realtime_period: Option<i64>,
3255
3256 #[serde(rename = "CpuRealtimeRuntime")]
3258 #[serde(skip_serializing_if = "Option::is_none")]
3259 pub cpu_realtime_runtime: Option<i64>,
3260
3261 #[serde(rename = "CpusetCpus")]
3263 #[serde(skip_serializing_if = "Option::is_none")]
3264 pub cpuset_cpus: Option<String>,
3265
3266 #[serde(rename = "CpusetMems")]
3268 #[serde(skip_serializing_if = "Option::is_none")]
3269 pub cpuset_mems: Option<String>,
3270
3271 #[serde(rename = "Devices")]
3273 #[serde(skip_serializing_if = "Option::is_none")]
3274 pub devices: Option<Vec<DeviceMapping>>,
3275
3276 #[serde(rename = "DeviceCgroupRules")]
3278 #[serde(skip_serializing_if = "Option::is_none")]
3279 pub device_cgroup_rules: Option<Vec<String>>,
3280
3281 #[serde(rename = "DeviceRequests")]
3283 #[serde(skip_serializing_if = "Option::is_none")]
3284 pub device_requests: Option<Vec<DeviceRequest>>,
3285
3286 #[serde(rename = "KernelMemoryTCP")]
3288 #[serde(skip_serializing_if = "Option::is_none")]
3289 pub kernel_memory_tcp: Option<i64>,
3290
3291 #[serde(rename = "MemoryReservation")]
3293 #[serde(skip_serializing_if = "Option::is_none")]
3294 pub memory_reservation: Option<i64>,
3295
3296 #[serde(rename = "MemorySwap")]
3298 #[serde(skip_serializing_if = "Option::is_none")]
3299 pub memory_swap: Option<i64>,
3300
3301 #[serde(rename = "MemorySwappiness")]
3303 #[serde(skip_serializing_if = "Option::is_none")]
3304 pub memory_swappiness: Option<i64>,
3305
3306 #[serde(rename = "NanoCpus")]
3308 #[serde(skip_serializing_if = "Option::is_none")]
3309 pub nano_cpus: Option<i64>,
3310
3311 #[serde(rename = "OomKillDisable")]
3313 #[serde(skip_serializing_if = "Option::is_none")]
3314 pub oom_kill_disable: Option<bool>,
3315
3316 #[serde(rename = "Init")]
3318 #[serde(skip_serializing_if = "Option::is_none")]
3319 pub init: Option<bool>,
3320
3321 #[serde(rename = "PidsLimit")]
3323 #[serde(skip_serializing_if = "Option::is_none")]
3324 pub pids_limit: Option<i64>,
3325
3326 #[serde(rename = "Ulimits")]
3328 #[serde(skip_serializing_if = "Option::is_none")]
3329 pub ulimits: Option<Vec<ResourcesUlimits>>,
3330
3331 #[serde(rename = "CpuCount")]
3333 #[serde(skip_serializing_if = "Option::is_none")]
3334 pub cpu_count: Option<i64>,
3335
3336 #[serde(rename = "CpuPercent")]
3338 #[serde(skip_serializing_if = "Option::is_none")]
3339 pub cpu_percent: Option<i64>,
3340
3341 #[serde(rename = "IOMaximumIOps")]
3343 #[serde(skip_serializing_if = "Option::is_none")]
3344 pub io_maximum_iops: Option<i64>,
3345
3346 #[serde(rename = "IOMaximumBandwidth")]
3348 #[serde(skip_serializing_if = "Option::is_none")]
3349 pub io_maximum_bandwidth: Option<i64>,
3350
3351 #[serde(rename = "Binds")]
3353 #[serde(skip_serializing_if = "Option::is_none")]
3354 pub binds: Option<Vec<String>>,
3355
3356 #[serde(rename = "ContainerIDFile")]
3358 #[serde(skip_serializing_if = "Option::is_none")]
3359 pub container_id_file: Option<String>,
3360
3361 #[serde(rename = "LogConfig")]
3362 #[serde(skip_serializing_if = "Option::is_none")]
3363 pub log_config: Option<HostConfigLogConfig>,
3364
3365 #[serde(rename = "NetworkMode")]
3367 #[serde(skip_serializing_if = "Option::is_none")]
3368 pub network_mode: Option<String>,
3369
3370 #[serde(rename = "PortBindings")]
3371 #[serde(skip_serializing_if = "Option::is_none")]
3372 pub port_bindings: Option<PortMap>,
3373
3374 #[serde(rename = "RestartPolicy")]
3375 #[serde(skip_serializing_if = "Option::is_none")]
3376 pub restart_policy: Option<RestartPolicy>,
3377
3378 #[serde(rename = "AutoRemove")]
3380 #[serde(skip_serializing_if = "Option::is_none")]
3381 pub auto_remove: Option<bool>,
3382
3383 #[serde(rename = "VolumeDriver")]
3385 #[serde(skip_serializing_if = "Option::is_none")]
3386 pub volume_driver: Option<String>,
3387
3388 #[serde(rename = "VolumesFrom")]
3390 #[serde(skip_serializing_if = "Option::is_none")]
3391 pub volumes_from: Option<Vec<String>>,
3392
3393 #[serde(rename = "Mounts")]
3395 #[serde(skip_serializing_if = "Option::is_none")]
3396 pub mounts: Option<Vec<Mount>>,
3397
3398 #[serde(rename = "ConsoleSize")]
3400 #[serde(skip_serializing_if = "Option::is_none")]
3401 pub console_size: Option<Vec<i32>>,
3402
3403 #[serde(rename = "Annotations")]
3405 #[serde(skip_serializing_if = "Option::is_none")]
3406 pub annotations: Option<HashMap<String, String>>,
3407
3408 #[serde(rename = "CapAdd")]
3410 #[serde(skip_serializing_if = "Option::is_none")]
3411 pub cap_add: Option<Vec<String>>,
3412
3413 #[serde(rename = "CapDrop")]
3415 #[serde(skip_serializing_if = "Option::is_none")]
3416 pub cap_drop: Option<Vec<String>>,
3417
3418 #[serde(rename = "CgroupnsMode")]
3420 #[serde(skip_serializing_if = "Option::is_none")]
3421 pub cgroupns_mode: Option<HostConfigCgroupnsModeEnum>,
3422
3423 #[serde(rename = "Dns")]
3425 #[serde(skip_serializing_if = "Option::is_none")]
3426 pub dns: Option<Vec<String>>,
3427
3428 #[serde(rename = "DnsOptions")]
3430 #[serde(skip_serializing_if = "Option::is_none")]
3431 pub dns_options: Option<Vec<String>>,
3432
3433 #[serde(rename = "DnsSearch")]
3435 #[serde(skip_serializing_if = "Option::is_none")]
3436 pub dns_search: Option<Vec<String>>,
3437
3438 #[serde(rename = "ExtraHosts")]
3440 #[serde(skip_serializing_if = "Option::is_none")]
3441 pub extra_hosts: Option<Vec<String>>,
3442
3443 #[serde(rename = "GroupAdd")]
3445 #[serde(skip_serializing_if = "Option::is_none")]
3446 pub group_add: Option<Vec<String>>,
3447
3448 #[serde(rename = "IpcMode")]
3450 #[serde(skip_serializing_if = "Option::is_none")]
3451 pub ipc_mode: Option<String>,
3452
3453 #[serde(rename = "Cgroup")]
3455 #[serde(skip_serializing_if = "Option::is_none")]
3456 pub cgroup: Option<String>,
3457
3458 #[serde(rename = "Links")]
3460 #[serde(skip_serializing_if = "Option::is_none")]
3461 pub links: Option<Vec<String>>,
3462
3463 #[serde(rename = "OomScoreAdj")]
3465 #[serde(skip_serializing_if = "Option::is_none")]
3466 pub oom_score_adj: Option<i64>,
3467
3468 #[serde(rename = "PidMode")]
3470 #[serde(skip_serializing_if = "Option::is_none")]
3471 pub pid_mode: Option<String>,
3472
3473 #[serde(rename = "Privileged")]
3475 #[serde(skip_serializing_if = "Option::is_none")]
3476 pub privileged: Option<bool>,
3477
3478 #[serde(rename = "PublishAllPorts")]
3480 #[serde(skip_serializing_if = "Option::is_none")]
3481 pub publish_all_ports: Option<bool>,
3482
3483 #[serde(rename = "ReadonlyRootfs")]
3485 #[serde(skip_serializing_if = "Option::is_none")]
3486 pub readonly_rootfs: Option<bool>,
3487
3488 #[serde(rename = "SecurityOpt")]
3490 #[serde(skip_serializing_if = "Option::is_none")]
3491 pub security_opt: Option<Vec<String>>,
3492
3493 #[serde(rename = "StorageOpt")]
3495 #[serde(skip_serializing_if = "Option::is_none")]
3496 pub storage_opt: Option<HashMap<String, String>>,
3497
3498 #[serde(rename = "Tmpfs")]
3500 #[serde(skip_serializing_if = "Option::is_none")]
3501 pub tmpfs: Option<HashMap<String, String>>,
3502
3503 #[serde(rename = "UTSMode")]
3505 #[serde(skip_serializing_if = "Option::is_none")]
3506 pub uts_mode: Option<String>,
3507
3508 #[serde(rename = "UsernsMode")]
3510 #[serde(skip_serializing_if = "Option::is_none")]
3511 pub userns_mode: Option<String>,
3512
3513 #[serde(rename = "ShmSize")]
3515 #[serde(skip_serializing_if = "Option::is_none")]
3516 pub shm_size: Option<i64>,
3517
3518 #[serde(rename = "Sysctls")]
3520 #[serde(skip_serializing_if = "Option::is_none")]
3521 pub sysctls: Option<HashMap<String, String>>,
3522
3523 #[serde(rename = "Runtime")]
3525 #[serde(skip_serializing_if = "Option::is_none")]
3526 pub runtime: Option<String>,
3527
3528 #[serde(rename = "Isolation")]
3530 #[serde(skip_serializing_if = "Option::is_none")]
3531 pub isolation: Option<HostConfigIsolationEnum>,
3532
3533 #[serde(rename = "MaskedPaths")]
3535 #[serde(skip_serializing_if = "Option::is_none")]
3536 pub masked_paths: Option<Vec<String>>,
3537
3538 #[serde(rename = "ReadonlyPaths")]
3540 #[serde(skip_serializing_if = "Option::is_none")]
3541 pub readonly_paths: Option<Vec<String>>,
3542
3543}
3544
3545#[allow(non_camel_case_types)]
3546#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
3547pub enum HostConfigCgroupnsModeEnum {
3548 #[serde(rename = "")]
3549 EMPTY,
3550 #[serde(rename = "private")]
3551 PRIVATE,
3552 #[serde(rename = "host")]
3553 HOST,
3554}
3555
3556impl ::std::fmt::Display for HostConfigCgroupnsModeEnum {
3557 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3558 match *self {
3559 HostConfigCgroupnsModeEnum::EMPTY => write!(f, ""),
3560 HostConfigCgroupnsModeEnum::PRIVATE => write!(f, "{}", "private"),
3561 HostConfigCgroupnsModeEnum::HOST => write!(f, "{}", "host"),
3562
3563 }
3564 }
3565}
3566
3567impl ::std::str::FromStr for HostConfigCgroupnsModeEnum {
3568 type Err = String;
3569 fn from_str(s: &str) -> Result<Self, Self::Err> {
3570 match s {
3571 "" => Ok(HostConfigCgroupnsModeEnum::EMPTY),
3572 "private" => Ok(HostConfigCgroupnsModeEnum::PRIVATE),
3573 "host" => Ok(HostConfigCgroupnsModeEnum::HOST),
3574 x => Err(format!("Invalid enum type: {}", x)),
3575 }
3576 }
3577}
3578
3579impl ::std::convert::AsRef<str> for HostConfigCgroupnsModeEnum {
3580 fn as_ref(&self) -> &str {
3581 match self {
3582 HostConfigCgroupnsModeEnum::EMPTY => "",
3583 HostConfigCgroupnsModeEnum::PRIVATE => "private",
3584 HostConfigCgroupnsModeEnum::HOST => "host",
3585 }
3586 }
3587}
3588
3589#[allow(non_camel_case_types)]
3590#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
3591pub enum HostConfigIsolationEnum {
3592 #[serde(rename = "default")]
3593 DEFAULT,
3594 #[serde(rename = "process")]
3595 PROCESS,
3596 #[serde(rename = "hyperv")]
3597 HYPERV,
3598 #[serde(rename = "")]
3599 EMPTY,
3600}
3601
3602impl ::std::fmt::Display for HostConfigIsolationEnum {
3603 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3604 match *self {
3605 HostConfigIsolationEnum::DEFAULT => write!(f, "{}", "default"),
3606 HostConfigIsolationEnum::PROCESS => write!(f, "{}", "process"),
3607 HostConfigIsolationEnum::HYPERV => write!(f, "{}", "hyperv"),
3608 HostConfigIsolationEnum::EMPTY => write!(f, "{}", ""),
3609
3610 }
3611 }
3612}
3613
3614impl ::std::str::FromStr for HostConfigIsolationEnum {
3615 type Err = String;
3616 fn from_str(s: &str) -> Result<Self, Self::Err> {
3617 match s {
3618 "default" => Ok(HostConfigIsolationEnum::DEFAULT),
3619 "process" => Ok(HostConfigIsolationEnum::PROCESS),
3620 "hyperv" => Ok(HostConfigIsolationEnum::HYPERV),
3621 "" => Ok(HostConfigIsolationEnum::EMPTY),
3622 x => Err(format!("Invalid enum type: {}", x)),
3623 }
3624 }
3625}
3626
3627impl ::std::convert::AsRef<str> for HostConfigIsolationEnum {
3628 fn as_ref(&self) -> &str {
3629 match self {
3630 HostConfigIsolationEnum::DEFAULT => "default",
3631 HostConfigIsolationEnum::PROCESS => "process",
3632 HostConfigIsolationEnum::HYPERV => "hyperv",
3633 HostConfigIsolationEnum::EMPTY => "",
3634 }
3635 }
3636}
3637
3638#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3640pub struct HostConfigLogConfig {
3641 #[serde(rename = "Type")]
3643 #[serde(skip_serializing_if = "Option::is_none")]
3644 pub typ: Option<String>,
3645
3646 #[serde(rename = "Config")]
3648 #[serde(skip_serializing_if = "Option::is_none")]
3649 pub config: Option<HashMap<String, String>>,
3650
3651}
3652
3653#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3655#[serde(rename_all = "UPPERCASE")]
3656pub struct IdResponse {
3657 pub id: String,
3660
3661}
3662
3663#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3665pub struct ImageConfig {
3666 #[serde(rename = "Hostname")]
3668 #[serde(skip_serializing_if = "Option::is_none")]
3669 pub hostname: Option<String>,
3670
3671 #[serde(rename = "Domainname")]
3673 #[serde(skip_serializing_if = "Option::is_none")]
3674 pub domainname: Option<String>,
3675
3676 #[serde(rename = "User")]
3678 #[serde(skip_serializing_if = "Option::is_none")]
3679 pub user: Option<String>,
3680
3681 #[serde(rename = "AttachStdin")]
3683 #[serde(skip_serializing_if = "Option::is_none")]
3684 pub attach_stdin: Option<bool>,
3685
3686 #[serde(rename = "AttachStdout")]
3688 #[serde(skip_serializing_if = "Option::is_none")]
3689 pub attach_stdout: Option<bool>,
3690
3691 #[serde(rename = "AttachStderr")]
3693 #[serde(skip_serializing_if = "Option::is_none")]
3694 pub attach_stderr: Option<bool>,
3695
3696 #[serde(rename = "ExposedPorts")]
3698 #[serde(skip_serializing_if = "Option::is_none")]
3699 pub exposed_ports: Option<HashMap<String, HashMap<(), ()>>>,
3700
3701 #[serde(rename = "Tty")]
3703 #[serde(skip_serializing_if = "Option::is_none")]
3704 pub tty: Option<bool>,
3705
3706 #[serde(rename = "OpenStdin")]
3708 #[serde(skip_serializing_if = "Option::is_none")]
3709 pub open_stdin: Option<bool>,
3710
3711 #[serde(rename = "StdinOnce")]
3713 #[serde(skip_serializing_if = "Option::is_none")]
3714 pub stdin_once: Option<bool>,
3715
3716 #[serde(rename = "Env")]
3718 #[serde(skip_serializing_if = "Option::is_none")]
3719 pub env: Option<Vec<String>>,
3720
3721 #[serde(rename = "Cmd")]
3723 #[serde(skip_serializing_if = "Option::is_none")]
3724 pub cmd: Option<Vec<String>>,
3725
3726 #[serde(rename = "Healthcheck")]
3727 #[serde(skip_serializing_if = "Option::is_none")]
3728 pub healthcheck: Option<HealthConfig>,
3729
3730 #[serde(rename = "ArgsEscaped")]
3732 #[serde(skip_serializing_if = "Option::is_none")]
3733 pub args_escaped: Option<bool>,
3734
3735 #[serde(rename = "Image")]
3737 #[serde(skip_serializing_if = "Option::is_none")]
3738 pub image: Option<String>,
3739
3740 #[serde(rename = "Volumes")]
3742 #[serde(skip_serializing_if = "Option::is_none")]
3743 pub volumes: Option<HashMap<String, HashMap<(), ()>>>,
3744
3745 #[serde(rename = "WorkingDir")]
3747 #[serde(skip_serializing_if = "Option::is_none")]
3748 pub working_dir: Option<String>,
3749
3750 #[serde(rename = "Entrypoint")]
3752 #[serde(skip_serializing_if = "Option::is_none")]
3753 pub entrypoint: Option<Vec<String>>,
3754
3755 #[serde(rename = "NetworkDisabled")]
3757 #[serde(skip_serializing_if = "Option::is_none")]
3758 pub network_disabled: Option<bool>,
3759
3760 #[serde(rename = "MacAddress")]
3762 #[serde(skip_serializing_if = "Option::is_none")]
3763 pub mac_address: Option<String>,
3764
3765 #[serde(rename = "OnBuild")]
3767 #[serde(skip_serializing_if = "Option::is_none")]
3768 pub on_build: Option<Vec<String>>,
3769
3770 #[serde(rename = "Labels")]
3772 #[serde(skip_serializing_if = "Option::is_none")]
3773 pub labels: Option<HashMap<String, String>>,
3774
3775 #[serde(rename = "StopSignal")]
3777 #[serde(skip_serializing_if = "Option::is_none")]
3778 pub stop_signal: Option<String>,
3779
3780 #[serde(rename = "StopTimeout")]
3782 #[serde(skip_serializing_if = "Option::is_none")]
3783 pub stop_timeout: Option<i64>,
3784
3785 #[serde(rename = "Shell")]
3787 #[serde(skip_serializing_if = "Option::is_none")]
3788 pub shell: Option<Vec<String>>,
3789
3790}
3791
3792#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3793pub struct ImageDeleteResponseItem {
3794 #[serde(rename = "Untagged")]
3796 #[serde(skip_serializing_if = "Option::is_none")]
3797 pub untagged: Option<String>,
3798
3799 #[serde(rename = "Deleted")]
3801 #[serde(skip_serializing_if = "Option::is_none")]
3802 pub deleted: Option<String>,
3803
3804}
3805
3806#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3808pub struct ImageId {
3809 #[serde(rename = "ID")]
3810 #[serde(skip_serializing_if = "Option::is_none")]
3811 pub id: Option<String>,
3812
3813}
3814
3815#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3817pub struct ImageInspect {
3818 #[serde(rename = "Id")]
3820 #[serde(skip_serializing_if = "Option::is_none")]
3821 pub id: Option<String>,
3822
3823 #[serde(rename = "Descriptor")]
3825 #[serde(skip_serializing_if = "Option::is_none")]
3826 pub descriptor: Option<OciDescriptor>,
3827
3828 #[serde(rename = "Manifests")]
3830 #[serde(skip_serializing_if = "Option::is_none")]
3831 pub manifests: Option<Vec<ImageManifestSummary>>,
3832
3833 #[serde(rename = "RepoTags")]
3835 #[serde(skip_serializing_if = "Option::is_none")]
3836 pub repo_tags: Option<Vec<String>>,
3837
3838 #[serde(rename = "RepoDigests")]
3840 #[serde(skip_serializing_if = "Option::is_none")]
3841 pub repo_digests: Option<Vec<String>>,
3842
3843 #[serde(rename = "Parent")]
3845 #[serde(skip_serializing_if = "Option::is_none")]
3846 pub parent: Option<String>,
3847
3848 #[serde(rename = "Comment")]
3850 #[serde(skip_serializing_if = "Option::is_none")]
3851 pub comment: Option<String>,
3852
3853 #[serde(rename = "Created")]
3855 #[serde(skip_serializing_if = "Option::is_none")]
3856 #[serde(
3857 default,
3858 deserialize_with = "deserialize_timestamp",
3859 serialize_with = "serialize_timestamp"
3860 )]
3861 pub created: Option<BollardDate>,
3862
3863 #[serde(rename = "DockerVersion")]
3865 #[serde(skip_serializing_if = "Option::is_none")]
3866 pub docker_version: Option<String>,
3867
3868 #[serde(rename = "Author")]
3870 #[serde(skip_serializing_if = "Option::is_none")]
3871 pub author: Option<String>,
3872
3873 #[serde(rename = "Config")]
3874 #[serde(skip_serializing_if = "Option::is_none")]
3875 pub config: Option<ImageConfig>,
3876
3877 #[serde(rename = "Architecture")]
3879 #[serde(skip_serializing_if = "Option::is_none")]
3880 pub architecture: Option<String>,
3881
3882 #[serde(rename = "Variant")]
3884 #[serde(skip_serializing_if = "Option::is_none")]
3885 pub variant: Option<String>,
3886
3887 #[serde(rename = "Os")]
3889 #[serde(skip_serializing_if = "Option::is_none")]
3890 pub os: Option<String>,
3891
3892 #[serde(rename = "OsVersion")]
3894 #[serde(skip_serializing_if = "Option::is_none")]
3895 pub os_version: Option<String>,
3896
3897 #[serde(rename = "Size")]
3899 #[serde(skip_serializing_if = "Option::is_none")]
3900 pub size: Option<i64>,
3901
3902 #[serde(rename = "VirtualSize")]
3904 #[serde(skip_serializing_if = "Option::is_none")]
3905 pub virtual_size: Option<i64>,
3906
3907 #[serde(rename = "GraphDriver")]
3908 #[serde(skip_serializing_if = "Option::is_none")]
3909 pub graph_driver: Option<DriverData>,
3910
3911 #[serde(rename = "RootFS")]
3912 #[serde(skip_serializing_if = "Option::is_none")]
3913 pub root_fs: Option<ImageInspectRootFs>,
3914
3915 #[serde(rename = "Metadata")]
3916 #[serde(skip_serializing_if = "Option::is_none")]
3917 pub metadata: Option<ImageInspectMetadata>,
3918
3919}
3920
3921#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3923pub struct ImageInspectMetadata {
3924 #[serde(rename = "LastTagTime")]
3926 #[serde(skip_serializing_if = "Option::is_none")]
3927 #[serde(
3928 default,
3929 deserialize_with = "deserialize_timestamp",
3930 serialize_with = "serialize_timestamp"
3931 )]
3932 pub last_tag_time: Option<BollardDate>,
3933
3934}
3935
3936#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3938pub struct ImageInspectRootFs {
3939 #[serde(rename = "Type")]
3940 pub typ: String,
3941
3942 #[serde(rename = "Layers")]
3943 #[serde(skip_serializing_if = "Option::is_none")]
3944 pub layers: Option<Vec<String>>,
3945
3946}
3947
3948#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
3950pub struct ImageManifestSummary {
3951 #[serde(rename = "ID")]
3953 pub id: String,
3954
3955 #[serde(rename = "Descriptor")]
3956 pub descriptor: OciDescriptor,
3957
3958 #[serde(rename = "Available")]
3960 pub available: bool,
3961
3962 #[serde(rename = "Size")]
3963 pub size: ImageManifestSummarySize,
3964
3965 #[serde(rename = "Kind")]
3967 #[serde(skip_serializing_if = "Option::is_none")]
3968 #[serde(with = "::serde_with::As::<::serde_with::NoneAsEmptyString>")]
3969 pub kind: Option<ImageManifestSummaryKindEnum>,
3970
3971 #[serde(rename = "ImageData")]
3972 #[serde(skip_serializing_if = "Option::is_none")]
3973 pub image_data: Option<ImageManifestSummaryImageData>,
3974
3975 #[serde(rename = "AttestationData")]
3976 #[serde(skip_serializing_if = "Option::is_none")]
3977 pub attestation_data: Option<ImageManifestSummaryAttestationData>,
3978
3979}
3980
3981#[allow(non_camel_case_types)]
3982#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
3983pub enum ImageManifestSummaryKindEnum {
3984 #[serde(rename = "")]
3985 EMPTY,
3986 #[serde(rename = "image")]
3987 IMAGE,
3988 #[serde(rename = "attestation")]
3989 ATTESTATION,
3990 #[serde(rename = "unknown")]
3991 UNKNOWN,
3992}
3993
3994impl ::std::fmt::Display for ImageManifestSummaryKindEnum {
3995 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3996 match *self {
3997 ImageManifestSummaryKindEnum::EMPTY => write!(f, ""),
3998 ImageManifestSummaryKindEnum::IMAGE => write!(f, "{}", "image"),
3999 ImageManifestSummaryKindEnum::ATTESTATION => write!(f, "{}", "attestation"),
4000 ImageManifestSummaryKindEnum::UNKNOWN => write!(f, "{}", "unknown"),
4001
4002 }
4003 }
4004}
4005
4006impl ::std::str::FromStr for ImageManifestSummaryKindEnum {
4007 type Err = String;
4008 fn from_str(s: &str) -> Result<Self, Self::Err> {
4009 match s {
4010 "" => Ok(ImageManifestSummaryKindEnum::EMPTY),
4011 "image" => Ok(ImageManifestSummaryKindEnum::IMAGE),
4012 "attestation" => Ok(ImageManifestSummaryKindEnum::ATTESTATION),
4013 "unknown" => Ok(ImageManifestSummaryKindEnum::UNKNOWN),
4014 x => Err(format!("Invalid enum type: {}", x)),
4015 }
4016 }
4017}
4018
4019impl ::std::convert::AsRef<str> for ImageManifestSummaryKindEnum {
4020 fn as_ref(&self) -> &str {
4021 match self {
4022 ImageManifestSummaryKindEnum::EMPTY => "",
4023 ImageManifestSummaryKindEnum::IMAGE => "image",
4024 ImageManifestSummaryKindEnum::ATTESTATION => "attestation",
4025 ImageManifestSummaryKindEnum::UNKNOWN => "unknown",
4026 }
4027 }
4028}
4029
4030#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4032pub struct ImageManifestSummaryAttestationData {
4033 #[serde(rename = "For")]
4035 pub _for: String,
4036
4037}
4038
4039#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4041pub struct ImageManifestSummaryImageData {
4042 #[serde(rename = "Platform")]
4044 pub platform: OciPlatform,
4045
4046 #[serde(rename = "Containers")]
4048 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
4049 pub containers: Vec<String>,
4050
4051 #[serde(rename = "Size")]
4052 pub size: ImageManifestSummaryImageDataSize,
4053
4054}
4055
4056#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4057pub struct ImageManifestSummaryImageDataSize {
4058 #[serde(rename = "Unpacked")]
4060 pub unpacked: i64,
4061
4062}
4063
4064#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4065pub struct ImageManifestSummarySize {
4066 #[serde(rename = "Total")]
4068 pub total: i64,
4069
4070 #[serde(rename = "Content")]
4072 pub content: i64,
4073
4074}
4075
4076#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4077pub struct ImagePruneResponse {
4078 #[serde(rename = "ImagesDeleted")]
4080 #[serde(skip_serializing_if = "Option::is_none")]
4081 pub images_deleted: Option<Vec<ImageDeleteResponseItem>>,
4082
4083 #[serde(rename = "SpaceReclaimed")]
4085 #[serde(skip_serializing_if = "Option::is_none")]
4086 pub space_reclaimed: Option<i64>,
4087
4088}
4089
4090#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4091pub struct ImageSearchResponseItem {
4092 #[serde(rename = "description")]
4093 #[serde(skip_serializing_if = "Option::is_none")]
4094 pub description: Option<String>,
4095
4096 #[serde(rename = "is_official")]
4097 #[serde(skip_serializing_if = "Option::is_none")]
4098 pub is_official: Option<bool>,
4099
4100 #[serde(rename = "is_automated")]
4102 #[serde(skip_serializing_if = "Option::is_none")]
4103 pub is_automated: Option<bool>,
4104
4105 #[serde(rename = "name")]
4106 #[serde(skip_serializing_if = "Option::is_none")]
4107 pub name: Option<String>,
4108
4109 #[serde(rename = "star_count")]
4110 #[serde(skip_serializing_if = "Option::is_none")]
4111 pub star_count: Option<i64>,
4112
4113}
4114
4115#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4116pub struct ImageSummary {
4117 #[serde(rename = "Id")]
4119 pub id: String,
4120
4121 #[serde(rename = "ParentId")]
4123 pub parent_id: String,
4124
4125 #[serde(rename = "RepoTags")]
4127 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
4128 pub repo_tags: Vec<String>,
4129
4130 #[serde(rename = "RepoDigests")]
4132 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
4133 pub repo_digests: Vec<String>,
4134
4135 #[serde(rename = "Created")]
4137 pub created: i64,
4138
4139 #[serde(rename = "Size")]
4141 pub size: i64,
4142
4143 #[serde(rename = "SharedSize")]
4145 pub shared_size: i64,
4146
4147 #[serde(rename = "VirtualSize")]
4149 #[serde(skip_serializing_if = "Option::is_none")]
4150 pub virtual_size: Option<i64>,
4151
4152 #[serde(rename = "Labels")]
4154 #[serde(deserialize_with = "deserialize_nonoptional_map")]
4155 pub labels: HashMap<String, String>,
4156
4157 #[serde(rename = "Containers")]
4159 pub containers: i64,
4160
4161 #[serde(rename = "Manifests")]
4163 #[serde(skip_serializing_if = "Option::is_none")]
4164 pub manifests: Option<Vec<ImageManifestSummary>>,
4165
4166 #[serde(rename = "Descriptor")]
4168 #[serde(skip_serializing_if = "Option::is_none")]
4169 pub descriptor: Option<OciDescriptor>,
4170
4171}
4172
4173#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4175pub struct IndexInfo {
4176 #[serde(rename = "Name")]
4178 #[serde(skip_serializing_if = "Option::is_none")]
4179 pub name: Option<String>,
4180
4181 #[serde(rename = "Mirrors")]
4183 #[serde(skip_serializing_if = "Option::is_none")]
4184 pub mirrors: Option<Vec<String>>,
4185
4186 #[serde(rename = "Secure")]
4188 #[serde(skip_serializing_if = "Option::is_none")]
4189 pub secure: Option<bool>,
4190
4191 #[serde(rename = "Official")]
4193 #[serde(skip_serializing_if = "Option::is_none")]
4194 pub official: Option<bool>,
4195
4196}
4197
4198#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4199pub struct Ipam {
4200 #[serde(rename = "Driver")]
4202 #[serde(skip_serializing_if = "Option::is_none")]
4203 pub driver: Option<String>,
4204
4205 #[serde(rename = "Config")]
4207 #[serde(skip_serializing_if = "Option::is_none")]
4208 pub config: Option<Vec<IpamConfig>>,
4209
4210 #[serde(rename = "Options")]
4212 #[serde(skip_serializing_if = "Option::is_none")]
4213 pub options: Option<HashMap<String, String>>,
4214
4215}
4216
4217#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4218pub struct IpamConfig {
4219 #[serde(rename = "Subnet")]
4220 #[serde(skip_serializing_if = "Option::is_none")]
4221 pub subnet: Option<String>,
4222
4223 #[serde(rename = "IPRange")]
4224 #[serde(skip_serializing_if = "Option::is_none")]
4225 pub ip_range: Option<String>,
4226
4227 #[serde(rename = "Gateway")]
4228 #[serde(skip_serializing_if = "Option::is_none")]
4229 pub gateway: Option<String>,
4230
4231 #[serde(rename = "AuxiliaryAddresses")]
4232 #[serde(skip_serializing_if = "Option::is_none")]
4233 pub auxiliary_addresses: Option<HashMap<String, String>>,
4234
4235}
4236
4237#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4239pub struct JoinTokens {
4240 #[serde(rename = "Worker")]
4242 #[serde(skip_serializing_if = "Option::is_none")]
4243 pub worker: Option<String>,
4244
4245 #[serde(rename = "Manager")]
4247 #[serde(skip_serializing_if = "Option::is_none")]
4248 pub manager: Option<String>,
4249
4250}
4251
4252#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4254pub struct Limit {
4255 #[serde(rename = "NanoCPUs")]
4256 #[serde(skip_serializing_if = "Option::is_none")]
4257 pub nano_cpus: Option<i64>,
4258
4259 #[serde(rename = "MemoryBytes")]
4260 #[serde(skip_serializing_if = "Option::is_none")]
4261 pub memory_bytes: Option<i64>,
4262
4263 #[serde(rename = "Pids")]
4265 #[serde(skip_serializing_if = "Option::is_none")]
4266 pub pids: Option<i64>,
4267
4268}
4269
4270#[allow(non_camel_case_types)]
4275#[repr(C)]
4276#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
4277pub enum LocalNodeState {
4278 #[serde(rename = "")]
4279 EMPTY,
4280 #[serde(rename = "inactive")]
4281 INACTIVE,
4282 #[serde(rename = "pending")]
4283 PENDING,
4284 #[serde(rename = "active")]
4285 ACTIVE,
4286 #[serde(rename = "error")]
4287 ERROR,
4288 #[serde(rename = "locked")]
4289 LOCKED,
4290}
4291
4292impl ::std::fmt::Display for LocalNodeState {
4293 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4294 match *self {
4295 LocalNodeState::EMPTY => write!(f, "{}", ""),
4296 LocalNodeState::INACTIVE => write!(f, "{}", "inactive"),
4297 LocalNodeState::PENDING => write!(f, "{}", "pending"),
4298 LocalNodeState::ACTIVE => write!(f, "{}", "active"),
4299 LocalNodeState::ERROR => write!(f, "{}", "error"),
4300 LocalNodeState::LOCKED => write!(f, "{}", "locked"),
4301 }
4302 }
4303}
4304
4305impl ::std::str::FromStr for LocalNodeState {
4306 type Err = ();
4307 fn from_str(s: &str) -> Result<Self, Self::Err> {
4308 match s {
4309 "" => Ok(LocalNodeState::EMPTY),
4310 "inactive" => Ok(LocalNodeState::INACTIVE),
4311 "pending" => Ok(LocalNodeState::PENDING),
4312 "active" => Ok(LocalNodeState::ACTIVE),
4313 "error" => Ok(LocalNodeState::ERROR),
4314 "locked" => Ok(LocalNodeState::LOCKED),
4315 _ => Err(()),
4316 }
4317 }
4318}
4319
4320impl std::default::Default for LocalNodeState {
4321 fn default() -> Self {
4322 LocalNodeState::EMPTY
4323 }
4324}
4325
4326#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4328pub struct ManagerStatus {
4329 #[serde(rename = "Leader")]
4330 #[serde(skip_serializing_if = "Option::is_none")]
4331 pub leader: Option<bool>,
4332
4333 #[serde(rename = "Reachability")]
4334 #[serde(skip_serializing_if = "Option::is_none")]
4335 pub reachability: Option<Reachability>,
4336
4337 #[serde(rename = "Addr")]
4339 #[serde(skip_serializing_if = "Option::is_none")]
4340 pub addr: Option<String>,
4341
4342}
4343
4344#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4345pub struct Mount {
4346 #[serde(rename = "Target")]
4348 #[serde(skip_serializing_if = "Option::is_none")]
4349 pub target: Option<String>,
4350
4351 #[serde(rename = "Source")]
4353 #[serde(skip_serializing_if = "Option::is_none")]
4354 pub source: Option<String>,
4355
4356 #[serde(rename = "Type")]
4358 #[serde(skip_serializing_if = "Option::is_none")]
4359 pub typ: Option<MountTypeEnum>,
4360
4361 #[serde(rename = "ReadOnly")]
4363 #[serde(skip_serializing_if = "Option::is_none")]
4364 pub read_only: Option<bool>,
4365
4366 #[serde(rename = "Consistency")]
4368 #[serde(skip_serializing_if = "Option::is_none")]
4369 pub consistency: Option<String>,
4370
4371 #[serde(rename = "BindOptions")]
4372 #[serde(skip_serializing_if = "Option::is_none")]
4373 pub bind_options: Option<MountBindOptions>,
4374
4375 #[serde(rename = "VolumeOptions")]
4376 #[serde(skip_serializing_if = "Option::is_none")]
4377 pub volume_options: Option<MountVolumeOptions>,
4378
4379 #[serde(rename = "ImageOptions")]
4380 #[serde(skip_serializing_if = "Option::is_none")]
4381 pub image_options: Option<MountImageOptions>,
4382
4383 #[serde(rename = "TmpfsOptions")]
4384 #[serde(skip_serializing_if = "Option::is_none")]
4385 pub tmpfs_options: Option<MountTmpfsOptions>,
4386
4387}
4388
4389#[allow(non_camel_case_types)]
4390#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
4391pub enum MountTypeEnum {
4392 #[serde(rename = "")]
4393 EMPTY,
4394 #[serde(rename = "bind")]
4395 BIND,
4396 #[serde(rename = "volume")]
4397 VOLUME,
4398 #[serde(rename = "image")]
4399 IMAGE,
4400 #[serde(rename = "tmpfs")]
4401 TMPFS,
4402 #[serde(rename = "npipe")]
4403 NPIPE,
4404 #[serde(rename = "cluster")]
4405 CLUSTER,
4406}
4407
4408impl ::std::fmt::Display for MountTypeEnum {
4409 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4410 match *self {
4411 MountTypeEnum::EMPTY => write!(f, ""),
4412 MountTypeEnum::BIND => write!(f, "{}", "bind"),
4413 MountTypeEnum::VOLUME => write!(f, "{}", "volume"),
4414 MountTypeEnum::IMAGE => write!(f, "{}", "image"),
4415 MountTypeEnum::TMPFS => write!(f, "{}", "tmpfs"),
4416 MountTypeEnum::NPIPE => write!(f, "{}", "npipe"),
4417 MountTypeEnum::CLUSTER => write!(f, "{}", "cluster"),
4418
4419 }
4420 }
4421}
4422
4423impl ::std::str::FromStr for MountTypeEnum {
4424 type Err = String;
4425 fn from_str(s: &str) -> Result<Self, Self::Err> {
4426 match s {
4427 "" => Ok(MountTypeEnum::EMPTY),
4428 "bind" => Ok(MountTypeEnum::BIND),
4429 "volume" => Ok(MountTypeEnum::VOLUME),
4430 "image" => Ok(MountTypeEnum::IMAGE),
4431 "tmpfs" => Ok(MountTypeEnum::TMPFS),
4432 "npipe" => Ok(MountTypeEnum::NPIPE),
4433 "cluster" => Ok(MountTypeEnum::CLUSTER),
4434 x => Err(format!("Invalid enum type: {}", x)),
4435 }
4436 }
4437}
4438
4439impl ::std::convert::AsRef<str> for MountTypeEnum {
4440 fn as_ref(&self) -> &str {
4441 match self {
4442 MountTypeEnum::EMPTY => "",
4443 MountTypeEnum::BIND => "bind",
4444 MountTypeEnum::VOLUME => "volume",
4445 MountTypeEnum::IMAGE => "image",
4446 MountTypeEnum::TMPFS => "tmpfs",
4447 MountTypeEnum::NPIPE => "npipe",
4448 MountTypeEnum::CLUSTER => "cluster",
4449 }
4450 }
4451}
4452
4453#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4455pub struct MountBindOptions {
4456 #[serde(rename = "Propagation")]
4458 #[serde(skip_serializing_if = "Option::is_none")]
4459 pub propagation: Option<MountBindOptionsPropagationEnum>,
4460
4461 #[serde(rename = "NonRecursive")]
4463 #[serde(skip_serializing_if = "Option::is_none")]
4464 pub non_recursive: Option<bool>,
4465
4466 #[serde(rename = "CreateMountpoint")]
4468 #[serde(skip_serializing_if = "Option::is_none")]
4469 pub create_mountpoint: Option<bool>,
4470
4471 #[serde(rename = "ReadOnlyNonRecursive")]
4473 #[serde(skip_serializing_if = "Option::is_none")]
4474 pub read_only_non_recursive: Option<bool>,
4475
4476 #[serde(rename = "ReadOnlyForceRecursive")]
4478 #[serde(skip_serializing_if = "Option::is_none")]
4479 pub read_only_force_recursive: Option<bool>,
4480
4481}
4482
4483#[allow(non_camel_case_types)]
4484#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
4485pub enum MountBindOptionsPropagationEnum {
4486 #[serde(rename = "")]
4487 EMPTY,
4488 #[serde(rename = "private")]
4489 PRIVATE,
4490 #[serde(rename = "rprivate")]
4491 RPRIVATE,
4492 #[serde(rename = "shared")]
4493 SHARED,
4494 #[serde(rename = "rshared")]
4495 RSHARED,
4496 #[serde(rename = "slave")]
4497 SLAVE,
4498 #[serde(rename = "rslave")]
4499 RSLAVE,
4500}
4501
4502impl ::std::fmt::Display for MountBindOptionsPropagationEnum {
4503 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4504 match *self {
4505 MountBindOptionsPropagationEnum::EMPTY => write!(f, ""),
4506 MountBindOptionsPropagationEnum::PRIVATE => write!(f, "{}", "private"),
4507 MountBindOptionsPropagationEnum::RPRIVATE => write!(f, "{}", "rprivate"),
4508 MountBindOptionsPropagationEnum::SHARED => write!(f, "{}", "shared"),
4509 MountBindOptionsPropagationEnum::RSHARED => write!(f, "{}", "rshared"),
4510 MountBindOptionsPropagationEnum::SLAVE => write!(f, "{}", "slave"),
4511 MountBindOptionsPropagationEnum::RSLAVE => write!(f, "{}", "rslave"),
4512
4513 }
4514 }
4515}
4516
4517impl ::std::str::FromStr for MountBindOptionsPropagationEnum {
4518 type Err = String;
4519 fn from_str(s: &str) -> Result<Self, Self::Err> {
4520 match s {
4521 "" => Ok(MountBindOptionsPropagationEnum::EMPTY),
4522 "private" => Ok(MountBindOptionsPropagationEnum::PRIVATE),
4523 "rprivate" => Ok(MountBindOptionsPropagationEnum::RPRIVATE),
4524 "shared" => Ok(MountBindOptionsPropagationEnum::SHARED),
4525 "rshared" => Ok(MountBindOptionsPropagationEnum::RSHARED),
4526 "slave" => Ok(MountBindOptionsPropagationEnum::SLAVE),
4527 "rslave" => Ok(MountBindOptionsPropagationEnum::RSLAVE),
4528 x => Err(format!("Invalid enum type: {}", x)),
4529 }
4530 }
4531}
4532
4533impl ::std::convert::AsRef<str> for MountBindOptionsPropagationEnum {
4534 fn as_ref(&self) -> &str {
4535 match self {
4536 MountBindOptionsPropagationEnum::EMPTY => "",
4537 MountBindOptionsPropagationEnum::PRIVATE => "private",
4538 MountBindOptionsPropagationEnum::RPRIVATE => "rprivate",
4539 MountBindOptionsPropagationEnum::SHARED => "shared",
4540 MountBindOptionsPropagationEnum::RSHARED => "rshared",
4541 MountBindOptionsPropagationEnum::SLAVE => "slave",
4542 MountBindOptionsPropagationEnum::RSLAVE => "rslave",
4543 }
4544 }
4545}
4546
4547#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4549pub struct MountImageOptions {
4550 #[serde(rename = "Subpath")]
4552 #[serde(skip_serializing_if = "Option::is_none")]
4553 pub subpath: Option<String>,
4554
4555}
4556
4557#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4559pub struct MountPoint {
4560 #[serde(rename = "Type")]
4562 #[serde(skip_serializing_if = "Option::is_none")]
4563 pub typ: Option<MountPointTypeEnum>,
4564
4565 #[serde(rename = "Name")]
4567 #[serde(skip_serializing_if = "Option::is_none")]
4568 pub name: Option<String>,
4569
4570 #[serde(rename = "Source")]
4572 #[serde(skip_serializing_if = "Option::is_none")]
4573 pub source: Option<String>,
4574
4575 #[serde(rename = "Destination")]
4577 #[serde(skip_serializing_if = "Option::is_none")]
4578 pub destination: Option<String>,
4579
4580 #[serde(rename = "Driver")]
4582 #[serde(skip_serializing_if = "Option::is_none")]
4583 pub driver: Option<String>,
4584
4585 #[serde(rename = "Mode")]
4587 #[serde(skip_serializing_if = "Option::is_none")]
4588 pub mode: Option<String>,
4589
4590 #[serde(rename = "RW")]
4592 #[serde(skip_serializing_if = "Option::is_none")]
4593 pub rw: Option<bool>,
4594
4595 #[serde(rename = "Propagation")]
4597 #[serde(skip_serializing_if = "Option::is_none")]
4598 pub propagation: Option<String>,
4599
4600}
4601
4602#[allow(non_camel_case_types)]
4603#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
4604pub enum MountPointTypeEnum {
4605 #[serde(rename = "")]
4606 EMPTY,
4607 #[serde(rename = "bind")]
4608 BIND,
4609 #[serde(rename = "volume")]
4610 VOLUME,
4611 #[serde(rename = "image")]
4612 IMAGE,
4613 #[serde(rename = "tmpfs")]
4614 TMPFS,
4615 #[serde(rename = "npipe")]
4616 NPIPE,
4617 #[serde(rename = "cluster")]
4618 CLUSTER,
4619}
4620
4621impl ::std::fmt::Display for MountPointTypeEnum {
4622 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4623 match *self {
4624 MountPointTypeEnum::EMPTY => write!(f, ""),
4625 MountPointTypeEnum::BIND => write!(f, "{}", "bind"),
4626 MountPointTypeEnum::VOLUME => write!(f, "{}", "volume"),
4627 MountPointTypeEnum::IMAGE => write!(f, "{}", "image"),
4628 MountPointTypeEnum::TMPFS => write!(f, "{}", "tmpfs"),
4629 MountPointTypeEnum::NPIPE => write!(f, "{}", "npipe"),
4630 MountPointTypeEnum::CLUSTER => write!(f, "{}", "cluster"),
4631
4632 }
4633 }
4634}
4635
4636impl ::std::str::FromStr for MountPointTypeEnum {
4637 type Err = String;
4638 fn from_str(s: &str) -> Result<Self, Self::Err> {
4639 match s {
4640 "" => Ok(MountPointTypeEnum::EMPTY),
4641 "bind" => Ok(MountPointTypeEnum::BIND),
4642 "volume" => Ok(MountPointTypeEnum::VOLUME),
4643 "image" => Ok(MountPointTypeEnum::IMAGE),
4644 "tmpfs" => Ok(MountPointTypeEnum::TMPFS),
4645 "npipe" => Ok(MountPointTypeEnum::NPIPE),
4646 "cluster" => Ok(MountPointTypeEnum::CLUSTER),
4647 x => Err(format!("Invalid enum type: {}", x)),
4648 }
4649 }
4650}
4651
4652impl ::std::convert::AsRef<str> for MountPointTypeEnum {
4653 fn as_ref(&self) -> &str {
4654 match self {
4655 MountPointTypeEnum::EMPTY => "",
4656 MountPointTypeEnum::BIND => "bind",
4657 MountPointTypeEnum::VOLUME => "volume",
4658 MountPointTypeEnum::IMAGE => "image",
4659 MountPointTypeEnum::TMPFS => "tmpfs",
4660 MountPointTypeEnum::NPIPE => "npipe",
4661 MountPointTypeEnum::CLUSTER => "cluster",
4662 }
4663 }
4664}
4665
4666#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4668pub struct MountTmpfsOptions {
4669 #[serde(rename = "SizeBytes")]
4671 #[serde(skip_serializing_if = "Option::is_none")]
4672 pub size_bytes: Option<i64>,
4673
4674 #[serde(rename = "Mode")]
4676 #[serde(skip_serializing_if = "Option::is_none")]
4677 pub mode: Option<i64>,
4678
4679 #[serde(rename = "Options")]
4681 #[serde(skip_serializing_if = "Option::is_none")]
4682 pub options: Option<Vec<Vec<String>>>,
4683
4684}
4685
4686#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4688pub struct MountVolumeOptions {
4689 #[serde(rename = "NoCopy")]
4691 #[serde(skip_serializing_if = "Option::is_none")]
4692 pub no_copy: Option<bool>,
4693
4694 #[serde(rename = "Labels")]
4696 #[serde(skip_serializing_if = "Option::is_none")]
4697 pub labels: Option<HashMap<String, String>>,
4698
4699 #[serde(rename = "DriverConfig")]
4700 #[serde(skip_serializing_if = "Option::is_none")]
4701 pub driver_config: Option<MountVolumeOptionsDriverConfig>,
4702
4703 #[serde(rename = "Subpath")]
4705 #[serde(skip_serializing_if = "Option::is_none")]
4706 pub subpath: Option<String>,
4707
4708}
4709
4710#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4712pub struct MountVolumeOptionsDriverConfig {
4713 #[serde(rename = "Name")]
4715 #[serde(skip_serializing_if = "Option::is_none")]
4716 pub name: Option<String>,
4717
4718 #[serde(rename = "Options")]
4720 #[serde(skip_serializing_if = "Option::is_none")]
4721 pub options: Option<HashMap<String, String>>,
4722
4723}
4724
4725#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4726pub struct Network {
4727 #[serde(rename = "Name")]
4729 #[serde(skip_serializing_if = "Option::is_none")]
4730 pub name: Option<String>,
4731
4732 #[serde(rename = "Id")]
4734 #[serde(skip_serializing_if = "Option::is_none")]
4735 pub id: Option<String>,
4736
4737 #[serde(rename = "Created")]
4739 #[serde(skip_serializing_if = "Option::is_none")]
4740 #[serde(
4741 default,
4742 deserialize_with = "deserialize_timestamp",
4743 serialize_with = "serialize_timestamp"
4744 )]
4745 pub created: Option<BollardDate>,
4746
4747 #[serde(rename = "Scope")]
4749 #[serde(skip_serializing_if = "Option::is_none")]
4750 pub scope: Option<String>,
4751
4752 #[serde(rename = "Driver")]
4754 #[serde(skip_serializing_if = "Option::is_none")]
4755 pub driver: Option<String>,
4756
4757 #[serde(rename = "EnableIPv4")]
4759 #[serde(skip_serializing_if = "Option::is_none")]
4760 pub enable_ipv4: Option<bool>,
4761
4762 #[serde(rename = "EnableIPv6")]
4764 #[serde(skip_serializing_if = "Option::is_none")]
4765 pub enable_ipv6: Option<bool>,
4766
4767 #[serde(rename = "IPAM")]
4768 #[serde(skip_serializing_if = "Option::is_none")]
4769 pub ipam: Option<Ipam>,
4770
4771 #[serde(rename = "Internal")]
4773 #[serde(skip_serializing_if = "Option::is_none")]
4774 pub internal: Option<bool>,
4775
4776 #[serde(rename = "Attachable")]
4778 #[serde(skip_serializing_if = "Option::is_none")]
4779 pub attachable: Option<bool>,
4780
4781 #[serde(rename = "Ingress")]
4783 #[serde(skip_serializing_if = "Option::is_none")]
4784 pub ingress: Option<bool>,
4785
4786 #[serde(rename = "ConfigFrom")]
4787 #[serde(skip_serializing_if = "Option::is_none")]
4788 pub config_from: Option<ConfigReference>,
4789
4790 #[serde(rename = "ConfigOnly")]
4792 #[serde(skip_serializing_if = "Option::is_none")]
4793 pub config_only: Option<bool>,
4794
4795 #[serde(rename = "Containers")]
4797 #[serde(skip_serializing_if = "Option::is_none")]
4798 pub containers: Option<HashMap<String, NetworkContainer>>,
4799
4800 #[serde(rename = "Options")]
4802 #[serde(skip_serializing_if = "Option::is_none")]
4803 pub options: Option<HashMap<String, String>>,
4804
4805 #[serde(rename = "Labels")]
4807 #[serde(skip_serializing_if = "Option::is_none")]
4808 pub labels: Option<HashMap<String, String>>,
4809
4810 #[serde(rename = "Peers")]
4812 #[serde(skip_serializing_if = "Option::is_none")]
4813 pub peers: Option<Vec<PeerInfo>>,
4814
4815}
4816
4817#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4819pub struct NetworkAttachmentConfig {
4820 #[serde(rename = "Target")]
4822 #[serde(skip_serializing_if = "Option::is_none")]
4823 pub target: Option<String>,
4824
4825 #[serde(rename = "Aliases")]
4827 #[serde(skip_serializing_if = "Option::is_none")]
4828 pub aliases: Option<Vec<String>>,
4829
4830 #[serde(rename = "DriverOpts")]
4832 #[serde(skip_serializing_if = "Option::is_none")]
4833 pub driver_opts: Option<HashMap<String, String>>,
4834
4835}
4836
4837#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4838pub struct NetworkConnectRequest {
4839 #[serde(rename = "Container")]
4841 #[serde(skip_serializing_if = "Option::is_none")]
4842 pub container: Option<String>,
4843
4844 #[serde(rename = "EndpointConfig")]
4845 #[serde(skip_serializing_if = "Option::is_none")]
4846 pub endpoint_config: Option<EndpointSettings>,
4847
4848}
4849
4850#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4851pub struct NetworkContainer {
4852 #[serde(rename = "Name")]
4853 #[serde(skip_serializing_if = "Option::is_none")]
4854 pub name: Option<String>,
4855
4856 #[serde(rename = "EndpointID")]
4857 #[serde(skip_serializing_if = "Option::is_none")]
4858 pub endpoint_id: Option<String>,
4859
4860 #[serde(rename = "MacAddress")]
4861 #[serde(skip_serializing_if = "Option::is_none")]
4862 pub mac_address: Option<String>,
4863
4864 #[serde(rename = "IPv4Address")]
4865 #[serde(skip_serializing_if = "Option::is_none")]
4866 pub ipv4_address: Option<String>,
4867
4868 #[serde(rename = "IPv6Address")]
4869 #[serde(skip_serializing_if = "Option::is_none")]
4870 pub ipv6_address: Option<String>,
4871
4872}
4873
4874#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4875pub struct NetworkCreateRequest {
4876 #[serde(rename = "Name")]
4878 pub name: String,
4879
4880 #[serde(rename = "Driver")]
4882 #[serde(skip_serializing_if = "Option::is_none")]
4883 pub driver: Option<String>,
4884
4885 #[serde(rename = "Scope")]
4887 #[serde(skip_serializing_if = "Option::is_none")]
4888 pub scope: Option<String>,
4889
4890 #[serde(rename = "Internal")]
4892 #[serde(skip_serializing_if = "Option::is_none")]
4893 pub internal: Option<bool>,
4894
4895 #[serde(rename = "Attachable")]
4897 #[serde(skip_serializing_if = "Option::is_none")]
4898 pub attachable: Option<bool>,
4899
4900 #[serde(rename = "Ingress")]
4902 #[serde(skip_serializing_if = "Option::is_none")]
4903 pub ingress: Option<bool>,
4904
4905 #[serde(rename = "ConfigOnly")]
4907 #[serde(skip_serializing_if = "Option::is_none")]
4908 pub config_only: Option<bool>,
4909
4910 #[serde(rename = "ConfigFrom")]
4912 #[serde(skip_serializing_if = "Option::is_none")]
4913 pub config_from: Option<ConfigReference>,
4914
4915 #[serde(rename = "IPAM")]
4917 #[serde(skip_serializing_if = "Option::is_none")]
4918 pub ipam: Option<Ipam>,
4919
4920 #[serde(rename = "EnableIPv4")]
4922 #[serde(skip_serializing_if = "Option::is_none")]
4923 pub enable_ipv4: Option<bool>,
4924
4925 #[serde(rename = "EnableIPv6")]
4927 #[serde(skip_serializing_if = "Option::is_none")]
4928 pub enable_ipv6: Option<bool>,
4929
4930 #[serde(rename = "Options")]
4932 #[serde(skip_serializing_if = "Option::is_none")]
4933 pub options: Option<HashMap<String, String>>,
4934
4935 #[serde(rename = "Labels")]
4937 #[serde(skip_serializing_if = "Option::is_none")]
4938 pub labels: Option<HashMap<String, String>>,
4939
4940}
4941
4942#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4944pub struct NetworkCreateResponse {
4945 #[serde(rename = "Id")]
4947 pub id: String,
4948
4949 #[serde(rename = "Warning")]
4951 pub warning: String,
4952
4953}
4954
4955#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4956pub struct NetworkDisconnectRequest {
4957 #[serde(rename = "Container")]
4959 #[serde(skip_serializing_if = "Option::is_none")]
4960 pub container: Option<String>,
4961
4962 #[serde(rename = "Force")]
4964 #[serde(skip_serializing_if = "Option::is_none")]
4965 pub force: Option<bool>,
4966
4967}
4968
4969#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4970pub struct NetworkPruneResponse {
4971 #[serde(rename = "NetworksDeleted")]
4973 #[serde(skip_serializing_if = "Option::is_none")]
4974 pub networks_deleted: Option<Vec<String>>,
4975
4976}
4977
4978#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4980pub struct NetworkSettings {
4981 #[serde(rename = "Bridge")]
4983 #[serde(skip_serializing_if = "Option::is_none")]
4984 pub bridge: Option<String>,
4985
4986 #[serde(rename = "SandboxID")]
4988 #[serde(skip_serializing_if = "Option::is_none")]
4989 pub sandbox_id: Option<String>,
4990
4991 #[serde(rename = "HairpinMode")]
4993 #[serde(skip_serializing_if = "Option::is_none")]
4994 pub hairpin_mode: Option<bool>,
4995
4996 #[serde(rename = "LinkLocalIPv6Address")]
4998 #[serde(skip_serializing_if = "Option::is_none")]
4999 pub link_local_ipv6_address: Option<String>,
5000
5001 #[serde(rename = "LinkLocalIPv6PrefixLen")]
5003 #[serde(skip_serializing_if = "Option::is_none")]
5004 pub link_local_ipv6_prefix_len: Option<i64>,
5005
5006 #[serde(rename = "Ports")]
5007 #[serde(skip_serializing_if = "Option::is_none")]
5008 pub ports: Option<PortMap>,
5009
5010 #[serde(rename = "SandboxKey")]
5012 #[serde(skip_serializing_if = "Option::is_none")]
5013 pub sandbox_key: Option<String>,
5014
5015 #[serde(rename = "SecondaryIPAddresses")]
5017 #[serde(skip_serializing_if = "Option::is_none")]
5018 pub secondary_ip_addresses: Option<Vec<Address>>,
5019
5020 #[serde(rename = "SecondaryIPv6Addresses")]
5022 #[serde(skip_serializing_if = "Option::is_none")]
5023 pub secondary_ipv6_addresses: Option<Vec<Address>>,
5024
5025 #[serde(rename = "EndpointID")]
5027 #[serde(skip_serializing_if = "Option::is_none")]
5028 pub endpoint_id: Option<String>,
5029
5030 #[serde(rename = "Gateway")]
5032 #[serde(skip_serializing_if = "Option::is_none")]
5033 pub gateway: Option<String>,
5034
5035 #[serde(rename = "GlobalIPv6Address")]
5037 #[serde(skip_serializing_if = "Option::is_none")]
5038 pub global_ipv6_address: Option<String>,
5039
5040 #[serde(rename = "GlobalIPv6PrefixLen")]
5042 #[serde(skip_serializing_if = "Option::is_none")]
5043 pub global_ipv6_prefix_len: Option<i64>,
5044
5045 #[serde(rename = "IPAddress")]
5047 #[serde(skip_serializing_if = "Option::is_none")]
5048 pub ip_address: Option<String>,
5049
5050 #[serde(rename = "IPPrefixLen")]
5052 #[serde(skip_serializing_if = "Option::is_none")]
5053 pub ip_prefix_len: Option<i64>,
5054
5055 #[serde(rename = "IPv6Gateway")]
5057 #[serde(skip_serializing_if = "Option::is_none")]
5058 pub ipv6_gateway: Option<String>,
5059
5060 #[serde(rename = "MacAddress")]
5062 #[serde(skip_serializing_if = "Option::is_none")]
5063 pub mac_address: Option<String>,
5064
5065 #[serde(rename = "Networks")]
5067 #[serde(skip_serializing_if = "Option::is_none")]
5068 pub networks: Option<HashMap<String, EndpointSettings>>,
5069
5070}
5071
5072#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5074pub struct NetworkingConfig {
5075 #[serde(rename = "EndpointsConfig")]
5077 #[serde(skip_serializing_if = "Option::is_none")]
5078 pub endpoints_config: Option<HashMap<String, EndpointSettings>>,
5079
5080}
5081
5082#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5083pub struct Node {
5084 #[serde(rename = "ID")]
5085 #[serde(skip_serializing_if = "Option::is_none")]
5086 pub id: Option<String>,
5087
5088 #[serde(rename = "Version")]
5089 #[serde(skip_serializing_if = "Option::is_none")]
5090 pub version: Option<ObjectVersion>,
5091
5092 #[serde(rename = "CreatedAt")]
5094 #[serde(skip_serializing_if = "Option::is_none")]
5095 #[serde(
5096 default,
5097 deserialize_with = "deserialize_timestamp",
5098 serialize_with = "serialize_timestamp"
5099 )]
5100 pub created_at: Option<BollardDate>,
5101
5102 #[serde(rename = "UpdatedAt")]
5104 #[serde(skip_serializing_if = "Option::is_none")]
5105 #[serde(
5106 default,
5107 deserialize_with = "deserialize_timestamp",
5108 serialize_with = "serialize_timestamp"
5109 )]
5110 pub updated_at: Option<BollardDate>,
5111
5112 #[serde(rename = "Spec")]
5113 #[serde(skip_serializing_if = "Option::is_none")]
5114 pub spec: Option<NodeSpec>,
5115
5116 #[serde(rename = "Description")]
5117 #[serde(skip_serializing_if = "Option::is_none")]
5118 pub description: Option<NodeDescription>,
5119
5120 #[serde(rename = "Status")]
5121 #[serde(skip_serializing_if = "Option::is_none")]
5122 pub status: Option<NodeStatus>,
5123
5124 #[serde(rename = "ManagerStatus")]
5125 #[serde(skip_serializing_if = "Option::is_none")]
5126 pub manager_status: Option<ManagerStatus>,
5127
5128}
5129
5130#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5132pub struct NodeDescription {
5133 #[serde(rename = "Hostname")]
5134 #[serde(skip_serializing_if = "Option::is_none")]
5135 pub hostname: Option<String>,
5136
5137 #[serde(rename = "Platform")]
5138 #[serde(skip_serializing_if = "Option::is_none")]
5139 pub platform: Option<Platform>,
5140
5141 #[serde(rename = "Resources")]
5142 #[serde(skip_serializing_if = "Option::is_none")]
5143 pub resources: Option<ResourceObject>,
5144
5145 #[serde(rename = "Engine")]
5146 #[serde(skip_serializing_if = "Option::is_none")]
5147 pub engine: Option<EngineDescription>,
5148
5149 #[serde(rename = "TLSInfo")]
5150 #[serde(skip_serializing_if = "Option::is_none")]
5151 pub tls_info: Option<TlsInfo>,
5152
5153}
5154
5155#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5156pub struct NodeSpec {
5157 #[serde(rename = "Name")]
5159 #[serde(skip_serializing_if = "Option::is_none")]
5160 pub name: Option<String>,
5161
5162 #[serde(rename = "Labels")]
5164 #[serde(skip_serializing_if = "Option::is_none")]
5165 pub labels: Option<HashMap<String, String>>,
5166
5167 #[serde(rename = "Role")]
5169 #[serde(skip_serializing_if = "Option::is_none")]
5170 pub role: Option<NodeSpecRoleEnum>,
5171
5172 #[serde(rename = "Availability")]
5174 #[serde(skip_serializing_if = "Option::is_none")]
5175 pub availability: Option<NodeSpecAvailabilityEnum>,
5176
5177}
5178
5179#[allow(non_camel_case_types)]
5180#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
5181pub enum NodeSpecRoleEnum {
5182 #[serde(rename = "")]
5183 EMPTY,
5184 #[serde(rename = "worker")]
5185 WORKER,
5186 #[serde(rename = "manager")]
5187 MANAGER,
5188}
5189
5190impl ::std::fmt::Display for NodeSpecRoleEnum {
5191 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5192 match *self {
5193 NodeSpecRoleEnum::EMPTY => write!(f, ""),
5194 NodeSpecRoleEnum::WORKER => write!(f, "{}", "worker"),
5195 NodeSpecRoleEnum::MANAGER => write!(f, "{}", "manager"),
5196
5197 }
5198 }
5199}
5200
5201impl ::std::str::FromStr for NodeSpecRoleEnum {
5202 type Err = String;
5203 fn from_str(s: &str) -> Result<Self, Self::Err> {
5204 match s {
5205 "" => Ok(NodeSpecRoleEnum::EMPTY),
5206 "worker" => Ok(NodeSpecRoleEnum::WORKER),
5207 "manager" => Ok(NodeSpecRoleEnum::MANAGER),
5208 x => Err(format!("Invalid enum type: {}", x)),
5209 }
5210 }
5211}
5212
5213impl ::std::convert::AsRef<str> for NodeSpecRoleEnum {
5214 fn as_ref(&self) -> &str {
5215 match self {
5216 NodeSpecRoleEnum::EMPTY => "",
5217 NodeSpecRoleEnum::WORKER => "worker",
5218 NodeSpecRoleEnum::MANAGER => "manager",
5219 }
5220 }
5221}
5222
5223#[allow(non_camel_case_types)]
5224#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
5225pub enum NodeSpecAvailabilityEnum {
5226 #[serde(rename = "")]
5227 EMPTY,
5228 #[serde(rename = "active")]
5229 ACTIVE,
5230 #[serde(rename = "pause")]
5231 PAUSE,
5232 #[serde(rename = "drain")]
5233 DRAIN,
5234}
5235
5236impl ::std::fmt::Display for NodeSpecAvailabilityEnum {
5237 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5238 match *self {
5239 NodeSpecAvailabilityEnum::EMPTY => write!(f, ""),
5240 NodeSpecAvailabilityEnum::ACTIVE => write!(f, "{}", "active"),
5241 NodeSpecAvailabilityEnum::PAUSE => write!(f, "{}", "pause"),
5242 NodeSpecAvailabilityEnum::DRAIN => write!(f, "{}", "drain"),
5243
5244 }
5245 }
5246}
5247
5248impl ::std::str::FromStr for NodeSpecAvailabilityEnum {
5249 type Err = String;
5250 fn from_str(s: &str) -> Result<Self, Self::Err> {
5251 match s {
5252 "" => Ok(NodeSpecAvailabilityEnum::EMPTY),
5253 "active" => Ok(NodeSpecAvailabilityEnum::ACTIVE),
5254 "pause" => Ok(NodeSpecAvailabilityEnum::PAUSE),
5255 "drain" => Ok(NodeSpecAvailabilityEnum::DRAIN),
5256 x => Err(format!("Invalid enum type: {}", x)),
5257 }
5258 }
5259}
5260
5261impl ::std::convert::AsRef<str> for NodeSpecAvailabilityEnum {
5262 fn as_ref(&self) -> &str {
5263 match self {
5264 NodeSpecAvailabilityEnum::EMPTY => "",
5265 NodeSpecAvailabilityEnum::ACTIVE => "active",
5266 NodeSpecAvailabilityEnum::PAUSE => "pause",
5267 NodeSpecAvailabilityEnum::DRAIN => "drain",
5268 }
5269 }
5270}
5271
5272#[allow(non_camel_case_types)]
5277#[repr(C)]
5278#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
5279pub enum NodeState {
5280 #[serde(rename = "unknown")]
5281 UNKNOWN,
5282 #[serde(rename = "down")]
5283 DOWN,
5284 #[serde(rename = "ready")]
5285 READY,
5286 #[serde(rename = "disconnected")]
5287 DISCONNECTED,
5288}
5289
5290impl ::std::fmt::Display for NodeState {
5291 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5292 match *self {
5293 NodeState::UNKNOWN => write!(f, "{}", "unknown"),
5294 NodeState::DOWN => write!(f, "{}", "down"),
5295 NodeState::READY => write!(f, "{}", "ready"),
5296 NodeState::DISCONNECTED => write!(f, "{}", "disconnected"),
5297 }
5298 }
5299}
5300
5301impl ::std::str::FromStr for NodeState {
5302 type Err = ();
5303 fn from_str(s: &str) -> Result<Self, Self::Err> {
5304 match s {
5305 "unknown" => Ok(NodeState::UNKNOWN),
5306 "down" => Ok(NodeState::DOWN),
5307 "ready" => Ok(NodeState::READY),
5308 "disconnected" => Ok(NodeState::DISCONNECTED),
5309 _ => Err(()),
5310 }
5311 }
5312}
5313
5314impl std::default::Default for NodeState {
5315 fn default() -> Self {
5316 NodeState::UNKNOWN
5317 }
5318}
5319
5320#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5322pub struct NodeStatus {
5323 #[serde(rename = "State")]
5324 #[serde(skip_serializing_if = "Option::is_none")]
5325 pub state: Option<NodeState>,
5326
5327 #[serde(rename = "Message")]
5328 #[serde(skip_serializing_if = "Option::is_none")]
5329 pub message: Option<String>,
5330
5331 #[serde(rename = "Addr")]
5333 #[serde(skip_serializing_if = "Option::is_none")]
5334 pub addr: Option<String>,
5335
5336}
5337
5338#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5340pub struct ObjectVersion {
5341 #[serde(rename = "Index")]
5342 #[serde(skip_serializing_if = "Option::is_none")]
5343 pub index: Option<u64>,
5344
5345}
5346
5347#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5349pub struct OciDescriptor {
5350 #[serde(rename = "mediaType")]
5352 #[serde(skip_serializing_if = "Option::is_none")]
5353 pub media_type: Option<String>,
5354
5355 #[serde(rename = "digest")]
5357 #[serde(skip_serializing_if = "Option::is_none")]
5358 pub digest: Option<String>,
5359
5360 #[serde(rename = "size")]
5362 #[serde(skip_serializing_if = "Option::is_none")]
5363 pub size: Option<i64>,
5364
5365 #[serde(rename = "urls")]
5367 #[serde(skip_serializing_if = "Option::is_none")]
5368 pub urls: Option<Vec<String>>,
5369
5370 #[serde(rename = "annotations")]
5372 #[serde(skip_serializing_if = "Option::is_none")]
5373 pub annotations: Option<HashMap<String, String>>,
5374
5375 #[serde(rename = "data")]
5377 #[serde(skip_serializing_if = "Option::is_none")]
5378 pub data: Option<String>,
5379
5380 #[serde(rename = "platform")]
5381 #[serde(skip_serializing_if = "Option::is_none")]
5382 pub platform: Option<OciPlatform>,
5383
5384 #[serde(rename = "artifactType")]
5386 #[serde(skip_serializing_if = "Option::is_none")]
5387 pub artifact_type: Option<String>,
5388
5389}
5390
5391#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5393pub struct OciPlatform {
5394 #[serde(rename = "architecture")]
5396 #[serde(skip_serializing_if = "Option::is_none")]
5397 pub architecture: Option<String>,
5398
5399 #[serde(rename = "os")]
5401 #[serde(skip_serializing_if = "Option::is_none")]
5402 pub os: Option<String>,
5403
5404 #[serde(rename = "os.version")]
5406 #[serde(skip_serializing_if = "Option::is_none")]
5407 pub os_version: Option<String>,
5408
5409 #[serde(rename = "os.features")]
5411 #[serde(skip_serializing_if = "Option::is_none")]
5412 pub os_features: Option<Vec<String>>,
5413
5414 #[serde(rename = "variant")]
5416 #[serde(skip_serializing_if = "Option::is_none")]
5417 pub variant: Option<String>,
5418
5419}
5420
5421#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5423pub struct PeerInfo {
5424 #[serde(rename = "Name")]
5426 #[serde(skip_serializing_if = "Option::is_none")]
5427 pub name: Option<String>,
5428
5429 #[serde(rename = "IP")]
5431 #[serde(skip_serializing_if = "Option::is_none")]
5432 pub ip: Option<String>,
5433
5434}
5435
5436#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5438pub struct PeerNode {
5439 #[serde(rename = "NodeID")]
5441 #[serde(skip_serializing_if = "Option::is_none")]
5442 pub node_id: Option<String>,
5443
5444 #[serde(rename = "Addr")]
5446 #[serde(skip_serializing_if = "Option::is_none")]
5447 pub addr: Option<String>,
5448
5449}
5450
5451#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5453pub struct Platform {
5454 #[serde(rename = "Architecture")]
5456 #[serde(skip_serializing_if = "Option::is_none")]
5457 pub architecture: Option<String>,
5458
5459 #[serde(rename = "OS")]
5461 #[serde(skip_serializing_if = "Option::is_none")]
5462 pub os: Option<String>,
5463
5464}
5465
5466#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5468pub struct Plugin {
5469 #[serde(rename = "Id")]
5470 #[serde(skip_serializing_if = "Option::is_none")]
5471 pub id: Option<String>,
5472
5473 #[serde(rename = "Name")]
5474 pub name: String,
5475
5476 #[serde(rename = "Enabled")]
5478 pub enabled: bool,
5479
5480 #[serde(rename = "Settings")]
5481 pub settings: PluginSettings,
5482
5483 #[serde(rename = "PluginReference")]
5485 #[serde(skip_serializing_if = "Option::is_none")]
5486 pub plugin_reference: Option<String>,
5487
5488 #[serde(rename = "Config")]
5489 pub config: PluginConfig,
5490
5491}
5492
5493#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5495pub struct PluginConfig {
5496 #[serde(rename = "DockerVersion")]
5498 #[serde(skip_serializing_if = "Option::is_none")]
5499 pub docker_version: Option<String>,
5500
5501 #[serde(rename = "Description")]
5502 pub description: String,
5503
5504 #[serde(rename = "Documentation")]
5505 pub documentation: String,
5506
5507 #[serde(rename = "Interface")]
5508 pub interface: PluginConfigInterface,
5509
5510 #[serde(rename = "Entrypoint")]
5511 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5512 pub entrypoint: Vec<String>,
5513
5514 #[serde(rename = "WorkDir")]
5515 pub work_dir: String,
5516
5517 #[serde(rename = "User")]
5518 #[serde(skip_serializing_if = "Option::is_none")]
5519 pub user: Option<PluginConfigUser>,
5520
5521 #[serde(rename = "Network")]
5522 pub network: PluginConfigNetwork,
5523
5524 #[serde(rename = "Linux")]
5525 pub linux: PluginConfigLinux,
5526
5527 #[serde(rename = "PropagatedMount")]
5528 pub propagated_mount: String,
5529
5530 #[serde(rename = "IpcHost")]
5531 pub ipc_host: bool,
5532
5533 #[serde(rename = "PidHost")]
5534 pub pid_host: bool,
5535
5536 #[serde(rename = "Mounts")]
5537 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5538 pub mounts: Vec<PluginMount>,
5539
5540 #[serde(rename = "Env")]
5541 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5542 pub env: Vec<PluginEnv>,
5543
5544 #[serde(rename = "Args")]
5545 pub args: PluginConfigArgs,
5546
5547 #[serde(rename = "rootfs")]
5548 #[serde(skip_serializing_if = "Option::is_none")]
5549 pub rootfs: Option<PluginConfigRootfs>,
5550
5551}
5552
5553#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5554pub struct PluginConfigArgs {
5555 #[serde(rename = "Name")]
5556 pub name: String,
5557
5558 #[serde(rename = "Description")]
5559 pub description: String,
5560
5561 #[serde(rename = "Settable")]
5562 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5563 pub settable: Vec<String>,
5564
5565 #[serde(rename = "Value")]
5566 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5567 pub value: Vec<String>,
5568
5569}
5570
5571#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5573pub struct PluginConfigInterface {
5574 #[serde(rename = "Types")]
5575 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5576 pub types: Vec<PluginInterfaceType>,
5577
5578 #[serde(rename = "Socket")]
5579 pub socket: String,
5580
5581 #[serde(rename = "ProtocolScheme")]
5583 #[serde(skip_serializing_if = "Option::is_none")]
5584 pub protocol_scheme: Option<PluginConfigInterfaceProtocolSchemeEnum>,
5585
5586}
5587
5588#[allow(non_camel_case_types)]
5589#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
5590pub enum PluginConfigInterfaceProtocolSchemeEnum {
5591 #[serde(rename = "")]
5592 EMPTY,
5593 #[serde(rename = "moby.plugins.http/v1")]
5594 MOBY_PLUGINS_HTTP_V1,
5595}
5596
5597impl ::std::fmt::Display for PluginConfigInterfaceProtocolSchemeEnum {
5598 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5599 match *self {
5600 PluginConfigInterfaceProtocolSchemeEnum::EMPTY => write!(f, "{}", ""),
5601 PluginConfigInterfaceProtocolSchemeEnum::MOBY_PLUGINS_HTTP_V1 => write!(f, "{}", "moby.plugins.http/v1"),
5602
5603 }
5604 }
5605}
5606
5607impl ::std::str::FromStr for PluginConfigInterfaceProtocolSchemeEnum {
5608 type Err = String;
5609 fn from_str(s: &str) -> Result<Self, Self::Err> {
5610 match s {
5611 "" => Ok(PluginConfigInterfaceProtocolSchemeEnum::EMPTY),
5612 "moby.plugins.http/v1" => Ok(PluginConfigInterfaceProtocolSchemeEnum::MOBY_PLUGINS_HTTP_V1),
5613 x => Err(format!("Invalid enum type: {}", x)),
5614 }
5615 }
5616}
5617
5618impl ::std::convert::AsRef<str> for PluginConfigInterfaceProtocolSchemeEnum {
5619 fn as_ref(&self) -> &str {
5620 match self {
5621 PluginConfigInterfaceProtocolSchemeEnum::EMPTY => "",
5622 PluginConfigInterfaceProtocolSchemeEnum::MOBY_PLUGINS_HTTP_V1 => "moby.plugins.http/v1",
5623 }
5624 }
5625}
5626
5627#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5628pub struct PluginConfigLinux {
5629 #[serde(rename = "Capabilities")]
5630 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5631 pub capabilities: Vec<String>,
5632
5633 #[serde(rename = "AllowAllDevices")]
5634 pub allow_all_devices: bool,
5635
5636 #[serde(rename = "Devices")]
5637 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5638 pub devices: Vec<PluginDevice>,
5639
5640}
5641
5642#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5643pub struct PluginConfigNetwork {
5644 #[serde(rename = "Type")]
5645 pub typ: String,
5646
5647}
5648
5649#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5650pub struct PluginConfigRootfs {
5651 #[serde(rename = "type")]
5652 #[serde(skip_serializing_if = "Option::is_none")]
5653 pub typ: Option<String>,
5654
5655 #[serde(rename = "diff_ids")]
5656 #[serde(skip_serializing_if = "Option::is_none")]
5657 pub diff_ids: Option<Vec<String>>,
5658
5659}
5660
5661#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5662pub struct PluginConfigUser {
5663 #[serde(rename = "UID")]
5664 #[serde(skip_serializing_if = "Option::is_none")]
5665 pub uid: Option<u32>,
5666
5667 #[serde(rename = "GID")]
5668 #[serde(skip_serializing_if = "Option::is_none")]
5669 pub gid: Option<u32>,
5670
5671}
5672
5673#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5674pub struct PluginDevice {
5675 #[serde(rename = "Name")]
5676 pub name: String,
5677
5678 #[serde(rename = "Description")]
5679 pub description: String,
5680
5681 #[serde(rename = "Settable")]
5682 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5683 pub settable: Vec<String>,
5684
5685 #[serde(rename = "Path")]
5686 pub path: String,
5687
5688}
5689
5690#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5691pub struct PluginEnv {
5692 #[serde(rename = "Name")]
5693 pub name: String,
5694
5695 #[serde(rename = "Description")]
5696 pub description: String,
5697
5698 #[serde(rename = "Settable")]
5699 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5700 pub settable: Vec<String>,
5701
5702 #[serde(rename = "Value")]
5703 pub value: String,
5704
5705}
5706
5707#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5708pub struct PluginInterfaceType {
5709 #[serde(rename = "Prefix")]
5710 pub prefix: String,
5711
5712 #[serde(rename = "Capability")]
5713 pub capability: String,
5714
5715 #[serde(rename = "Version")]
5716 pub version: String,
5717
5718}
5719
5720#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5721pub struct PluginMount {
5722 #[serde(rename = "Name")]
5723 pub name: String,
5724
5725 #[serde(rename = "Description")]
5726 pub description: String,
5727
5728 #[serde(rename = "Settable")]
5729 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5730 pub settable: Vec<String>,
5731
5732 #[serde(rename = "Source")]
5733 pub source: String,
5734
5735 #[serde(rename = "Destination")]
5736 pub destination: String,
5737
5738 #[serde(rename = "Type")]
5739 pub typ: String,
5740
5741 #[serde(rename = "Options")]
5742 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5743 pub options: Vec<String>,
5744
5745}
5746
5747#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5749pub struct PluginPrivilege {
5750 #[serde(rename = "Name")]
5751 #[serde(skip_serializing_if = "Option::is_none")]
5752 pub name: Option<String>,
5753
5754 #[serde(rename = "Description")]
5755 #[serde(skip_serializing_if = "Option::is_none")]
5756 pub description: Option<String>,
5757
5758 #[serde(rename = "Value")]
5759 #[serde(skip_serializing_if = "Option::is_none")]
5760 pub value: Option<Vec<String>>,
5761
5762}
5763
5764#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5766pub struct PluginSettings {
5767 #[serde(rename = "Mounts")]
5768 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5769 pub mounts: Vec<PluginMount>,
5770
5771 #[serde(rename = "Env")]
5772 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5773 pub env: Vec<String>,
5774
5775 #[serde(rename = "Args")]
5776 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5777 pub args: Vec<String>,
5778
5779 #[serde(rename = "Devices")]
5780 #[serde(deserialize_with = "deserialize_nonoptional_vec")]
5781 pub devices: Vec<PluginDevice>,
5782
5783}
5784
5785#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5787pub struct PluginsInfo {
5788 #[serde(rename = "Volume")]
5790 #[serde(skip_serializing_if = "Option::is_none")]
5791 pub volume: Option<Vec<String>>,
5792
5793 #[serde(rename = "Network")]
5795 #[serde(skip_serializing_if = "Option::is_none")]
5796 pub network: Option<Vec<String>>,
5797
5798 #[serde(rename = "Authorization")]
5800 #[serde(skip_serializing_if = "Option::is_none")]
5801 pub authorization: Option<Vec<String>>,
5802
5803 #[serde(rename = "Log")]
5805 #[serde(skip_serializing_if = "Option::is_none")]
5806 pub log: Option<Vec<String>>,
5807
5808}
5809
5810#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5812pub struct Port {
5813 #[serde(rename = "IP")]
5815 #[serde(skip_serializing_if = "Option::is_none")]
5816 pub ip: Option<String>,
5817
5818 #[serde(rename = "PrivatePort")]
5820 pub private_port: u16,
5821
5822 #[serde(rename = "PublicPort")]
5824 #[serde(skip_serializing_if = "Option::is_none")]
5825 pub public_port: Option<u16>,
5826
5827 #[serde(rename = "Type")]
5828 #[serde(skip_serializing_if = "Option::is_none")]
5829 #[serde(with = "::serde_with::As::<::serde_with::NoneAsEmptyString>")]
5830 pub typ: Option<PortTypeEnum>,
5831
5832}
5833
5834#[allow(non_camel_case_types)]
5835#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
5836pub enum PortTypeEnum {
5837 #[serde(rename = "")]
5838 EMPTY,
5839 #[serde(rename = "tcp")]
5840 TCP,
5841 #[serde(rename = "udp")]
5842 UDP,
5843 #[serde(rename = "sctp")]
5844 SCTP,
5845}
5846
5847impl ::std::fmt::Display for PortTypeEnum {
5848 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5849 match *self {
5850 PortTypeEnum::EMPTY => write!(f, ""),
5851 PortTypeEnum::TCP => write!(f, "{}", "tcp"),
5852 PortTypeEnum::UDP => write!(f, "{}", "udp"),
5853 PortTypeEnum::SCTP => write!(f, "{}", "sctp"),
5854
5855 }
5856 }
5857}
5858
5859impl ::std::str::FromStr for PortTypeEnum {
5860 type Err = String;
5861 fn from_str(s: &str) -> Result<Self, Self::Err> {
5862 match s {
5863 "" => Ok(PortTypeEnum::EMPTY),
5864 "tcp" => Ok(PortTypeEnum::TCP),
5865 "udp" => Ok(PortTypeEnum::UDP),
5866 "sctp" => Ok(PortTypeEnum::SCTP),
5867 x => Err(format!("Invalid enum type: {}", x)),
5868 }
5869 }
5870}
5871
5872impl ::std::convert::AsRef<str> for PortTypeEnum {
5873 fn as_ref(&self) -> &str {
5874 match self {
5875 PortTypeEnum::EMPTY => "",
5876 PortTypeEnum::TCP => "tcp",
5877 PortTypeEnum::UDP => "udp",
5878 PortTypeEnum::SCTP => "sctp",
5879 }
5880 }
5881}
5882
5883#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5885pub struct PortBinding {
5886 #[serde(rename = "HostIp")]
5888 #[serde(skip_serializing_if = "Option::is_none")]
5889 pub host_ip: Option<String>,
5890
5891 #[serde(rename = "HostPort")]
5893 #[serde(skip_serializing_if = "Option::is_none")]
5894 pub host_port: Option<String>,
5895
5896}
5897
5898pub type PortMap = HashMap<String, Option<Vec<PortBinding>>>;
5901
5902#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5904pub struct PortStatus {
5905 #[serde(rename = "Ports")]
5906 #[serde(skip_serializing_if = "Option::is_none")]
5907 pub ports: Option<Vec<EndpointPortConfig>>,
5908
5909}
5910
5911#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5912pub struct ProcessConfig {
5913 #[serde(rename = "privileged")]
5914 #[serde(skip_serializing_if = "Option::is_none")]
5915 pub privileged: Option<bool>,
5916
5917 #[serde(rename = "user")]
5918 #[serde(skip_serializing_if = "Option::is_none")]
5919 pub user: Option<String>,
5920
5921 #[serde(rename = "tty")]
5922 #[serde(skip_serializing_if = "Option::is_none")]
5923 pub tty: Option<bool>,
5924
5925 #[serde(rename = "entrypoint")]
5926 #[serde(skip_serializing_if = "Option::is_none")]
5927 pub entrypoint: Option<String>,
5928
5929 #[serde(rename = "arguments")]
5930 #[serde(skip_serializing_if = "Option::is_none")]
5931 pub arguments: Option<Vec<String>>,
5932
5933}
5934
5935#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5936pub struct ProgressDetail {
5937 #[serde(rename = "current")]
5938 #[serde(skip_serializing_if = "Option::is_none")]
5939 pub current: Option<i64>,
5940
5941 #[serde(rename = "total")]
5942 #[serde(skip_serializing_if = "Option::is_none")]
5943 pub total: Option<i64>,
5944
5945}
5946
5947#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5948pub struct PushImageInfo {
5949 #[serde(rename = "error")]
5951 #[serde(skip_serializing_if = "Option::is_none")]
5952 pub error: Option<String>,
5953
5954 #[serde(rename = "errorDetail")]
5955 #[serde(skip_serializing_if = "Option::is_none")]
5956 pub error_detail: Option<ErrorDetail>,
5957
5958 #[serde(rename = "status")]
5959 #[serde(skip_serializing_if = "Option::is_none")]
5960 pub status: Option<String>,
5961
5962 #[serde(rename = "progress")]
5964 #[serde(skip_serializing_if = "Option::is_none")]
5965 pub progress: Option<String>,
5966
5967 #[serde(rename = "progressDetail")]
5968 #[serde(skip_serializing_if = "Option::is_none")]
5969 pub progress_detail: Option<ProgressDetail>,
5970
5971}
5972
5973#[allow(non_camel_case_types)]
5978#[repr(C)]
5979#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
5980pub enum Reachability {
5981 #[serde(rename = "unknown")]
5982 UNKNOWN,
5983 #[serde(rename = "unreachable")]
5984 UNREACHABLE,
5985 #[serde(rename = "reachable")]
5986 REACHABLE,
5987}
5988
5989impl ::std::fmt::Display for Reachability {
5990 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5991 match *self {
5992 Reachability::UNKNOWN => write!(f, "{}", "unknown"),
5993 Reachability::UNREACHABLE => write!(f, "{}", "unreachable"),
5994 Reachability::REACHABLE => write!(f, "{}", "reachable"),
5995 }
5996 }
5997}
5998
5999impl ::std::str::FromStr for Reachability {
6000 type Err = ();
6001 fn from_str(s: &str) -> Result<Self, Self::Err> {
6002 match s {
6003 "unknown" => Ok(Reachability::UNKNOWN),
6004 "unreachable" => Ok(Reachability::UNREACHABLE),
6005 "reachable" => Ok(Reachability::REACHABLE),
6006 _ => Err(()),
6007 }
6008 }
6009}
6010
6011impl std::default::Default for Reachability {
6012 fn default() -> Self {
6013 Reachability::UNKNOWN
6014 }
6015}
6016
6017#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6019pub struct RegistryServiceConfig {
6020 #[serde(rename = "AllowNondistributableArtifactsCIDRs")]
6022 #[serde(skip_serializing_if = "Option::is_none")]
6023 pub allow_nondistributable_artifacts_cidrs: Option<Vec<String>>,
6024
6025 #[serde(rename = "AllowNondistributableArtifactsHostnames")]
6027 #[serde(skip_serializing_if = "Option::is_none")]
6028 pub allow_nondistributable_artifacts_hostnames: Option<Vec<String>>,
6029
6030 #[serde(rename = "InsecureRegistryCIDRs")]
6032 #[serde(skip_serializing_if = "Option::is_none")]
6033 pub insecure_registry_cidrs: Option<Vec<String>>,
6034
6035 #[serde(rename = "IndexConfigs")]
6036 #[serde(skip_serializing_if = "Option::is_none")]
6037 pub index_configs: Option<HashMap<String, IndexInfo>>,
6038
6039 #[serde(rename = "Mirrors")]
6041 #[serde(skip_serializing_if = "Option::is_none")]
6042 pub mirrors: Option<Vec<String>>,
6043
6044}
6045
6046#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6048pub struct ResourceObject {
6049 #[serde(rename = "NanoCPUs")]
6050 #[serde(skip_serializing_if = "Option::is_none")]
6051 pub nano_cpus: Option<i64>,
6052
6053 #[serde(rename = "MemoryBytes")]
6054 #[serde(skip_serializing_if = "Option::is_none")]
6055 pub memory_bytes: Option<i64>,
6056
6057 #[serde(rename = "GenericResources")]
6058 #[serde(skip_serializing_if = "Option::is_none")]
6059 pub generic_resources: Option<GenericResources>,
6060
6061}
6062
6063#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6065pub struct Resources {
6066 #[serde(rename = "CpuShares")]
6068 #[serde(skip_serializing_if = "Option::is_none")]
6069 pub cpu_shares: Option<i64>,
6070
6071 #[serde(rename = "Memory")]
6073 #[serde(skip_serializing_if = "Option::is_none")]
6074 pub memory: Option<i64>,
6075
6076 #[serde(rename = "CgroupParent")]
6078 #[serde(skip_serializing_if = "Option::is_none")]
6079 pub cgroup_parent: Option<String>,
6080
6081 #[serde(rename = "BlkioWeight")]
6083 #[serde(skip_serializing_if = "Option::is_none")]
6084 pub blkio_weight: Option<u16>,
6085
6086 #[serde(rename = "BlkioWeightDevice")]
6088 #[serde(skip_serializing_if = "Option::is_none")]
6089 pub blkio_weight_device: Option<Vec<ResourcesBlkioWeightDevice>>,
6090
6091 #[serde(rename = "BlkioDeviceReadBps")]
6093 #[serde(skip_serializing_if = "Option::is_none")]
6094 pub blkio_device_read_bps: Option<Vec<ThrottleDevice>>,
6095
6096 #[serde(rename = "BlkioDeviceWriteBps")]
6098 #[serde(skip_serializing_if = "Option::is_none")]
6099 pub blkio_device_write_bps: Option<Vec<ThrottleDevice>>,
6100
6101 #[serde(rename = "BlkioDeviceReadIOps")]
6103 #[serde(skip_serializing_if = "Option::is_none")]
6104 pub blkio_device_read_iops: Option<Vec<ThrottleDevice>>,
6105
6106 #[serde(rename = "BlkioDeviceWriteIOps")]
6108 #[serde(skip_serializing_if = "Option::is_none")]
6109 pub blkio_device_write_iops: Option<Vec<ThrottleDevice>>,
6110
6111 #[serde(rename = "CpuPeriod")]
6113 #[serde(skip_serializing_if = "Option::is_none")]
6114 pub cpu_period: Option<i64>,
6115
6116 #[serde(rename = "CpuQuota")]
6118 #[serde(skip_serializing_if = "Option::is_none")]
6119 pub cpu_quota: Option<i64>,
6120
6121 #[serde(rename = "CpuRealtimePeriod")]
6123 #[serde(skip_serializing_if = "Option::is_none")]
6124 pub cpu_realtime_period: Option<i64>,
6125
6126 #[serde(rename = "CpuRealtimeRuntime")]
6128 #[serde(skip_serializing_if = "Option::is_none")]
6129 pub cpu_realtime_runtime: Option<i64>,
6130
6131 #[serde(rename = "CpusetCpus")]
6133 #[serde(skip_serializing_if = "Option::is_none")]
6134 pub cpuset_cpus: Option<String>,
6135
6136 #[serde(rename = "CpusetMems")]
6138 #[serde(skip_serializing_if = "Option::is_none")]
6139 pub cpuset_mems: Option<String>,
6140
6141 #[serde(rename = "Devices")]
6143 #[serde(skip_serializing_if = "Option::is_none")]
6144 pub devices: Option<Vec<DeviceMapping>>,
6145
6146 #[serde(rename = "DeviceCgroupRules")]
6148 #[serde(skip_serializing_if = "Option::is_none")]
6149 pub device_cgroup_rules: Option<Vec<String>>,
6150
6151 #[serde(rename = "DeviceRequests")]
6153 #[serde(skip_serializing_if = "Option::is_none")]
6154 pub device_requests: Option<Vec<DeviceRequest>>,
6155
6156 #[serde(rename = "KernelMemoryTCP")]
6158 #[serde(skip_serializing_if = "Option::is_none")]
6159 pub kernel_memory_tcp: Option<i64>,
6160
6161 #[serde(rename = "MemoryReservation")]
6163 #[serde(skip_serializing_if = "Option::is_none")]
6164 pub memory_reservation: Option<i64>,
6165
6166 #[serde(rename = "MemorySwap")]
6168 #[serde(skip_serializing_if = "Option::is_none")]
6169 pub memory_swap: Option<i64>,
6170
6171 #[serde(rename = "MemorySwappiness")]
6173 #[serde(skip_serializing_if = "Option::is_none")]
6174 pub memory_swappiness: Option<i64>,
6175
6176 #[serde(rename = "NanoCpus")]
6178 #[serde(skip_serializing_if = "Option::is_none")]
6179 pub nano_cpus: Option<i64>,
6180
6181 #[serde(rename = "OomKillDisable")]
6183 #[serde(skip_serializing_if = "Option::is_none")]
6184 pub oom_kill_disable: Option<bool>,
6185
6186 #[serde(rename = "Init")]
6188 #[serde(skip_serializing_if = "Option::is_none")]
6189 pub init: Option<bool>,
6190
6191 #[serde(rename = "PidsLimit")]
6193 #[serde(skip_serializing_if = "Option::is_none")]
6194 pub pids_limit: Option<i64>,
6195
6196 #[serde(rename = "Ulimits")]
6198 #[serde(skip_serializing_if = "Option::is_none")]
6199 pub ulimits: Option<Vec<ResourcesUlimits>>,
6200
6201 #[serde(rename = "CpuCount")]
6203 #[serde(skip_serializing_if = "Option::is_none")]
6204 pub cpu_count: Option<i64>,
6205
6206 #[serde(rename = "CpuPercent")]
6208 #[serde(skip_serializing_if = "Option::is_none")]
6209 pub cpu_percent: Option<i64>,
6210
6211 #[serde(rename = "IOMaximumIOps")]
6213 #[serde(skip_serializing_if = "Option::is_none")]
6214 pub io_maximum_iops: Option<i64>,
6215
6216 #[serde(rename = "IOMaximumBandwidth")]
6218 #[serde(skip_serializing_if = "Option::is_none")]
6219 pub io_maximum_bandwidth: Option<i64>,
6220
6221}
6222
6223#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6224pub struct ResourcesBlkioWeightDevice {
6225 #[serde(rename = "Path")]
6226 #[serde(skip_serializing_if = "Option::is_none")]
6227 pub path: Option<String>,
6228
6229 #[serde(rename = "Weight")]
6230 #[serde(skip_serializing_if = "Option::is_none")]
6231 pub weight: Option<usize>,
6232
6233}
6234
6235#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6236pub struct ResourcesUlimits {
6237 #[serde(rename = "Name")]
6239 #[serde(skip_serializing_if = "Option::is_none")]
6240 pub name: Option<String>,
6241
6242 #[serde(rename = "Soft")]
6244 #[serde(skip_serializing_if = "Option::is_none")]
6245 pub soft: Option<i64>,
6246
6247 #[serde(rename = "Hard")]
6249 #[serde(skip_serializing_if = "Option::is_none")]
6250 pub hard: Option<i64>,
6251
6252}
6253
6254#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6256pub struct RestartPolicy {
6257 #[serde(rename = "Name")]
6259 #[serde(skip_serializing_if = "Option::is_none")]
6260 pub name: Option<RestartPolicyNameEnum>,
6261
6262 #[serde(rename = "MaximumRetryCount")]
6264 #[serde(skip_serializing_if = "Option::is_none")]
6265 pub maximum_retry_count: Option<i64>,
6266
6267}
6268
6269#[allow(non_camel_case_types)]
6270#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
6271pub enum RestartPolicyNameEnum {
6272 #[serde(rename = "")]
6273 EMPTY,
6274 #[serde(rename = "no")]
6275 NO,
6276 #[serde(rename = "always")]
6277 ALWAYS,
6278 #[serde(rename = "unless-stopped")]
6279 UNLESS_STOPPED,
6280 #[serde(rename = "on-failure")]
6281 ON_FAILURE,
6282}
6283
6284impl ::std::fmt::Display for RestartPolicyNameEnum {
6285 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6286 match *self {
6287 RestartPolicyNameEnum::EMPTY => write!(f, "{}", ""),
6288 RestartPolicyNameEnum::NO => write!(f, "{}", "no"),
6289 RestartPolicyNameEnum::ALWAYS => write!(f, "{}", "always"),
6290 RestartPolicyNameEnum::UNLESS_STOPPED => write!(f, "{}", "unless-stopped"),
6291 RestartPolicyNameEnum::ON_FAILURE => write!(f, "{}", "on-failure"),
6292
6293 }
6294 }
6295}
6296
6297impl ::std::str::FromStr for RestartPolicyNameEnum {
6298 type Err = String;
6299 fn from_str(s: &str) -> Result<Self, Self::Err> {
6300 match s {
6301 "" => Ok(RestartPolicyNameEnum::EMPTY),
6302 "no" => Ok(RestartPolicyNameEnum::NO),
6303 "always" => Ok(RestartPolicyNameEnum::ALWAYS),
6304 "unless-stopped" => Ok(RestartPolicyNameEnum::UNLESS_STOPPED),
6305 "on-failure" => Ok(RestartPolicyNameEnum::ON_FAILURE),
6306 x => Err(format!("Invalid enum type: {}", x)),
6307 }
6308 }
6309}
6310
6311impl ::std::convert::AsRef<str> for RestartPolicyNameEnum {
6312 fn as_ref(&self) -> &str {
6313 match self {
6314 RestartPolicyNameEnum::EMPTY => "",
6315 RestartPolicyNameEnum::NO => "no",
6316 RestartPolicyNameEnum::ALWAYS => "always",
6317 RestartPolicyNameEnum::UNLESS_STOPPED => "unless-stopped",
6318 RestartPolicyNameEnum::ON_FAILURE => "on-failure",
6319 }
6320 }
6321}
6322
6323#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6325pub struct Runtime {
6326 #[serde(rename = "path")]
6328 #[serde(skip_serializing_if = "Option::is_none")]
6329 pub path: Option<String>,
6330
6331 #[serde(rename = "runtimeArgs")]
6333 #[serde(skip_serializing_if = "Option::is_none")]
6334 pub runtime_args: Option<Vec<String>>,
6335
6336 #[serde(rename = "status")]
6338 #[serde(skip_serializing_if = "Option::is_none")]
6339 pub status: Option<HashMap<String, String>>,
6340
6341}
6342
6343#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6344pub struct Secret {
6345 #[serde(rename = "ID")]
6346 #[serde(skip_serializing_if = "Option::is_none")]
6347 pub id: Option<String>,
6348
6349 #[serde(rename = "Version")]
6350 #[serde(skip_serializing_if = "Option::is_none")]
6351 pub version: Option<ObjectVersion>,
6352
6353 #[serde(rename = "CreatedAt")]
6354 #[serde(skip_serializing_if = "Option::is_none")]
6355 #[serde(
6356 default,
6357 deserialize_with = "deserialize_timestamp",
6358 serialize_with = "serialize_timestamp"
6359 )]
6360 pub created_at: Option<BollardDate>,
6361
6362 #[serde(rename = "UpdatedAt")]
6363 #[serde(skip_serializing_if = "Option::is_none")]
6364 #[serde(
6365 default,
6366 deserialize_with = "deserialize_timestamp",
6367 serialize_with = "serialize_timestamp"
6368 )]
6369 pub updated_at: Option<BollardDate>,
6370
6371 #[serde(rename = "Spec")]
6372 #[serde(skip_serializing_if = "Option::is_none")]
6373 pub spec: Option<SecretSpec>,
6374
6375}
6376
6377#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6378pub struct SecretSpec {
6379 #[serde(rename = "Name")]
6381 #[serde(skip_serializing_if = "Option::is_none")]
6382 pub name: Option<String>,
6383
6384 #[serde(rename = "Labels")]
6386 #[serde(skip_serializing_if = "Option::is_none")]
6387 pub labels: Option<HashMap<String, String>>,
6388
6389 #[serde(rename = "Data")]
6391 #[serde(skip_serializing_if = "Option::is_none")]
6392 pub data: Option<String>,
6393
6394 #[serde(rename = "Driver")]
6396 #[serde(skip_serializing_if = "Option::is_none")]
6397 pub driver: Option<Driver>,
6398
6399 #[serde(rename = "Templating")]
6401 #[serde(skip_serializing_if = "Option::is_none")]
6402 pub templating: Option<Driver>,
6403
6404}
6405
6406#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6407pub struct Service {
6408 #[serde(rename = "ID")]
6409 #[serde(skip_serializing_if = "Option::is_none")]
6410 pub id: Option<String>,
6411
6412 #[serde(rename = "Version")]
6413 #[serde(skip_serializing_if = "Option::is_none")]
6414 pub version: Option<ObjectVersion>,
6415
6416 #[serde(rename = "CreatedAt")]
6417 #[serde(skip_serializing_if = "Option::is_none")]
6418 #[serde(
6419 default,
6420 deserialize_with = "deserialize_timestamp",
6421 serialize_with = "serialize_timestamp"
6422 )]
6423 pub created_at: Option<BollardDate>,
6424
6425 #[serde(rename = "UpdatedAt")]
6426 #[serde(skip_serializing_if = "Option::is_none")]
6427 #[serde(
6428 default,
6429 deserialize_with = "deserialize_timestamp",
6430 serialize_with = "serialize_timestamp"
6431 )]
6432 pub updated_at: Option<BollardDate>,
6433
6434 #[serde(rename = "Spec")]
6435 #[serde(skip_serializing_if = "Option::is_none")]
6436 pub spec: Option<ServiceSpec>,
6437
6438 #[serde(rename = "Endpoint")]
6439 #[serde(skip_serializing_if = "Option::is_none")]
6440 pub endpoint: Option<ServiceEndpoint>,
6441
6442 #[serde(rename = "UpdateStatus")]
6443 #[serde(skip_serializing_if = "Option::is_none")]
6444 pub update_status: Option<ServiceUpdateStatus>,
6445
6446 #[serde(rename = "ServiceStatus")]
6447 #[serde(skip_serializing_if = "Option::is_none")]
6448 pub service_status: Option<ServiceServiceStatus>,
6449
6450 #[serde(rename = "JobStatus")]
6451 #[serde(skip_serializing_if = "Option::is_none")]
6452 pub job_status: Option<ServiceJobStatus>,
6453
6454}
6455
6456#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6458pub struct ServiceCreateResponse {
6459 #[serde(rename = "ID")]
6461 #[serde(skip_serializing_if = "Option::is_none")]
6462 pub id: Option<String>,
6463
6464 #[serde(rename = "Warnings")]
6466 #[serde(skip_serializing_if = "Option::is_none")]
6467 pub warnings: Option<Vec<String>>,
6468
6469}
6470
6471#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6472pub struct ServiceEndpoint {
6473 #[serde(rename = "Spec")]
6474 #[serde(skip_serializing_if = "Option::is_none")]
6475 pub spec: Option<EndpointSpec>,
6476
6477 #[serde(rename = "Ports")]
6478 #[serde(skip_serializing_if = "Option::is_none")]
6479 pub ports: Option<Vec<EndpointPortConfig>>,
6480
6481 #[serde(rename = "VirtualIPs")]
6482 #[serde(skip_serializing_if = "Option::is_none")]
6483 pub virtual_ips: Option<Vec<ServiceEndpointVirtualIps>>,
6484
6485}
6486
6487#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6488pub struct ServiceEndpointVirtualIps {
6489 #[serde(rename = "NetworkID")]
6490 #[serde(skip_serializing_if = "Option::is_none")]
6491 pub network_id: Option<String>,
6492
6493 #[serde(rename = "Addr")]
6494 #[serde(skip_serializing_if = "Option::is_none")]
6495 pub addr: Option<String>,
6496
6497}
6498
6499#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6501pub struct ServiceJobStatus {
6502 #[serde(rename = "JobIteration")]
6504 #[serde(skip_serializing_if = "Option::is_none")]
6505 pub job_iteration: Option<ObjectVersion>,
6506
6507 #[serde(rename = "LastExecution")]
6509 #[serde(skip_serializing_if = "Option::is_none")]
6510 #[serde(
6511 default,
6512 deserialize_with = "deserialize_timestamp",
6513 serialize_with = "serialize_timestamp"
6514 )]
6515 pub last_execution: Option<BollardDate>,
6516
6517}
6518
6519#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6521pub struct ServiceServiceStatus {
6522 #[serde(rename = "RunningTasks")]
6524 #[serde(skip_serializing_if = "Option::is_none")]
6525 pub running_tasks: Option<u64>,
6526
6527 #[serde(rename = "DesiredTasks")]
6529 #[serde(skip_serializing_if = "Option::is_none")]
6530 pub desired_tasks: Option<u64>,
6531
6532 #[serde(rename = "CompletedTasks")]
6534 #[serde(skip_serializing_if = "Option::is_none")]
6535 pub completed_tasks: Option<u64>,
6536
6537}
6538
6539#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6541pub struct ServiceSpec {
6542 #[serde(rename = "Name")]
6544 #[serde(skip_serializing_if = "Option::is_none")]
6545 pub name: Option<String>,
6546
6547 #[serde(rename = "Labels")]
6549 #[serde(skip_serializing_if = "Option::is_none")]
6550 pub labels: Option<HashMap<String, String>>,
6551
6552 #[serde(rename = "TaskTemplate")]
6553 #[serde(skip_serializing_if = "Option::is_none")]
6554 pub task_template: Option<TaskSpec>,
6555
6556 #[serde(rename = "Mode")]
6557 #[serde(skip_serializing_if = "Option::is_none")]
6558 pub mode: Option<ServiceSpecMode>,
6559
6560 #[serde(rename = "UpdateConfig")]
6561 #[serde(skip_serializing_if = "Option::is_none")]
6562 pub update_config: Option<ServiceSpecUpdateConfig>,
6563
6564 #[serde(rename = "RollbackConfig")]
6565 #[serde(skip_serializing_if = "Option::is_none")]
6566 pub rollback_config: Option<ServiceSpecRollbackConfig>,
6567
6568 #[serde(rename = "Networks")]
6570 #[serde(skip_serializing_if = "Option::is_none")]
6571 pub networks: Option<Vec<NetworkAttachmentConfig>>,
6572
6573 #[serde(rename = "EndpointSpec")]
6574 #[serde(skip_serializing_if = "Option::is_none")]
6575 pub endpoint_spec: Option<EndpointSpec>,
6576
6577}
6578
6579#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6581pub struct ServiceSpecMode {
6582 #[serde(rename = "Replicated")]
6583 #[serde(skip_serializing_if = "Option::is_none")]
6584 pub replicated: Option<ServiceSpecModeReplicated>,
6585
6586 #[serde(rename = "Global")]
6587 #[serde(skip_serializing_if = "Option::is_none")]
6588 pub global: Option<HashMap<(), ()>>,
6589
6590 #[serde(rename = "ReplicatedJob")]
6591 #[serde(skip_serializing_if = "Option::is_none")]
6592 pub replicated_job: Option<ServiceSpecModeReplicatedJob>,
6593
6594 #[serde(rename = "GlobalJob")]
6596 #[serde(skip_serializing_if = "Option::is_none")]
6597 pub global_job: Option<HashMap<(), ()>>,
6598
6599}
6600
6601#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6602pub struct ServiceSpecModeReplicated {
6603 #[serde(rename = "Replicas")]
6604 #[serde(skip_serializing_if = "Option::is_none")]
6605 pub replicas: Option<i64>,
6606
6607}
6608
6609#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6611pub struct ServiceSpecModeReplicatedJob {
6612 #[serde(rename = "MaxConcurrent")]
6614 #[serde(skip_serializing_if = "Option::is_none")]
6615 pub max_concurrent: Option<i64>,
6616
6617 #[serde(rename = "TotalCompletions")]
6619 #[serde(skip_serializing_if = "Option::is_none")]
6620 pub total_completions: Option<i64>,
6621
6622}
6623
6624#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6626pub struct ServiceSpecRollbackConfig {
6627 #[serde(rename = "Parallelism")]
6629 #[serde(skip_serializing_if = "Option::is_none")]
6630 pub parallelism: Option<i64>,
6631
6632 #[serde(rename = "Delay")]
6634 #[serde(skip_serializing_if = "Option::is_none")]
6635 pub delay: Option<i64>,
6636
6637 #[serde(rename = "FailureAction")]
6639 #[serde(skip_serializing_if = "Option::is_none")]
6640 pub failure_action: Option<ServiceSpecRollbackConfigFailureActionEnum>,
6641
6642 #[serde(rename = "Monitor")]
6644 #[serde(skip_serializing_if = "Option::is_none")]
6645 pub monitor: Option<i64>,
6646
6647 #[serde(rename = "MaxFailureRatio")]
6649 #[serde(skip_serializing_if = "Option::is_none")]
6650 pub max_failure_ratio: Option<f64>,
6651
6652 #[serde(rename = "Order")]
6654 #[serde(skip_serializing_if = "Option::is_none")]
6655 pub order: Option<ServiceSpecRollbackConfigOrderEnum>,
6656
6657}
6658
6659#[allow(non_camel_case_types)]
6660#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
6661pub enum ServiceSpecRollbackConfigFailureActionEnum {
6662 #[serde(rename = "")]
6663 EMPTY,
6664 #[serde(rename = "continue")]
6665 CONTINUE,
6666 #[serde(rename = "pause")]
6667 PAUSE,
6668}
6669
6670impl ::std::fmt::Display for ServiceSpecRollbackConfigFailureActionEnum {
6671 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6672 match *self {
6673 ServiceSpecRollbackConfigFailureActionEnum::EMPTY => write!(f, ""),
6674 ServiceSpecRollbackConfigFailureActionEnum::CONTINUE => write!(f, "{}", "continue"),
6675 ServiceSpecRollbackConfigFailureActionEnum::PAUSE => write!(f, "{}", "pause"),
6676
6677 }
6678 }
6679}
6680
6681impl ::std::str::FromStr for ServiceSpecRollbackConfigFailureActionEnum {
6682 type Err = String;
6683 fn from_str(s: &str) -> Result<Self, Self::Err> {
6684 match s {
6685 "" => Ok(ServiceSpecRollbackConfigFailureActionEnum::EMPTY),
6686 "continue" => Ok(ServiceSpecRollbackConfigFailureActionEnum::CONTINUE),
6687 "pause" => Ok(ServiceSpecRollbackConfigFailureActionEnum::PAUSE),
6688 x => Err(format!("Invalid enum type: {}", x)),
6689 }
6690 }
6691}
6692
6693impl ::std::convert::AsRef<str> for ServiceSpecRollbackConfigFailureActionEnum {
6694 fn as_ref(&self) -> &str {
6695 match self {
6696 ServiceSpecRollbackConfigFailureActionEnum::EMPTY => "",
6697 ServiceSpecRollbackConfigFailureActionEnum::CONTINUE => "continue",
6698 ServiceSpecRollbackConfigFailureActionEnum::PAUSE => "pause",
6699 }
6700 }
6701}
6702
6703#[allow(non_camel_case_types)]
6704#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
6705pub enum ServiceSpecRollbackConfigOrderEnum {
6706 #[serde(rename = "")]
6707 EMPTY,
6708 #[serde(rename = "stop-first")]
6709 STOP_FIRST,
6710 #[serde(rename = "start-first")]
6711 START_FIRST,
6712}
6713
6714impl ::std::fmt::Display for ServiceSpecRollbackConfigOrderEnum {
6715 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6716 match *self {
6717 ServiceSpecRollbackConfigOrderEnum::EMPTY => write!(f, ""),
6718 ServiceSpecRollbackConfigOrderEnum::STOP_FIRST => write!(f, "{}", "stop-first"),
6719 ServiceSpecRollbackConfigOrderEnum::START_FIRST => write!(f, "{}", "start-first"),
6720
6721 }
6722 }
6723}
6724
6725impl ::std::str::FromStr for ServiceSpecRollbackConfigOrderEnum {
6726 type Err = String;
6727 fn from_str(s: &str) -> Result<Self, Self::Err> {
6728 match s {
6729 "" => Ok(ServiceSpecRollbackConfigOrderEnum::EMPTY),
6730 "stop-first" => Ok(ServiceSpecRollbackConfigOrderEnum::STOP_FIRST),
6731 "start-first" => Ok(ServiceSpecRollbackConfigOrderEnum::START_FIRST),
6732 x => Err(format!("Invalid enum type: {}", x)),
6733 }
6734 }
6735}
6736
6737impl ::std::convert::AsRef<str> for ServiceSpecRollbackConfigOrderEnum {
6738 fn as_ref(&self) -> &str {
6739 match self {
6740 ServiceSpecRollbackConfigOrderEnum::EMPTY => "",
6741 ServiceSpecRollbackConfigOrderEnum::STOP_FIRST => "stop-first",
6742 ServiceSpecRollbackConfigOrderEnum::START_FIRST => "start-first",
6743 }
6744 }
6745}
6746
6747#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6749pub struct ServiceSpecUpdateConfig {
6750 #[serde(rename = "Parallelism")]
6752 #[serde(skip_serializing_if = "Option::is_none")]
6753 pub parallelism: Option<i64>,
6754
6755 #[serde(rename = "Delay")]
6757 #[serde(skip_serializing_if = "Option::is_none")]
6758 pub delay: Option<i64>,
6759
6760 #[serde(rename = "FailureAction")]
6762 #[serde(skip_serializing_if = "Option::is_none")]
6763 pub failure_action: Option<ServiceSpecUpdateConfigFailureActionEnum>,
6764
6765 #[serde(rename = "Monitor")]
6767 #[serde(skip_serializing_if = "Option::is_none")]
6768 pub monitor: Option<i64>,
6769
6770 #[serde(rename = "MaxFailureRatio")]
6772 #[serde(skip_serializing_if = "Option::is_none")]
6773 pub max_failure_ratio: Option<f64>,
6774
6775 #[serde(rename = "Order")]
6777 #[serde(skip_serializing_if = "Option::is_none")]
6778 pub order: Option<ServiceSpecUpdateConfigOrderEnum>,
6779
6780}
6781
6782#[allow(non_camel_case_types)]
6783#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
6784pub enum ServiceSpecUpdateConfigFailureActionEnum {
6785 #[serde(rename = "")]
6786 EMPTY,
6787 #[serde(rename = "continue")]
6788 CONTINUE,
6789 #[serde(rename = "pause")]
6790 PAUSE,
6791 #[serde(rename = "rollback")]
6792 ROLLBACK,
6793}
6794
6795impl ::std::fmt::Display for ServiceSpecUpdateConfigFailureActionEnum {
6796 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6797 match *self {
6798 ServiceSpecUpdateConfigFailureActionEnum::EMPTY => write!(f, ""),
6799 ServiceSpecUpdateConfigFailureActionEnum::CONTINUE => write!(f, "{}", "continue"),
6800 ServiceSpecUpdateConfigFailureActionEnum::PAUSE => write!(f, "{}", "pause"),
6801 ServiceSpecUpdateConfigFailureActionEnum::ROLLBACK => write!(f, "{}", "rollback"),
6802
6803 }
6804 }
6805}
6806
6807impl ::std::str::FromStr for ServiceSpecUpdateConfigFailureActionEnum {
6808 type Err = String;
6809 fn from_str(s: &str) -> Result<Self, Self::Err> {
6810 match s {
6811 "" => Ok(ServiceSpecUpdateConfigFailureActionEnum::EMPTY),
6812 "continue" => Ok(ServiceSpecUpdateConfigFailureActionEnum::CONTINUE),
6813 "pause" => Ok(ServiceSpecUpdateConfigFailureActionEnum::PAUSE),
6814 "rollback" => Ok(ServiceSpecUpdateConfigFailureActionEnum::ROLLBACK),
6815 x => Err(format!("Invalid enum type: {}", x)),
6816 }
6817 }
6818}
6819
6820impl ::std::convert::AsRef<str> for ServiceSpecUpdateConfigFailureActionEnum {
6821 fn as_ref(&self) -> &str {
6822 match self {
6823 ServiceSpecUpdateConfigFailureActionEnum::EMPTY => "",
6824 ServiceSpecUpdateConfigFailureActionEnum::CONTINUE => "continue",
6825 ServiceSpecUpdateConfigFailureActionEnum::PAUSE => "pause",
6826 ServiceSpecUpdateConfigFailureActionEnum::ROLLBACK => "rollback",
6827 }
6828 }
6829}
6830
6831#[allow(non_camel_case_types)]
6832#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
6833pub enum ServiceSpecUpdateConfigOrderEnum {
6834 #[serde(rename = "")]
6835 EMPTY,
6836 #[serde(rename = "stop-first")]
6837 STOP_FIRST,
6838 #[serde(rename = "start-first")]
6839 START_FIRST,
6840}
6841
6842impl ::std::fmt::Display for ServiceSpecUpdateConfigOrderEnum {
6843 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6844 match *self {
6845 ServiceSpecUpdateConfigOrderEnum::EMPTY => write!(f, ""),
6846 ServiceSpecUpdateConfigOrderEnum::STOP_FIRST => write!(f, "{}", "stop-first"),
6847 ServiceSpecUpdateConfigOrderEnum::START_FIRST => write!(f, "{}", "start-first"),
6848
6849 }
6850 }
6851}
6852
6853impl ::std::str::FromStr for ServiceSpecUpdateConfigOrderEnum {
6854 type Err = String;
6855 fn from_str(s: &str) -> Result<Self, Self::Err> {
6856 match s {
6857 "" => Ok(ServiceSpecUpdateConfigOrderEnum::EMPTY),
6858 "stop-first" => Ok(ServiceSpecUpdateConfigOrderEnum::STOP_FIRST),
6859 "start-first" => Ok(ServiceSpecUpdateConfigOrderEnum::START_FIRST),
6860 x => Err(format!("Invalid enum type: {}", x)),
6861 }
6862 }
6863}
6864
6865impl ::std::convert::AsRef<str> for ServiceSpecUpdateConfigOrderEnum {
6866 fn as_ref(&self) -> &str {
6867 match self {
6868 ServiceSpecUpdateConfigOrderEnum::EMPTY => "",
6869 ServiceSpecUpdateConfigOrderEnum::STOP_FIRST => "stop-first",
6870 ServiceSpecUpdateConfigOrderEnum::START_FIRST => "start-first",
6871 }
6872 }
6873}
6874
6875#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6876pub struct ServiceUpdateResponse {
6877 #[serde(rename = "Warnings")]
6879 #[serde(skip_serializing_if = "Option::is_none")]
6880 pub warnings: Option<Vec<String>>,
6881
6882}
6883
6884#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6886pub struct ServiceUpdateStatus {
6887 #[serde(rename = "State")]
6888 #[serde(skip_serializing_if = "Option::is_none")]
6889 pub state: Option<ServiceUpdateStatusStateEnum>,
6890
6891 #[serde(rename = "StartedAt")]
6892 #[serde(skip_serializing_if = "Option::is_none")]
6893 #[serde(
6894 default,
6895 deserialize_with = "deserialize_timestamp",
6896 serialize_with = "serialize_timestamp"
6897 )]
6898 pub started_at: Option<BollardDate>,
6899
6900 #[serde(rename = "CompletedAt")]
6901 #[serde(skip_serializing_if = "Option::is_none")]
6902 #[serde(
6903 default,
6904 deserialize_with = "deserialize_timestamp",
6905 serialize_with = "serialize_timestamp"
6906 )]
6907 pub completed_at: Option<BollardDate>,
6908
6909 #[serde(rename = "Message")]
6910 #[serde(skip_serializing_if = "Option::is_none")]
6911 pub message: Option<String>,
6912
6913}
6914
6915#[allow(non_camel_case_types)]
6916#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
6917pub enum ServiceUpdateStatusStateEnum {
6918 #[serde(rename = "")]
6919 EMPTY,
6920 #[serde(rename = "updating")]
6921 UPDATING,
6922 #[serde(rename = "paused")]
6923 PAUSED,
6924 #[serde(rename = "completed")]
6925 COMPLETED,
6926 #[serde(rename = "rollback_started")]
6927 ROLLBACK_STARTED,
6928 #[serde(rename = "rollback_paused")]
6929 ROLLBACK_PAUSED,
6930 #[serde(rename = "rollback_completed")]
6931 ROLLBACK_COMPLETED,
6932}
6933
6934impl ::std::fmt::Display for ServiceUpdateStatusStateEnum {
6935 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6936 match *self {
6937 ServiceUpdateStatusStateEnum::EMPTY => write!(f, ""),
6938 ServiceUpdateStatusStateEnum::UPDATING => write!(f, "{}", "updating"),
6939 ServiceUpdateStatusStateEnum::PAUSED => write!(f, "{}", "paused"),
6940 ServiceUpdateStatusStateEnum::COMPLETED => write!(f, "{}", "completed"),
6941 ServiceUpdateStatusStateEnum::ROLLBACK_STARTED => write!(f, "{}", "rollback_started"),
6942 ServiceUpdateStatusStateEnum::ROLLBACK_PAUSED => write!(f, "{}", "rollback_paused"),
6943 ServiceUpdateStatusStateEnum::ROLLBACK_COMPLETED => write!(f, "{}", "rollback_completed"),
6944
6945 }
6946 }
6947}
6948
6949impl ::std::str::FromStr for ServiceUpdateStatusStateEnum {
6950 type Err = String;
6951 fn from_str(s: &str) -> Result<Self, Self::Err> {
6952 match s {
6953 "" => Ok(ServiceUpdateStatusStateEnum::EMPTY),
6954 "updating" => Ok(ServiceUpdateStatusStateEnum::UPDATING),
6955 "paused" => Ok(ServiceUpdateStatusStateEnum::PAUSED),
6956 "completed" => Ok(ServiceUpdateStatusStateEnum::COMPLETED),
6957 "rollback_started" => Ok(ServiceUpdateStatusStateEnum::ROLLBACK_STARTED),
6958 "rollback_paused" => Ok(ServiceUpdateStatusStateEnum::ROLLBACK_PAUSED),
6959 "rollback_completed" => Ok(ServiceUpdateStatusStateEnum::ROLLBACK_COMPLETED),
6960 x => Err(format!("Invalid enum type: {}", x)),
6961 }
6962 }
6963}
6964
6965impl ::std::convert::AsRef<str> for ServiceUpdateStatusStateEnum {
6966 fn as_ref(&self) -> &str {
6967 match self {
6968 ServiceUpdateStatusStateEnum::EMPTY => "",
6969 ServiceUpdateStatusStateEnum::UPDATING => "updating",
6970 ServiceUpdateStatusStateEnum::PAUSED => "paused",
6971 ServiceUpdateStatusStateEnum::COMPLETED => "completed",
6972 ServiceUpdateStatusStateEnum::ROLLBACK_STARTED => "rollback_started",
6973 ServiceUpdateStatusStateEnum::ROLLBACK_PAUSED => "rollback_paused",
6974 ServiceUpdateStatusStateEnum::ROLLBACK_COMPLETED => "rollback_completed",
6975 }
6976 }
6977}
6978
6979#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6980pub struct Swarm {
6981 #[serde(rename = "ID")]
6983 #[serde(skip_serializing_if = "Option::is_none")]
6984 pub id: Option<String>,
6985
6986 #[serde(rename = "Version")]
6987 #[serde(skip_serializing_if = "Option::is_none")]
6988 pub version: Option<ObjectVersion>,
6989
6990 #[serde(rename = "CreatedAt")]
6992 #[serde(skip_serializing_if = "Option::is_none")]
6993 #[serde(
6994 default,
6995 deserialize_with = "deserialize_timestamp",
6996 serialize_with = "serialize_timestamp"
6997 )]
6998 pub created_at: Option<BollardDate>,
6999
7000 #[serde(rename = "UpdatedAt")]
7002 #[serde(skip_serializing_if = "Option::is_none")]
7003 #[serde(
7004 default,
7005 deserialize_with = "deserialize_timestamp",
7006 serialize_with = "serialize_timestamp"
7007 )]
7008 pub updated_at: Option<BollardDate>,
7009
7010 #[serde(rename = "Spec")]
7011 #[serde(skip_serializing_if = "Option::is_none")]
7012 pub spec: Option<SwarmSpec>,
7013
7014 #[serde(rename = "TLSInfo")]
7015 #[serde(skip_serializing_if = "Option::is_none")]
7016 pub tls_info: Option<TlsInfo>,
7017
7018 #[serde(rename = "RootRotationInProgress")]
7020 #[serde(skip_serializing_if = "Option::is_none")]
7021 pub root_rotation_in_progress: Option<bool>,
7022
7023 #[serde(rename = "DataPathPort")]
7025 #[serde(skip_serializing_if = "Option::is_none")]
7026 pub data_path_port: Option<u32>,
7027
7028 #[serde(rename = "DefaultAddrPool")]
7030 #[serde(skip_serializing_if = "Option::is_none")]
7031 pub default_addr_pool: Option<Vec<String>>,
7032
7033 #[serde(rename = "SubnetSize")]
7035 #[serde(skip_serializing_if = "Option::is_none")]
7036 pub subnet_size: Option<u32>,
7037
7038 #[serde(rename = "JoinTokens")]
7039 #[serde(skip_serializing_if = "Option::is_none")]
7040 pub join_tokens: Option<JoinTokens>,
7041
7042}
7043
7044#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7046pub struct SwarmInfo {
7047 #[serde(rename = "NodeID")]
7049 #[serde(skip_serializing_if = "Option::is_none")]
7050 pub node_id: Option<String>,
7051
7052 #[serde(rename = "NodeAddr")]
7054 #[serde(skip_serializing_if = "Option::is_none")]
7055 pub node_addr: Option<String>,
7056
7057 #[serde(rename = "LocalNodeState")]
7058 #[serde(skip_serializing_if = "Option::is_none")]
7059 pub local_node_state: Option<LocalNodeState>,
7060
7061 #[serde(rename = "ControlAvailable")]
7062 #[serde(skip_serializing_if = "Option::is_none")]
7063 pub control_available: Option<bool>,
7064
7065 #[serde(rename = "Error")]
7066 #[serde(skip_serializing_if = "Option::is_none")]
7067 pub error: Option<String>,
7068
7069 #[serde(rename = "RemoteManagers")]
7071 #[serde(skip_serializing_if = "Option::is_none")]
7072 pub remote_managers: Option<Vec<PeerNode>>,
7073
7074 #[serde(rename = "Nodes")]
7076 #[serde(skip_serializing_if = "Option::is_none")]
7077 pub nodes: Option<i64>,
7078
7079 #[serde(rename = "Managers")]
7081 #[serde(skip_serializing_if = "Option::is_none")]
7082 pub managers: Option<i64>,
7083
7084 #[serde(rename = "Cluster")]
7085 #[serde(skip_serializing_if = "Option::is_none")]
7086 pub cluster: Option<ClusterInfo>,
7087
7088}
7089
7090#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7091pub struct SwarmInitRequest {
7092 #[serde(rename = "ListenAddr")]
7094 #[serde(skip_serializing_if = "Option::is_none")]
7095 pub listen_addr: Option<String>,
7096
7097 #[serde(rename = "AdvertiseAddr")]
7099 #[serde(skip_serializing_if = "Option::is_none")]
7100 pub advertise_addr: Option<String>,
7101
7102 #[serde(rename = "DataPathAddr")]
7104 #[serde(skip_serializing_if = "Option::is_none")]
7105 pub data_path_addr: Option<String>,
7106
7107 #[serde(rename = "DataPathPort")]
7109 #[serde(skip_serializing_if = "Option::is_none")]
7110 pub data_path_port: Option<u32>,
7111
7112 #[serde(rename = "DefaultAddrPool")]
7114 #[serde(skip_serializing_if = "Option::is_none")]
7115 pub default_addr_pool: Option<Vec<String>>,
7116
7117 #[serde(rename = "ForceNewCluster")]
7119 #[serde(skip_serializing_if = "Option::is_none")]
7120 pub force_new_cluster: Option<bool>,
7121
7122 #[serde(rename = "SubnetSize")]
7124 #[serde(skip_serializing_if = "Option::is_none")]
7125 pub subnet_size: Option<u32>,
7126
7127 #[serde(rename = "Spec")]
7128 #[serde(skip_serializing_if = "Option::is_none")]
7129 pub spec: Option<SwarmSpec>,
7130
7131}
7132
7133#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7134pub struct SwarmJoinRequest {
7135 #[serde(rename = "ListenAddr")]
7137 #[serde(skip_serializing_if = "Option::is_none")]
7138 pub listen_addr: Option<String>,
7139
7140 #[serde(rename = "AdvertiseAddr")]
7142 #[serde(skip_serializing_if = "Option::is_none")]
7143 pub advertise_addr: Option<String>,
7144
7145 #[serde(rename = "DataPathAddr")]
7147 #[serde(skip_serializing_if = "Option::is_none")]
7148 pub data_path_addr: Option<String>,
7149
7150 #[serde(rename = "RemoteAddrs")]
7152 #[serde(skip_serializing_if = "Option::is_none")]
7153 pub remote_addrs: Option<Vec<String>>,
7154
7155 #[serde(rename = "JoinToken")]
7157 #[serde(skip_serializing_if = "Option::is_none")]
7158 pub join_token: Option<String>,
7159
7160}
7161
7162#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7164pub struct SwarmSpec {
7165 #[serde(rename = "Name")]
7167 #[serde(skip_serializing_if = "Option::is_none")]
7168 pub name: Option<String>,
7169
7170 #[serde(rename = "Labels")]
7172 #[serde(skip_serializing_if = "Option::is_none")]
7173 pub labels: Option<HashMap<String, String>>,
7174
7175 #[serde(rename = "Orchestration")]
7176 #[serde(skip_serializing_if = "Option::is_none")]
7177 pub orchestration: Option<SwarmSpecOrchestration>,
7178
7179 #[serde(rename = "Raft")]
7180 #[serde(skip_serializing_if = "Option::is_none")]
7181 pub raft: Option<SwarmSpecRaft>,
7182
7183 #[serde(rename = "Dispatcher")]
7184 #[serde(skip_serializing_if = "Option::is_none")]
7185 pub dispatcher: Option<SwarmSpecDispatcher>,
7186
7187 #[serde(rename = "CAConfig")]
7188 #[serde(skip_serializing_if = "Option::is_none")]
7189 pub ca_config: Option<SwarmSpecCaConfig>,
7190
7191 #[serde(rename = "EncryptionConfig")]
7192 #[serde(skip_serializing_if = "Option::is_none")]
7193 pub encryption_config: Option<SwarmSpecEncryptionConfig>,
7194
7195 #[serde(rename = "TaskDefaults")]
7196 #[serde(skip_serializing_if = "Option::is_none")]
7197 pub task_defaults: Option<SwarmSpecTaskDefaults>,
7198
7199}
7200
7201#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7203pub struct SwarmSpecCaConfig {
7204 #[serde(rename = "NodeCertExpiry")]
7206 #[serde(skip_serializing_if = "Option::is_none")]
7207 pub node_cert_expiry: Option<i64>,
7208
7209 #[serde(rename = "ExternalCAs")]
7211 #[serde(skip_serializing_if = "Option::is_none")]
7212 pub external_cas: Option<Vec<SwarmSpecCaConfigExternalCas>>,
7213
7214 #[serde(rename = "SigningCACert")]
7216 #[serde(skip_serializing_if = "Option::is_none")]
7217 pub signing_ca_cert: Option<String>,
7218
7219 #[serde(rename = "SigningCAKey")]
7221 #[serde(skip_serializing_if = "Option::is_none")]
7222 pub signing_ca_key: Option<String>,
7223
7224 #[serde(rename = "ForceRotate")]
7226 #[serde(skip_serializing_if = "Option::is_none")]
7227 pub force_rotate: Option<u64>,
7228
7229}
7230
7231#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7232pub struct SwarmSpecCaConfigExternalCas {
7233 #[serde(rename = "Protocol")]
7235 #[serde(skip_serializing_if = "Option::is_none")]
7236 pub protocol: Option<SwarmSpecCaConfigExternalCasProtocolEnum>,
7237
7238 #[serde(rename = "URL")]
7240 #[serde(skip_serializing_if = "Option::is_none")]
7241 pub url: Option<String>,
7242
7243 #[serde(rename = "Options")]
7245 #[serde(skip_serializing_if = "Option::is_none")]
7246 pub options: Option<HashMap<String, String>>,
7247
7248 #[serde(rename = "CACert")]
7250 #[serde(skip_serializing_if = "Option::is_none")]
7251 pub ca_cert: Option<String>,
7252
7253}
7254
7255#[allow(non_camel_case_types)]
7256#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
7257pub enum SwarmSpecCaConfigExternalCasProtocolEnum {
7258 #[serde(rename = "")]
7259 EMPTY,
7260 #[serde(rename = "cfssl")]
7261 CFSSL,
7262}
7263
7264impl ::std::fmt::Display for SwarmSpecCaConfigExternalCasProtocolEnum {
7265 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7266 match *self {
7267 SwarmSpecCaConfigExternalCasProtocolEnum::EMPTY => write!(f, ""),
7268 SwarmSpecCaConfigExternalCasProtocolEnum::CFSSL => write!(f, "{}", "cfssl"),
7269
7270 }
7271 }
7272}
7273
7274impl ::std::str::FromStr for SwarmSpecCaConfigExternalCasProtocolEnum {
7275 type Err = String;
7276 fn from_str(s: &str) -> Result<Self, Self::Err> {
7277 match s {
7278 "" => Ok(SwarmSpecCaConfigExternalCasProtocolEnum::EMPTY),
7279 "cfssl" => Ok(SwarmSpecCaConfigExternalCasProtocolEnum::CFSSL),
7280 x => Err(format!("Invalid enum type: {}", x)),
7281 }
7282 }
7283}
7284
7285impl ::std::convert::AsRef<str> for SwarmSpecCaConfigExternalCasProtocolEnum {
7286 fn as_ref(&self) -> &str {
7287 match self {
7288 SwarmSpecCaConfigExternalCasProtocolEnum::EMPTY => "",
7289 SwarmSpecCaConfigExternalCasProtocolEnum::CFSSL => "cfssl",
7290 }
7291 }
7292}
7293
7294#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7296pub struct SwarmSpecDispatcher {
7297 #[serde(rename = "HeartbeatPeriod")]
7299 #[serde(skip_serializing_if = "Option::is_none")]
7300 pub heartbeat_period: Option<i64>,
7301
7302}
7303
7304#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7306pub struct SwarmSpecEncryptionConfig {
7307 #[serde(rename = "AutoLockManagers")]
7309 #[serde(skip_serializing_if = "Option::is_none")]
7310 pub auto_lock_managers: Option<bool>,
7311
7312}
7313
7314#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7316pub struct SwarmSpecOrchestration {
7317 #[serde(rename = "TaskHistoryRetentionLimit")]
7319 #[serde(skip_serializing_if = "Option::is_none")]
7320 pub task_history_retention_limit: Option<i64>,
7321
7322}
7323
7324#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7326pub struct SwarmSpecRaft {
7327 #[serde(rename = "SnapshotInterval")]
7329 #[serde(skip_serializing_if = "Option::is_none")]
7330 pub snapshot_interval: Option<u64>,
7331
7332 #[serde(rename = "KeepOldSnapshots")]
7334 #[serde(skip_serializing_if = "Option::is_none")]
7335 pub keep_old_snapshots: Option<u64>,
7336
7337 #[serde(rename = "LogEntriesForSlowFollowers")]
7339 #[serde(skip_serializing_if = "Option::is_none")]
7340 pub log_entries_for_slow_followers: Option<u64>,
7341
7342 #[serde(rename = "ElectionTick")]
7344 #[serde(skip_serializing_if = "Option::is_none")]
7345 pub election_tick: Option<i64>,
7346
7347 #[serde(rename = "HeartbeatTick")]
7349 #[serde(skip_serializing_if = "Option::is_none")]
7350 pub heartbeat_tick: Option<i64>,
7351
7352}
7353
7354#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7356pub struct SwarmSpecTaskDefaults {
7357 #[serde(rename = "LogDriver")]
7358 #[serde(skip_serializing_if = "Option::is_none")]
7359 pub log_driver: Option<SwarmSpecTaskDefaultsLogDriver>,
7360
7361}
7362
7363#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7365pub struct SwarmSpecTaskDefaultsLogDriver {
7366 #[serde(rename = "Name")]
7368 #[serde(skip_serializing_if = "Option::is_none")]
7369 pub name: Option<String>,
7370
7371 #[serde(rename = "Options")]
7373 #[serde(skip_serializing_if = "Option::is_none")]
7374 pub options: Option<HashMap<String, String>>,
7375
7376}
7377
7378#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7379pub struct SwarmUnlockRequest {
7380 #[serde(rename = "UnlockKey")]
7382 #[serde(skip_serializing_if = "Option::is_none")]
7383 pub unlock_key: Option<String>,
7384
7385}
7386
7387#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7388pub struct SystemAuthResponse {
7389 #[serde(rename = "Status")]
7391 pub status: String,
7392
7393 #[serde(rename = "IdentityToken")]
7395 #[serde(skip_serializing_if = "Option::is_none")]
7396 pub identity_token: Option<String>,
7397
7398}
7399
7400#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7401pub struct SystemDataUsageResponse {
7402 #[serde(rename = "LayersSize")]
7403 #[serde(skip_serializing_if = "Option::is_none")]
7404 pub layers_size: Option<i64>,
7405
7406 #[serde(rename = "Images")]
7407 #[serde(skip_serializing_if = "Option::is_none")]
7408 pub images: Option<Vec<ImageSummary>>,
7409
7410 #[serde(rename = "Containers")]
7411 #[serde(skip_serializing_if = "Option::is_none")]
7412 pub containers: Option<Vec<ContainerSummary>>,
7413
7414 #[serde(rename = "Volumes")]
7415 #[serde(skip_serializing_if = "Option::is_none")]
7416 pub volumes: Option<Vec<Volume>>,
7417
7418 #[serde(rename = "BuildCache")]
7419 #[serde(skip_serializing_if = "Option::is_none")]
7420 pub build_cache: Option<Vec<BuildCache>>,
7421
7422}
7423
7424#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7425pub struct SystemInfo {
7426 #[serde(rename = "ID")]
7428 #[serde(skip_serializing_if = "Option::is_none")]
7429 pub id: Option<String>,
7430
7431 #[serde(rename = "Containers")]
7433 #[serde(skip_serializing_if = "Option::is_none")]
7434 pub containers: Option<i64>,
7435
7436 #[serde(rename = "ContainersRunning")]
7438 #[serde(skip_serializing_if = "Option::is_none")]
7439 pub containers_running: Option<i64>,
7440
7441 #[serde(rename = "ContainersPaused")]
7443 #[serde(skip_serializing_if = "Option::is_none")]
7444 pub containers_paused: Option<i64>,
7445
7446 #[serde(rename = "ContainersStopped")]
7448 #[serde(skip_serializing_if = "Option::is_none")]
7449 pub containers_stopped: Option<i64>,
7450
7451 #[serde(rename = "Images")]
7453 #[serde(skip_serializing_if = "Option::is_none")]
7454 pub images: Option<i64>,
7455
7456 #[serde(rename = "Driver")]
7458 #[serde(skip_serializing_if = "Option::is_none")]
7459 pub driver: Option<String>,
7460
7461 #[serde(rename = "DriverStatus")]
7463 #[serde(skip_serializing_if = "Option::is_none")]
7464 pub driver_status: Option<Vec<Vec<String>>>,
7465
7466 #[serde(rename = "DockerRootDir")]
7468 #[serde(skip_serializing_if = "Option::is_none")]
7469 pub docker_root_dir: Option<String>,
7470
7471 #[serde(rename = "Plugins")]
7472 #[serde(skip_serializing_if = "Option::is_none")]
7473 pub plugins: Option<PluginsInfo>,
7474
7475 #[serde(rename = "MemoryLimit")]
7477 #[serde(skip_serializing_if = "Option::is_none")]
7478 pub memory_limit: Option<bool>,
7479
7480 #[serde(rename = "SwapLimit")]
7482 #[serde(skip_serializing_if = "Option::is_none")]
7483 pub swap_limit: Option<bool>,
7484
7485 #[serde(rename = "KernelMemoryTCP")]
7487 #[serde(skip_serializing_if = "Option::is_none")]
7488 pub kernel_memory_tcp: Option<bool>,
7489
7490 #[serde(rename = "CpuCfsPeriod")]
7492 #[serde(skip_serializing_if = "Option::is_none")]
7493 pub cpu_cfs_period: Option<bool>,
7494
7495 #[serde(rename = "CpuCfsQuota")]
7497 #[serde(skip_serializing_if = "Option::is_none")]
7498 pub cpu_cfs_quota: Option<bool>,
7499
7500 #[serde(rename = "CPUShares")]
7502 #[serde(skip_serializing_if = "Option::is_none")]
7503 pub cpu_shares: Option<bool>,
7504
7505 #[serde(rename = "CPUSet")]
7507 #[serde(skip_serializing_if = "Option::is_none")]
7508 pub cpu_set: Option<bool>,
7509
7510 #[serde(rename = "PidsLimit")]
7512 #[serde(skip_serializing_if = "Option::is_none")]
7513 pub pids_limit: Option<bool>,
7514
7515 #[serde(rename = "OomKillDisable")]
7517 #[serde(skip_serializing_if = "Option::is_none")]
7518 pub oom_kill_disable: Option<bool>,
7519
7520 #[serde(rename = "IPv4Forwarding")]
7522 #[serde(skip_serializing_if = "Option::is_none")]
7523 pub ipv4_forwarding: Option<bool>,
7524
7525 #[serde(rename = "BridgeNfIptables")]
7527 #[serde(skip_serializing_if = "Option::is_none")]
7528 pub bridge_nf_iptables: Option<bool>,
7529
7530 #[serde(rename = "BridgeNfIp6tables")]
7532 #[serde(skip_serializing_if = "Option::is_none")]
7533 pub bridge_nf_ip6tables: Option<bool>,
7534
7535 #[serde(rename = "Debug")]
7537 #[serde(skip_serializing_if = "Option::is_none")]
7538 pub debug: Option<bool>,
7539
7540 #[serde(rename = "NFd")]
7542 #[serde(skip_serializing_if = "Option::is_none")]
7543 pub nfd: Option<i64>,
7544
7545 #[serde(rename = "NGoroutines")]
7547 #[serde(skip_serializing_if = "Option::is_none")]
7548 pub n_goroutines: Option<i64>,
7549
7550 #[serde(rename = "SystemTime")]
7552 #[serde(skip_serializing_if = "Option::is_none")]
7553 pub system_time: Option<String>,
7554
7555 #[serde(rename = "LoggingDriver")]
7557 #[serde(skip_serializing_if = "Option::is_none")]
7558 pub logging_driver: Option<String>,
7559
7560 #[serde(rename = "CgroupDriver")]
7562 #[serde(skip_serializing_if = "Option::is_none")]
7563 pub cgroup_driver: Option<SystemInfoCgroupDriverEnum>,
7564
7565 #[serde(rename = "CgroupVersion")]
7567 #[serde(skip_serializing_if = "Option::is_none")]
7568 pub cgroup_version: Option<SystemInfoCgroupVersionEnum>,
7569
7570 #[serde(rename = "NEventsListener")]
7572 #[serde(skip_serializing_if = "Option::is_none")]
7573 pub n_events_listener: Option<i64>,
7574
7575 #[serde(rename = "KernelVersion")]
7577 #[serde(skip_serializing_if = "Option::is_none")]
7578 pub kernel_version: Option<String>,
7579
7580 #[serde(rename = "OperatingSystem")]
7582 #[serde(skip_serializing_if = "Option::is_none")]
7583 pub operating_system: Option<String>,
7584
7585 #[serde(rename = "OSVersion")]
7587 #[serde(skip_serializing_if = "Option::is_none")]
7588 pub os_version: Option<String>,
7589
7590 #[serde(rename = "OSType")]
7592 #[serde(skip_serializing_if = "Option::is_none")]
7593 pub os_type: Option<String>,
7594
7595 #[serde(rename = "Architecture")]
7597 #[serde(skip_serializing_if = "Option::is_none")]
7598 pub architecture: Option<String>,
7599
7600 #[serde(rename = "NCPU")]
7602 #[serde(skip_serializing_if = "Option::is_none")]
7603 pub ncpu: Option<i64>,
7604
7605 #[serde(rename = "MemTotal")]
7607 #[serde(skip_serializing_if = "Option::is_none")]
7608 pub mem_total: Option<i64>,
7609
7610 #[serde(rename = "IndexServerAddress")]
7612 #[serde(skip_serializing_if = "Option::is_none")]
7613 pub index_server_address: Option<String>,
7614
7615 #[serde(rename = "RegistryConfig")]
7616 #[serde(skip_serializing_if = "Option::is_none")]
7617 pub registry_config: Option<RegistryServiceConfig>,
7618
7619 #[serde(rename = "GenericResources")]
7620 #[serde(skip_serializing_if = "Option::is_none")]
7621 pub generic_resources: Option<GenericResources>,
7622
7623 #[serde(rename = "HttpProxy")]
7625 #[serde(skip_serializing_if = "Option::is_none")]
7626 pub http_proxy: Option<String>,
7627
7628 #[serde(rename = "HttpsProxy")]
7630 #[serde(skip_serializing_if = "Option::is_none")]
7631 pub https_proxy: Option<String>,
7632
7633 #[serde(rename = "NoProxy")]
7635 #[serde(skip_serializing_if = "Option::is_none")]
7636 pub no_proxy: Option<String>,
7637
7638 #[serde(rename = "Name")]
7640 #[serde(skip_serializing_if = "Option::is_none")]
7641 pub name: Option<String>,
7642
7643 #[serde(rename = "Labels")]
7645 #[serde(skip_serializing_if = "Option::is_none")]
7646 pub labels: Option<Vec<String>>,
7647
7648 #[serde(rename = "ExperimentalBuild")]
7650 #[serde(skip_serializing_if = "Option::is_none")]
7651 pub experimental_build: Option<bool>,
7652
7653 #[serde(rename = "ServerVersion")]
7655 #[serde(skip_serializing_if = "Option::is_none")]
7656 pub server_version: Option<String>,
7657
7658 #[serde(rename = "Runtimes")]
7660 #[serde(skip_serializing_if = "Option::is_none")]
7661 pub runtimes: Option<HashMap<String, Runtime>>,
7662
7663 #[serde(rename = "DefaultRuntime")]
7665 #[serde(skip_serializing_if = "Option::is_none")]
7666 pub default_runtime: Option<String>,
7667
7668 #[serde(rename = "Swarm")]
7669 #[serde(skip_serializing_if = "Option::is_none")]
7670 pub swarm: Option<SwarmInfo>,
7671
7672 #[serde(rename = "LiveRestoreEnabled")]
7674 #[serde(skip_serializing_if = "Option::is_none")]
7675 pub live_restore_enabled: Option<bool>,
7676
7677 #[serde(rename = "Isolation")]
7679 #[serde(skip_serializing_if = "Option::is_none")]
7680 pub isolation: Option<SystemInfoIsolationEnum>,
7681
7682 #[serde(rename = "InitBinary")]
7684 #[serde(skip_serializing_if = "Option::is_none")]
7685 pub init_binary: Option<String>,
7686
7687 #[serde(rename = "ContainerdCommit")]
7688 #[serde(skip_serializing_if = "Option::is_none")]
7689 pub containerd_commit: Option<Commit>,
7690
7691 #[serde(rename = "RuncCommit")]
7692 #[serde(skip_serializing_if = "Option::is_none")]
7693 pub runc_commit: Option<Commit>,
7694
7695 #[serde(rename = "InitCommit")]
7696 #[serde(skip_serializing_if = "Option::is_none")]
7697 pub init_commit: Option<Commit>,
7698
7699 #[serde(rename = "SecurityOptions")]
7701 #[serde(skip_serializing_if = "Option::is_none")]
7702 pub security_options: Option<Vec<String>>,
7703
7704 #[serde(rename = "ProductLicense")]
7706 #[serde(skip_serializing_if = "Option::is_none")]
7707 pub product_license: Option<String>,
7708
7709 #[serde(rename = "DefaultAddressPools")]
7711 #[serde(skip_serializing_if = "Option::is_none")]
7712 pub default_address_pools: Option<Vec<SystemInfoDefaultAddressPools>>,
7713
7714 #[serde(rename = "Warnings")]
7716 #[serde(skip_serializing_if = "Option::is_none")]
7717 pub warnings: Option<Vec<String>>,
7718
7719 #[serde(rename = "CDISpecDirs")]
7721 #[serde(skip_serializing_if = "Option::is_none")]
7722 pub cdi_spec_dirs: Option<Vec<String>>,
7723
7724 #[serde(rename = "Containerd")]
7725 #[serde(skip_serializing_if = "Option::is_none")]
7726 pub containerd: Option<ContainerdInfo>,
7727
7728}
7729
7730#[allow(non_camel_case_types)]
7731#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
7732pub enum SystemInfoCgroupDriverEnum {
7733 #[serde(rename = "")]
7734 EMPTY,
7735 #[serde(rename = "cgroupfs")]
7736 CGROUPFS,
7737 #[serde(rename = "systemd")]
7738 SYSTEMD,
7739 #[serde(rename = "none")]
7740 NONE,
7741}
7742
7743impl ::std::fmt::Display for SystemInfoCgroupDriverEnum {
7744 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7745 match *self {
7746 SystemInfoCgroupDriverEnum::EMPTY => write!(f, ""),
7747 SystemInfoCgroupDriverEnum::CGROUPFS => write!(f, "{}", "cgroupfs"),
7748 SystemInfoCgroupDriverEnum::SYSTEMD => write!(f, "{}", "systemd"),
7749 SystemInfoCgroupDriverEnum::NONE => write!(f, "{}", "none"),
7750
7751 }
7752 }
7753}
7754
7755impl ::std::str::FromStr for SystemInfoCgroupDriverEnum {
7756 type Err = String;
7757 fn from_str(s: &str) -> Result<Self, Self::Err> {
7758 match s {
7759 "" => Ok(SystemInfoCgroupDriverEnum::EMPTY),
7760 "cgroupfs" => Ok(SystemInfoCgroupDriverEnum::CGROUPFS),
7761 "systemd" => Ok(SystemInfoCgroupDriverEnum::SYSTEMD),
7762 "none" => Ok(SystemInfoCgroupDriverEnum::NONE),
7763 x => Err(format!("Invalid enum type: {}", x)),
7764 }
7765 }
7766}
7767
7768impl ::std::convert::AsRef<str> for SystemInfoCgroupDriverEnum {
7769 fn as_ref(&self) -> &str {
7770 match self {
7771 SystemInfoCgroupDriverEnum::EMPTY => "",
7772 SystemInfoCgroupDriverEnum::CGROUPFS => "cgroupfs",
7773 SystemInfoCgroupDriverEnum::SYSTEMD => "systemd",
7774 SystemInfoCgroupDriverEnum::NONE => "none",
7775 }
7776 }
7777}
7778
7779#[allow(non_camel_case_types)]
7780#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
7781pub enum SystemInfoCgroupVersionEnum {
7782 #[serde(rename = "")]
7783 EMPTY,
7784 #[serde(rename = "1")]
7785 _1,
7786 #[serde(rename = "2")]
7787 _2,
7788}
7789
7790impl ::std::fmt::Display for SystemInfoCgroupVersionEnum {
7791 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7792 match *self {
7793 SystemInfoCgroupVersionEnum::EMPTY => write!(f, ""),
7794 SystemInfoCgroupVersionEnum::_1 => write!(f, "{}", "1"),
7795 SystemInfoCgroupVersionEnum::_2 => write!(f, "{}", "2"),
7796
7797 }
7798 }
7799}
7800
7801impl ::std::str::FromStr for SystemInfoCgroupVersionEnum {
7802 type Err = String;
7803 fn from_str(s: &str) -> Result<Self, Self::Err> {
7804 match s {
7805 "" => Ok(SystemInfoCgroupVersionEnum::EMPTY),
7806 "1" => Ok(SystemInfoCgroupVersionEnum::_1),
7807 "2" => Ok(SystemInfoCgroupVersionEnum::_2),
7808 x => Err(format!("Invalid enum type: {}", x)),
7809 }
7810 }
7811}
7812
7813impl ::std::convert::AsRef<str> for SystemInfoCgroupVersionEnum {
7814 fn as_ref(&self) -> &str {
7815 match self {
7816 SystemInfoCgroupVersionEnum::EMPTY => "",
7817 SystemInfoCgroupVersionEnum::_1 => "1",
7818 SystemInfoCgroupVersionEnum::_2 => "2",
7819 }
7820 }
7821}
7822
7823#[allow(non_camel_case_types)]
7824#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
7825pub enum SystemInfoIsolationEnum {
7826 #[serde(rename = "default")]
7827 DEFAULT,
7828 #[serde(rename = "hyperv")]
7829 HYPERV,
7830 #[serde(rename = "process")]
7831 PROCESS,
7832 #[serde(rename = "")]
7833 EMPTY,
7834}
7835
7836impl ::std::fmt::Display for SystemInfoIsolationEnum {
7837 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7838 match *self {
7839 SystemInfoIsolationEnum::DEFAULT => write!(f, "{}", "default"),
7840 SystemInfoIsolationEnum::HYPERV => write!(f, "{}", "hyperv"),
7841 SystemInfoIsolationEnum::PROCESS => write!(f, "{}", "process"),
7842 SystemInfoIsolationEnum::EMPTY => write!(f, "{}", ""),
7843
7844 }
7845 }
7846}
7847
7848impl ::std::str::FromStr for SystemInfoIsolationEnum {
7849 type Err = String;
7850 fn from_str(s: &str) -> Result<Self, Self::Err> {
7851 match s {
7852 "default" => Ok(SystemInfoIsolationEnum::DEFAULT),
7853 "hyperv" => Ok(SystemInfoIsolationEnum::HYPERV),
7854 "process" => Ok(SystemInfoIsolationEnum::PROCESS),
7855 "" => Ok(SystemInfoIsolationEnum::EMPTY),
7856 x => Err(format!("Invalid enum type: {}", x)),
7857 }
7858 }
7859}
7860
7861impl ::std::convert::AsRef<str> for SystemInfoIsolationEnum {
7862 fn as_ref(&self) -> &str {
7863 match self {
7864 SystemInfoIsolationEnum::DEFAULT => "default",
7865 SystemInfoIsolationEnum::HYPERV => "hyperv",
7866 SystemInfoIsolationEnum::PROCESS => "process",
7867 SystemInfoIsolationEnum::EMPTY => "",
7868 }
7869 }
7870}
7871
7872#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7873pub struct SystemInfoDefaultAddressPools {
7874 #[serde(rename = "Base")]
7876 #[serde(skip_serializing_if = "Option::is_none")]
7877 pub base: Option<String>,
7878
7879 #[serde(rename = "Size")]
7881 #[serde(skip_serializing_if = "Option::is_none")]
7882 pub size: Option<i64>,
7883
7884}
7885
7886#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7888pub struct SystemVersion {
7889 #[serde(rename = "Platform")]
7890 #[serde(skip_serializing_if = "Option::is_none")]
7891 pub platform: Option<SystemVersionPlatform>,
7892
7893 #[serde(rename = "Components")]
7895 #[serde(skip_serializing_if = "Option::is_none")]
7896 pub components: Option<Vec<SystemVersionComponents>>,
7897
7898 #[serde(rename = "Version")]
7900 #[serde(skip_serializing_if = "Option::is_none")]
7901 pub version: Option<String>,
7902
7903 #[serde(rename = "ApiVersion")]
7905 #[serde(skip_serializing_if = "Option::is_none")]
7906 pub api_version: Option<String>,
7907
7908 #[serde(rename = "MinAPIVersion")]
7910 #[serde(skip_serializing_if = "Option::is_none")]
7911 pub min_api_version: Option<String>,
7912
7913 #[serde(rename = "GitCommit")]
7915 #[serde(skip_serializing_if = "Option::is_none")]
7916 pub git_commit: Option<String>,
7917
7918 #[serde(rename = "GoVersion")]
7920 #[serde(skip_serializing_if = "Option::is_none")]
7921 pub go_version: Option<String>,
7922
7923 #[serde(rename = "Os")]
7925 #[serde(skip_serializing_if = "Option::is_none")]
7926 pub os: Option<String>,
7927
7928 #[serde(rename = "Arch")]
7930 #[serde(skip_serializing_if = "Option::is_none")]
7931 pub arch: Option<String>,
7932
7933 #[serde(rename = "KernelVersion")]
7935 #[serde(skip_serializing_if = "Option::is_none")]
7936 pub kernel_version: Option<String>,
7937
7938 #[serde(rename = "Experimental")]
7940 #[serde(skip_serializing_if = "Option::is_none")]
7941 pub experimental: Option<bool>,
7942
7943 #[serde(rename = "BuildTime")]
7945 #[serde(skip_serializing_if = "Option::is_none")]
7946 pub build_time: Option<String>,
7947
7948}
7949
7950#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7951pub struct SystemVersionComponents {
7952 #[serde(rename = "Name")]
7954 pub name: String,
7955
7956 #[serde(rename = "Version")]
7958 pub version: String,
7959
7960 #[serde(rename = "Details")]
7962 #[serde(skip_serializing_if = "Option::is_none")]
7963 pub details: Option<HashMap<String, String>>,
7964
7965}
7966
7967#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7968pub struct SystemVersionPlatform {
7969 #[serde(rename = "Name")]
7970 pub name: String,
7971
7972}
7973
7974#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
7975pub struct Task {
7976 #[serde(rename = "ID")]
7978 #[serde(skip_serializing_if = "Option::is_none")]
7979 pub id: Option<String>,
7980
7981 #[serde(rename = "Version")]
7982 #[serde(skip_serializing_if = "Option::is_none")]
7983 pub version: Option<ObjectVersion>,
7984
7985 #[serde(rename = "CreatedAt")]
7986 #[serde(skip_serializing_if = "Option::is_none")]
7987 #[serde(
7988 default,
7989 deserialize_with = "deserialize_timestamp",
7990 serialize_with = "serialize_timestamp"
7991 )]
7992 pub created_at: Option<BollardDate>,
7993
7994 #[serde(rename = "UpdatedAt")]
7995 #[serde(skip_serializing_if = "Option::is_none")]
7996 #[serde(
7997 default,
7998 deserialize_with = "deserialize_timestamp",
7999 serialize_with = "serialize_timestamp"
8000 )]
8001 pub updated_at: Option<BollardDate>,
8002
8003 #[serde(rename = "Name")]
8005 #[serde(skip_serializing_if = "Option::is_none")]
8006 pub name: Option<String>,
8007
8008 #[serde(rename = "Labels")]
8010 #[serde(skip_serializing_if = "Option::is_none")]
8011 pub labels: Option<HashMap<String, String>>,
8012
8013 #[serde(rename = "Spec")]
8014 #[serde(skip_serializing_if = "Option::is_none")]
8015 pub spec: Option<TaskSpec>,
8016
8017 #[serde(rename = "ServiceID")]
8019 #[serde(skip_serializing_if = "Option::is_none")]
8020 pub service_id: Option<String>,
8021
8022 #[serde(rename = "Slot")]
8023 #[serde(skip_serializing_if = "Option::is_none")]
8024 pub slot: Option<i64>,
8025
8026 #[serde(rename = "NodeID")]
8028 #[serde(skip_serializing_if = "Option::is_none")]
8029 pub node_id: Option<String>,
8030
8031 #[serde(rename = "AssignedGenericResources")]
8032 #[serde(skip_serializing_if = "Option::is_none")]
8033 pub assigned_generic_resources: Option<GenericResources>,
8034
8035 #[serde(rename = "Status")]
8036 #[serde(skip_serializing_if = "Option::is_none")]
8037 pub status: Option<TaskStatus>,
8038
8039 #[serde(rename = "DesiredState")]
8040 #[serde(skip_serializing_if = "Option::is_none")]
8041 pub desired_state: Option<TaskState>,
8042
8043 #[serde(rename = "JobIteration")]
8045 #[serde(skip_serializing_if = "Option::is_none")]
8046 pub job_iteration: Option<ObjectVersion>,
8047
8048}
8049
8050#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8052pub struct TaskSpec {
8053 #[serde(rename = "PluginSpec")]
8054 #[serde(skip_serializing_if = "Option::is_none")]
8055 pub plugin_spec: Option<TaskSpecPluginSpec>,
8056
8057 #[serde(rename = "ContainerSpec")]
8058 #[serde(skip_serializing_if = "Option::is_none")]
8059 pub container_spec: Option<TaskSpecContainerSpec>,
8060
8061 #[serde(rename = "NetworkAttachmentSpec")]
8062 #[serde(skip_serializing_if = "Option::is_none")]
8063 pub network_attachment_spec: Option<TaskSpecNetworkAttachmentSpec>,
8064
8065 #[serde(rename = "Resources")]
8066 #[serde(skip_serializing_if = "Option::is_none")]
8067 pub resources: Option<TaskSpecResources>,
8068
8069 #[serde(rename = "RestartPolicy")]
8070 #[serde(skip_serializing_if = "Option::is_none")]
8071 pub restart_policy: Option<TaskSpecRestartPolicy>,
8072
8073 #[serde(rename = "Placement")]
8074 #[serde(skip_serializing_if = "Option::is_none")]
8075 pub placement: Option<TaskSpecPlacement>,
8076
8077 #[serde(rename = "ForceUpdate")]
8079 #[serde(skip_serializing_if = "Option::is_none")]
8080 pub force_update: Option<i64>,
8081
8082 #[serde(rename = "Runtime")]
8084 #[serde(skip_serializing_if = "Option::is_none")]
8085 pub runtime: Option<String>,
8086
8087 #[serde(rename = "Networks")]
8089 #[serde(skip_serializing_if = "Option::is_none")]
8090 pub networks: Option<Vec<NetworkAttachmentConfig>>,
8091
8092 #[serde(rename = "LogDriver")]
8093 #[serde(skip_serializing_if = "Option::is_none")]
8094 pub log_driver: Option<TaskSpecLogDriver>,
8095
8096}
8097
8098#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8100pub struct TaskSpecContainerSpec {
8101 #[serde(rename = "Image")]
8103 #[serde(skip_serializing_if = "Option::is_none")]
8104 pub image: Option<String>,
8105
8106 #[serde(rename = "Labels")]
8108 #[serde(skip_serializing_if = "Option::is_none")]
8109 pub labels: Option<HashMap<String, String>>,
8110
8111 #[serde(rename = "Command")]
8113 #[serde(skip_serializing_if = "Option::is_none")]
8114 pub command: Option<Vec<String>>,
8115
8116 #[serde(rename = "Args")]
8118 #[serde(skip_serializing_if = "Option::is_none")]
8119 pub args: Option<Vec<String>>,
8120
8121 #[serde(rename = "Hostname")]
8123 #[serde(skip_serializing_if = "Option::is_none")]
8124 pub hostname: Option<String>,
8125
8126 #[serde(rename = "Env")]
8128 #[serde(skip_serializing_if = "Option::is_none")]
8129 pub env: Option<Vec<String>>,
8130
8131 #[serde(rename = "Dir")]
8133 #[serde(skip_serializing_if = "Option::is_none")]
8134 pub dir: Option<String>,
8135
8136 #[serde(rename = "User")]
8138 #[serde(skip_serializing_if = "Option::is_none")]
8139 pub user: Option<String>,
8140
8141 #[serde(rename = "Groups")]
8143 #[serde(skip_serializing_if = "Option::is_none")]
8144 pub groups: Option<Vec<String>>,
8145
8146 #[serde(rename = "Privileges")]
8147 #[serde(skip_serializing_if = "Option::is_none")]
8148 pub privileges: Option<TaskSpecContainerSpecPrivileges>,
8149
8150 #[serde(rename = "TTY")]
8152 #[serde(skip_serializing_if = "Option::is_none")]
8153 pub tty: Option<bool>,
8154
8155 #[serde(rename = "OpenStdin")]
8157 #[serde(skip_serializing_if = "Option::is_none")]
8158 pub open_stdin: Option<bool>,
8159
8160 #[serde(rename = "ReadOnly")]
8162 #[serde(skip_serializing_if = "Option::is_none")]
8163 pub read_only: Option<bool>,
8164
8165 #[serde(rename = "Mounts")]
8167 #[serde(skip_serializing_if = "Option::is_none")]
8168 pub mounts: Option<Vec<Mount>>,
8169
8170 #[serde(rename = "StopSignal")]
8172 #[serde(skip_serializing_if = "Option::is_none")]
8173 pub stop_signal: Option<String>,
8174
8175 #[serde(rename = "StopGracePeriod")]
8177 #[serde(skip_serializing_if = "Option::is_none")]
8178 pub stop_grace_period: Option<i64>,
8179
8180 #[serde(rename = "HealthCheck")]
8181 #[serde(skip_serializing_if = "Option::is_none")]
8182 pub health_check: Option<HealthConfig>,
8183
8184 #[serde(rename = "Hosts")]
8186 #[serde(skip_serializing_if = "Option::is_none")]
8187 pub hosts: Option<Vec<String>>,
8188
8189 #[serde(rename = "DNSConfig")]
8190 #[serde(skip_serializing_if = "Option::is_none")]
8191 pub dns_config: Option<TaskSpecContainerSpecDnsConfig>,
8192
8193 #[serde(rename = "Secrets")]
8195 #[serde(skip_serializing_if = "Option::is_none")]
8196 pub secrets: Option<Vec<TaskSpecContainerSpecSecrets>>,
8197
8198 #[serde(rename = "OomScoreAdj")]
8200 #[serde(skip_serializing_if = "Option::is_none")]
8201 pub oom_score_adj: Option<i64>,
8202
8203 #[serde(rename = "Configs")]
8205 #[serde(skip_serializing_if = "Option::is_none")]
8206 pub configs: Option<Vec<TaskSpecContainerSpecConfigs>>,
8207
8208 #[serde(rename = "Isolation")]
8210 #[serde(skip_serializing_if = "Option::is_none")]
8211 pub isolation: Option<TaskSpecContainerSpecIsolationEnum>,
8212
8213 #[serde(rename = "Init")]
8215 #[serde(skip_serializing_if = "Option::is_none")]
8216 pub init: Option<bool>,
8217
8218 #[serde(rename = "Sysctls")]
8220 #[serde(skip_serializing_if = "Option::is_none")]
8221 pub sysctls: Option<HashMap<String, String>>,
8222
8223 #[serde(rename = "CapabilityAdd")]
8225 #[serde(skip_serializing_if = "Option::is_none")]
8226 pub capability_add: Option<Vec<String>>,
8227
8228 #[serde(rename = "CapabilityDrop")]
8230 #[serde(skip_serializing_if = "Option::is_none")]
8231 pub capability_drop: Option<Vec<String>>,
8232
8233 #[serde(rename = "Ulimits")]
8235 #[serde(skip_serializing_if = "Option::is_none")]
8236 pub ulimits: Option<Vec<ResourcesUlimits>>,
8237
8238}
8239
8240#[allow(non_camel_case_types)]
8241#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
8242pub enum TaskSpecContainerSpecIsolationEnum {
8243 #[serde(rename = "default")]
8244 DEFAULT,
8245 #[serde(rename = "process")]
8246 PROCESS,
8247 #[serde(rename = "hyperv")]
8248 HYPERV,
8249 #[serde(rename = "")]
8250 EMPTY,
8251}
8252
8253impl ::std::fmt::Display for TaskSpecContainerSpecIsolationEnum {
8254 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8255 match *self {
8256 TaskSpecContainerSpecIsolationEnum::DEFAULT => write!(f, "{}", "default"),
8257 TaskSpecContainerSpecIsolationEnum::PROCESS => write!(f, "{}", "process"),
8258 TaskSpecContainerSpecIsolationEnum::HYPERV => write!(f, "{}", "hyperv"),
8259 TaskSpecContainerSpecIsolationEnum::EMPTY => write!(f, "{}", ""),
8260
8261 }
8262 }
8263}
8264
8265impl ::std::str::FromStr for TaskSpecContainerSpecIsolationEnum {
8266 type Err = String;
8267 fn from_str(s: &str) -> Result<Self, Self::Err> {
8268 match s {
8269 "default" => Ok(TaskSpecContainerSpecIsolationEnum::DEFAULT),
8270 "process" => Ok(TaskSpecContainerSpecIsolationEnum::PROCESS),
8271 "hyperv" => Ok(TaskSpecContainerSpecIsolationEnum::HYPERV),
8272 "" => Ok(TaskSpecContainerSpecIsolationEnum::EMPTY),
8273 x => Err(format!("Invalid enum type: {}", x)),
8274 }
8275 }
8276}
8277
8278impl ::std::convert::AsRef<str> for TaskSpecContainerSpecIsolationEnum {
8279 fn as_ref(&self) -> &str {
8280 match self {
8281 TaskSpecContainerSpecIsolationEnum::DEFAULT => "default",
8282 TaskSpecContainerSpecIsolationEnum::PROCESS => "process",
8283 TaskSpecContainerSpecIsolationEnum::HYPERV => "hyperv",
8284 TaskSpecContainerSpecIsolationEnum::EMPTY => "",
8285 }
8286 }
8287}
8288
8289#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8290pub struct TaskSpecContainerSpecConfigs {
8291 #[serde(rename = "File")]
8292 #[serde(skip_serializing_if = "Option::is_none")]
8293 pub file: Option<TaskSpecContainerSpecFile1>,
8294
8295 #[serde(rename = "Runtime")]
8297 #[serde(skip_serializing_if = "Option::is_none")]
8298 pub runtime: Option<HashMap<(), ()>>,
8299
8300 #[serde(rename = "ConfigID")]
8302 #[serde(skip_serializing_if = "Option::is_none")]
8303 pub config_id: Option<String>,
8304
8305 #[serde(rename = "ConfigName")]
8307 #[serde(skip_serializing_if = "Option::is_none")]
8308 pub config_name: Option<String>,
8309
8310}
8311
8312#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8314pub struct TaskSpecContainerSpecDnsConfig {
8315 #[serde(rename = "Nameservers")]
8317 #[serde(skip_serializing_if = "Option::is_none")]
8318 pub nameservers: Option<Vec<String>>,
8319
8320 #[serde(rename = "Search")]
8322 #[serde(skip_serializing_if = "Option::is_none")]
8323 pub search: Option<Vec<String>>,
8324
8325 #[serde(rename = "Options")]
8327 #[serde(skip_serializing_if = "Option::is_none")]
8328 pub options: Option<Vec<String>>,
8329
8330}
8331
8332#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8334pub struct TaskSpecContainerSpecFile {
8335 #[serde(rename = "Name")]
8337 #[serde(skip_serializing_if = "Option::is_none")]
8338 pub name: Option<String>,
8339
8340 #[serde(rename = "UID")]
8342 #[serde(skip_serializing_if = "Option::is_none")]
8343 pub uid: Option<String>,
8344
8345 #[serde(rename = "GID")]
8347 #[serde(skip_serializing_if = "Option::is_none")]
8348 pub gid: Option<String>,
8349
8350 #[serde(rename = "Mode")]
8352 #[serde(skip_serializing_if = "Option::is_none")]
8353 pub mode: Option<u32>,
8354
8355}
8356
8357#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8359pub struct TaskSpecContainerSpecFile1 {
8360 #[serde(rename = "Name")]
8362 #[serde(skip_serializing_if = "Option::is_none")]
8363 pub name: Option<String>,
8364
8365 #[serde(rename = "UID")]
8367 #[serde(skip_serializing_if = "Option::is_none")]
8368 pub uid: Option<String>,
8369
8370 #[serde(rename = "GID")]
8372 #[serde(skip_serializing_if = "Option::is_none")]
8373 pub gid: Option<String>,
8374
8375 #[serde(rename = "Mode")]
8377 #[serde(skip_serializing_if = "Option::is_none")]
8378 pub mode: Option<u32>,
8379
8380}
8381
8382#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8384pub struct TaskSpecContainerSpecPrivileges {
8385 #[serde(rename = "CredentialSpec")]
8386 #[serde(skip_serializing_if = "Option::is_none")]
8387 pub credential_spec: Option<TaskSpecContainerSpecPrivilegesCredentialSpec>,
8388
8389 #[serde(rename = "SELinuxContext")]
8390 #[serde(skip_serializing_if = "Option::is_none")]
8391 pub se_linux_context: Option<TaskSpecContainerSpecPrivilegesSeLinuxContext>,
8392
8393 #[serde(rename = "Seccomp")]
8394 #[serde(skip_serializing_if = "Option::is_none")]
8395 pub seccomp: Option<TaskSpecContainerSpecPrivilegesSeccomp>,
8396
8397 #[serde(rename = "AppArmor")]
8398 #[serde(skip_serializing_if = "Option::is_none")]
8399 pub app_armor: Option<TaskSpecContainerSpecPrivilegesAppArmor>,
8400
8401 #[serde(rename = "NoNewPrivileges")]
8403 #[serde(skip_serializing_if = "Option::is_none")]
8404 pub no_new_privileges: Option<bool>,
8405
8406}
8407
8408#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8410pub struct TaskSpecContainerSpecPrivilegesAppArmor {
8411 #[serde(rename = "Mode")]
8412 #[serde(skip_serializing_if = "Option::is_none")]
8413 pub mode: Option<TaskSpecContainerSpecPrivilegesAppArmorModeEnum>,
8414
8415}
8416
8417#[allow(non_camel_case_types)]
8418#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
8419pub enum TaskSpecContainerSpecPrivilegesAppArmorModeEnum {
8420 #[serde(rename = "")]
8421 EMPTY,
8422 #[serde(rename = "default")]
8423 DEFAULT,
8424 #[serde(rename = "disabled")]
8425 DISABLED,
8426}
8427
8428impl ::std::fmt::Display for TaskSpecContainerSpecPrivilegesAppArmorModeEnum {
8429 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8430 match *self {
8431 TaskSpecContainerSpecPrivilegesAppArmorModeEnum::EMPTY => write!(f, ""),
8432 TaskSpecContainerSpecPrivilegesAppArmorModeEnum::DEFAULT => write!(f, "{}", "default"),
8433 TaskSpecContainerSpecPrivilegesAppArmorModeEnum::DISABLED => write!(f, "{}", "disabled"),
8434
8435 }
8436 }
8437}
8438
8439impl ::std::str::FromStr for TaskSpecContainerSpecPrivilegesAppArmorModeEnum {
8440 type Err = String;
8441 fn from_str(s: &str) -> Result<Self, Self::Err> {
8442 match s {
8443 "" => Ok(TaskSpecContainerSpecPrivilegesAppArmorModeEnum::EMPTY),
8444 "default" => Ok(TaskSpecContainerSpecPrivilegesAppArmorModeEnum::DEFAULT),
8445 "disabled" => Ok(TaskSpecContainerSpecPrivilegesAppArmorModeEnum::DISABLED),
8446 x => Err(format!("Invalid enum type: {}", x)),
8447 }
8448 }
8449}
8450
8451impl ::std::convert::AsRef<str> for TaskSpecContainerSpecPrivilegesAppArmorModeEnum {
8452 fn as_ref(&self) -> &str {
8453 match self {
8454 TaskSpecContainerSpecPrivilegesAppArmorModeEnum::EMPTY => "",
8455 TaskSpecContainerSpecPrivilegesAppArmorModeEnum::DEFAULT => "default",
8456 TaskSpecContainerSpecPrivilegesAppArmorModeEnum::DISABLED => "disabled",
8457 }
8458 }
8459}
8460
8461#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8463pub struct TaskSpecContainerSpecPrivilegesCredentialSpec {
8464 #[serde(rename = "Config")]
8466 #[serde(skip_serializing_if = "Option::is_none")]
8467 pub config: Option<String>,
8468
8469 #[serde(rename = "File")]
8471 #[serde(skip_serializing_if = "Option::is_none")]
8472 pub file: Option<String>,
8473
8474 #[serde(rename = "Registry")]
8476 #[serde(skip_serializing_if = "Option::is_none")]
8477 pub registry: Option<String>,
8478
8479}
8480
8481#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8483pub struct TaskSpecContainerSpecPrivilegesSeLinuxContext {
8484 #[serde(rename = "Disable")]
8486 #[serde(skip_serializing_if = "Option::is_none")]
8487 pub disable: Option<bool>,
8488
8489 #[serde(rename = "User")]
8491 #[serde(skip_serializing_if = "Option::is_none")]
8492 pub user: Option<String>,
8493
8494 #[serde(rename = "Role")]
8496 #[serde(skip_serializing_if = "Option::is_none")]
8497 pub role: Option<String>,
8498
8499 #[serde(rename = "Type")]
8501 #[serde(skip_serializing_if = "Option::is_none")]
8502 pub typ: Option<String>,
8503
8504 #[serde(rename = "Level")]
8506 #[serde(skip_serializing_if = "Option::is_none")]
8507 pub level: Option<String>,
8508
8509}
8510
8511#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8513pub struct TaskSpecContainerSpecPrivilegesSeccomp {
8514 #[serde(rename = "Mode")]
8515 #[serde(skip_serializing_if = "Option::is_none")]
8516 pub mode: Option<TaskSpecContainerSpecPrivilegesSeccompModeEnum>,
8517
8518 #[serde(rename = "Profile")]
8520 #[serde(skip_serializing_if = "Option::is_none")]
8521 pub profile: Option<String>,
8522
8523}
8524
8525#[allow(non_camel_case_types)]
8526#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
8527pub enum TaskSpecContainerSpecPrivilegesSeccompModeEnum {
8528 #[serde(rename = "")]
8529 EMPTY,
8530 #[serde(rename = "default")]
8531 DEFAULT,
8532 #[serde(rename = "unconfined")]
8533 UNCONFINED,
8534 #[serde(rename = "custom")]
8535 CUSTOM,
8536}
8537
8538impl ::std::fmt::Display for TaskSpecContainerSpecPrivilegesSeccompModeEnum {
8539 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8540 match *self {
8541 TaskSpecContainerSpecPrivilegesSeccompModeEnum::EMPTY => write!(f, ""),
8542 TaskSpecContainerSpecPrivilegesSeccompModeEnum::DEFAULT => write!(f, "{}", "default"),
8543 TaskSpecContainerSpecPrivilegesSeccompModeEnum::UNCONFINED => write!(f, "{}", "unconfined"),
8544 TaskSpecContainerSpecPrivilegesSeccompModeEnum::CUSTOM => write!(f, "{}", "custom"),
8545
8546 }
8547 }
8548}
8549
8550impl ::std::str::FromStr for TaskSpecContainerSpecPrivilegesSeccompModeEnum {
8551 type Err = String;
8552 fn from_str(s: &str) -> Result<Self, Self::Err> {
8553 match s {
8554 "" => Ok(TaskSpecContainerSpecPrivilegesSeccompModeEnum::EMPTY),
8555 "default" => Ok(TaskSpecContainerSpecPrivilegesSeccompModeEnum::DEFAULT),
8556 "unconfined" => Ok(TaskSpecContainerSpecPrivilegesSeccompModeEnum::UNCONFINED),
8557 "custom" => Ok(TaskSpecContainerSpecPrivilegesSeccompModeEnum::CUSTOM),
8558 x => Err(format!("Invalid enum type: {}", x)),
8559 }
8560 }
8561}
8562
8563impl ::std::convert::AsRef<str> for TaskSpecContainerSpecPrivilegesSeccompModeEnum {
8564 fn as_ref(&self) -> &str {
8565 match self {
8566 TaskSpecContainerSpecPrivilegesSeccompModeEnum::EMPTY => "",
8567 TaskSpecContainerSpecPrivilegesSeccompModeEnum::DEFAULT => "default",
8568 TaskSpecContainerSpecPrivilegesSeccompModeEnum::UNCONFINED => "unconfined",
8569 TaskSpecContainerSpecPrivilegesSeccompModeEnum::CUSTOM => "custom",
8570 }
8571 }
8572}
8573
8574#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8575pub struct TaskSpecContainerSpecSecrets {
8576 #[serde(rename = "File")]
8577 #[serde(skip_serializing_if = "Option::is_none")]
8578 pub file: Option<TaskSpecContainerSpecFile>,
8579
8580 #[serde(rename = "SecretID")]
8582 #[serde(skip_serializing_if = "Option::is_none")]
8583 pub secret_id: Option<String>,
8584
8585 #[serde(rename = "SecretName")]
8587 #[serde(skip_serializing_if = "Option::is_none")]
8588 pub secret_name: Option<String>,
8589
8590}
8591
8592#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8594pub struct TaskSpecLogDriver {
8595 #[serde(rename = "Name")]
8596 #[serde(skip_serializing_if = "Option::is_none")]
8597 pub name: Option<String>,
8598
8599 #[serde(rename = "Options")]
8600 #[serde(skip_serializing_if = "Option::is_none")]
8601 pub options: Option<HashMap<String, String>>,
8602
8603}
8604
8605#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8607pub struct TaskSpecNetworkAttachmentSpec {
8608 #[serde(rename = "ContainerID")]
8610 #[serde(skip_serializing_if = "Option::is_none")]
8611 pub container_id: Option<String>,
8612
8613}
8614
8615#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8616pub struct TaskSpecPlacement {
8617 #[serde(rename = "Constraints")]
8619 #[serde(skip_serializing_if = "Option::is_none")]
8620 pub constraints: Option<Vec<String>>,
8621
8622 #[serde(rename = "Preferences")]
8624 #[serde(skip_serializing_if = "Option::is_none")]
8625 pub preferences: Option<Vec<TaskSpecPlacementPreferences>>,
8626
8627 #[serde(rename = "MaxReplicas")]
8629 #[serde(skip_serializing_if = "Option::is_none")]
8630 pub max_replicas: Option<i64>,
8631
8632 #[serde(rename = "Platforms")]
8634 #[serde(skip_serializing_if = "Option::is_none")]
8635 pub platforms: Option<Vec<Platform>>,
8636
8637}
8638
8639#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8640pub struct TaskSpecPlacementPreferences {
8641 #[serde(rename = "Spread")]
8642 #[serde(skip_serializing_if = "Option::is_none")]
8643 pub spread: Option<TaskSpecPlacementSpread>,
8644
8645}
8646
8647#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8648pub struct TaskSpecPlacementSpread {
8649 #[serde(rename = "SpreadDescriptor")]
8651 #[serde(skip_serializing_if = "Option::is_none")]
8652 pub spread_descriptor: Option<String>,
8653
8654}
8655
8656#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8658pub struct TaskSpecPluginSpec {
8659 #[serde(rename = "Name")]
8661 #[serde(skip_serializing_if = "Option::is_none")]
8662 pub name: Option<String>,
8663
8664 #[serde(rename = "Remote")]
8666 #[serde(skip_serializing_if = "Option::is_none")]
8667 pub remote: Option<String>,
8668
8669 #[serde(rename = "Disabled")]
8671 #[serde(skip_serializing_if = "Option::is_none")]
8672 pub disabled: Option<bool>,
8673
8674 #[serde(rename = "PluginPrivilege")]
8675 #[serde(skip_serializing_if = "Option::is_none")]
8676 pub plugin_privilege: Option<Vec<PluginPrivilege>>,
8677
8678}
8679
8680#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8682pub struct TaskSpecResources {
8683 #[serde(rename = "Limits")]
8685 #[serde(skip_serializing_if = "Option::is_none")]
8686 pub limits: Option<Limit>,
8687
8688 #[serde(rename = "Reservations")]
8690 #[serde(skip_serializing_if = "Option::is_none")]
8691 pub reservations: Option<ResourceObject>,
8692
8693}
8694
8695#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8697pub struct TaskSpecRestartPolicy {
8698 #[serde(rename = "Condition")]
8700 #[serde(skip_serializing_if = "Option::is_none")]
8701 pub condition: Option<TaskSpecRestartPolicyConditionEnum>,
8702
8703 #[serde(rename = "Delay")]
8705 #[serde(skip_serializing_if = "Option::is_none")]
8706 pub delay: Option<i64>,
8707
8708 #[serde(rename = "MaxAttempts")]
8710 #[serde(skip_serializing_if = "Option::is_none")]
8711 pub max_attempts: Option<i64>,
8712
8713 #[serde(rename = "Window")]
8715 #[serde(skip_serializing_if = "Option::is_none")]
8716 pub window: Option<i64>,
8717
8718}
8719
8720#[allow(non_camel_case_types)]
8721#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
8722pub enum TaskSpecRestartPolicyConditionEnum {
8723 #[serde(rename = "")]
8724 EMPTY,
8725 #[serde(rename = "none")]
8726 NONE,
8727 #[serde(rename = "on-failure")]
8728 ON_FAILURE,
8729 #[serde(rename = "any")]
8730 ANY,
8731}
8732
8733impl ::std::fmt::Display for TaskSpecRestartPolicyConditionEnum {
8734 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8735 match *self {
8736 TaskSpecRestartPolicyConditionEnum::EMPTY => write!(f, ""),
8737 TaskSpecRestartPolicyConditionEnum::NONE => write!(f, "{}", "none"),
8738 TaskSpecRestartPolicyConditionEnum::ON_FAILURE => write!(f, "{}", "on-failure"),
8739 TaskSpecRestartPolicyConditionEnum::ANY => write!(f, "{}", "any"),
8740
8741 }
8742 }
8743}
8744
8745impl ::std::str::FromStr for TaskSpecRestartPolicyConditionEnum {
8746 type Err = String;
8747 fn from_str(s: &str) -> Result<Self, Self::Err> {
8748 match s {
8749 "" => Ok(TaskSpecRestartPolicyConditionEnum::EMPTY),
8750 "none" => Ok(TaskSpecRestartPolicyConditionEnum::NONE),
8751 "on-failure" => Ok(TaskSpecRestartPolicyConditionEnum::ON_FAILURE),
8752 "any" => Ok(TaskSpecRestartPolicyConditionEnum::ANY),
8753 x => Err(format!("Invalid enum type: {}", x)),
8754 }
8755 }
8756}
8757
8758impl ::std::convert::AsRef<str> for TaskSpecRestartPolicyConditionEnum {
8759 fn as_ref(&self) -> &str {
8760 match self {
8761 TaskSpecRestartPolicyConditionEnum::EMPTY => "",
8762 TaskSpecRestartPolicyConditionEnum::NONE => "none",
8763 TaskSpecRestartPolicyConditionEnum::ON_FAILURE => "on-failure",
8764 TaskSpecRestartPolicyConditionEnum::ANY => "any",
8765 }
8766 }
8767}
8768
8769#[allow(non_camel_case_types)]
8773#[repr(C)]
8774#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
8775pub enum TaskState {
8776 #[serde(rename = "new")]
8777 NEW,
8778 #[serde(rename = "allocated")]
8779 ALLOCATED,
8780 #[serde(rename = "pending")]
8781 PENDING,
8782 #[serde(rename = "assigned")]
8783 ASSIGNED,
8784 #[serde(rename = "accepted")]
8785 ACCEPTED,
8786 #[serde(rename = "preparing")]
8787 PREPARING,
8788 #[serde(rename = "ready")]
8789 READY,
8790 #[serde(rename = "starting")]
8791 STARTING,
8792 #[serde(rename = "running")]
8793 RUNNING,
8794 #[serde(rename = "complete")]
8795 COMPLETE,
8796 #[serde(rename = "shutdown")]
8797 SHUTDOWN,
8798 #[serde(rename = "failed")]
8799 FAILED,
8800 #[serde(rename = "rejected")]
8801 REJECTED,
8802 #[serde(rename = "remove")]
8803 REMOVE,
8804 #[serde(rename = "orphaned")]
8805 ORPHANED,
8806}
8807
8808impl ::std::fmt::Display for TaskState {
8809 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8810 match *self {
8811 TaskState::NEW => write!(f, "{}", "new"),
8812 TaskState::ALLOCATED => write!(f, "{}", "allocated"),
8813 TaskState::PENDING => write!(f, "{}", "pending"),
8814 TaskState::ASSIGNED => write!(f, "{}", "assigned"),
8815 TaskState::ACCEPTED => write!(f, "{}", "accepted"),
8816 TaskState::PREPARING => write!(f, "{}", "preparing"),
8817 TaskState::READY => write!(f, "{}", "ready"),
8818 TaskState::STARTING => write!(f, "{}", "starting"),
8819 TaskState::RUNNING => write!(f, "{}", "running"),
8820 TaskState::COMPLETE => write!(f, "{}", "complete"),
8821 TaskState::SHUTDOWN => write!(f, "{}", "shutdown"),
8822 TaskState::FAILED => write!(f, "{}", "failed"),
8823 TaskState::REJECTED => write!(f, "{}", "rejected"),
8824 TaskState::REMOVE => write!(f, "{}", "remove"),
8825 TaskState::ORPHANED => write!(f, "{}", "orphaned"),
8826 }
8827 }
8828}
8829
8830impl ::std::str::FromStr for TaskState {
8831 type Err = ();
8832 fn from_str(s: &str) -> Result<Self, Self::Err> {
8833 match s {
8834 "new" => Ok(TaskState::NEW),
8835 "allocated" => Ok(TaskState::ALLOCATED),
8836 "pending" => Ok(TaskState::PENDING),
8837 "assigned" => Ok(TaskState::ASSIGNED),
8838 "accepted" => Ok(TaskState::ACCEPTED),
8839 "preparing" => Ok(TaskState::PREPARING),
8840 "ready" => Ok(TaskState::READY),
8841 "starting" => Ok(TaskState::STARTING),
8842 "running" => Ok(TaskState::RUNNING),
8843 "complete" => Ok(TaskState::COMPLETE),
8844 "shutdown" => Ok(TaskState::SHUTDOWN),
8845 "failed" => Ok(TaskState::FAILED),
8846 "rejected" => Ok(TaskState::REJECTED),
8847 "remove" => Ok(TaskState::REMOVE),
8848 "orphaned" => Ok(TaskState::ORPHANED),
8849 _ => Err(()),
8850 }
8851 }
8852}
8853
8854impl std::default::Default for TaskState {
8855 fn default() -> Self {
8856 TaskState::NEW
8857 }
8858}
8859
8860#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8862pub struct TaskStatus {
8863 #[serde(rename = "Timestamp")]
8864 #[serde(skip_serializing_if = "Option::is_none")]
8865 #[serde(
8866 default,
8867 deserialize_with = "deserialize_timestamp",
8868 serialize_with = "serialize_timestamp"
8869 )]
8870 pub timestamp: Option<BollardDate>,
8871
8872 #[serde(rename = "State")]
8873 #[serde(skip_serializing_if = "Option::is_none")]
8874 pub state: Option<TaskState>,
8875
8876 #[serde(rename = "Message")]
8877 #[serde(skip_serializing_if = "Option::is_none")]
8878 pub message: Option<String>,
8879
8880 #[serde(rename = "Err")]
8881 #[serde(skip_serializing_if = "Option::is_none")]
8882 pub err: Option<String>,
8883
8884 #[serde(rename = "ContainerStatus")]
8885 #[serde(skip_serializing_if = "Option::is_none")]
8886 pub container_status: Option<ContainerStatus>,
8887
8888 #[serde(rename = "PortStatus")]
8889 #[serde(skip_serializing_if = "Option::is_none")]
8890 pub port_status: Option<PortStatus>,
8891
8892}
8893
8894#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8895pub struct ThrottleDevice {
8896 #[serde(rename = "Path")]
8898 #[serde(skip_serializing_if = "Option::is_none")]
8899 pub path: Option<String>,
8900
8901 #[serde(rename = "Rate")]
8903 #[serde(skip_serializing_if = "Option::is_none")]
8904 pub rate: Option<i64>,
8905
8906}
8907
8908#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8910pub struct TlsInfo {
8911 #[serde(rename = "TrustRoot")]
8913 #[serde(skip_serializing_if = "Option::is_none")]
8914 pub trust_root: Option<String>,
8915
8916 #[serde(rename = "CertIssuerSubject")]
8918 #[serde(skip_serializing_if = "Option::is_none")]
8919 pub cert_issuer_subject: Option<String>,
8920
8921 #[serde(rename = "CertIssuerPublicKey")]
8923 #[serde(skip_serializing_if = "Option::is_none")]
8924 pub cert_issuer_public_key: Option<String>,
8925
8926}
8927
8928pub type Topology = HashMap<String, Option<Vec<PortBinding>>>;
8931
8932#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8933pub struct UnlockKeyResponse {
8934 #[serde(rename = "UnlockKey")]
8936 #[serde(skip_serializing_if = "Option::is_none")]
8937 pub unlock_key: Option<String>,
8938
8939}
8940
8941#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
8942pub struct Volume {
8943 #[serde(rename = "Name")]
8945 pub name: String,
8946
8947 #[serde(rename = "Driver")]
8949 pub driver: String,
8950
8951 #[serde(rename = "Mountpoint")]
8953 pub mountpoint: String,
8954
8955 #[serde(rename = "CreatedAt")]
8957 #[serde(skip_serializing_if = "Option::is_none")]
8958 #[serde(
8959 default,
8960 deserialize_with = "deserialize_timestamp",
8961 serialize_with = "serialize_timestamp"
8962 )]
8963 pub created_at: Option<BollardDate>,
8964
8965 #[serde(rename = "Status")]
8967 #[serde(skip_serializing_if = "Option::is_none")]
8968 pub status: Option<HashMap<String, HashMap<(), ()>>>,
8969
8970 #[serde(rename = "Labels")]
8972 #[serde(deserialize_with = "deserialize_nonoptional_map")]
8973 pub labels: HashMap<String, String>,
8974
8975 #[serde(rename = "Scope")]
8977 #[serde(skip_serializing_if = "Option::is_none")]
8978 #[serde(with = "::serde_with::As::<::serde_with::NoneAsEmptyString>")]
8979 pub scope: Option<VolumeScopeEnum>,
8980
8981 #[serde(rename = "ClusterVolume")]
8982 #[serde(skip_serializing_if = "Option::is_none")]
8983 pub cluster_volume: Option<ClusterVolume>,
8984
8985 #[serde(rename = "Options")]
8987 #[serde(deserialize_with = "deserialize_nonoptional_map")]
8988 pub options: HashMap<String, String>,
8989
8990 #[serde(rename = "UsageData")]
8991 #[serde(skip_serializing_if = "Option::is_none")]
8992 pub usage_data: Option<VolumeUsageData>,
8993
8994}
8995
8996#[allow(non_camel_case_types)]
8997#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Serialize, Deserialize, Eq, Ord)]
8998pub enum VolumeScopeEnum {
8999 #[serde(rename = "")]
9000 EMPTY,
9001 #[serde(rename = "local")]
9002 LOCAL,
9003 #[serde(rename = "global")]
9004 GLOBAL,
9005}
9006
9007impl ::std::fmt::Display for VolumeScopeEnum {
9008 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
9009 match *self {
9010 VolumeScopeEnum::EMPTY => write!(f, ""),
9011 VolumeScopeEnum::LOCAL => write!(f, "{}", "local"),
9012 VolumeScopeEnum::GLOBAL => write!(f, "{}", "global"),
9013
9014 }
9015 }
9016}
9017
9018impl ::std::str::FromStr for VolumeScopeEnum {
9019 type Err = String;
9020 fn from_str(s: &str) -> Result<Self, Self::Err> {
9021 match s {
9022 "" => Ok(VolumeScopeEnum::EMPTY),
9023 "local" => Ok(VolumeScopeEnum::LOCAL),
9024 "global" => Ok(VolumeScopeEnum::GLOBAL),
9025 x => Err(format!("Invalid enum type: {}", x)),
9026 }
9027 }
9028}
9029
9030impl ::std::convert::AsRef<str> for VolumeScopeEnum {
9031 fn as_ref(&self) -> &str {
9032 match self {
9033 VolumeScopeEnum::EMPTY => "",
9034 VolumeScopeEnum::LOCAL => "local",
9035 VolumeScopeEnum::GLOBAL => "global",
9036 }
9037 }
9038}
9039
9040#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
9042pub struct VolumeCreateOptions {
9043 #[serde(rename = "Name")]
9045 #[serde(skip_serializing_if = "Option::is_none")]
9046 pub name: Option<String>,
9047
9048 #[serde(rename = "Driver")]
9050 #[serde(skip_serializing_if = "Option::is_none")]
9051 pub driver: Option<String>,
9052
9053 #[serde(rename = "DriverOpts")]
9055 #[serde(skip_serializing_if = "Option::is_none")]
9056 pub driver_opts: Option<HashMap<String, String>>,
9057
9058 #[serde(rename = "Labels")]
9060 #[serde(skip_serializing_if = "Option::is_none")]
9061 pub labels: Option<HashMap<String, String>>,
9062
9063 #[serde(rename = "ClusterVolumeSpec")]
9064 #[serde(skip_serializing_if = "Option::is_none")]
9065 pub cluster_volume_spec: Option<ClusterVolumeSpec>,
9066
9067}
9068
9069#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
9071pub struct VolumeListResponse {
9072 #[serde(rename = "Volumes")]
9074 #[serde(skip_serializing_if = "Option::is_none")]
9075 pub volumes: Option<Vec<Volume>>,
9076
9077 #[serde(rename = "Warnings")]
9079 #[serde(skip_serializing_if = "Option::is_none")]
9080 pub warnings: Option<Vec<String>>,
9081
9082}
9083
9084#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
9085pub struct VolumePruneResponse {
9086 #[serde(rename = "VolumesDeleted")]
9088 #[serde(skip_serializing_if = "Option::is_none")]
9089 pub volumes_deleted: Option<Vec<String>>,
9090
9091 #[serde(rename = "SpaceReclaimed")]
9093 #[serde(skip_serializing_if = "Option::is_none")]
9094 pub space_reclaimed: Option<i64>,
9095
9096}
9097
9098#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
9100pub struct VolumeUsageData {
9101 #[serde(rename = "Size")]
9103 pub size: i64,
9104
9105 #[serde(rename = "RefCount")]
9107 pub ref_count: i64,
9108
9109}