nomad_api_types/types/
node.rs

1/*
2 * This is an auto-generated file.
3 * Any manual changes may be overwritten without notice!
4 */
5
6use derive_builder::Builder;
7use serde::{Deserialize, Serialize};
8
9/// Node is used to deserialize a node entry.
10///
11/// This struct was generated based on the Go types of the official Nomad API client.
12#[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}