aws_sdk_imagebuilder/protocol_serde/
shape_infrastructure_configuration.rs
1pub(crate) fn de_infrastructure_configuration<'a, I>(
3 tokens: &mut ::std::iter::Peekable<I>,
4) -> ::std::result::Result<Option<crate::types::InfrastructureConfiguration>, ::aws_smithy_json::deserialize::error::DeserializeError>
5where
6 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
7{
8 match tokens.next().transpose()? {
9 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
10 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
11 #[allow(unused_mut)]
12 let mut builder = crate::types::builders::InfrastructureConfigurationBuilder::default();
13 loop {
14 match tokens.next().transpose()? {
15 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
16 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
17 "arn" => {
18 builder = builder.set_arn(
19 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
20 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
21 .transpose()?,
22 );
23 }
24 "name" => {
25 builder = builder.set_name(
26 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
27 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
28 .transpose()?,
29 );
30 }
31 "description" => {
32 builder = builder.set_description(
33 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
34 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
35 .transpose()?,
36 );
37 }
38 "instanceTypes" => {
39 builder = builder.set_instance_types(crate::protocol_serde::shape_instance_type_list::de_instance_type_list(tokens)?);
40 }
41 "instanceProfileName" => {
42 builder = builder.set_instance_profile_name(
43 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
44 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
45 .transpose()?,
46 );
47 }
48 "securityGroupIds" => {
49 builder = builder.set_security_group_ids(crate::protocol_serde::shape_security_group_ids::de_security_group_ids(tokens)?);
50 }
51 "subnetId" => {
52 builder = builder.set_subnet_id(
53 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
54 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
55 .transpose()?,
56 );
57 }
58 "logging" => {
59 builder = builder.set_logging(crate::protocol_serde::shape_logging::de_logging(tokens)?);
60 }
61 "keyPair" => {
62 builder = builder.set_key_pair(
63 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
64 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
65 .transpose()?,
66 );
67 }
68 "terminateInstanceOnFailure" => {
69 builder =
70 builder.set_terminate_instance_on_failure(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
71 }
72 "snsTopicArn" => {
73 builder = builder.set_sns_topic_arn(
74 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
75 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
76 .transpose()?,
77 );
78 }
79 "dateCreated" => {
80 builder = builder.set_date_created(
81 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
82 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
83 .transpose()?,
84 );
85 }
86 "dateUpdated" => {
87 builder = builder.set_date_updated(
88 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
89 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
90 .transpose()?,
91 );
92 }
93 "resourceTags" => {
94 builder = builder.set_resource_tags(crate::protocol_serde::shape_resource_tag_map::de_resource_tag_map(tokens)?);
95 }
96 "instanceMetadataOptions" => {
97 builder = builder.set_instance_metadata_options(
98 crate::protocol_serde::shape_instance_metadata_options::de_instance_metadata_options(tokens)?,
99 );
100 }
101 "tags" => {
102 builder = builder.set_tags(crate::protocol_serde::shape_tag_map::de_tag_map(tokens)?);
103 }
104 "placement" => {
105 builder = builder.set_placement(crate::protocol_serde::shape_placement::de_placement(tokens)?);
106 }
107 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
108 },
109 other => {
110 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
111 "expected object key or end object, found: {:?}",
112 other
113 )))
114 }
115 }
116 }
117 Ok(Some(builder.build()))
118 }
119 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
120 "expected start object or null",
121 )),
122 }
123}