aws_sdk_grafana/protocol_serde/
shape_saml_configuration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_saml_configuration(
3    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::SamlConfiguration,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    if let Some(var_1) = &input.idp_metadata {
7        #[allow(unused_mut)]
8        let mut object_2 = object.key("idpMetadata").start_object();
9        crate::protocol_serde::shape_idp_metadata::ser_idp_metadata(&mut object_2, var_1)?;
10        object_2.finish();
11    }
12    if let Some(var_3) = &input.assertion_attributes {
13        #[allow(unused_mut)]
14        let mut object_4 = object.key("assertionAttributes").start_object();
15        crate::protocol_serde::shape_assertion_attributes::ser_assertion_attributes(&mut object_4, var_3)?;
16        object_4.finish();
17    }
18    if let Some(var_5) = &input.role_values {
19        #[allow(unused_mut)]
20        let mut object_6 = object.key("roleValues").start_object();
21        crate::protocol_serde::shape_role_values::ser_role_values(&mut object_6, var_5)?;
22        object_6.finish();
23    }
24    if let Some(var_7) = &input.allowed_organizations {
25        let mut array_8 = object.key("allowedOrganizations").start_array();
26        for item_9 in var_7 {
27            {
28                array_8.value().string(item_9.as_str());
29            }
30        }
31        array_8.finish();
32    }
33    if input.login_validity_duration != 0 {
34        object.key("loginValidityDuration").number(
35            #[allow(clippy::useless_conversion)]
36            ::aws_smithy_types::Number::NegInt((input.login_validity_duration).into()),
37        );
38    }
39    Ok(())
40}
41
42pub(crate) fn de_saml_configuration<'a, I>(
43    tokens: &mut ::std::iter::Peekable<I>,
44) -> ::std::result::Result<Option<crate::types::SamlConfiguration>, ::aws_smithy_json::deserialize::error::DeserializeError>
45where
46    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
47{
48    match tokens.next().transpose()? {
49        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
50        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
51            #[allow(unused_mut)]
52            let mut builder = crate::types::builders::SamlConfigurationBuilder::default();
53            loop {
54                match tokens.next().transpose()? {
55                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
56                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
57                        "idpMetadata" => {
58                            builder = builder.set_idp_metadata(crate::protocol_serde::shape_idp_metadata::de_idp_metadata(tokens)?);
59                        }
60                        "assertionAttributes" => {
61                            builder =
62                                builder.set_assertion_attributes(crate::protocol_serde::shape_assertion_attributes::de_assertion_attributes(tokens)?);
63                        }
64                        "roleValues" => {
65                            builder = builder.set_role_values(crate::protocol_serde::shape_role_values::de_role_values(tokens)?);
66                        }
67                        "allowedOrganizations" => {
68                            builder = builder
69                                .set_allowed_organizations(crate::protocol_serde::shape_allowed_organizations::de_allowed_organizations(tokens)?);
70                        }
71                        "loginValidityDuration" => {
72                            builder = builder.set_login_validity_duration(
73                                ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
74                                    .map(i32::try_from)
75                                    .transpose()?,
76                            );
77                        }
78                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
79                    },
80                    other => {
81                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
82                            "expected object key or end object, found: {:?}",
83                            other
84                        )))
85                    }
86                }
87            }
88            Ok(Some(crate::serde_util::saml_configuration_correct_errors(builder).build()))
89        }
90        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
91            "expected start object or null",
92        )),
93    }
94}