aws_sdk_cloudfront/protocol_serde/
shape_response_headers_policy_config.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_response_headers_policy_config(
3    input: &crate::types::ResponseHeadersPolicyConfig,
4    writer: ::aws_smithy_xml::encode::ElWriter,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    #[allow(unused_mut)]
7    let mut scope = writer.finish();
8    if let Some(var_1) = &input.comment {
9        let mut inner_writer = scope.start_el("Comment").finish();
10        inner_writer.data(var_1.as_str());
11    }
12    {
13        let mut inner_writer = scope.start_el("Name").finish();
14        inner_writer.data(input.name.as_str());
15    }
16    if let Some(var_2) = &input.cors_config {
17        let inner_writer = scope.start_el("CorsConfig");
18        crate::protocol_serde::shape_response_headers_policy_cors_config::ser_response_headers_policy_cors_config(var_2, inner_writer)?
19    }
20    if let Some(var_3) = &input.security_headers_config {
21        let inner_writer = scope.start_el("SecurityHeadersConfig");
22        crate::protocol_serde::shape_response_headers_policy_security_headers_config::ser_response_headers_policy_security_headers_config(
23            var_3,
24            inner_writer,
25        )?
26    }
27    if let Some(var_4) = &input.server_timing_headers_config {
28        let inner_writer = scope.start_el("ServerTimingHeadersConfig");
29        crate::protocol_serde::shape_response_headers_policy_server_timing_headers_config::ser_response_headers_policy_server_timing_headers_config(
30            var_4,
31            inner_writer,
32        )?
33    }
34    if let Some(var_5) = &input.custom_headers_config {
35        let inner_writer = scope.start_el("CustomHeadersConfig");
36        crate::protocol_serde::shape_response_headers_policy_custom_headers_config::ser_response_headers_policy_custom_headers_config(
37            var_5,
38            inner_writer,
39        )?
40    }
41    if let Some(var_6) = &input.remove_headers_config {
42        let inner_writer = scope.start_el("RemoveHeadersConfig");
43        crate::protocol_serde::shape_response_headers_policy_remove_headers_config::ser_response_headers_policy_remove_headers_config(
44            var_6,
45            inner_writer,
46        )?
47    }
48    scope.finish();
49    Ok(())
50}
51
52#[allow(clippy::needless_question_mark)]
53pub fn de_response_headers_policy_config(
54    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
55) -> ::std::result::Result<crate::types::ResponseHeadersPolicyConfig, ::aws_smithy_xml::decode::XmlDecodeError> {
56    #[allow(unused_mut)]
57    let mut builder = crate::types::ResponseHeadersPolicyConfig::builder();
58    while let Some(mut tag) = decoder.next_tag() {
59        match tag.start_el() {
60            s if s.matches("Comment") /* Comment com.amazonaws.cloudfront#ResponseHeadersPolicyConfig$Comment */ =>  {
61                let var_7 =
62                    Some(
63                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
64                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
65                            .into()
66                        )
67                        ?
68                    )
69                ;
70                builder = builder.set_comment(var_7);
71            }
72            ,
73            s if s.matches("Name") /* Name com.amazonaws.cloudfront#ResponseHeadersPolicyConfig$Name */ =>  {
74                let var_8 =
75                    Some(
76                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
77                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
78                            .into()
79                        )
80                        ?
81                    )
82                ;
83                builder = builder.set_name(var_8);
84            }
85            ,
86            s if s.matches("CorsConfig") /* CorsConfig com.amazonaws.cloudfront#ResponseHeadersPolicyConfig$CorsConfig */ =>  {
87                let var_9 =
88                    Some(
89                        crate::protocol_serde::shape_response_headers_policy_cors_config::de_response_headers_policy_cors_config(&mut tag)
90                        ?
91                    )
92                ;
93                builder = builder.set_cors_config(var_9);
94            }
95            ,
96            s if s.matches("SecurityHeadersConfig") /* SecurityHeadersConfig com.amazonaws.cloudfront#ResponseHeadersPolicyConfig$SecurityHeadersConfig */ =>  {
97                let var_10 =
98                    Some(
99                        crate::protocol_serde::shape_response_headers_policy_security_headers_config::de_response_headers_policy_security_headers_config(&mut tag)
100                        ?
101                    )
102                ;
103                builder = builder.set_security_headers_config(var_10);
104            }
105            ,
106            s if s.matches("ServerTimingHeadersConfig") /* ServerTimingHeadersConfig com.amazonaws.cloudfront#ResponseHeadersPolicyConfig$ServerTimingHeadersConfig */ =>  {
107                let var_11 =
108                    Some(
109                        crate::protocol_serde::shape_response_headers_policy_server_timing_headers_config::de_response_headers_policy_server_timing_headers_config(&mut tag)
110                        ?
111                    )
112                ;
113                builder = builder.set_server_timing_headers_config(var_11);
114            }
115            ,
116            s if s.matches("CustomHeadersConfig") /* CustomHeadersConfig com.amazonaws.cloudfront#ResponseHeadersPolicyConfig$CustomHeadersConfig */ =>  {
117                let var_12 =
118                    Some(
119                        crate::protocol_serde::shape_response_headers_policy_custom_headers_config::de_response_headers_policy_custom_headers_config(&mut tag)
120                        ?
121                    )
122                ;
123                builder = builder.set_custom_headers_config(var_12);
124            }
125            ,
126            s if s.matches("RemoveHeadersConfig") /* RemoveHeadersConfig com.amazonaws.cloudfront#ResponseHeadersPolicyConfig$RemoveHeadersConfig */ =>  {
127                let var_13 =
128                    Some(
129                        crate::protocol_serde::shape_response_headers_policy_remove_headers_config::de_response_headers_policy_remove_headers_config(&mut tag)
130                        ?
131                    )
132                ;
133                builder = builder.set_remove_headers_config(var_13);
134            }
135            ,
136            _ => {}
137        }
138    }
139    Ok(crate::serde_util::response_headers_policy_config_correct_errors(builder)
140        .build()
141        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
142}