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(
171 rename = "owner",
172 default,
173 with = "::serde_with::rust::double_option",
174 skip_serializing_if = "Option::is_none"
175 )]
176 pub owner: Option<Option<Box<crate::models::BriefOwner>>>,
177 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
178 pub comments: Option<String>,
179 #[serde(
180 rename = "config_template",
181 default,
182 with = "::serde_with::rust::double_option",
183 skip_serializing_if = "Option::is_none"
184 )]
185 pub config_template: Option<Option<Box<crate::models::BriefConfigTemplate>>>,
186 #[serde(
187 rename = "config_context",
188 default,
189 with = "::serde_with::rust::double_option",
190 skip_serializing_if = "Option::is_none"
191 )]
192 pub config_context: Option<Option<serde_json::Value>>,
193 #[serde(
195 rename = "local_context_data",
196 default,
197 with = "::serde_with::rust::double_option",
198 skip_serializing_if = "Option::is_none"
199 )]
200 pub local_context_data: Option<Option<serde_json::Value>>,
201 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
202 pub tags: Option<Vec<crate::models::NestedTag>>,
203 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
204 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
205 #[serde(
206 rename = "created",
207 default,
208 with = "::serde_with::rust::double_option",
209 skip_serializing_if = "Option::is_none"
210 )]
211 pub created: Option<Option<String>>,
212 #[serde(
213 rename = "last_updated",
214 default,
215 with = "::serde_with::rust::double_option",
216 skip_serializing_if = "Option::is_none"
217 )]
218 pub last_updated: Option<Option<String>>,
219 #[serde(rename = "console_port_count", skip_serializing_if = "Option::is_none")]
220 pub console_port_count: Option<i32>,
221 #[serde(
222 rename = "console_server_port_count",
223 skip_serializing_if = "Option::is_none"
224 )]
225 pub console_server_port_count: Option<i32>,
226 #[serde(rename = "power_port_count", skip_serializing_if = "Option::is_none")]
227 pub power_port_count: Option<i32>,
228 #[serde(rename = "power_outlet_count", skip_serializing_if = "Option::is_none")]
229 pub power_outlet_count: Option<i32>,
230 #[serde(rename = "interface_count", skip_serializing_if = "Option::is_none")]
231 pub interface_count: Option<i32>,
232 #[serde(rename = "front_port_count", skip_serializing_if = "Option::is_none")]
233 pub front_port_count: Option<i32>,
234 #[serde(rename = "rear_port_count", skip_serializing_if = "Option::is_none")]
235 pub rear_port_count: Option<i32>,
236 #[serde(rename = "device_bay_count", skip_serializing_if = "Option::is_none")]
237 pub device_bay_count: Option<i32>,
238 #[serde(rename = "module_bay_count", skip_serializing_if = "Option::is_none")]
239 pub module_bay_count: Option<i32>,
240 #[serde(
241 rename = "inventory_item_count",
242 skip_serializing_if = "Option::is_none"
243 )]
244 pub inventory_item_count: Option<i32>,
245}
246
247impl DeviceWithConfigContext {
248 pub fn new(
250 device_type: crate::models::BriefDeviceType,
251 role: crate::models::BriefDeviceRole,
252 site: crate::models::BriefSite,
253 ) -> DeviceWithConfigContext {
254 DeviceWithConfigContext {
255 id: None,
256 url: None,
257 display_url: None,
258 display: None,
259 name: None,
260 device_type: Box::new(device_type),
261 role: Box::new(role),
262 tenant: None,
263 platform: None,
264 serial: None,
265 asset_tag: None,
266 site: Box::new(site),
267 location: None,
268 rack: None,
269 position: None,
270 face: None,
271 latitude: None,
272 longitude: None,
273 parent_device: None,
274 status: None,
275 airflow: None,
276 primary_ip: None,
277 primary_ip4: None,
278 primary_ip6: None,
279 oob_ip: None,
280 cluster: None,
281 virtual_chassis: None,
282 vc_position: None,
283 vc_priority: None,
284 description: None,
285 owner: None,
286 comments: None,
287 config_template: None,
288 config_context: None,
289 local_context_data: None,
290 tags: None,
291 custom_fields: None,
292 created: None,
293 last_updated: None,
294 console_port_count: None,
295 console_server_port_count: None,
296 power_port_count: None,
297 power_outlet_count: None,
298 interface_count: None,
299 front_port_count: None,
300 rear_port_count: None,
301 device_bay_count: None,
302 module_bay_count: None,
303 inventory_item_count: None,
304 }
305 }
306}