aws_sdk_ec2/protocol_serde/
shape_reserved_instances_configuration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(unused_mut)]
3pub fn ser_reserved_instances_configuration(
4    mut writer: ::aws_smithy_query::QueryValueWriter,
5    input: &crate::types::ReservedInstancesConfiguration,
6) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
7    #[allow(unused_mut)]
8    let mut scope_1 = writer.prefix("AvailabilityZone");
9    if let Some(var_2) = &input.availability_zone {
10        scope_1.string(var_2);
11    }
12    #[allow(unused_mut)]
13    let mut scope_3 = writer.prefix("InstanceCount");
14    if let Some(var_4) = &input.instance_count {
15        scope_3.number(
16            #[allow(clippy::useless_conversion)]
17            ::aws_smithy_types::Number::NegInt((*var_4).into()),
18        );
19    }
20    #[allow(unused_mut)]
21    let mut scope_5 = writer.prefix("InstanceType");
22    if let Some(var_6) = &input.instance_type {
23        scope_5.string(var_6.as_str());
24    }
25    #[allow(unused_mut)]
26    let mut scope_7 = writer.prefix("Platform");
27    if let Some(var_8) = &input.platform {
28        scope_7.string(var_8);
29    }
30    #[allow(unused_mut)]
31    let mut scope_9 = writer.prefix("Scope");
32    if let Some(var_10) = &input.scope {
33        scope_9.string(var_10.as_str());
34    }
35    #[allow(unused_mut)]
36    let mut scope_11 = writer.prefix("AvailabilityZoneId");
37    if let Some(var_12) = &input.availability_zone_id {
38        scope_11.string(var_12);
39    }
40    Ok(())
41}
42
43#[allow(clippy::needless_question_mark)]
44pub fn de_reserved_instances_configuration(
45    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
46) -> ::std::result::Result<crate::types::ReservedInstancesConfiguration, ::aws_smithy_xml::decode::XmlDecodeError> {
47    #[allow(unused_mut)]
48    let mut builder = crate::types::ReservedInstancesConfiguration::builder();
49    while let Some(mut tag) = decoder.next_tag() {
50        match tag.start_el() {
51            s if s.matches("availabilityZone") /* AvailabilityZone com.amazonaws.ec2#ReservedInstancesConfiguration$AvailabilityZone */ =>  {
52                let var_13 =
53                    Some(
54                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
55                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
56                            .into()
57                        )
58                        ?
59                    )
60                ;
61                builder = builder.set_availability_zone(var_13);
62            }
63            ,
64            s if s.matches("instanceCount") /* InstanceCount com.amazonaws.ec2#ReservedInstancesConfiguration$InstanceCount */ =>  {
65                let var_14 =
66                    Some(
67                         {
68                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
69                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
70                            )
71                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
72                        }
73                        ?
74                    )
75                ;
76                builder = builder.set_instance_count(var_14);
77            }
78            ,
79            s if s.matches("instanceType") /* InstanceType com.amazonaws.ec2#ReservedInstancesConfiguration$InstanceType */ =>  {
80                let var_15 =
81                    Some(
82                        Result::<crate::types::InstanceType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
83                            crate::types::InstanceType::from(
84                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
85                            )
86                        )
87                        ?
88                    )
89                ;
90                builder = builder.set_instance_type(var_15);
91            }
92            ,
93            s if s.matches("platform") /* Platform com.amazonaws.ec2#ReservedInstancesConfiguration$Platform */ =>  {
94                let var_16 =
95                    Some(
96                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
97                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
98                            .into()
99                        )
100                        ?
101                    )
102                ;
103                builder = builder.set_platform(var_16);
104            }
105            ,
106            s if s.matches("scope") /* Scope com.amazonaws.ec2#ReservedInstancesConfiguration$Scope */ =>  {
107                let var_17 =
108                    Some(
109                        Result::<crate::types::Scope, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
110                            crate::types::Scope::from(
111                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
112                            )
113                        )
114                        ?
115                    )
116                ;
117                builder = builder.set_scope(var_17);
118            }
119            ,
120            s if s.matches("availabilityZoneId") /* AvailabilityZoneId com.amazonaws.ec2#ReservedInstancesConfiguration$AvailabilityZoneId */ =>  {
121                let var_18 =
122                    Some(
123                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
124                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
125                            .into()
126                        )
127                        ?
128                    )
129                ;
130                builder = builder.set_availability_zone_id(var_18);
131            }
132            ,
133            _ => {}
134        }
135    }
136    Ok(builder.build())
137}