1 - | // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2 - | pub fn ser_instance_requirements_request(
|
3 - | object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
|
4 - | input: &crate::types::InstanceRequirementsRequest,
|
5 - | ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
|
6 - | if let Some(var_1) = &input.v_cpu_count {
|
7 - | #[allow(unused_mut)]
|
8 - | let mut object_2 = object.key("vCpuCount").start_object();
|
9 - | crate::protocol_serde::shape_v_cpu_count_range_request::ser_v_cpu_count_range_request(&mut object_2, var_1)?;
|
10 - | object_2.finish();
|
11 - | }
|
12 - | if let Some(var_3) = &input.memory_mib {
|
13 - | #[allow(unused_mut)]
|
14 - | let mut object_4 = object.key("memoryMiB").start_object();
|
15 - | crate::protocol_serde::shape_memory_mib_request::ser_memory_mib_request(&mut object_4, var_3)?;
|
16 - | object_4.finish();
|
17 - | }
|
18 - | if let Some(var_5) = &input.cpu_manufacturers {
|
19 - | let mut array_6 = object.key("cpuManufacturers").start_array();
|
20 - | for item_7 in var_5 {
|
21 - | {
|
22 - | array_6.value().string(item_7.as_str());
|
23 - | }
|
24 - | }
|
25 - | array_6.finish();
|
26 - | }
|
27 - | if let Some(var_8) = &input.memory_gib_per_v_cpu {
|
28 - | #[allow(unused_mut)]
|
29 - | let mut object_9 = object.key("memoryGiBPerVCpu").start_object();
|
30 - | crate::protocol_serde::shape_memory_gib_per_v_cpu_request::ser_memory_gib_per_v_cpu_request(&mut object_9, var_8)?;
|
31 - | object_9.finish();
|
32 - | }
|
33 - | if let Some(var_10) = &input.excluded_instance_types {
|
34 - | let mut array_11 = object.key("excludedInstanceTypes").start_array();
|
35 - | for item_12 in var_10 {
|
36 - | {
|
37 - | array_11.value().string(item_12.as_str());
|
38 - | }
|
39 - | }
|
40 - | array_11.finish();
|
41 - | }
|
42 - | if let Some(var_13) = &input.instance_generations {
|
43 - | let mut array_14 = object.key("instanceGenerations").start_array();
|
44 - | for item_15 in var_13 {
|
45 - | {
|
46 - | array_14.value().string(item_15.as_str());
|
47 - | }
|
48 - | }
|
49 - | array_14.finish();
|
50 - | }
|
51 - | if let Some(var_16) = &input.spot_max_price_percentage_over_lowest_price {
|
52 - | object.key("spotMaxPricePercentageOverLowestPrice").number(
|
53 - | #[allow(clippy::useless_conversion)]
|
54 - | ::aws_smithy_types::Number::NegInt((*var_16).into()),
|
55 - | );
|
56 - | }
|
57 - | if let Some(var_17) = &input.on_demand_max_price_percentage_over_lowest_price {
|
58 - | object.key("onDemandMaxPricePercentageOverLowestPrice").number(
|
59 - | #[allow(clippy::useless_conversion)]
|
60 - | ::aws_smithy_types::Number::NegInt((*var_17).into()),
|
61 - | );
|
62 - | }
|
63 - | if let Some(var_18) = &input.bare_metal {
|
64 - | object.key("bareMetal").string(var_18.as_str());
|
65 - | }
|
66 - | if let Some(var_19) = &input.burstable_performance {
|
67 - | object.key("burstablePerformance").string(var_19.as_str());
|
68 - | }
|
69 - | if let Some(var_20) = &input.require_hibernate_support {
|
70 - | object.key("requireHibernateSupport").boolean(*var_20);
|
71 - | }
|
72 - | if let Some(var_21) = &input.network_interface_count {
|
73 - | #[allow(unused_mut)]
|
74 - | let mut object_22 = object.key("networkInterfaceCount").start_object();
|
75 - | crate::protocol_serde::shape_network_interface_count_request::ser_network_interface_count_request(&mut object_22, var_21)?;
|
76 - | object_22.finish();
|
77 - | }
|
78 - | if let Some(var_23) = &input.local_storage {
|
79 - | object.key("localStorage").string(var_23.as_str());
|
80 - | }
|
81 - | if let Some(var_24) = &input.local_storage_types {
|
82 - | let mut array_25 = object.key("localStorageTypes").start_array();
|
83 - | for item_26 in var_24 {
|
84 - | {
|
85 - | array_25.value().string(item_26.as_str());
|
86 - | }
|
87 - | }
|
88 - | array_25.finish();
|
89 - | }
|
90 - | if let Some(var_27) = &input.total_local_storage_gb {
|
91 - | #[allow(unused_mut)]
|
92 - | let mut object_28 = object.key("totalLocalStorageGB").start_object();
|
93 - | crate::protocol_serde::shape_total_local_storage_gb_request::ser_total_local_storage_gb_request(&mut object_28, var_27)?;
|
94 - | object_28.finish();
|
95 - | }
|
96 - | if let Some(var_29) = &input.baseline_ebs_bandwidth_mbps {
|
97 - | #[allow(unused_mut)]
|
98 - | let mut object_30 = object.key("baselineEbsBandwidthMbps").start_object();
|
99 - | crate::protocol_serde::shape_baseline_ebs_bandwidth_mbps_request::ser_baseline_ebs_bandwidth_mbps_request(&mut object_30, var_29)?;
|
100 - | object_30.finish();
|
101 - | }
|
102 - | if let Some(var_31) = &input.accelerator_types {
|
103 - | let mut array_32 = object.key("acceleratorTypes").start_array();
|
104 - | for item_33 in var_31 {
|
105 - | {
|
106 - | array_32.value().string(item_33.as_str());
|
107 - | }
|
108 - | }
|
109 - | array_32.finish();
|
110 - | }
|
111 - | if let Some(var_34) = &input.accelerator_count {
|
112 - | #[allow(unused_mut)]
|
113 - | let mut object_35 = object.key("acceleratorCount").start_object();
|
114 - | crate::protocol_serde::shape_accelerator_count_request::ser_accelerator_count_request(&mut object_35, var_34)?;
|
115 - | object_35.finish();
|
116 - | }
|
117 - | if let Some(var_36) = &input.accelerator_manufacturers {
|
118 - | let mut array_37 = object.key("acceleratorManufacturers").start_array();
|
119 - | for item_38 in var_36 {
|
120 - | {
|
121 - | array_37.value().string(item_38.as_str());
|
122 - | }
|
123 - | }
|
124 - | array_37.finish();
|
125 - | }
|
126 - | if let Some(var_39) = &input.accelerator_names {
|
127 - | let mut array_40 = object.key("acceleratorNames").start_array();
|
128 - | for item_41 in var_39 {
|
129 - | {
|
130 - | array_40.value().string(item_41.as_str());
|
131 - | }
|
132 - | }
|
133 - | array_40.finish();
|
134 - | }
|
135 - | if let Some(var_42) = &input.accelerator_total_memory_mib {
|
136 - | #[allow(unused_mut)]
|
137 - | let mut object_43 = object.key("acceleratorTotalMemoryMiB").start_object();
|
138 - | crate::protocol_serde::shape_accelerator_total_memory_mib_request::ser_accelerator_total_memory_mib_request(&mut object_43, var_42)?;
|
139 - | object_43.finish();
|
140 - | }
|
141 - | if let Some(var_44) = &input.network_bandwidth_gbps {
|
142 - | #[allow(unused_mut)]
|
143 - | let mut object_45 = object.key("networkBandwidthGbps").start_object();
|
144 - | crate::protocol_serde::shape_network_bandwidth_gbps_request::ser_network_bandwidth_gbps_request(&mut object_45, var_44)?;
|
145 - | object_45.finish();
|
146 - | }
|
147 - | if let Some(var_46) = &input.allowed_instance_types {
|
148 - | let mut array_47 = object.key("allowedInstanceTypes").start_array();
|
149 - | for item_48 in var_46 {
|
150 - | {
|
151 - | array_47.value().string(item_48.as_str());
|
152 - | }
|
153 - | }
|
154 - | array_47.finish();
|
155 - | }
|
156 - | if let Some(var_49) = &input.max_spot_price_as_percentage_of_optimal_on_demand_price {
|
157 - | object.key("maxSpotPriceAsPercentageOfOptimalOnDemandPrice").number(
|
158 - | #[allow(clippy::useless_conversion)]
|
159 - | ::aws_smithy_types::Number::NegInt((*var_49).into()),
|
160 - | );
|
161 - | }
|
162 - | Ok(())
|
163 - | }
|
164 - |
|
165 - | pub(crate) fn de_instance_requirements_request<'a, I>(
|
166 - | tokens: &mut ::std::iter::Peekable<I>,
|
167 - | _value: &'a [u8],
|
168 - | ) -> ::std::result::Result<Option<crate::types::InstanceRequirementsRequest>, ::aws_smithy_json::deserialize::error::DeserializeError>
|
169 - | where
|
170 - | I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
|
171 - | {
|
172 - | match tokens.next().transpose()? {
|
173 - | Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
|
174 - | Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
|
175 - | #[allow(unused_mut)]
|
176 - | let mut builder = crate::types::builders::InstanceRequirementsRequestBuilder::default();
|
177 - | loop {
|
178 - | match tokens.next().transpose()? {
|
179 - | Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
|
180 - | Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
|
181 - | "vCpuCount" => {
|
182 - | builder = builder.set_v_cpu_count(crate::protocol_serde::shape_v_cpu_count_range_request::de_v_cpu_count_range_request(
|
183 - | tokens, _value,
|
184 - | )?);
|
185 - | }
|
186 - | "memoryMiB" => {
|
187 - | builder = builder.set_memory_mib(crate::protocol_serde::shape_memory_mib_request::de_memory_mib_request(tokens, _value)?);
|
188 - | }
|
189 - | "cpuManufacturers" => {
|
190 - | builder = builder.set_cpu_manufacturers(crate::protocol_serde::shape_cpu_manufacturer_set::de_cpu_manufacturer_set(
|
191 - | tokens, _value,
|
192 - | )?);
|
193 - | }
|
194 - | "memoryGiBPerVCpu" => {
|
195 - | builder = builder.set_memory_gib_per_v_cpu(
|
196 - | crate::protocol_serde::shape_memory_gib_per_v_cpu_request::de_memory_gib_per_v_cpu_request(tokens, _value)?,
|
197 - | );
|
198 - | }
|
199 - | "excludedInstanceTypes" => {
|
200 - | builder = builder.set_excluded_instance_types(
|
201 - | crate::protocol_serde::shape_excluded_instance_type_set::de_excluded_instance_type_set(tokens, _value)?,
|
202 - | );
|
203 - | }
|
204 - | "instanceGenerations" => {
|
205 - | builder = builder.set_instance_generations(
|
206 - | crate::protocol_serde::shape_instance_generation_set::de_instance_generation_set(tokens, _value)?,
|
207 - | );
|
208 - | }
|
209 - | "spotMaxPricePercentageOverLowestPrice" => {
|
210 - | builder = builder.set_spot_max_price_percentage_over_lowest_price(
|
211 - | ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
|
212 - | .map(i32::try_from)
|
213 - | .transpose()?,
|
214 - | );
|
215 - | }
|
216 - | "onDemandMaxPricePercentageOverLowestPrice" => {
|
217 - | builder = builder.set_on_demand_max_price_percentage_over_lowest_price(
|
218 - | ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
|
219 - | .map(i32::try_from)
|
220 - | .transpose()?,
|
221 - | );
|
222 - | }
|
223 - | "bareMetal" => {
|
224 - | builder = builder.set_bare_metal(
|
225 - | ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
|
226 - | .map(|s| s.to_unescaped().map(|u| crate::types::BareMetal::from(u.as_ref())))
|
227 - | .transpose()?,
|
228 - | );
|
229 - | }
|
230 - | "burstablePerformance" => {
|
231 - | builder = builder.set_burstable_performance(
|
232 - | ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
|
233 - | .map(|s| s.to_unescaped().map(|u| crate::types::BurstablePerformance::from(u.as_ref())))
|
234 - | .transpose()?,
|
235 - | );
|
236 - | }
|
237 - | "requireHibernateSupport" => {
|
238 - | builder =
|
239 - | builder.set_require_hibernate_support(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
|
240 - | }
|
241 - | "networkInterfaceCount" => {
|
242 - | builder = builder.set_network_interface_count(
|
243 - | crate::protocol_serde::shape_network_interface_count_request::de_network_interface_count_request(tokens, _value)?,
|
244 - | );
|
245 - | }
|
246 - | "localStorage" => {
|
247 - | builder = builder.set_local_storage(
|
248 - | ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
|
249 - | .map(|s| s.to_unescaped().map(|u| crate::types::LocalStorage::from(u.as_ref())))
|
250 - | .transpose()?,
|
251 - | );
|
252 - | }
|
253 - | "localStorageTypes" => {
|
254 - | builder = builder.set_local_storage_types(
|
255 - | crate::protocol_serde::shape_local_storage_type_set::de_local_storage_type_set(tokens, _value)?,
|
256 - | );
|
257 - | }
|
258 - | "totalLocalStorageGB" => {
|
259 - | builder = builder.set_total_local_storage_gb(
|
260 - | crate::protocol_serde::shape_total_local_storage_gb_request::de_total_local_storage_gb_request(tokens, _value)?,
|
261 - | );
|
262 - | }
|
263 - | "baselineEbsBandwidthMbps" => {
|
264 - | builder = builder.set_baseline_ebs_bandwidth_mbps(
|
265 - | crate::protocol_serde::shape_baseline_ebs_bandwidth_mbps_request::de_baseline_ebs_bandwidth_mbps_request(
|
266 - | tokens, _value,
|
267 - | )?,
|
268 - | );
|
269 - | }
|
270 - | "acceleratorTypes" => {
|
271 - | builder = builder.set_accelerator_types(crate::protocol_serde::shape_accelerator_type_set::de_accelerator_type_set(
|
272 - | tokens, _value,
|
273 - | )?);
|
274 - | }
|
275 - | "acceleratorCount" => {
|
276 - | builder = builder.set_accelerator_count(
|
277 - | crate::protocol_serde::shape_accelerator_count_request::de_accelerator_count_request(tokens, _value)?,
|
278 - | );
|
279 - | }
|
280 - | "acceleratorManufacturers" => {
|
281 - | builder = builder.set_accelerator_manufacturers(
|
282 - | crate::protocol_serde::shape_accelerator_manufacturer_set::de_accelerator_manufacturer_set(tokens, _value)?,
|
283 - | );
|
284 - | }
|
285 - | "acceleratorNames" => {
|
286 - | builder = builder.set_accelerator_names(crate::protocol_serde::shape_accelerator_name_set::de_accelerator_name_set(
|
287 - | tokens, _value,
|
288 - | )?);
|
289 - | }
|
290 - | "acceleratorTotalMemoryMiB" => {
|
291 - | builder = builder.set_accelerator_total_memory_mib(
|
292 - | crate::protocol_serde::shape_accelerator_total_memory_mib_request::de_accelerator_total_memory_mib_request(
|
293 - | tokens, _value,
|
294 - | )?,
|
295 - | );
|
296 - | }
|
297 - | "networkBandwidthGbps" => {
|
298 - | builder = builder.set_network_bandwidth_gbps(
|
299 - | crate::protocol_serde::shape_network_bandwidth_gbps_request::de_network_bandwidth_gbps_request(tokens, _value)?,
|
300 - | );
|
301 - | }
|
302 - | "allowedInstanceTypes" => {
|
303 - | builder = builder.set_allowed_instance_types(
|
304 - | crate::protocol_serde::shape_allowed_instance_type_set::de_allowed_instance_type_set(tokens, _value)?,
|
305 - | );
|
306 - | }
|
307 - | "maxSpotPriceAsPercentageOfOptimalOnDemandPrice" => {
|
308 - | builder = builder.set_max_spot_price_as_percentage_of_optimal_on_demand_price(
|
309 - | ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
|
310 - | .map(i32::try_from)
|
311 - | .transpose()?,
|
312 - | );
|
313 - | }
|
314 - | _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
|
315 - | },
|
316 - | other => {
|
317 - | return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
|
318 - | "expected object key or end object, found: {other:?}"
|
319 - | )))
|
320 - | }
|
321 - | }
|
322 - | }
|
323 - | Ok(Some(crate::serde_util::instance_requirements_request_correct_errors(builder).build()))
|
324 - | }
|
325 - | _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
|
326 - | "expected start object or null",
|
327 - | )),
|
328 - | }
|
329 - | }
|