pub fn ser_default_cache_behavior(
input: &crate::types::DefaultCacheBehavior,
writer: ::aws_smithy_xml::encode::ElWriter,
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
#[allow(unused_mut)]
let mut scope = writer.finish();
{
let mut inner_writer = scope.start_el("TargetOriginId").finish();
inner_writer.data(input.target_origin_id.as_str());
}
if let Some(var_1) = &input.trusted_signers {
let inner_writer = scope.start_el("TrustedSigners");
crate::protocol_serde::shape_trusted_signers::ser_trusted_signers(var_1, inner_writer)?
}
if let Some(var_2) = &input.trusted_key_groups {
let inner_writer = scope.start_el("TrustedKeyGroups");
crate::protocol_serde::shape_trusted_key_groups::ser_trusted_key_groups(var_2, inner_writer)?
}
{
let mut inner_writer = scope.start_el("ViewerProtocolPolicy").finish();
inner_writer.data(input.viewer_protocol_policy.as_str());
}
if let Some(var_3) = &input.allowed_methods {
let inner_writer = scope.start_el("AllowedMethods");
crate::protocol_serde::shape_allowed_methods::ser_allowed_methods(var_3, inner_writer)?
}
if let Some(var_4) = &input.smooth_streaming {
let mut inner_writer = scope.start_el("SmoothStreaming").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_4).encode());
}
if let Some(var_5) = &input.compress {
let mut inner_writer = scope.start_el("Compress").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_5).encode());
}
if let Some(var_6) = &input.lambda_function_associations {
let inner_writer = scope.start_el("LambdaFunctionAssociations");
crate::protocol_serde::shape_lambda_function_associations::ser_lambda_function_associations(var_6, inner_writer)?
}
if let Some(var_7) = &input.function_associations {
let inner_writer = scope.start_el("FunctionAssociations");
crate::protocol_serde::shape_function_associations::ser_function_associations(var_7, inner_writer)?
}
if let Some(var_8) = &input.field_level_encryption_id {
let mut inner_writer = scope.start_el("FieldLevelEncryptionId").finish();
inner_writer.data(var_8.as_str());
}
if let Some(var_9) = &input.realtime_log_config_arn {
let mut inner_writer = scope.start_el("RealtimeLogConfigArn").finish();
inner_writer.data(var_9.as_str());
}
if let Some(var_10) = &input.cache_policy_id {
let mut inner_writer = scope.start_el("CachePolicyId").finish();
inner_writer.data(var_10.as_str());
}
if let Some(var_11) = &input.origin_request_policy_id {
let mut inner_writer = scope.start_el("OriginRequestPolicyId").finish();
inner_writer.data(var_11.as_str());
}
if let Some(var_12) = &input.response_headers_policy_id {
let mut inner_writer = scope.start_el("ResponseHeadersPolicyId").finish();
inner_writer.data(var_12.as_str());
}
if let Some(var_13) = &input.grpc_config {
let inner_writer = scope.start_el("GrpcConfig");
crate::protocol_serde::shape_grpc_config::ser_grpc_config(var_13, inner_writer)?
}
if let Some(var_14) = &input.forwarded_values {
let inner_writer = scope.start_el("ForwardedValues");
crate::protocol_serde::shape_forwarded_values::ser_forwarded_values(var_14, inner_writer)?
}
if let Some(var_15) = &input.min_ttl {
let mut inner_writer = scope.start_el("MinTTL").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_15).encode());
}
if let Some(var_16) = &input.default_ttl {
let mut inner_writer = scope.start_el("DefaultTTL").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_16).encode());
}
if let Some(var_17) = &input.max_ttl {
let mut inner_writer = scope.start_el("MaxTTL").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_17).encode());
}
scope.finish();
Ok(())
}
#[allow(clippy::needless_question_mark)]
pub fn de_default_cache_behavior(
decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
) -> ::std::result::Result<crate::types::DefaultCacheBehavior, ::aws_smithy_xml::decode::XmlDecodeError> {
#[allow(unused_mut)]
let mut builder = crate::types::DefaultCacheBehavior::builder();
while let Some(mut tag) = decoder.next_tag() {
match tag.start_el() {
s if s.matches("TargetOriginId") => {
let var_18 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_target_origin_id(var_18);
}
,
s if s.matches("TrustedSigners") => {
let var_19 =
Some(
crate::protocol_serde::shape_trusted_signers::de_trusted_signers(&mut tag)
?
)
;
builder = builder.set_trusted_signers(var_19);
}
,
s if s.matches("TrustedKeyGroups") => {
let var_20 =
Some(
crate::protocol_serde::shape_trusted_key_groups::de_trusted_key_groups(&mut tag)
?
)
;
builder = builder.set_trusted_key_groups(var_20);
}
,
s if s.matches("ViewerProtocolPolicy") => {
let var_21 =
Some(
Result::<crate::types::ViewerProtocolPolicy, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::types::ViewerProtocolPolicy::from(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_viewer_protocol_policy(var_21);
}
,
s if s.matches("AllowedMethods") => {
let var_22 =
Some(
crate::protocol_serde::shape_allowed_methods::de_allowed_methods(&mut tag)
?
)
;
builder = builder.set_allowed_methods(var_22);
}
,
s if s.matches("SmoothStreaming") => {
let var_23 =
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.cloudfront#boolean`)"))
}
?
)
;
builder = builder.set_smooth_streaming(var_23);
}
,
s if s.matches("Compress") => {
let var_24 =
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.cloudfront#boolean`)"))
}
?
)
;
builder = builder.set_compress(var_24);
}
,
s if s.matches("LambdaFunctionAssociations") => {
let var_25 =
Some(
crate::protocol_serde::shape_lambda_function_associations::de_lambda_function_associations(&mut tag)
?
)
;
builder = builder.set_lambda_function_associations(var_25);
}
,
s if s.matches("FunctionAssociations") => {
let var_26 =
Some(
crate::protocol_serde::shape_function_associations::de_function_associations(&mut tag)
?
)
;
builder = builder.set_function_associations(var_26);
}
,
s if s.matches("FieldLevelEncryptionId") => {
let var_27 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_field_level_encryption_id(var_27);
}
,
s if s.matches("RealtimeLogConfigArn") => {
let var_28 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_realtime_log_config_arn(var_28);
}
,
s if s.matches("CachePolicyId") => {
let var_29 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_cache_policy_id(var_29);
}
,
s if s.matches("OriginRequestPolicyId") => {
let var_30 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_origin_request_policy_id(var_30);
}
,
s if s.matches("ResponseHeadersPolicyId") => {
let var_31 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_response_headers_policy_id(var_31);
}
,
s if s.matches("GrpcConfig") => {
let var_32 =
Some(
crate::protocol_serde::shape_grpc_config::de_grpc_config(&mut tag)
?
)
;
builder = builder.set_grpc_config(var_32);
}
,
s if s.matches("ForwardedValues") => {
let var_33 =
Some(
crate::protocol_serde::shape_forwarded_values::de_forwarded_values(&mut tag)
?
)
;
builder = builder.set_forwarded_values(var_33);
}
,
s if s.matches("MinTTL") => {
let var_34 =
Some(
{
<i64 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 (long: `com.amazonaws.cloudfront#long`)"))
}
?
)
;
builder = builder.set_min_ttl(var_34);
}
,
s if s.matches("DefaultTTL") => {
let var_35 =
Some(
{
<i64 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 (long: `com.amazonaws.cloudfront#long`)"))
}
?
)
;
builder = builder.set_default_ttl(var_35);
}
,
s if s.matches("MaxTTL") => {
let var_36 =
Some(
{
<i64 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 (long: `com.amazonaws.cloudfront#long`)"))
}
?
)
;
builder = builder.set_max_ttl(var_36);
}
,
_ => {}
}
}
Ok(crate::serde_util::default_cache_behavior_correct_errors(builder)
.build()
.map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
}