1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct RackType {
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 = "manufacturer")]
24 pub manufacturer: Box<crate::models::BriefManufacturer>,
25 #[serde(rename = "model")]
26 pub model: String,
27 #[serde(rename = "slug")]
28 pub slug: String,
29 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
30 pub description: Option<String>,
31 #[serde(
32 rename = "form_factor",
33 default,
34 with = "::serde_with::rust::double_option",
35 skip_serializing_if = "Option::is_none"
36 )]
37 pub form_factor: Option<Option<Box<crate::models::RackFormFactor>>>,
38 #[serde(rename = "width", skip_serializing_if = "Option::is_none")]
39 pub width: Option<Box<crate::models::RackWidth>>,
40 #[serde(rename = "u_height", skip_serializing_if = "Option::is_none")]
42 pub u_height: Option<i32>,
43 #[serde(rename = "starting_unit", skip_serializing_if = "Option::is_none")]
45 pub starting_unit: Option<i32>,
46 #[serde(rename = "desc_units", skip_serializing_if = "Option::is_none")]
48 pub desc_units: Option<bool>,
49 #[serde(
51 rename = "outer_width",
52 default,
53 with = "::serde_with::rust::double_option",
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub outer_width: Option<Option<i32>>,
57 #[serde(
59 rename = "outer_height",
60 default,
61 with = "::serde_with::rust::double_option",
62 skip_serializing_if = "Option::is_none"
63 )]
64 pub outer_height: Option<Option<i32>>,
65 #[serde(
67 rename = "outer_depth",
68 default,
69 with = "::serde_with::rust::double_option",
70 skip_serializing_if = "Option::is_none"
71 )]
72 pub outer_depth: Option<Option<i32>>,
73 #[serde(
74 rename = "outer_unit",
75 default,
76 with = "::serde_with::rust::double_option",
77 skip_serializing_if = "Option::is_none"
78 )]
79 pub outer_unit: Option<Option<Box<crate::models::RackOuterUnit>>>,
80 #[serde(
81 rename = "weight",
82 default,
83 with = "::serde_with::rust::double_option",
84 skip_serializing_if = "Option::is_none"
85 )]
86 pub weight: Option<Option<f64>>,
87 #[serde(
89 rename = "max_weight",
90 default,
91 with = "::serde_with::rust::double_option",
92 skip_serializing_if = "Option::is_none"
93 )]
94 pub max_weight: Option<Option<i32>>,
95 #[serde(
96 rename = "weight_unit",
97 default,
98 with = "::serde_with::rust::double_option",
99 skip_serializing_if = "Option::is_none"
100 )]
101 pub weight_unit: Option<Option<Box<crate::models::DeviceTypeWeightUnit>>>,
102 #[serde(
104 rename = "mounting_depth",
105 default,
106 with = "::serde_with::rust::double_option",
107 skip_serializing_if = "Option::is_none"
108 )]
109 pub mounting_depth: Option<Option<i32>>,
110 #[serde(
111 rename = "owner",
112 default,
113 with = "::serde_with::rust::double_option",
114 skip_serializing_if = "Option::is_none"
115 )]
116 pub owner: Option<Option<Box<crate::models::BriefOwner>>>,
117 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
118 pub comments: Option<String>,
119 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
120 pub tags: Option<Vec<crate::models::NestedTag>>,
121 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
122 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
123 #[serde(
124 rename = "created",
125 default,
126 with = "::serde_with::rust::double_option",
127 skip_serializing_if = "Option::is_none"
128 )]
129 pub created: Option<Option<String>>,
130 #[serde(
131 rename = "last_updated",
132 default,
133 with = "::serde_with::rust::double_option",
134 skip_serializing_if = "Option::is_none"
135 )]
136 pub last_updated: Option<Option<String>>,
137 #[serde(rename = "rack_count", skip_serializing_if = "Option::is_none")]
138 pub rack_count: Option<i32>,
139}
140
141impl RackType {
142 pub fn new(
144 manufacturer: crate::models::BriefManufacturer,
145 model: String,
146 slug: String,
147 ) -> RackType {
148 RackType {
149 id: None,
150 url: None,
151 display_url: None,
152 display: None,
153 manufacturer: Box::new(manufacturer),
154 model,
155 slug,
156 description: None,
157 form_factor: None,
158 width: None,
159 u_height: None,
160 starting_unit: None,
161 desc_units: None,
162 outer_width: None,
163 outer_height: None,
164 outer_depth: None,
165 outer_unit: None,
166 weight: None,
167 max_weight: None,
168 weight_unit: None,
169 mounting_depth: None,
170 owner: None,
171 comments: None,
172 tags: None,
173 custom_fields: None,
174 created: None,
175 last_updated: None,
176 rack_count: None,
177 }
178 }
179}