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(
100 rename = "owner",
101 default,
102 with = "::serde_with::rust::double_option",
103 skip_serializing_if = "Option::is_none"
104 )]
105 pub owner: Option<Option<Box<crate::models::BriefOwner>>>,
106 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
107 pub comments: Option<String>,
108 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
109 pub tags: Option<Vec<crate::models::NestedTag>>,
110 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
111 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
112 #[serde(
113 rename = "created",
114 default,
115 with = "::serde_with::rust::double_option",
116 skip_serializing_if = "Option::is_none"
117 )]
118 pub created: Option<Option<String>>,
119 #[serde(
120 rename = "last_updated",
121 default,
122 with = "::serde_with::rust::double_option",
123 skip_serializing_if = "Option::is_none"
124 )]
125 pub last_updated: Option<Option<String>>,
126 #[serde(rename = "_occupied", skip_serializing_if = "Option::is_none")]
127 pub _occupied: Option<bool>,
128}
129
130impl PowerFeed {
131 pub fn new(power_panel: crate::models::BriefPowerPanel, name: String) -> PowerFeed {
133 PowerFeed {
134 id: None,
135 url: None,
136 display_url: None,
137 display: None,
138 power_panel: Box::new(power_panel),
139 rack: None,
140 name,
141 status: None,
142 r#type: None,
143 supply: None,
144 phase: None,
145 voltage: None,
146 amperage: None,
147 max_utilization: None,
148 mark_connected: None,
149 cable: None,
150 cable_end: None,
151 link_peers: None,
152 link_peers_type: None,
153 connected_endpoints: None,
154 connected_endpoints_type: None,
155 connected_endpoints_reachable: None,
156 description: None,
157 tenant: None,
158 owner: None,
159 comments: None,
160 tags: None,
161 custom_fields: None,
162 created: None,
163 last_updated: None,
164 _occupied: None,
165 }
166 }
167}