1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct PowerOutletRequest {
15 #[serde(rename = "device")]
16 pub device: Box<crate::models::BriefInterfaceRequestDevice>,
17 #[serde(
18 rename = "module",
19 default,
20 with = "::serde_with::rust::double_option",
21 skip_serializing_if = "Option::is_none"
22 )]
23 pub module: Option<Option<Box<crate::models::ConsolePortRequestModule>>>,
24 #[serde(rename = "name")]
25 pub name: String,
26 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
28 pub label: Option<String>,
29 #[serde(
31 rename = "type",
32 default,
33 with = "::serde_with::rust::double_option",
34 skip_serializing_if = "Option::is_none"
35 )]
36 pub r#type: Option<Option<RHashType>>,
37 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
39 pub status: Option<Status>,
40 #[serde(rename = "color", skip_serializing_if = "Option::is_none")]
41 pub color: Option<String>,
42 #[serde(
43 rename = "power_port",
44 default,
45 with = "::serde_with::rust::double_option",
46 skip_serializing_if = "Option::is_none"
47 )]
48 pub power_port: Option<Option<Box<crate::models::PatchedWritablePowerOutletRequestPowerPort>>>,
49 #[serde(
51 rename = "feed_leg",
52 default,
53 with = "::serde_with::rust::double_option",
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub feed_leg: Option<Option<FeedLeg>>,
57 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
58 pub description: Option<String>,
59 #[serde(rename = "mark_connected", skip_serializing_if = "Option::is_none")]
61 pub mark_connected: Option<bool>,
62 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
63 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
64 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
65 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
66}
67
68impl PowerOutletRequest {
69 pub fn new(
71 device: crate::models::BriefInterfaceRequestDevice,
72 name: String,
73 ) -> PowerOutletRequest {
74 PowerOutletRequest {
75 device: Box::new(device),
76 module: None,
77 name,
78 label: None,
79 r#type: None,
80 status: None,
81 color: None,
82 power_port: None,
83 feed_leg: None,
84 description: None,
85 mark_connected: None,
86 tags: None,
87 custom_fields: None,
88 }
89 }
90}
91
92#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
94pub enum RHashType {
95 #[serde(rename = "iec-60320-c5")]
96 Iec60320C5,
97 #[serde(rename = "iec-60320-c7")]
98 Iec60320C7,
99 #[serde(rename = "iec-60320-c13")]
100 Iec60320C13,
101 #[serde(rename = "iec-60320-c15")]
102 Iec60320C15,
103 #[serde(rename = "iec-60320-c17")]
104 Iec60320C17,
105 #[serde(rename = "iec-60320-c19")]
106 Iec60320C19,
107 #[serde(rename = "iec-60320-c21")]
108 Iec60320C21,
109 #[serde(rename = "iec-60309-p-n-e-4h")]
110 Iec60309PNE4h,
111 #[serde(rename = "iec-60309-p-n-e-6h")]
112 Iec60309PNE6h,
113 #[serde(rename = "iec-60309-p-n-e-9h")]
114 Iec60309PNE9h,
115 #[serde(rename = "iec-60309-2p-e-4h")]
116 Iec603092pE4h,
117 #[serde(rename = "iec-60309-2p-e-6h")]
118 Iec603092pE6h,
119 #[serde(rename = "iec-60309-2p-e-9h")]
120 Iec603092pE9h,
121 #[serde(rename = "iec-60309-3p-e-4h")]
122 Iec603093pE4h,
123 #[serde(rename = "iec-60309-3p-e-6h")]
124 Iec603093pE6h,
125 #[serde(rename = "iec-60309-3p-e-9h")]
126 Iec603093pE9h,
127 #[serde(rename = "iec-60309-3p-n-e-4h")]
128 Iec603093pNE4h,
129 #[serde(rename = "iec-60309-3p-n-e-6h")]
130 Iec603093pNE6h,
131 #[serde(rename = "iec-60309-3p-n-e-9h")]
132 Iec603093pNE9h,
133 #[serde(rename = "iec-60906-1")]
134 Iec609061,
135 #[serde(rename = "nbr-14136-10a")]
136 Nbr1413610a,
137 #[serde(rename = "nbr-14136-20a")]
138 Nbr1413620a,
139 #[serde(rename = "nema-1-15r")]
140 Nema115r,
141 #[serde(rename = "nema-5-15r")]
142 Nema515r,
143 #[serde(rename = "nema-5-20r")]
144 Nema520r,
145 #[serde(rename = "nema-5-30r")]
146 Nema530r,
147 #[serde(rename = "nema-5-50r")]
148 Nema550r,
149 #[serde(rename = "nema-6-15r")]
150 Nema615r,
151 #[serde(rename = "nema-6-20r")]
152 Nema620r,
153 #[serde(rename = "nema-6-30r")]
154 Nema630r,
155 #[serde(rename = "nema-6-50r")]
156 Nema650r,
157 #[serde(rename = "nema-10-30r")]
158 Nema1030r,
159 #[serde(rename = "nema-10-50r")]
160 Nema1050r,
161 #[serde(rename = "nema-14-20r")]
162 Nema1420r,
163 #[serde(rename = "nema-14-30r")]
164 Nema1430r,
165 #[serde(rename = "nema-14-50r")]
166 Nema1450r,
167 #[serde(rename = "nema-14-60r")]
168 Nema1460r,
169 #[serde(rename = "nema-15-15r")]
170 Nema1515r,
171 #[serde(rename = "nema-15-20r")]
172 Nema1520r,
173 #[serde(rename = "nema-15-30r")]
174 Nema1530r,
175 #[serde(rename = "nema-15-50r")]
176 Nema1550r,
177 #[serde(rename = "nema-15-60r")]
178 Nema1560r,
179 #[serde(rename = "nema-l1-15r")]
180 NemaL115r,
181 #[serde(rename = "nema-l5-15r")]
182 NemaL515r,
183 #[serde(rename = "nema-l5-20r")]
184 NemaL520r,
185 #[serde(rename = "nema-l5-30r")]
186 NemaL530r,
187 #[serde(rename = "nema-l5-50r")]
188 NemaL550r,
189 #[serde(rename = "nema-l6-15r")]
190 NemaL615r,
191 #[serde(rename = "nema-l6-20r")]
192 NemaL620r,
193 #[serde(rename = "nema-l6-30r")]
194 NemaL630r,
195 #[serde(rename = "nema-l6-50r")]
196 NemaL650r,
197 #[serde(rename = "nema-l10-30r")]
198 NemaL1030r,
199 #[serde(rename = "nema-l14-20r")]
200 NemaL1420r,
201 #[serde(rename = "nema-l14-30r")]
202 NemaL1430r,
203 #[serde(rename = "nema-l14-50r")]
204 NemaL1450r,
205 #[serde(rename = "nema-l14-60r")]
206 NemaL1460r,
207 #[serde(rename = "nema-l15-20r")]
208 NemaL1520r,
209 #[serde(rename = "nema-l15-30r")]
210 NemaL1530r,
211 #[serde(rename = "nema-l15-50r")]
212 NemaL1550r,
213 #[serde(rename = "nema-l15-60r")]
214 NemaL1560r,
215 #[serde(rename = "nema-l21-20r")]
216 NemaL2120r,
217 #[serde(rename = "nema-l21-30r")]
218 NemaL2130r,
219 #[serde(rename = "nema-l22-20r")]
220 NemaL2220r,
221 #[serde(rename = "nema-l22-30r")]
222 NemaL2230r,
223 #[serde(rename = "CS6360C")]
224 Cs6360C,
225 #[serde(rename = "CS6364C")]
226 Cs6364C,
227 #[serde(rename = "CS8164C")]
228 Cs8164C,
229 #[serde(rename = "CS8264C")]
230 Cs8264C,
231 #[serde(rename = "CS8364C")]
232 Cs8364C,
233 #[serde(rename = "CS8464C")]
234 Cs8464C,
235 #[serde(rename = "ita-e")]
236 ItaE,
237 #[serde(rename = "ita-f")]
238 ItaF,
239 #[serde(rename = "ita-g")]
240 ItaG,
241 #[serde(rename = "ita-h")]
242 ItaH,
243 #[serde(rename = "ita-i")]
244 ItaI,
245 #[serde(rename = "ita-j")]
246 ItaJ,
247 #[serde(rename = "ita-k")]
248 ItaK,
249 #[serde(rename = "ita-l")]
250 ItaL,
251 #[serde(rename = "ita-m")]
252 ItaM,
253 #[serde(rename = "ita-n")]
254 ItaN,
255 #[serde(rename = "ita-o")]
256 ItaO,
257 #[serde(rename = "ita-multistandard")]
258 ItaMultistandard,
259 #[serde(rename = "usb-a")]
260 UsbA,
261 #[serde(rename = "usb-micro-b")]
262 UsbMicroB,
263 #[serde(rename = "usb-c")]
264 UsbC,
265 #[serde(rename = "molex-micro-fit-1x2")]
266 MolexMicroFit1x2,
267 #[serde(rename = "molex-micro-fit-2x2")]
268 MolexMicroFit2x2,
269 #[serde(rename = "molex-micro-fit-2x4")]
270 MolexMicroFit2x4,
271 #[serde(rename = "dc-terminal")]
272 DcTerminal,
273 #[serde(rename = "eaton-c39")]
274 EatonC39,
275 #[serde(rename = "hdot-cx")]
276 HdotCx,
277 #[serde(rename = "saf-d-grid")]
278 SafDGrid,
279 #[serde(rename = "neutrik-powercon-20a")]
280 NeutrikPowercon20a,
281 #[serde(rename = "neutrik-powercon-32a")]
282 NeutrikPowercon32a,
283 #[serde(rename = "neutrik-powercon-true1")]
284 NeutrikPowerconTrue1,
285 #[serde(rename = "neutrik-powercon-true1-top")]
286 NeutrikPowerconTrue1Top,
287 #[serde(rename = "ubiquiti-smartpower")]
288 UbiquitiSmartpower,
289 #[serde(rename = "hardwired")]
290 Hardwired,
291 #[serde(rename = "other")]
292 Other,
293 #[serde(rename = "")]
294 Empty,
295 #[serde(rename = "null")]
296 Null,
297}
298
299impl Default for RHashType {
300 fn default() -> RHashType {
301 Self::Iec60320C5
302 }
303}
304#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
306pub enum Status {
307 #[serde(rename = "enabled")]
308 Enabled,
309 #[serde(rename = "disabled")]
310 Disabled,
311 #[serde(rename = "faulty")]
312 Faulty,
313}
314
315impl Default for Status {
316 fn default() -> Status {
317 Self::Enabled
318 }
319}
320#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
322pub enum FeedLeg {
323 #[serde(rename = "A")]
324 A,
325 #[serde(rename = "B")]
326 B,
327 #[serde(rename = "C")]
328 C,
329 #[serde(rename = "")]
330 Empty,
331 #[serde(rename = "null")]
332 Null,
333}
334
335impl Default for FeedLeg {
336 fn default() -> FeedLeg {
337 Self::A
338 }
339}