1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct DeviceWithConfigContext {
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(
24 rename = "name",
25 default,
26 with = "::serde_with::rust::double_option",
27 skip_serializing_if = "Option::is_none"
28 )]
29 pub name: Option<Option<String>>,
30 #[serde(rename = "device_type")]
31 pub device_type: Box<crate::models::BriefDeviceType>,
32 #[serde(rename = "role")]
33 pub role: Box<crate::models::BriefDeviceRole>,
34 #[serde(
35 rename = "tenant",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
41 #[serde(
42 rename = "platform",
43 default,
44 with = "::serde_with::rust::double_option",
45 skip_serializing_if = "Option::is_none"
46 )]
47 pub platform: Option<Option<Box<crate::models::BriefPlatform>>>,
48 #[serde(rename = "serial", skip_serializing_if = "Option::is_none")]
50 pub serial: Option<String>,
51 #[serde(
53 rename = "asset_tag",
54 default,
55 with = "::serde_with::rust::double_option",
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub asset_tag: Option<Option<String>>,
59 #[serde(rename = "site")]
60 pub site: Box<crate::models::BriefSite>,
61 #[serde(
62 rename = "location",
63 default,
64 with = "::serde_with::rust::double_option",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub location: Option<Option<Box<crate::models::BriefLocation>>>,
68 #[serde(
69 rename = "rack",
70 default,
71 with = "::serde_with::rust::double_option",
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub rack: Option<Option<Box<crate::models::BriefRack>>>,
75 #[serde(
76 rename = "position",
77 default,
78 with = "::serde_with::rust::double_option",
79 skip_serializing_if = "Option::is_none"
80 )]
81 pub position: Option<Option<f64>>,
82 #[serde(rename = "face", skip_serializing_if = "Option::is_none")]
83 pub face: Option<Box<crate::models::DeviceFace>>,
84 #[serde(
86 rename = "latitude",
87 default,
88 with = "::serde_with::rust::double_option",
89 skip_serializing_if = "Option::is_none"
90 )]
91 pub latitude: Option<Option<f64>>,
92 #[serde(
94 rename = "longitude",
95 default,
96 with = "::serde_with::rust::double_option",
97 skip_serializing_if = "Option::is_none"
98 )]
99 pub longitude: Option<Option<f64>>,
100 #[serde(
101 rename = "parent_device",
102 default,
103 with = "::serde_with::rust::double_option",
104 skip_serializing_if = "Option::is_none"
105 )]
106 pub parent_device: Option<Option<Box<crate::models::NestedDevice>>>,
107 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
108 pub status: Option<Box<crate::models::DeviceStatus>>,
109 #[serde(rename = "airflow", skip_serializing_if = "Option::is_none")]
110 pub airflow: Option<Box<crate::models::DeviceAirflow>>,
111 #[serde(
112 rename = "primary_ip",
113 default,
114 with = "::serde_with::rust::double_option",
115 skip_serializing_if = "Option::is_none"
116 )]
117 pub primary_ip: Option<Option<Box<crate::models::BriefIpAddress>>>,
118 #[serde(
119 rename = "primary_ip4",
120 default,
121 with = "::serde_with::rust::double_option",
122 skip_serializing_if = "Option::is_none"
123 )]
124 pub primary_ip4: Option<Option<Box<crate::models::BriefIpAddress>>>,
125 #[serde(
126 rename = "primary_ip6",
127 default,
128 with = "::serde_with::rust::double_option",
129 skip_serializing_if = "Option::is_none"
130 )]
131 pub primary_ip6: Option<Option<Box<crate::models::BriefIpAddress>>>,
132 #[serde(
133 rename = "oob_ip",
134 default,
135 with = "::serde_with::rust::double_option",
136 skip_serializing_if = "Option::is_none"
137 )]
138 pub oob_ip: Option<Option<Box<crate::models::BriefIpAddress>>>,
139 #[serde(
140 rename = "cluster",
141 default,
142 with = "::serde_with::rust::double_option",
143 skip_serializing_if = "Option::is_none"
144 )]
145 pub cluster: Option<Option<Box<crate::models::BriefCluster>>>,
146 #[serde(
147 rename = "virtual_chassis",
148 default,
149 with = "::serde_with::rust::double_option",
150 skip_serializing_if = "Option::is_none"
151 )]
152 pub virtual_chassis: Option<Option<Box<crate::models::BriefVirtualChassis>>>,
153 #[serde(
154 rename = "vc_position",
155 default,
156 with = "::serde_with::rust::double_option",
157 skip_serializing_if = "Option::is_none"
158 )]
159 pub vc_position: Option<Option<i32>>,
160 #[serde(
162 rename = "vc_priority",
163 default,
164 with = "::serde_with::rust::double_option",
165 skip_serializing_if = "Option::is_none"
166 )]
167 pub vc_priority: Option<Option<i32>>,
168 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
169 pub description: Option<String>,
170 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
171 pub comments: Option<String>,
172 #[serde(
173 rename = "config_template",
174 default,
175 with = "::serde_with::rust::double_option",
176 skip_serializing_if = "Option::is_none"
177 )]
178 pub config_template: Option<Option<Box<crate::models::BriefConfigTemplate>>>,
179 #[serde(
180 rename = "config_context",
181 default,
182 with = "::serde_with::rust::double_option",
183 skip_serializing_if = "Option::is_none"
184 )]
185 pub config_context: Option<Option<serde_json::Value>>,
186 #[serde(
188 rename = "local_context_data",
189 default,
190 with = "::serde_with::rust::double_option",
191 skip_serializing_if = "Option::is_none"
192 )]
193 pub local_context_data: Option<Option<serde_json::Value>>,
194 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
195 pub tags: Option<Vec<crate::models::NestedTag>>,
196 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
197 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
198 #[serde(
199 rename = "created",
200 default,
201 with = "::serde_with::rust::double_option",
202 skip_serializing_if = "Option::is_none"
203 )]
204 pub created: Option<Option<String>>,
205 #[serde(
206 rename = "last_updated",
207 default,
208 with = "::serde_with::rust::double_option",
209 skip_serializing_if = "Option::is_none"
210 )]
211 pub last_updated: Option<Option<String>>,
212 #[serde(rename = "console_port_count", skip_serializing_if = "Option::is_none")]
213 pub console_port_count: Option<i32>,
214 #[serde(
215 rename = "console_server_port_count",
216 skip_serializing_if = "Option::is_none"
217 )]
218 pub console_server_port_count: Option<i32>,
219 #[serde(rename = "power_port_count", skip_serializing_if = "Option::is_none")]
220 pub power_port_count: Option<i32>,
221 #[serde(rename = "power_outlet_count", skip_serializing_if = "Option::is_none")]
222 pub power_outlet_count: Option<i32>,
223 #[serde(rename = "interface_count", skip_serializing_if = "Option::is_none")]
224 pub interface_count: Option<i32>,
225 #[serde(rename = "front_port_count", skip_serializing_if = "Option::is_none")]
226 pub front_port_count: Option<i32>,
227 #[serde(rename = "rear_port_count", skip_serializing_if = "Option::is_none")]
228 pub rear_port_count: Option<i32>,
229 #[serde(rename = "device_bay_count", skip_serializing_if = "Option::is_none")]
230 pub device_bay_count: Option<i32>,
231 #[serde(rename = "module_bay_count", skip_serializing_if = "Option::is_none")]
232 pub module_bay_count: Option<i32>,
233 #[serde(
234 rename = "inventory_item_count",
235 skip_serializing_if = "Option::is_none"
236 )]
237 pub inventory_item_count: Option<i32>,
238}
239
240impl DeviceWithConfigContext {
241 pub fn new(
243 device_type: crate::models::BriefDeviceType,
244 role: crate::models::BriefDeviceRole,
245 site: crate::models::BriefSite,
246 ) -> DeviceWithConfigContext {
247 DeviceWithConfigContext {
248 id: None,
249 url: None,
250 display_url: None,
251 display: None,
252 name: None,
253 device_type: Box::new(device_type),
254 role: Box::new(role),
255 tenant: None,
256 platform: None,
257 serial: None,
258 asset_tag: None,
259 site: Box::new(site),
260 location: None,
261 rack: None,
262 position: None,
263 face: None,
264 latitude: None,
265 longitude: None,
266 parent_device: None,
267 status: None,
268 airflow: None,
269 primary_ip: None,
270 primary_ip4: None,
271 primary_ip6: None,
272 oob_ip: None,
273 cluster: None,
274 virtual_chassis: None,
275 vc_position: None,
276 vc_priority: None,
277 description: None,
278 comments: None,
279 config_template: None,
280 config_context: None,
281 local_context_data: None,
282 tags: None,
283 custom_fields: None,
284 created: None,
285 last_updated: None,
286 console_port_count: None,
287 console_server_port_count: None,
288 power_port_count: None,
289 power_outlet_count: None,
290 interface_count: None,
291 front_port_count: None,
292 rear_port_count: None,
293 device_bay_count: None,
294 module_bay_count: None,
295 inventory_item_count: None,
296 }
297 }
298}