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(rename = "cable_end", skip_serializing_if = "Option::is_none")]
60 pub cable_end: Option<String>,
61 #[serde(rename = "link_peers", skip_serializing_if = "Option::is_none")]
62 pub link_peers: Option<Vec<serde_json::Value>>,
63 #[serde(
65 rename = "link_peers_type",
66 default,
67 with = "::serde_with::rust::double_option",
68 skip_serializing_if = "Option::is_none"
69 )]
70 pub link_peers_type: Option<Option<String>>,
71 #[serde(
72 rename = "connected_endpoints",
73 default,
74 with = "::serde_with::rust::double_option",
75 skip_serializing_if = "Option::is_none"
76 )]
77 pub connected_endpoints: Option<Option<Vec<serde_json::Value>>>,
78 #[serde(
79 rename = "connected_endpoints_type",
80 default,
81 with = "::serde_with::rust::double_option",
82 skip_serializing_if = "Option::is_none"
83 )]
84 pub connected_endpoints_type: Option<Option<String>>,
85 #[serde(
86 rename = "connected_endpoints_reachable",
87 skip_serializing_if = "Option::is_none"
88 )]
89 pub connected_endpoints_reachable: Option<bool>,
90 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
91 pub description: Option<String>,
92 #[serde(
93 rename = "tenant",
94 default,
95 with = "::serde_with::rust::double_option",
96 skip_serializing_if = "Option::is_none"
97 )]
98 pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
99 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
100 pub comments: Option<String>,
101 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
102 pub tags: Option<Vec<crate::models::NestedTag>>,
103 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
104 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
105 #[serde(
106 rename = "created",
107 default,
108 with = "::serde_with::rust::double_option",
109 skip_serializing_if = "Option::is_none"
110 )]
111 pub created: Option<Option<String>>,
112 #[serde(
113 rename = "last_updated",
114 default,
115 with = "::serde_with::rust::double_option",
116 skip_serializing_if = "Option::is_none"
117 )]
118 pub last_updated: Option<Option<String>>,
119 #[serde(rename = "_occupied", skip_serializing_if = "Option::is_none")]
120 pub _occupied: Option<bool>,
121}
122
123impl PowerFeed {
124 pub fn new(power_panel: crate::models::BriefPowerPanel, name: String) -> PowerFeed {
126 PowerFeed {
127 id: None,
128 url: None,
129 display_url: None,
130 display: None,
131 power_panel: Box::new(power_panel),
132 rack: None,
133 name,
134 status: None,
135 r#type: None,
136 supply: None,
137 phase: None,
138 voltage: None,
139 amperage: None,
140 max_utilization: None,
141 mark_connected: None,
142 cable: None,
143 cable_end: None,
144 link_peers: None,
145 link_peers_type: None,
146 connected_endpoints: None,
147 connected_endpoints_type: None,
148 connected_endpoints_reachable: None,
149 description: None,
150 tenant: None,
151 comments: None,
152 tags: None,
153 custom_fields: None,
154 created: None,
155 last_updated: None,
156 _occupied: None,
157 }
158 }
159}