1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct PowerFeed {
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 = "power_panel")]
24 pub power_panel: Box<crate::models::BriefPowerPanel>,
25 #[serde(
26 rename = "rack",
27 default,
28 with = "::serde_with::rust::double_option",
29 skip_serializing_if = "Option::is_none"
30 )]
31 pub rack: Option<Option<Box<crate::models::BriefRack>>>,
32 #[serde(rename = "name")]
33 pub name: String,
34 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
35 pub status: Option<Box<crate::models::PowerFeedStatus>>,
36 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
37 pub r#type: Option<Box<crate::models::PowerFeedType>>,
38 #[serde(rename = "supply", skip_serializing_if = "Option::is_none")]
39 pub supply: Option<Box<crate::models::PowerFeedSupply>>,
40 #[serde(rename = "phase", skip_serializing_if = "Option::is_none")]
41 pub phase: Option<Box<crate::models::PowerFeedPhase>>,
42 #[serde(rename = "voltage", skip_serializing_if = "Option::is_none")]
43 pub voltage: Option<i32>,
44 #[serde(rename = "amperage", skip_serializing_if = "Option::is_none")]
45 pub amperage: Option<i32>,
46 #[serde(rename = "max_utilization", skip_serializing_if = "Option::is_none")]
48 pub max_utilization: Option<i32>,
49 #[serde(rename = "mark_connected", skip_serializing_if = "Option::is_none")]
51 pub mark_connected: Option<bool>,
52 #[serde(
53 rename = "cable",
54 default,
55 with = "::serde_with::rust::double_option",
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub cable: Option<Option<Box<crate::models::BriefCable>>>,
59 #[serde(
61 rename = "cable_end",
62 default,
63 with = "::serde_with::rust::double_option",
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub cable_end: Option<Option<CableEnd>>,
67 #[serde(rename = "link_peers", skip_serializing_if = "Option::is_none")]
68 pub link_peers: Option<Vec<serde_json::Value>>,
69 #[serde(
71 rename = "link_peers_type",
72 default,
73 with = "::serde_with::rust::double_option",
74 skip_serializing_if = "Option::is_none"
75 )]
76 pub link_peers_type: Option<Option<String>>,
77 #[serde(
78 rename = "connected_endpoints",
79 default,
80 with = "::serde_with::rust::double_option",
81 skip_serializing_if = "Option::is_none"
82 )]
83 pub connected_endpoints: Option<Option<Vec<serde_json::Value>>>,
84 #[serde(
85 rename = "connected_endpoints_type",
86 default,
87 with = "::serde_with::rust::double_option",
88 skip_serializing_if = "Option::is_none"
89 )]
90 pub connected_endpoints_type: Option<Option<String>>,
91 #[serde(
92 rename = "connected_endpoints_reachable",
93 skip_serializing_if = "Option::is_none"
94 )]
95 pub connected_endpoints_reachable: Option<bool>,
96 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
97 pub description: Option<String>,
98 #[serde(
99 rename = "tenant",
100 default,
101 with = "::serde_with::rust::double_option",
102 skip_serializing_if = "Option::is_none"
103 )]
104 pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
105 #[serde(
106 rename = "owner",
107 default,
108 with = "::serde_with::rust::double_option",
109 skip_serializing_if = "Option::is_none"
110 )]
111 pub owner: Option<Option<Box<crate::models::BriefOwner>>>,
112 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
113 pub comments: Option<String>,
114 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
115 pub tags: Option<Vec<crate::models::NestedTag>>,
116 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
117 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
118 #[serde(
119 rename = "created",
120 default,
121 with = "::serde_with::rust::double_option",
122 skip_serializing_if = "Option::is_none"
123 )]
124 pub created: Option<Option<String>>,
125 #[serde(
126 rename = "last_updated",
127 default,
128 with = "::serde_with::rust::double_option",
129 skip_serializing_if = "Option::is_none"
130 )]
131 pub last_updated: Option<Option<String>>,
132 #[serde(rename = "_occupied", skip_serializing_if = "Option::is_none")]
133 pub _occupied: Option<bool>,
134}
135
136impl PowerFeed {
137 pub fn new(power_panel: crate::models::BriefPowerPanel, name: String) -> PowerFeed {
139 PowerFeed {
140 id: None,
141 url: None,
142 display_url: None,
143 display: None,
144 power_panel: Box::new(power_panel),
145 rack: None,
146 name,
147 status: None,
148 r#type: None,
149 supply: None,
150 phase: None,
151 voltage: None,
152 amperage: None,
153 max_utilization: None,
154 mark_connected: None,
155 cable: None,
156 cable_end: None,
157 link_peers: None,
158 link_peers_type: None,
159 connected_endpoints: None,
160 connected_endpoints_type: None,
161 connected_endpoints_reachable: None,
162 description: None,
163 tenant: None,
164 owner: None,
165 comments: None,
166 tags: None,
167 custom_fields: None,
168 created: None,
169 last_updated: None,
170 _occupied: None,
171 }
172 }
173}
174
175#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
177pub enum CableEnd {
178 #[serde(rename = "A")]
179 A,
180 #[serde(rename = "B")]
181 B,
182 #[serde(rename = "null")]
183 Null,
184}
185
186impl Default for CableEnd {
187 fn default() -> CableEnd {
188 Self::A
189 }
190}