aws_sdk_ec2/protocol_serde/
shape_describe_instance_attribute.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_describe_instance_attribute_http_error(
4    _response_status: u16,
5    _response_headers: &::aws_smithy_runtime_api::http::Headers,
6    _response_body: &[u8],
7) -> std::result::Result<
8    crate::operation::describe_instance_attribute::DescribeInstanceAttributeOutput,
9    crate::operation::describe_instance_attribute::DescribeInstanceAttributeError,
10> {
11    #[allow(unused_mut)]
12    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
13        .map_err(crate::operation::describe_instance_attribute::DescribeInstanceAttributeError::unhandled)?;
14    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
15    let generic = generic_builder.build();
16    Err(crate::operation::describe_instance_attribute::DescribeInstanceAttributeError::generic(
17        generic,
18    ))
19}
20
21#[allow(clippy::unnecessary_wraps)]
22pub fn de_describe_instance_attribute_http_response(
23    _response_status: u16,
24    _response_headers: &::aws_smithy_runtime_api::http::Headers,
25    _response_body: &[u8],
26) -> std::result::Result<
27    crate::operation::describe_instance_attribute::DescribeInstanceAttributeOutput,
28    crate::operation::describe_instance_attribute::DescribeInstanceAttributeError,
29> {
30    Ok({
31        #[allow(unused_mut)]
32        let mut output = crate::operation::describe_instance_attribute::builders::DescribeInstanceAttributeOutputBuilder::default();
33        output = crate::protocol_serde::shape_describe_instance_attribute::de_describe_instance_attribute(_response_body, output)
34            .map_err(crate::operation::describe_instance_attribute::DescribeInstanceAttributeError::unhandled)?;
35        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
36        output.build()
37    })
38}
39
40#[allow(unused_mut)]
41pub fn de_describe_instance_attribute(
42    inp: &[u8],
43    mut builder: crate::operation::describe_instance_attribute::builders::DescribeInstanceAttributeOutputBuilder,
44) -> std::result::Result<
45    crate::operation::describe_instance_attribute::builders::DescribeInstanceAttributeOutputBuilder,
46    ::aws_smithy_xml::decode::XmlDecodeError,
47> {
48    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
49
50    #[allow(unused_mut)]
51    let mut decoder = doc.root_element()?;
52    #[allow(unused_variables)]
53    let start_el = decoder.start_el();
54    if !(start_el.matches("DescribeInstanceAttributeResponse")) {
55        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
56            "invalid root, expected DescribeInstanceAttributeResponse got {:?}",
57            start_el
58        )));
59    }
60    while let Some(mut tag) = decoder.next_tag() {
61        match tag.start_el() {
62            s if s.matches("blockDeviceMapping") /* BlockDeviceMappings com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$BlockDeviceMappings */ =>  {
63                let var_1 =
64                    Some(
65                        crate::protocol_serde::shape_instance_block_device_mapping_list::de_instance_block_device_mapping_list(&mut tag)
66                        ?
67                    )
68                ;
69                builder = builder.set_block_device_mappings(var_1);
70            }
71            ,
72            s if s.matches("disableApiTermination") /* DisableApiTermination com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$DisableApiTermination */ =>  {
73                let var_2 =
74                    Some(
75                        crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
76                        ?
77                    )
78                ;
79                builder = builder.set_disable_api_termination(var_2);
80            }
81            ,
82            s if s.matches("enaSupport") /* EnaSupport com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$EnaSupport */ =>  {
83                let var_3 =
84                    Some(
85                        crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
86                        ?
87                    )
88                ;
89                builder = builder.set_ena_support(var_3);
90            }
91            ,
92            s if s.matches("enclaveOptions") /* EnclaveOptions com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$EnclaveOptions */ =>  {
93                let var_4 =
94                    Some(
95                        crate::protocol_serde::shape_enclave_options::de_enclave_options(&mut tag)
96                        ?
97                    )
98                ;
99                builder = builder.set_enclave_options(var_4);
100            }
101            ,
102            s if s.matches("ebsOptimized") /* EbsOptimized com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$EbsOptimized */ =>  {
103                let var_5 =
104                    Some(
105                        crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
106                        ?
107                    )
108                ;
109                builder = builder.set_ebs_optimized(var_5);
110            }
111            ,
112            s if s.matches("instanceId") /* InstanceId com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$InstanceId */ =>  {
113                let var_6 =
114                    Some(
115                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
116                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
117                            .into()
118                        )
119                        ?
120                    )
121                ;
122                builder = builder.set_instance_id(var_6);
123            }
124            ,
125            s if s.matches("instanceInitiatedShutdownBehavior") /* InstanceInitiatedShutdownBehavior com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$InstanceInitiatedShutdownBehavior */ =>  {
126                let var_7 =
127                    Some(
128                        crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
129                        ?
130                    )
131                ;
132                builder = builder.set_instance_initiated_shutdown_behavior(var_7);
133            }
134            ,
135            s if s.matches("instanceType") /* InstanceType com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$InstanceType */ =>  {
136                let var_8 =
137                    Some(
138                        crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
139                        ?
140                    )
141                ;
142                builder = builder.set_instance_type(var_8);
143            }
144            ,
145            s if s.matches("kernel") /* KernelId com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$KernelId */ =>  {
146                let var_9 =
147                    Some(
148                        crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
149                        ?
150                    )
151                ;
152                builder = builder.set_kernel_id(var_9);
153            }
154            ,
155            s if s.matches("productCodes") /* ProductCodes com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$ProductCodes */ =>  {
156                let var_10 =
157                    Some(
158                        crate::protocol_serde::shape_product_code_list::de_product_code_list(&mut tag)
159                        ?
160                    )
161                ;
162                builder = builder.set_product_codes(var_10);
163            }
164            ,
165            s if s.matches("ramdisk") /* RamdiskId com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$RamdiskId */ =>  {
166                let var_11 =
167                    Some(
168                        crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
169                        ?
170                    )
171                ;
172                builder = builder.set_ramdisk_id(var_11);
173            }
174            ,
175            s if s.matches("rootDeviceName") /* RootDeviceName com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$RootDeviceName */ =>  {
176                let var_12 =
177                    Some(
178                        crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
179                        ?
180                    )
181                ;
182                builder = builder.set_root_device_name(var_12);
183            }
184            ,
185            s if s.matches("sourceDestCheck") /* SourceDestCheck com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$SourceDestCheck */ =>  {
186                let var_13 =
187                    Some(
188                        crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
189                        ?
190                    )
191                ;
192                builder = builder.set_source_dest_check(var_13);
193            }
194            ,
195            s if s.matches("sriovNetSupport") /* SriovNetSupport com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$SriovNetSupport */ =>  {
196                let var_14 =
197                    Some(
198                        crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
199                        ?
200                    )
201                ;
202                builder = builder.set_sriov_net_support(var_14);
203            }
204            ,
205            s if s.matches("userData") /* UserData com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$UserData */ =>  {
206                let var_15 =
207                    Some(
208                        crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
209                        ?
210                    )
211                ;
212                builder = builder.set_user_data(var_15);
213            }
214            ,
215            s if s.matches("disableApiStop") /* DisableApiStop com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$DisableApiStop */ =>  {
216                let var_16 =
217                    Some(
218                        crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
219                        ?
220                    )
221                ;
222                builder = builder.set_disable_api_stop(var_16);
223            }
224            ,
225            s if s.matches("groupSet") /* Groups com.amazonaws.ec2.synthetic#DescribeInstanceAttributeOutput$Groups */ =>  {
226                let var_17 =
227                    Some(
228                        crate::protocol_serde::shape_group_identifier_list::de_group_identifier_list(&mut tag)
229                        ?
230                    )
231                ;
232                builder = builder.set_groups(var_17);
233            }
234            ,
235            _ => {}
236        }
237    }
238    Ok(builder)
239}