aws_sdk_appstream/protocol_serde/
shape_image_builder.rs1pub(crate) fn de_image_builder<'a, I>(
3 tokens: &mut ::std::iter::Peekable<I>,
4) -> ::std::result::Result<Option<crate::types::ImageBuilder>, ::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::ImageBuilderBuilder::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 "Name" => {
18 builder = builder.set_name(
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 "Arn" => {
25 builder = builder.set_arn(
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 "ImageArn" => {
32 builder = builder.set_image_arn(
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 "Description" => {
39 builder = builder.set_description(
40 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
41 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
42 .transpose()?,
43 );
44 }
45 "DisplayName" => {
46 builder = builder.set_display_name(
47 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
48 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
49 .transpose()?,
50 );
51 }
52 "VpcConfig" => {
53 builder = builder.set_vpc_config(crate::protocol_serde::shape_vpc_config::de_vpc_config(tokens)?);
54 }
55 "InstanceType" => {
56 builder = builder.set_instance_type(
57 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
58 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
59 .transpose()?,
60 );
61 }
62 "Platform" => {
63 builder = builder.set_platform(
64 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
65 .map(|s| s.to_unescaped().map(|u| crate::types::PlatformType::from(u.as_ref())))
66 .transpose()?,
67 );
68 }
69 "IamRoleArn" => {
70 builder = builder.set_iam_role_arn(
71 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
72 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
73 .transpose()?,
74 );
75 }
76 "State" => {
77 builder = builder.set_state(
78 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
79 .map(|s| s.to_unescaped().map(|u| crate::types::ImageBuilderState::from(u.as_ref())))
80 .transpose()?,
81 );
82 }
83 "StateChangeReason" => {
84 builder = builder.set_state_change_reason(
85 crate::protocol_serde::shape_image_builder_state_change_reason::de_image_builder_state_change_reason(tokens)?,
86 );
87 }
88 "CreatedTime" => {
89 builder = builder.set_created_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
90 tokens.next(),
91 ::aws_smithy_types::date_time::Format::EpochSeconds,
92 )?);
93 }
94 "EnableDefaultInternetAccess" => {
95 builder = builder
96 .set_enable_default_internet_access(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
97 }
98 "DomainJoinInfo" => {
99 builder = builder.set_domain_join_info(crate::protocol_serde::shape_domain_join_info::de_domain_join_info(tokens)?);
100 }
101 "NetworkAccessConfiguration" => {
102 builder = builder.set_network_access_configuration(
103 crate::protocol_serde::shape_network_access_configuration::de_network_access_configuration(tokens)?,
104 );
105 }
106 "ImageBuilderErrors" => {
107 builder = builder.set_image_builder_errors(crate::protocol_serde::shape_resource_errors::de_resource_errors(tokens)?);
108 }
109 "AppstreamAgentVersion" => {
110 builder = builder.set_appstream_agent_version(
111 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
112 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
113 .transpose()?,
114 );
115 }
116 "AccessEndpoints" => {
117 builder =
118 builder.set_access_endpoints(crate::protocol_serde::shape_access_endpoint_list::de_access_endpoint_list(tokens)?);
119 }
120 "LatestAppstreamAgentVersion" => {
121 builder = builder.set_latest_appstream_agent_version(
122 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
123 .map(|s| s.to_unescaped().map(|u| crate::types::LatestAppstreamAgentVersion::from(u.as_ref())))
124 .transpose()?,
125 );
126 }
127 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
128 },
129 other => {
130 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
131 "expected object key or end object, found: {:?}",
132 other
133 )))
134 }
135 }
136 }
137 Ok(Some(crate::serde_util::image_builder_correct_errors(builder).build()))
138 }
139 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
140 "expected start object or null",
141 )),
142 }
143}