rolling_deployer/
types.rs

1use 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}