#[allow(unused_mut)]
pub fn ser_instance_requirements(
mut writer: ::aws_smithy_query::QueryValueWriter,
input: &crate::types::InstanceRequirements,
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
#[allow(unused_mut)]
let mut scope_1 = writer.prefix("VCpuCount");
if let Some(var_2) = &input.v_cpu_count {
crate::protocol_serde::shape_v_cpu_count_range::ser_v_cpu_count_range(scope_1, var_2)?;
}
#[allow(unused_mut)]
let mut scope_3 = writer.prefix("MemoryMiB");
if let Some(var_4) = &input.memory_mib {
crate::protocol_serde::shape_memory_mib::ser_memory_mib(scope_3, var_4)?;
}
#[allow(unused_mut)]
let mut scope_5 = writer.prefix("CpuManufacturerSet");
if let Some(var_6) = &input.cpu_manufacturers {
if !var_6.is_empty() {
let mut list_8 = scope_5.start_list(true, Some("item"));
for item_7 in var_6 {
#[allow(unused_mut)]
let mut entry_9 = list_8.entry();
entry_9.string(item_7.as_str());
}
list_8.finish();
}
}
#[allow(unused_mut)]
let mut scope_10 = writer.prefix("MemoryGiBPerVCpu");
if let Some(var_11) = &input.memory_gib_per_v_cpu {
crate::protocol_serde::shape_memory_gib_per_v_cpu::ser_memory_gib_per_v_cpu(scope_10, var_11)?;
}
#[allow(unused_mut)]
let mut scope_12 = writer.prefix("ExcludedInstanceTypeSet");
if let Some(var_13) = &input.excluded_instance_types {
if !var_13.is_empty() {
let mut list_15 = scope_12.start_list(true, Some("item"));
for item_14 in var_13 {
#[allow(unused_mut)]
let mut entry_16 = list_15.entry();
entry_16.string(item_14);
}
list_15.finish();
}
}
#[allow(unused_mut)]
let mut scope_17 = writer.prefix("InstanceGenerationSet");
if let Some(var_18) = &input.instance_generations {
if !var_18.is_empty() {
let mut list_20 = scope_17.start_list(true, Some("item"));
for item_19 in var_18 {
#[allow(unused_mut)]
let mut entry_21 = list_20.entry();
entry_21.string(item_19.as_str());
}
list_20.finish();
}
}
#[allow(unused_mut)]
let mut scope_22 = writer.prefix("SpotMaxPricePercentageOverLowestPrice");
if let Some(var_23) = &input.spot_max_price_percentage_over_lowest_price {
scope_22.number(
#[allow(clippy::useless_conversion)]
::aws_smithy_types::Number::NegInt((*var_23).into()),
);
}
#[allow(unused_mut)]
let mut scope_24 = writer.prefix("OnDemandMaxPricePercentageOverLowestPrice");
if let Some(var_25) = &input.on_demand_max_price_percentage_over_lowest_price {
scope_24.number(
#[allow(clippy::useless_conversion)]
::aws_smithy_types::Number::NegInt((*var_25).into()),
);
}
#[allow(unused_mut)]
let mut scope_26 = writer.prefix("BareMetal");
if let Some(var_27) = &input.bare_metal {
scope_26.string(var_27.as_str());
}
#[allow(unused_mut)]
let mut scope_28 = writer.prefix("BurstablePerformance");
if let Some(var_29) = &input.burstable_performance {
scope_28.string(var_29.as_str());
}
#[allow(unused_mut)]
let mut scope_30 = writer.prefix("RequireHibernateSupport");
if let Some(var_31) = &input.require_hibernate_support {
scope_30.boolean(*var_31);
}
#[allow(unused_mut)]
let mut scope_32 = writer.prefix("NetworkInterfaceCount");
if let Some(var_33) = &input.network_interface_count {
crate::protocol_serde::shape_network_interface_count::ser_network_interface_count(scope_32, var_33)?;
}
#[allow(unused_mut)]
let mut scope_34 = writer.prefix("LocalStorage");
if let Some(var_35) = &input.local_storage {
scope_34.string(var_35.as_str());
}
#[allow(unused_mut)]
let mut scope_36 = writer.prefix("LocalStorageTypeSet");
if let Some(var_37) = &input.local_storage_types {
if !var_37.is_empty() {
let mut list_39 = scope_36.start_list(true, Some("item"));
for item_38 in var_37 {
#[allow(unused_mut)]
let mut entry_40 = list_39.entry();
entry_40.string(item_38.as_str());
}
list_39.finish();
}
}
#[allow(unused_mut)]
let mut scope_41 = writer.prefix("TotalLocalStorageGB");
if let Some(var_42) = &input.total_local_storage_gb {
crate::protocol_serde::shape_total_local_storage_gb::ser_total_local_storage_gb(scope_41, var_42)?;
}
#[allow(unused_mut)]
let mut scope_43 = writer.prefix("BaselineEbsBandwidthMbps");
if let Some(var_44) = &input.baseline_ebs_bandwidth_mbps {
crate::protocol_serde::shape_baseline_ebs_bandwidth_mbps::ser_baseline_ebs_bandwidth_mbps(scope_43, var_44)?;
}
#[allow(unused_mut)]
let mut scope_45 = writer.prefix("AcceleratorTypeSet");
if let Some(var_46) = &input.accelerator_types {
if !var_46.is_empty() {
let mut list_48 = scope_45.start_list(true, Some("item"));
for item_47 in var_46 {
#[allow(unused_mut)]
let mut entry_49 = list_48.entry();
entry_49.string(item_47.as_str());
}
list_48.finish();
}
}
#[allow(unused_mut)]
let mut scope_50 = writer.prefix("AcceleratorCount");
if let Some(var_51) = &input.accelerator_count {
crate::protocol_serde::shape_accelerator_count::ser_accelerator_count(scope_50, var_51)?;
}
#[allow(unused_mut)]
let mut scope_52 = writer.prefix("AcceleratorManufacturerSet");
if let Some(var_53) = &input.accelerator_manufacturers {
if !var_53.is_empty() {
let mut list_55 = scope_52.start_list(true, Some("item"));
for item_54 in var_53 {
#[allow(unused_mut)]
let mut entry_56 = list_55.entry();
entry_56.string(item_54.as_str());
}
list_55.finish();
}
}
#[allow(unused_mut)]
let mut scope_57 = writer.prefix("AcceleratorNameSet");
if let Some(var_58) = &input.accelerator_names {
if !var_58.is_empty() {
let mut list_60 = scope_57.start_list(true, Some("item"));
for item_59 in var_58 {
#[allow(unused_mut)]
let mut entry_61 = list_60.entry();
entry_61.string(item_59.as_str());
}
list_60.finish();
}
}
#[allow(unused_mut)]
let mut scope_62 = writer.prefix("AcceleratorTotalMemoryMiB");
if let Some(var_63) = &input.accelerator_total_memory_mib {
crate::protocol_serde::shape_accelerator_total_memory_mib::ser_accelerator_total_memory_mib(scope_62, var_63)?;
}
#[allow(unused_mut)]
let mut scope_64 = writer.prefix("NetworkBandwidthGbps");
if let Some(var_65) = &input.network_bandwidth_gbps {
crate::protocol_serde::shape_network_bandwidth_gbps::ser_network_bandwidth_gbps(scope_64, var_65)?;
}
#[allow(unused_mut)]
let mut scope_66 = writer.prefix("AllowedInstanceTypeSet");
if let Some(var_67) = &input.allowed_instance_types {
if !var_67.is_empty() {
let mut list_69 = scope_66.start_list(true, Some("item"));
for item_68 in var_67 {
#[allow(unused_mut)]
let mut entry_70 = list_69.entry();
entry_70.string(item_68);
}
list_69.finish();
}
}
#[allow(unused_mut)]
let mut scope_71 = writer.prefix("MaxSpotPriceAsPercentageOfOptimalOnDemandPrice");
if let Some(var_72) = &input.max_spot_price_as_percentage_of_optimal_on_demand_price {
scope_71.number(
#[allow(clippy::useless_conversion)]
::aws_smithy_types::Number::NegInt((*var_72).into()),
);
}
#[allow(unused_mut)]
let mut scope_73 = writer.prefix("BaselinePerformanceFactors");
if let Some(var_74) = &input.baseline_performance_factors {
crate::protocol_serde::shape_baseline_performance_factors::ser_baseline_performance_factors(scope_73, var_74)?;
}
#[allow(unused_mut)]
let mut scope_75 = writer.prefix("RequireEncryptionInTransit");
if let Some(var_76) = &input.require_encryption_in_transit {
scope_75.boolean(*var_76);
}
Ok(())
}
#[allow(clippy::needless_question_mark)]
pub fn de_instance_requirements(
decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
) -> ::std::result::Result<crate::types::InstanceRequirements, ::aws_smithy_xml::decode::XmlDecodeError> {
#[allow(unused_mut)]
let mut builder = crate::types::InstanceRequirements::builder();
while let Some(mut tag) = decoder.next_tag() {
match tag.start_el() {
s if s.matches("vCpuCount") => {
let var_77 =
Some(
crate::protocol_serde::shape_v_cpu_count_range::de_v_cpu_count_range(&mut tag)
?
)
;
builder = builder.set_v_cpu_count(var_77);
}
,
s if s.matches("memoryMiB") => {
let var_78 =
Some(
crate::protocol_serde::shape_memory_mib::de_memory_mib(&mut tag)
?
)
;
builder = builder.set_memory_mib(var_78);
}
,
s if s.matches("cpuManufacturerSet") => {
let var_79 =
Some(
crate::protocol_serde::shape_cpu_manufacturer_set::de_cpu_manufacturer_set(&mut tag)
?
)
;
builder = builder.set_cpu_manufacturers(var_79);
}
,
s if s.matches("memoryGiBPerVCpu") => {
let var_80 =
Some(
crate::protocol_serde::shape_memory_gib_per_v_cpu::de_memory_gib_per_v_cpu(&mut tag)
?
)
;
builder = builder.set_memory_gib_per_v_cpu(var_80);
}
,
s if s.matches("excludedInstanceTypeSet") => {
let var_81 =
Some(
crate::protocol_serde::shape_excluded_instance_type_set::de_excluded_instance_type_set(&mut tag)
?
)
;
builder = builder.set_excluded_instance_types(var_81);
}
,
s if s.matches("instanceGenerationSet") => {
let var_82 =
Some(
crate::protocol_serde::shape_instance_generation_set::de_instance_generation_set(&mut tag)
?
)
;
builder = builder.set_instance_generations(var_82);
}
,
s if s.matches("spotMaxPricePercentageOverLowestPrice") => {
let var_83 =
Some(
{
<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
}
?
)
;
builder = builder.set_spot_max_price_percentage_over_lowest_price(var_83);
}
,
s if s.matches("onDemandMaxPricePercentageOverLowestPrice") => {
let var_84 =
Some(
{
<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
}
?
)
;
builder = builder.set_on_demand_max_price_percentage_over_lowest_price(var_84);
}
,
s if s.matches("bareMetal") => {
let var_85 =
Some(
Result::<crate::types::BareMetal, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::types::BareMetal::from(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_bare_metal(var_85);
}
,
s if s.matches("burstablePerformance") => {
let var_86 =
Some(
Result::<crate::types::BurstablePerformance, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::types::BurstablePerformance::from(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_burstable_performance(var_86);
}
,
s if s.matches("requireHibernateSupport") => {
let var_87 =
Some(
{
<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
}
?
)
;
builder = builder.set_require_hibernate_support(var_87);
}
,
s if s.matches("networkInterfaceCount") => {
let var_88 =
Some(
crate::protocol_serde::shape_network_interface_count::de_network_interface_count(&mut tag)
?
)
;
builder = builder.set_network_interface_count(var_88);
}
,
s if s.matches("localStorage") => {
let var_89 =
Some(
Result::<crate::types::LocalStorage, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::types::LocalStorage::from(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_local_storage(var_89);
}
,
s if s.matches("localStorageTypeSet") => {
let var_90 =
Some(
crate::protocol_serde::shape_local_storage_type_set::de_local_storage_type_set(&mut tag)
?
)
;
builder = builder.set_local_storage_types(var_90);
}
,
s if s.matches("totalLocalStorageGB") => {
let var_91 =
Some(
crate::protocol_serde::shape_total_local_storage_gb::de_total_local_storage_gb(&mut tag)
?
)
;
builder = builder.set_total_local_storage_gb(var_91);
}
,
s if s.matches("baselineEbsBandwidthMbps") => {
let var_92 =
Some(
crate::protocol_serde::shape_baseline_ebs_bandwidth_mbps::de_baseline_ebs_bandwidth_mbps(&mut tag)
?
)
;
builder = builder.set_baseline_ebs_bandwidth_mbps(var_92);
}
,
s if s.matches("acceleratorTypeSet") => {
let var_93 =
Some(
crate::protocol_serde::shape_accelerator_type_set::de_accelerator_type_set(&mut tag)
?
)
;
builder = builder.set_accelerator_types(var_93);
}
,
s if s.matches("acceleratorCount") => {
let var_94 =
Some(
crate::protocol_serde::shape_accelerator_count::de_accelerator_count(&mut tag)
?
)
;
builder = builder.set_accelerator_count(var_94);
}
,
s if s.matches("acceleratorManufacturerSet") => {
let var_95 =
Some(
crate::protocol_serde::shape_accelerator_manufacturer_set::de_accelerator_manufacturer_set(&mut tag)
?
)
;
builder = builder.set_accelerator_manufacturers(var_95);
}
,
s if s.matches("acceleratorNameSet") => {
let var_96 =
Some(
crate::protocol_serde::shape_accelerator_name_set::de_accelerator_name_set(&mut tag)
?
)
;
builder = builder.set_accelerator_names(var_96);
}
,
s if s.matches("acceleratorTotalMemoryMiB") => {
let var_97 =
Some(
crate::protocol_serde::shape_accelerator_total_memory_mib::de_accelerator_total_memory_mib(&mut tag)
?
)
;
builder = builder.set_accelerator_total_memory_mib(var_97);
}
,
s if s.matches("networkBandwidthGbps") => {
let var_98 =
Some(
crate::protocol_serde::shape_network_bandwidth_gbps::de_network_bandwidth_gbps(&mut tag)
?
)
;
builder = builder.set_network_bandwidth_gbps(var_98);
}
,
s if s.matches("allowedInstanceTypeSet") => {
let var_99 =
Some(
crate::protocol_serde::shape_allowed_instance_type_set::de_allowed_instance_type_set(&mut tag)
?
)
;
builder = builder.set_allowed_instance_types(var_99);
}
,
s if s.matches("maxSpotPriceAsPercentageOfOptimalOnDemandPrice") => {
let var_100 =
Some(
{
<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
}
?
)
;
builder = builder.set_max_spot_price_as_percentage_of_optimal_on_demand_price(var_100);
}
,
s if s.matches("baselinePerformanceFactors") => {
let var_101 =
Some(
crate::protocol_serde::shape_baseline_performance_factors::de_baseline_performance_factors(&mut tag)
?
)
;
builder = builder.set_baseline_performance_factors(var_101);
}
,
s if s.matches("requireEncryptionInTransit") => {
let var_102 =
Some(
{
<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
}
?
)
;
builder = builder.set_require_encryption_in_transit(var_102);
}
,
_ => {}
}
}
Ok(builder.build())
}