nomad_api_types/types/
node.rs1use derive_builder::Builder;
7use serde::{Deserialize, Serialize};
8
9#[derive(Clone, Debug, PartialEq, Deserialize, Serialize, Builder, Default)]
13pub struct Node {
14 #[serde(rename = "ID")]
15 #[builder(default)]
16 pub id: String,
17
18 #[serde(rename = "Datacenter")]
19 #[builder(default)]
20 pub datacenter: String,
21
22 #[serde(rename = "Name")]
23 #[builder(default)]
24 pub name: String,
25
26 #[serde(rename = "HTTPAddr")]
27 #[builder(default)]
28 pub http_addr: String,
29
30 #[serde(rename = "TLSEnabled")]
31 #[builder(default)]
32 pub tls_enabled: bool,
33
34 #[serde(
35 rename = "Attributes",
36 deserialize_with = "crate::deserialize_null_as_default"
37 )]
38 #[builder(default)]
39 pub attributes: std::collections::HashMap<String, String>,
40
41 #[serde(rename = "Resources", skip_serializing_if = "Option::is_none")]
42 #[builder(default)]
43 pub resources: Option<super::Resources>,
44
45 #[serde(rename = "Reserved", skip_serializing_if = "Option::is_none")]
46 #[builder(default)]
47 pub reserved: Option<super::Resources>,
48
49 #[serde(rename = "NodeResources", skip_serializing_if = "Option::is_none")]
50 #[builder(default)]
51 pub node_resources: Option<super::NodeResources>,
52
53 #[serde(rename = "ReservedResources", skip_serializing_if = "Option::is_none")]
54 #[builder(default)]
55 pub reserved_resources: Option<super::NodeReservedResources>,
56
57 #[serde(
58 rename = "Links",
59 deserialize_with = "crate::deserialize_null_as_default"
60 )]
61 #[builder(default)]
62 pub links: std::collections::HashMap<String, String>,
63
64 #[serde(
65 rename = "Meta",
66 deserialize_with = "crate::deserialize_null_as_default"
67 )]
68 #[builder(default)]
69 pub meta: std::collections::HashMap<String, String>,
70
71 #[serde(rename = "NodeClass")]
72 #[builder(default)]
73 pub node_class: String,
74
75 #[serde(rename = "NodePool")]
76 #[builder(default)]
77 pub node_pool: String,
78
79 #[serde(rename = "CgroupParent")]
80 #[builder(default)]
81 pub cgroup_parent: String,
82
83 #[serde(rename = "Drain")]
84 #[builder(default)]
85 pub drain: bool,
86
87 #[serde(rename = "DrainStrategy", skip_serializing_if = "Option::is_none")]
88 #[builder(default)]
89 pub drain_strategy: Option<super::DrainStrategy>,
90
91 #[serde(rename = "SchedulingEligibility")]
92 #[builder(default)]
93 pub scheduling_eligibility: String,
94
95 #[serde(rename = "Status")]
96 #[builder(default)]
97 pub status: String,
98
99 #[serde(rename = "StatusDescription")]
100 #[builder(default)]
101 pub status_description: String,
102
103 #[serde(rename = "StatusUpdatedAt")]
104 #[builder(default)]
105 pub status_updated_at: i64,
106
107 #[serde(
108 rename = "Events",
109 deserialize_with = "crate::deserialize_null_as_default"
110 )]
111 #[builder(default)]
112 pub events: Vec<super::NodeEvent>,
113
114 #[serde(
115 rename = "Drivers",
116 deserialize_with = "crate::deserialize_null_as_default"
117 )]
118 #[builder(default)]
119 pub drivers: std::collections::HashMap<String, super::DriverInfo>,
120
121 #[serde(
122 rename = "HostVolumes",
123 deserialize_with = "crate::deserialize_null_as_default"
124 )]
125 #[builder(default)]
126 pub host_volumes: std::collections::HashMap<String, super::HostVolumeInfo>,
127
128 #[serde(rename = "GCVolumesOnNodeGC")]
129 #[builder(default)]
130 pub gc_volumes_on_node_gc: bool,
131
132 #[serde(
133 rename = "HostNetworks",
134 deserialize_with = "crate::deserialize_null_as_default"
135 )]
136 #[builder(default)]
137 pub host_networks: std::collections::HashMap<String, super::HostNetworkInfo>,
138
139 #[serde(
140 rename = "CSIControllerPlugins",
141 deserialize_with = "crate::deserialize_null_as_default"
142 )]
143 #[builder(default)]
144 pub csi_controller_plugins: std::collections::HashMap<String, super::CsiInfo>,
145
146 #[serde(
147 rename = "CSINodePlugins",
148 deserialize_with = "crate::deserialize_null_as_default"
149 )]
150 #[builder(default)]
151 pub csi_node_plugins: std::collections::HashMap<String, super::CsiInfo>,
152
153 #[serde(rename = "LastDrain", skip_serializing_if = "Option::is_none")]
154 pub last_drain: Option<super::DrainMetadata>,
155
156 #[serde(rename = "CreateIndex")]
157 #[builder(default)]
158 pub create_index: u64,
159
160 #[serde(rename = "ModifyIndex")]
161 #[builder(default)]
162 pub modify_index: u64,
163
164 #[serde(rename = "NodeMaxAllocs")]
165 #[builder(default)]
166 pub node_max_allocs: i64,
167}
168impl Node {
169 pub fn builder() -> NodeBuilder {
170 NodeBuilder::default()
171 }
172}