rolling_deployer/
types.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Serialize, Deserialize)]
5pub struct Image {
6 #[serde(rename = "Containers")]
7 pub containers: i64,
8 #[serde(rename = "Created")]
9 pub created: i64,
10 #[serde(rename = "Id")]
11 pub id: String,
12 #[serde(rename = "Labels")]
13 pub labels: Option<HashMap<String, String>>,
14 #[serde(rename = "ParentId")]
15 pub parent_id: String,
16 #[serde(rename = "RepoDigests")]
17 pub repo_digests: Vec<String>,
18 #[serde(rename = "RepoTags")]
19 pub repo_tags: Vec<String>,
20 #[serde(rename = "SharedSize")]
21 pub shared_size: i64,
22 #[serde(rename = "Size")]
23 pub size: i64,
24}
25
26#[derive(Debug, Serialize, Deserialize)]
27pub struct Container {
28 #[serde(rename = "Id")]
29 pub id: String,
30 #[serde(rename = "Names")]
31 pub names: Vec<String>,
32 #[serde(rename = "Image")]
33 pub image: String,
34 #[serde(rename = "ImageID")]
35 pub image_id: String,
36 #[serde(rename = "Command")]
37 pub command: String,
38 #[serde(rename = "Created")]
39 pub created: i64,
40 #[serde(rename = "Ports")]
41 pub ports: Vec<Port>,
42 #[serde(rename = "Labels")]
43 pub labels: Option<HashMap<String, String>>,
44 #[serde(rename = "State")]
45 pub state: String,
46 #[serde(rename = "Status")]
47 pub status: String,
48 #[serde(rename = "HostConfig")]
49 pub host_config: HostConfig,
50 #[serde(rename = "NetworkSettings")]
51 pub network_settings: NetworkSettings,
52 #[serde(rename = "Mounts")]
53 pub mounts: Vec<Mount>,
54}
55
56#[derive(Debug, Serialize, Deserialize)]
57pub struct Port {
58 #[serde(rename = "IP")]
59 pub ip: Option<String>,
60 #[serde(rename = "PrivatePort")]
61 pub private_port: u16,
62 #[serde(rename = "PublicPort")]
63 pub public_port: Option<u16>,
64 #[serde(rename = "Type")]
65 pub port_type: String,
66}
67
68#[derive(Debug, Serialize, Deserialize)]
69pub struct HostConfig {
70 #[serde(rename = "NetworkMode")]
71 pub network_mode: String,
72}
73
74#[derive(Debug, Serialize, Deserialize)]
75pub struct NetworkSettings {
76 #[serde(rename = "Networks")]
77 pub networks: HashMap<String, Network>,
78}
79
80#[derive(Debug, Serialize, Deserialize)]
81pub struct Network {
82 #[serde(rename = "IPAMConfig")]
83 pub ipam_config: Option<serde_json::Value>,
84 #[serde(rename = "Links")]
85 pub links: Option<Vec<String>>,
86 #[serde(rename = "Aliases")]
87 pub aliases: Option<Vec<String>>,
88 #[serde(rename = "NetworkID")]
89 pub network_id: String,
90 #[serde(rename = "EndpointID")]
91 pub endpoint_id: String,
92 #[serde(rename = "Gateway")]
93 pub gateway: String,
94 #[serde(rename = "IPAddress")]
95 pub ip_address: String,
96 #[serde(rename = "IPPrefixLen")]
97 pub ip_prefix_len: u8,
98 #[serde(rename = "IPv6Gateway")]
99 pub ipv6_gateway: String,
100 #[serde(rename = "GlobalIPv6Address")]
101 pub global_ipv6_address: String,
102 #[serde(rename = "GlobalIPv6PrefixLen")]
103 pub global_ipv6_prefix_len: u8,
104 #[serde(rename = "MacAddress")]
105 pub mac_address: String,
106 #[serde(rename = "DriverOpts")]
107 pub driver_opts: Option<HashMap<String, String>>,
108}
109
110#[derive(Debug, Serialize, Deserialize)]
111pub struct Mount {
112 #[serde(rename = "Destination", alias = "Target", alias = "target")]
113 pub target: String,
114 #[serde(rename = "Source", alias = "Source", alias = "source")]
115 pub source: String,
116 #[serde(rename = "Type", alias = "Type", alias = "type")]
117 pub mount_type: String,
118 #[serde(rename = "Mode", alias = "Mode", alias = "mode")]
119 pub mode: String,
120 #[serde(rename = "RW", alias = "RW", alias = "rw")]
121 pub rw: bool,
122 #[serde(rename = "Propagation", alias = "Propagation", alias = "propagation")]
123 pub propagation: String,
124}