1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct Rack {
15 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
16 pub id: Option<i32>,
17 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
18 pub url: Option<String>,
19 #[serde(rename = "display_url", skip_serializing_if = "Option::is_none")]
20 pub display_url: Option<String>,
21 #[serde(rename = "display", skip_serializing_if = "Option::is_none")]
22 pub display: Option<String>,
23 #[serde(rename = "name")]
24 pub name: String,
25 #[serde(
26 rename = "facility_id",
27 default,
28 with = "::serde_with::rust::double_option",
29 skip_serializing_if = "Option::is_none"
30 )]
31 pub facility_id: Option<Option<String>>,
32 #[serde(rename = "site")]
33 pub site: Box<crate::models::BriefSite>,
34 #[serde(
35 rename = "location",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub location: Option<Option<Box<crate::models::BriefLocation>>>,
41 #[serde(
42 rename = "group",
43 default,
44 with = "::serde_with::rust::double_option",
45 skip_serializing_if = "Option::is_none"
46 )]
47 pub group: Option<Option<Box<crate::models::BriefRackGroup>>>,
48 #[serde(
49 rename = "tenant",
50 default,
51 with = "::serde_with::rust::double_option",
52 skip_serializing_if = "Option::is_none"
53 )]
54 pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
55 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
56 pub status: Option<Box<crate::models::RackStatus>>,
57 #[serde(
58 rename = "role",
59 default,
60 with = "::serde_with::rust::double_option",
61 skip_serializing_if = "Option::is_none"
62 )]
63 pub role: Option<Option<Box<crate::models::BriefRackRole>>>,
64 #[serde(rename = "serial", skip_serializing_if = "Option::is_none")]
65 pub serial: Option<String>,
66 #[serde(
68 rename = "asset_tag",
69 default,
70 with = "::serde_with::rust::double_option",
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub asset_tag: Option<Option<String>>,
74 #[serde(
75 rename = "rack_type",
76 default,
77 with = "::serde_with::rust::double_option",
78 skip_serializing_if = "Option::is_none"
79 )]
80 pub rack_type: Option<Option<Box<crate::models::BriefRackType>>>,
81 #[serde(
82 rename = "form_factor",
83 default,
84 with = "::serde_with::rust::double_option",
85 skip_serializing_if = "Option::is_none"
86 )]
87 pub form_factor: Option<Option<Box<crate::models::RackFormFactor>>>,
88 #[serde(rename = "width", skip_serializing_if = "Option::is_none")]
89 pub width: Option<Box<crate::models::RackWidth>>,
90 #[serde(rename = "u_height", skip_serializing_if = "Option::is_none")]
92 pub u_height: Option<i32>,
93 #[serde(rename = "starting_unit", skip_serializing_if = "Option::is_none")]
95 pub starting_unit: Option<i32>,
96 #[serde(
97 rename = "weight",
98 default,
99 with = "::serde_with::rust::double_option",
100 skip_serializing_if = "Option::is_none"
101 )]
102 pub weight: Option<Option<f64>>,
103 #[serde(
105 rename = "max_weight",
106 default,
107 with = "::serde_with::rust::double_option",
108 skip_serializing_if = "Option::is_none"
109 )]
110 pub max_weight: Option<Option<i32>>,
111 #[serde(
112 rename = "weight_unit",
113 default,
114 with = "::serde_with::rust::double_option",
115 skip_serializing_if = "Option::is_none"
116 )]
117 pub weight_unit: Option<Option<Box<crate::models::DeviceTypeWeightUnit>>>,
118 #[serde(rename = "desc_units", skip_serializing_if = "Option::is_none")]
120 pub desc_units: Option<bool>,
121 #[serde(
123 rename = "outer_width",
124 default,
125 with = "::serde_with::rust::double_option",
126 skip_serializing_if = "Option::is_none"
127 )]
128 pub outer_width: Option<Option<i32>>,
129 #[serde(
131 rename = "outer_height",
132 default,
133 with = "::serde_with::rust::double_option",
134 skip_serializing_if = "Option::is_none"
135 )]
136 pub outer_height: Option<Option<i32>>,
137 #[serde(
139 rename = "outer_depth",
140 default,
141 with = "::serde_with::rust::double_option",
142 skip_serializing_if = "Option::is_none"
143 )]
144 pub outer_depth: Option<Option<i32>>,
145 #[serde(
146 rename = "outer_unit",
147 default,
148 with = "::serde_with::rust::double_option",
149 skip_serializing_if = "Option::is_none"
150 )]
151 pub outer_unit: Option<Option<Box<crate::models::RackOuterUnit>>>,
152 #[serde(
154 rename = "mounting_depth",
155 default,
156 with = "::serde_with::rust::double_option",
157 skip_serializing_if = "Option::is_none"
158 )]
159 pub mounting_depth: Option<Option<i32>>,
160 #[serde(rename = "airflow", skip_serializing_if = "Option::is_none")]
161 pub airflow: Option<Box<crate::models::RackAirflow>>,
162 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
163 pub description: Option<String>,
164 #[serde(
165 rename = "owner",
166 default,
167 with = "::serde_with::rust::double_option",
168 skip_serializing_if = "Option::is_none"
169 )]
170 pub owner: Option<Option<Box<crate::models::BriefOwner>>>,
171 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
172 pub comments: Option<String>,
173 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
174 pub tags: Option<Vec<crate::models::NestedTag>>,
175 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
176 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
177 #[serde(
178 rename = "created",
179 default,
180 with = "::serde_with::rust::double_option",
181 skip_serializing_if = "Option::is_none"
182 )]
183 pub created: Option<Option<String>>,
184 #[serde(
185 rename = "last_updated",
186 default,
187 with = "::serde_with::rust::double_option",
188 skip_serializing_if = "Option::is_none"
189 )]
190 pub last_updated: Option<Option<String>>,
191 #[serde(rename = "device_count", skip_serializing_if = "Option::is_none")]
192 pub device_count: Option<i64>,
193 #[serde(rename = "powerfeed_count", skip_serializing_if = "Option::is_none")]
194 pub powerfeed_count: Option<i64>,
195}
196
197impl Rack {
198 pub fn new(name: String, site: crate::models::BriefSite) -> Rack {
200 Rack {
201 id: None,
202 url: None,
203 display_url: None,
204 display: None,
205 name,
206 facility_id: None,
207 site: Box::new(site),
208 location: None,
209 group: None,
210 tenant: None,
211 status: None,
212 role: None,
213 serial: None,
214 asset_tag: None,
215 rack_type: None,
216 form_factor: None,
217 width: None,
218 u_height: None,
219 starting_unit: None,
220 weight: None,
221 max_weight: None,
222 weight_unit: None,
223 desc_units: None,
224 outer_width: None,
225 outer_height: None,
226 outer_depth: None,
227 outer_unit: None,
228 mounting_depth: None,
229 airflow: None,
230 description: None,
231 owner: None,
232 comments: None,
233 tags: None,
234 custom_fields: None,
235 created: None,
236 last_updated: None,
237 device_count: None,
238 powerfeed_count: None,
239 }
240 }
241}