1#[derive(Debug, Default)]
5pub struct CustomResource {
6 properties: CustomResourceProperties
7}
8
9#[derive(Debug, Default)]
11pub struct CustomResourceProperties {
12 pub service_token: ::Value<String>,
17}
18
19impl ::serde::Serialize for CustomResourceProperties {
20 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
21 let mut map = ::serde::Serializer::serialize_map(s, None)?;
22 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ServiceToken", &self.service_token)?;
23 ::serde::ser::SerializeMap::end(map)
24 }
25}
26
27impl<'de> ::serde::Deserialize<'de> for CustomResourceProperties {
28 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<CustomResourceProperties, D::Error> {
29 struct Visitor;
30
31 impl<'de> ::serde::de::Visitor<'de> for Visitor {
32 type Value = CustomResourceProperties;
33
34 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
35 write!(f, "a struct of type CustomResourceProperties")
36 }
37
38 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
39 let mut service_token: Option<::Value<String>> = None;
40
41 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
42 match __cfn_key.as_ref() {
43 "ServiceToken" => {
44 service_token = ::serde::de::MapAccess::next_value(&mut map)?;
45 }
46 _ => {}
47 }
48 }
49
50 Ok(CustomResourceProperties {
51 service_token: service_token.ok_or(::serde::de::Error::missing_field("ServiceToken"))?,
52 })
53 }
54 }
55
56 d.deserialize_map(Visitor)
57 }
58}
59
60impl ::Resource for CustomResource {
61 type Properties = CustomResourceProperties;
62 const TYPE: &'static str = "AWS::CloudFormation::CustomResource";
63 fn properties(&self) -> &CustomResourceProperties {
64 &self.properties
65 }
66 fn properties_mut(&mut self) -> &mut CustomResourceProperties {
67 &mut self.properties
68 }
69}
70
71impl ::private::Sealed for CustomResource {}
72
73impl From<CustomResourceProperties> for CustomResource {
74 fn from(properties: CustomResourceProperties) -> CustomResource {
75 CustomResource { properties }
76 }
77}
78
79#[derive(Debug, Default)]
81pub struct Macro {
82 properties: MacroProperties
83}
84
85#[derive(Debug, Default)]
87pub struct MacroProperties {
88 pub description: Option<::Value<String>>,
93 pub function_name: ::Value<String>,
98 pub log_group_name: Option<::Value<String>>,
103 pub log_role_arn: Option<::Value<String>>,
108 pub name: ::Value<String>,
113}
114
115impl ::serde::Serialize for MacroProperties {
116 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
117 let mut map = ::serde::Serializer::serialize_map(s, None)?;
118 if let Some(ref description) = self.description {
119 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Description", description)?;
120 }
121 ::serde::ser::SerializeMap::serialize_entry(&mut map, "FunctionName", &self.function_name)?;
122 if let Some(ref log_group_name) = self.log_group_name {
123 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogGroupName", log_group_name)?;
124 }
125 if let Some(ref log_role_arn) = self.log_role_arn {
126 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogRoleARN", log_role_arn)?;
127 }
128 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Name", &self.name)?;
129 ::serde::ser::SerializeMap::end(map)
130 }
131}
132
133impl<'de> ::serde::Deserialize<'de> for MacroProperties {
134 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<MacroProperties, D::Error> {
135 struct Visitor;
136
137 impl<'de> ::serde::de::Visitor<'de> for Visitor {
138 type Value = MacroProperties;
139
140 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
141 write!(f, "a struct of type MacroProperties")
142 }
143
144 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
145 let mut description: Option<::Value<String>> = None;
146 let mut function_name: Option<::Value<String>> = None;
147 let mut log_group_name: Option<::Value<String>> = None;
148 let mut log_role_arn: Option<::Value<String>> = None;
149 let mut name: Option<::Value<String>> = None;
150
151 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
152 match __cfn_key.as_ref() {
153 "Description" => {
154 description = ::serde::de::MapAccess::next_value(&mut map)?;
155 }
156 "FunctionName" => {
157 function_name = ::serde::de::MapAccess::next_value(&mut map)?;
158 }
159 "LogGroupName" => {
160 log_group_name = ::serde::de::MapAccess::next_value(&mut map)?;
161 }
162 "LogRoleARN" => {
163 log_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
164 }
165 "Name" => {
166 name = ::serde::de::MapAccess::next_value(&mut map)?;
167 }
168 _ => {}
169 }
170 }
171
172 Ok(MacroProperties {
173 description: description,
174 function_name: function_name.ok_or(::serde::de::Error::missing_field("FunctionName"))?,
175 log_group_name: log_group_name,
176 log_role_arn: log_role_arn,
177 name: name.ok_or(::serde::de::Error::missing_field("Name"))?,
178 })
179 }
180 }
181
182 d.deserialize_map(Visitor)
183 }
184}
185
186impl ::Resource for Macro {
187 type Properties = MacroProperties;
188 const TYPE: &'static str = "AWS::CloudFormation::Macro";
189 fn properties(&self) -> &MacroProperties {
190 &self.properties
191 }
192 fn properties_mut(&mut self) -> &mut MacroProperties {
193 &mut self.properties
194 }
195}
196
197impl ::private::Sealed for Macro {}
198
199impl From<MacroProperties> for Macro {
200 fn from(properties: MacroProperties) -> Macro {
201 Macro { properties }
202 }
203}
204
205#[derive(Debug, Default)]
207pub struct ModuleDefaultVersion {
208 properties: ModuleDefaultVersionProperties
209}
210
211#[derive(Debug, Default)]
213pub struct ModuleDefaultVersionProperties {
214 pub arn: Option<::Value<String>>,
219 pub module_name: Option<::Value<String>>,
224 pub version_id: Option<::Value<String>>,
229}
230
231impl ::serde::Serialize for ModuleDefaultVersionProperties {
232 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
233 let mut map = ::serde::Serializer::serialize_map(s, None)?;
234 if let Some(ref arn) = self.arn {
235 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Arn", arn)?;
236 }
237 if let Some(ref module_name) = self.module_name {
238 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ModuleName", module_name)?;
239 }
240 if let Some(ref version_id) = self.version_id {
241 ::serde::ser::SerializeMap::serialize_entry(&mut map, "VersionId", version_id)?;
242 }
243 ::serde::ser::SerializeMap::end(map)
244 }
245}
246
247impl<'de> ::serde::Deserialize<'de> for ModuleDefaultVersionProperties {
248 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<ModuleDefaultVersionProperties, D::Error> {
249 struct Visitor;
250
251 impl<'de> ::serde::de::Visitor<'de> for Visitor {
252 type Value = ModuleDefaultVersionProperties;
253
254 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
255 write!(f, "a struct of type ModuleDefaultVersionProperties")
256 }
257
258 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
259 let mut arn: Option<::Value<String>> = None;
260 let mut module_name: Option<::Value<String>> = None;
261 let mut version_id: Option<::Value<String>> = None;
262
263 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
264 match __cfn_key.as_ref() {
265 "Arn" => {
266 arn = ::serde::de::MapAccess::next_value(&mut map)?;
267 }
268 "ModuleName" => {
269 module_name = ::serde::de::MapAccess::next_value(&mut map)?;
270 }
271 "VersionId" => {
272 version_id = ::serde::de::MapAccess::next_value(&mut map)?;
273 }
274 _ => {}
275 }
276 }
277
278 Ok(ModuleDefaultVersionProperties {
279 arn: arn,
280 module_name: module_name,
281 version_id: version_id,
282 })
283 }
284 }
285
286 d.deserialize_map(Visitor)
287 }
288}
289
290impl ::Resource for ModuleDefaultVersion {
291 type Properties = ModuleDefaultVersionProperties;
292 const TYPE: &'static str = "AWS::CloudFormation::ModuleDefaultVersion";
293 fn properties(&self) -> &ModuleDefaultVersionProperties {
294 &self.properties
295 }
296 fn properties_mut(&mut self) -> &mut ModuleDefaultVersionProperties {
297 &mut self.properties
298 }
299}
300
301impl ::private::Sealed for ModuleDefaultVersion {}
302
303impl From<ModuleDefaultVersionProperties> for ModuleDefaultVersion {
304 fn from(properties: ModuleDefaultVersionProperties) -> ModuleDefaultVersion {
305 ModuleDefaultVersion { properties }
306 }
307}
308
309#[derive(Debug, Default)]
311pub struct ModuleVersion {
312 properties: ModuleVersionProperties
313}
314
315#[derive(Debug, Default)]
317pub struct ModuleVersionProperties {
318 pub module_name: ::Value<String>,
323 pub module_package: ::Value<String>,
328}
329
330impl ::serde::Serialize for ModuleVersionProperties {
331 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
332 let mut map = ::serde::Serializer::serialize_map(s, None)?;
333 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ModuleName", &self.module_name)?;
334 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ModulePackage", &self.module_package)?;
335 ::serde::ser::SerializeMap::end(map)
336 }
337}
338
339impl<'de> ::serde::Deserialize<'de> for ModuleVersionProperties {
340 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<ModuleVersionProperties, D::Error> {
341 struct Visitor;
342
343 impl<'de> ::serde::de::Visitor<'de> for Visitor {
344 type Value = ModuleVersionProperties;
345
346 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
347 write!(f, "a struct of type ModuleVersionProperties")
348 }
349
350 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
351 let mut module_name: Option<::Value<String>> = None;
352 let mut module_package: Option<::Value<String>> = None;
353
354 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
355 match __cfn_key.as_ref() {
356 "ModuleName" => {
357 module_name = ::serde::de::MapAccess::next_value(&mut map)?;
358 }
359 "ModulePackage" => {
360 module_package = ::serde::de::MapAccess::next_value(&mut map)?;
361 }
362 _ => {}
363 }
364 }
365
366 Ok(ModuleVersionProperties {
367 module_name: module_name.ok_or(::serde::de::Error::missing_field("ModuleName"))?,
368 module_package: module_package.ok_or(::serde::de::Error::missing_field("ModulePackage"))?,
369 })
370 }
371 }
372
373 d.deserialize_map(Visitor)
374 }
375}
376
377impl ::Resource for ModuleVersion {
378 type Properties = ModuleVersionProperties;
379 const TYPE: &'static str = "AWS::CloudFormation::ModuleVersion";
380 fn properties(&self) -> &ModuleVersionProperties {
381 &self.properties
382 }
383 fn properties_mut(&mut self) -> &mut ModuleVersionProperties {
384 &mut self.properties
385 }
386}
387
388impl ::private::Sealed for ModuleVersion {}
389
390impl From<ModuleVersionProperties> for ModuleVersion {
391 fn from(properties: ModuleVersionProperties) -> ModuleVersion {
392 ModuleVersion { properties }
393 }
394}
395
396#[derive(Debug, Default)]
398pub struct PublicTypeVersion {
399 properties: PublicTypeVersionProperties
400}
401
402#[derive(Debug, Default)]
404pub struct PublicTypeVersionProperties {
405 pub arn: Option<::Value<String>>,
410 pub log_delivery_bucket: Option<::Value<String>>,
415 pub public_version_number: Option<::Value<String>>,
420 pub r#type: Option<::Value<String>>,
425 pub type_name: Option<::Value<String>>,
430}
431
432impl ::serde::Serialize for PublicTypeVersionProperties {
433 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
434 let mut map = ::serde::Serializer::serialize_map(s, None)?;
435 if let Some(ref arn) = self.arn {
436 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Arn", arn)?;
437 }
438 if let Some(ref log_delivery_bucket) = self.log_delivery_bucket {
439 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogDeliveryBucket", log_delivery_bucket)?;
440 }
441 if let Some(ref public_version_number) = self.public_version_number {
442 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PublicVersionNumber", public_version_number)?;
443 }
444 if let Some(ref r#type) = self.r#type {
445 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Type", r#type)?;
446 }
447 if let Some(ref type_name) = self.type_name {
448 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TypeName", type_name)?;
449 }
450 ::serde::ser::SerializeMap::end(map)
451 }
452}
453
454impl<'de> ::serde::Deserialize<'de> for PublicTypeVersionProperties {
455 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<PublicTypeVersionProperties, D::Error> {
456 struct Visitor;
457
458 impl<'de> ::serde::de::Visitor<'de> for Visitor {
459 type Value = PublicTypeVersionProperties;
460
461 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
462 write!(f, "a struct of type PublicTypeVersionProperties")
463 }
464
465 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
466 let mut arn: Option<::Value<String>> = None;
467 let mut log_delivery_bucket: Option<::Value<String>> = None;
468 let mut public_version_number: Option<::Value<String>> = None;
469 let mut r#type: Option<::Value<String>> = None;
470 let mut type_name: Option<::Value<String>> = None;
471
472 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
473 match __cfn_key.as_ref() {
474 "Arn" => {
475 arn = ::serde::de::MapAccess::next_value(&mut map)?;
476 }
477 "LogDeliveryBucket" => {
478 log_delivery_bucket = ::serde::de::MapAccess::next_value(&mut map)?;
479 }
480 "PublicVersionNumber" => {
481 public_version_number = ::serde::de::MapAccess::next_value(&mut map)?;
482 }
483 "Type" => {
484 r#type = ::serde::de::MapAccess::next_value(&mut map)?;
485 }
486 "TypeName" => {
487 type_name = ::serde::de::MapAccess::next_value(&mut map)?;
488 }
489 _ => {}
490 }
491 }
492
493 Ok(PublicTypeVersionProperties {
494 arn: arn,
495 log_delivery_bucket: log_delivery_bucket,
496 public_version_number: public_version_number,
497 r#type: r#type,
498 type_name: type_name,
499 })
500 }
501 }
502
503 d.deserialize_map(Visitor)
504 }
505}
506
507impl ::Resource for PublicTypeVersion {
508 type Properties = PublicTypeVersionProperties;
509 const TYPE: &'static str = "AWS::CloudFormation::PublicTypeVersion";
510 fn properties(&self) -> &PublicTypeVersionProperties {
511 &self.properties
512 }
513 fn properties_mut(&mut self) -> &mut PublicTypeVersionProperties {
514 &mut self.properties
515 }
516}
517
518impl ::private::Sealed for PublicTypeVersion {}
519
520impl From<PublicTypeVersionProperties> for PublicTypeVersion {
521 fn from(properties: PublicTypeVersionProperties) -> PublicTypeVersion {
522 PublicTypeVersion { properties }
523 }
524}
525
526#[derive(Debug, Default)]
528pub struct Publisher {
529 properties: PublisherProperties
530}
531
532#[derive(Debug, Default)]
534pub struct PublisherProperties {
535 pub accept_terms_and_conditions: ::Value<bool>,
540 pub connection_arn: Option<::Value<String>>,
545}
546
547impl ::serde::Serialize for PublisherProperties {
548 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
549 let mut map = ::serde::Serializer::serialize_map(s, None)?;
550 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AcceptTermsAndConditions", &self.accept_terms_and_conditions)?;
551 if let Some(ref connection_arn) = self.connection_arn {
552 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ConnectionArn", connection_arn)?;
553 }
554 ::serde::ser::SerializeMap::end(map)
555 }
556}
557
558impl<'de> ::serde::Deserialize<'de> for PublisherProperties {
559 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<PublisherProperties, D::Error> {
560 struct Visitor;
561
562 impl<'de> ::serde::de::Visitor<'de> for Visitor {
563 type Value = PublisherProperties;
564
565 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
566 write!(f, "a struct of type PublisherProperties")
567 }
568
569 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
570 let mut accept_terms_and_conditions: Option<::Value<bool>> = None;
571 let mut connection_arn: Option<::Value<String>> = None;
572
573 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
574 match __cfn_key.as_ref() {
575 "AcceptTermsAndConditions" => {
576 accept_terms_and_conditions = ::serde::de::MapAccess::next_value(&mut map)?;
577 }
578 "ConnectionArn" => {
579 connection_arn = ::serde::de::MapAccess::next_value(&mut map)?;
580 }
581 _ => {}
582 }
583 }
584
585 Ok(PublisherProperties {
586 accept_terms_and_conditions: accept_terms_and_conditions.ok_or(::serde::de::Error::missing_field("AcceptTermsAndConditions"))?,
587 connection_arn: connection_arn,
588 })
589 }
590 }
591
592 d.deserialize_map(Visitor)
593 }
594}
595
596impl ::Resource for Publisher {
597 type Properties = PublisherProperties;
598 const TYPE: &'static str = "AWS::CloudFormation::Publisher";
599 fn properties(&self) -> &PublisherProperties {
600 &self.properties
601 }
602 fn properties_mut(&mut self) -> &mut PublisherProperties {
603 &mut self.properties
604 }
605}
606
607impl ::private::Sealed for Publisher {}
608
609impl From<PublisherProperties> for Publisher {
610 fn from(properties: PublisherProperties) -> Publisher {
611 Publisher { properties }
612 }
613}
614
615#[derive(Debug, Default)]
617pub struct ResourceDefaultVersion {
618 properties: ResourceDefaultVersionProperties
619}
620
621#[derive(Debug, Default)]
623pub struct ResourceDefaultVersionProperties {
624 pub type_name: Option<::Value<String>>,
629 pub type_version_arn: Option<::Value<String>>,
634 pub version_id: Option<::Value<String>>,
639}
640
641impl ::serde::Serialize for ResourceDefaultVersionProperties {
642 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
643 let mut map = ::serde::Serializer::serialize_map(s, None)?;
644 if let Some(ref type_name) = self.type_name {
645 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TypeName", type_name)?;
646 }
647 if let Some(ref type_version_arn) = self.type_version_arn {
648 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TypeVersionArn", type_version_arn)?;
649 }
650 if let Some(ref version_id) = self.version_id {
651 ::serde::ser::SerializeMap::serialize_entry(&mut map, "VersionId", version_id)?;
652 }
653 ::serde::ser::SerializeMap::end(map)
654 }
655}
656
657impl<'de> ::serde::Deserialize<'de> for ResourceDefaultVersionProperties {
658 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<ResourceDefaultVersionProperties, D::Error> {
659 struct Visitor;
660
661 impl<'de> ::serde::de::Visitor<'de> for Visitor {
662 type Value = ResourceDefaultVersionProperties;
663
664 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
665 write!(f, "a struct of type ResourceDefaultVersionProperties")
666 }
667
668 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
669 let mut type_name: Option<::Value<String>> = None;
670 let mut type_version_arn: Option<::Value<String>> = None;
671 let mut version_id: Option<::Value<String>> = None;
672
673 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
674 match __cfn_key.as_ref() {
675 "TypeName" => {
676 type_name = ::serde::de::MapAccess::next_value(&mut map)?;
677 }
678 "TypeVersionArn" => {
679 type_version_arn = ::serde::de::MapAccess::next_value(&mut map)?;
680 }
681 "VersionId" => {
682 version_id = ::serde::de::MapAccess::next_value(&mut map)?;
683 }
684 _ => {}
685 }
686 }
687
688 Ok(ResourceDefaultVersionProperties {
689 type_name: type_name,
690 type_version_arn: type_version_arn,
691 version_id: version_id,
692 })
693 }
694 }
695
696 d.deserialize_map(Visitor)
697 }
698}
699
700impl ::Resource for ResourceDefaultVersion {
701 type Properties = ResourceDefaultVersionProperties;
702 const TYPE: &'static str = "AWS::CloudFormation::ResourceDefaultVersion";
703 fn properties(&self) -> &ResourceDefaultVersionProperties {
704 &self.properties
705 }
706 fn properties_mut(&mut self) -> &mut ResourceDefaultVersionProperties {
707 &mut self.properties
708 }
709}
710
711impl ::private::Sealed for ResourceDefaultVersion {}
712
713impl From<ResourceDefaultVersionProperties> for ResourceDefaultVersion {
714 fn from(properties: ResourceDefaultVersionProperties) -> ResourceDefaultVersion {
715 ResourceDefaultVersion { properties }
716 }
717}
718
719#[derive(Debug, Default)]
721pub struct ResourceVersion {
722 properties: ResourceVersionProperties
723}
724
725#[derive(Debug, Default)]
727pub struct ResourceVersionProperties {
728 pub execution_role_arn: Option<::Value<String>>,
733 pub logging_config: Option<::Value<self::resource_version::LoggingConfig>>,
738 pub schema_handler_package: ::Value<String>,
743 pub type_name: ::Value<String>,
748}
749
750impl ::serde::Serialize for ResourceVersionProperties {
751 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
752 let mut map = ::serde::Serializer::serialize_map(s, None)?;
753 if let Some(ref execution_role_arn) = self.execution_role_arn {
754 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ExecutionRoleArn", execution_role_arn)?;
755 }
756 if let Some(ref logging_config) = self.logging_config {
757 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LoggingConfig", logging_config)?;
758 }
759 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SchemaHandlerPackage", &self.schema_handler_package)?;
760 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TypeName", &self.type_name)?;
761 ::serde::ser::SerializeMap::end(map)
762 }
763}
764
765impl<'de> ::serde::Deserialize<'de> for ResourceVersionProperties {
766 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<ResourceVersionProperties, D::Error> {
767 struct Visitor;
768
769 impl<'de> ::serde::de::Visitor<'de> for Visitor {
770 type Value = ResourceVersionProperties;
771
772 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
773 write!(f, "a struct of type ResourceVersionProperties")
774 }
775
776 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
777 let mut execution_role_arn: Option<::Value<String>> = None;
778 let mut logging_config: Option<::Value<self::resource_version::LoggingConfig>> = None;
779 let mut schema_handler_package: Option<::Value<String>> = None;
780 let mut type_name: Option<::Value<String>> = None;
781
782 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
783 match __cfn_key.as_ref() {
784 "ExecutionRoleArn" => {
785 execution_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
786 }
787 "LoggingConfig" => {
788 logging_config = ::serde::de::MapAccess::next_value(&mut map)?;
789 }
790 "SchemaHandlerPackage" => {
791 schema_handler_package = ::serde::de::MapAccess::next_value(&mut map)?;
792 }
793 "TypeName" => {
794 type_name = ::serde::de::MapAccess::next_value(&mut map)?;
795 }
796 _ => {}
797 }
798 }
799
800 Ok(ResourceVersionProperties {
801 execution_role_arn: execution_role_arn,
802 logging_config: logging_config,
803 schema_handler_package: schema_handler_package.ok_or(::serde::de::Error::missing_field("SchemaHandlerPackage"))?,
804 type_name: type_name.ok_or(::serde::de::Error::missing_field("TypeName"))?,
805 })
806 }
807 }
808
809 d.deserialize_map(Visitor)
810 }
811}
812
813impl ::Resource for ResourceVersion {
814 type Properties = ResourceVersionProperties;
815 const TYPE: &'static str = "AWS::CloudFormation::ResourceVersion";
816 fn properties(&self) -> &ResourceVersionProperties {
817 &self.properties
818 }
819 fn properties_mut(&mut self) -> &mut ResourceVersionProperties {
820 &mut self.properties
821 }
822}
823
824impl ::private::Sealed for ResourceVersion {}
825
826impl From<ResourceVersionProperties> for ResourceVersion {
827 fn from(properties: ResourceVersionProperties) -> ResourceVersion {
828 ResourceVersion { properties }
829 }
830}
831
832#[derive(Debug, Default)]
834pub struct Stack {
835 properties: StackProperties
836}
837
838#[derive(Debug, Default)]
840pub struct StackProperties {
841 pub notification_ar_ns: Option<::ValueList<String>>,
846 pub parameters: Option<::ValueMap<String>>,
851 pub tags: Option<::ValueList<::Tag>>,
856 pub template_url: ::Value<String>,
861 pub timeout_in_minutes: Option<::Value<u32>>,
866}
867
868impl ::serde::Serialize for StackProperties {
869 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
870 let mut map = ::serde::Serializer::serialize_map(s, None)?;
871 if let Some(ref notification_ar_ns) = self.notification_ar_ns {
872 ::serde::ser::SerializeMap::serialize_entry(&mut map, "NotificationARNs", notification_ar_ns)?;
873 }
874 if let Some(ref parameters) = self.parameters {
875 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Parameters", parameters)?;
876 }
877 if let Some(ref tags) = self.tags {
878 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
879 }
880 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TemplateURL", &self.template_url)?;
881 if let Some(ref timeout_in_minutes) = self.timeout_in_minutes {
882 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TimeoutInMinutes", timeout_in_minutes)?;
883 }
884 ::serde::ser::SerializeMap::end(map)
885 }
886}
887
888impl<'de> ::serde::Deserialize<'de> for StackProperties {
889 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<StackProperties, D::Error> {
890 struct Visitor;
891
892 impl<'de> ::serde::de::Visitor<'de> for Visitor {
893 type Value = StackProperties;
894
895 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
896 write!(f, "a struct of type StackProperties")
897 }
898
899 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
900 let mut notification_ar_ns: Option<::ValueList<String>> = None;
901 let mut parameters: Option<::ValueMap<String>> = None;
902 let mut tags: Option<::ValueList<::Tag>> = None;
903 let mut template_url: Option<::Value<String>> = None;
904 let mut timeout_in_minutes: Option<::Value<u32>> = None;
905
906 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
907 match __cfn_key.as_ref() {
908 "NotificationARNs" => {
909 notification_ar_ns = ::serde::de::MapAccess::next_value(&mut map)?;
910 }
911 "Parameters" => {
912 parameters = ::serde::de::MapAccess::next_value(&mut map)?;
913 }
914 "Tags" => {
915 tags = ::serde::de::MapAccess::next_value(&mut map)?;
916 }
917 "TemplateURL" => {
918 template_url = ::serde::de::MapAccess::next_value(&mut map)?;
919 }
920 "TimeoutInMinutes" => {
921 timeout_in_minutes = ::serde::de::MapAccess::next_value(&mut map)?;
922 }
923 _ => {}
924 }
925 }
926
927 Ok(StackProperties {
928 notification_ar_ns: notification_ar_ns,
929 parameters: parameters,
930 tags: tags,
931 template_url: template_url.ok_or(::serde::de::Error::missing_field("TemplateURL"))?,
932 timeout_in_minutes: timeout_in_minutes,
933 })
934 }
935 }
936
937 d.deserialize_map(Visitor)
938 }
939}
940
941impl ::Resource for Stack {
942 type Properties = StackProperties;
943 const TYPE: &'static str = "AWS::CloudFormation::Stack";
944 fn properties(&self) -> &StackProperties {
945 &self.properties
946 }
947 fn properties_mut(&mut self) -> &mut StackProperties {
948 &mut self.properties
949 }
950}
951
952impl ::private::Sealed for Stack {}
953
954impl From<StackProperties> for Stack {
955 fn from(properties: StackProperties) -> Stack {
956 Stack { properties }
957 }
958}
959
960#[derive(Debug, Default)]
962pub struct StackSet {
963 properties: StackSetProperties
964}
965
966#[derive(Debug, Default)]
968pub struct StackSetProperties {
969 pub administration_role_arn: Option<::Value<String>>,
974 pub auto_deployment: Option<::Value<self::stack_set::AutoDeployment>>,
979 pub call_as: Option<::Value<String>>,
984 pub capabilities: Option<::ValueList<String>>,
989 pub description: Option<::Value<String>>,
994 pub execution_role_name: Option<::Value<String>>,
999 pub operation_preferences: Option<::Value<self::stack_set::OperationPreferences>>,
1004 pub parameters: Option<::ValueList<self::stack_set::Parameter>>,
1009 pub permission_model: ::Value<String>,
1014 pub stack_instances_group: Option<::ValueList<self::stack_set::StackInstances>>,
1019 pub stack_set_name: ::Value<String>,
1024 pub tags: Option<::ValueList<::Tag>>,
1029 pub template_body: Option<::Value<String>>,
1034 pub template_url: Option<::Value<String>>,
1039}
1040
1041impl ::serde::Serialize for StackSetProperties {
1042 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1043 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1044 if let Some(ref administration_role_arn) = self.administration_role_arn {
1045 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdministrationRoleARN", administration_role_arn)?;
1046 }
1047 if let Some(ref auto_deployment) = self.auto_deployment {
1048 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AutoDeployment", auto_deployment)?;
1049 }
1050 if let Some(ref call_as) = self.call_as {
1051 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CallAs", call_as)?;
1052 }
1053 if let Some(ref capabilities) = self.capabilities {
1054 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Capabilities", capabilities)?;
1055 }
1056 if let Some(ref description) = self.description {
1057 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Description", description)?;
1058 }
1059 if let Some(ref execution_role_name) = self.execution_role_name {
1060 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ExecutionRoleName", execution_role_name)?;
1061 }
1062 if let Some(ref operation_preferences) = self.operation_preferences {
1063 ::serde::ser::SerializeMap::serialize_entry(&mut map, "OperationPreferences", operation_preferences)?;
1064 }
1065 if let Some(ref parameters) = self.parameters {
1066 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Parameters", parameters)?;
1067 }
1068 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PermissionModel", &self.permission_model)?;
1069 if let Some(ref stack_instances_group) = self.stack_instances_group {
1070 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StackInstancesGroup", stack_instances_group)?;
1071 }
1072 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StackSetName", &self.stack_set_name)?;
1073 if let Some(ref tags) = self.tags {
1074 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
1075 }
1076 if let Some(ref template_body) = self.template_body {
1077 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TemplateBody", template_body)?;
1078 }
1079 if let Some(ref template_url) = self.template_url {
1080 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TemplateURL", template_url)?;
1081 }
1082 ::serde::ser::SerializeMap::end(map)
1083 }
1084}
1085
1086impl<'de> ::serde::Deserialize<'de> for StackSetProperties {
1087 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<StackSetProperties, D::Error> {
1088 struct Visitor;
1089
1090 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1091 type Value = StackSetProperties;
1092
1093 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1094 write!(f, "a struct of type StackSetProperties")
1095 }
1096
1097 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1098 let mut administration_role_arn: Option<::Value<String>> = None;
1099 let mut auto_deployment: Option<::Value<self::stack_set::AutoDeployment>> = None;
1100 let mut call_as: Option<::Value<String>> = None;
1101 let mut capabilities: Option<::ValueList<String>> = None;
1102 let mut description: Option<::Value<String>> = None;
1103 let mut execution_role_name: Option<::Value<String>> = None;
1104 let mut operation_preferences: Option<::Value<self::stack_set::OperationPreferences>> = None;
1105 let mut parameters: Option<::ValueList<self::stack_set::Parameter>> = None;
1106 let mut permission_model: Option<::Value<String>> = None;
1107 let mut stack_instances_group: Option<::ValueList<self::stack_set::StackInstances>> = None;
1108 let mut stack_set_name: Option<::Value<String>> = None;
1109 let mut tags: Option<::ValueList<::Tag>> = None;
1110 let mut template_body: Option<::Value<String>> = None;
1111 let mut template_url: Option<::Value<String>> = None;
1112
1113 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1114 match __cfn_key.as_ref() {
1115 "AdministrationRoleARN" => {
1116 administration_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1117 }
1118 "AutoDeployment" => {
1119 auto_deployment = ::serde::de::MapAccess::next_value(&mut map)?;
1120 }
1121 "CallAs" => {
1122 call_as = ::serde::de::MapAccess::next_value(&mut map)?;
1123 }
1124 "Capabilities" => {
1125 capabilities = ::serde::de::MapAccess::next_value(&mut map)?;
1126 }
1127 "Description" => {
1128 description = ::serde::de::MapAccess::next_value(&mut map)?;
1129 }
1130 "ExecutionRoleName" => {
1131 execution_role_name = ::serde::de::MapAccess::next_value(&mut map)?;
1132 }
1133 "OperationPreferences" => {
1134 operation_preferences = ::serde::de::MapAccess::next_value(&mut map)?;
1135 }
1136 "Parameters" => {
1137 parameters = ::serde::de::MapAccess::next_value(&mut map)?;
1138 }
1139 "PermissionModel" => {
1140 permission_model = ::serde::de::MapAccess::next_value(&mut map)?;
1141 }
1142 "StackInstancesGroup" => {
1143 stack_instances_group = ::serde::de::MapAccess::next_value(&mut map)?;
1144 }
1145 "StackSetName" => {
1146 stack_set_name = ::serde::de::MapAccess::next_value(&mut map)?;
1147 }
1148 "Tags" => {
1149 tags = ::serde::de::MapAccess::next_value(&mut map)?;
1150 }
1151 "TemplateBody" => {
1152 template_body = ::serde::de::MapAccess::next_value(&mut map)?;
1153 }
1154 "TemplateURL" => {
1155 template_url = ::serde::de::MapAccess::next_value(&mut map)?;
1156 }
1157 _ => {}
1158 }
1159 }
1160
1161 Ok(StackSetProperties {
1162 administration_role_arn: administration_role_arn,
1163 auto_deployment: auto_deployment,
1164 call_as: call_as,
1165 capabilities: capabilities,
1166 description: description,
1167 execution_role_name: execution_role_name,
1168 operation_preferences: operation_preferences,
1169 parameters: parameters,
1170 permission_model: permission_model.ok_or(::serde::de::Error::missing_field("PermissionModel"))?,
1171 stack_instances_group: stack_instances_group,
1172 stack_set_name: stack_set_name.ok_or(::serde::de::Error::missing_field("StackSetName"))?,
1173 tags: tags,
1174 template_body: template_body,
1175 template_url: template_url,
1176 })
1177 }
1178 }
1179
1180 d.deserialize_map(Visitor)
1181 }
1182}
1183
1184impl ::Resource for StackSet {
1185 type Properties = StackSetProperties;
1186 const TYPE: &'static str = "AWS::CloudFormation::StackSet";
1187 fn properties(&self) -> &StackSetProperties {
1188 &self.properties
1189 }
1190 fn properties_mut(&mut self) -> &mut StackSetProperties {
1191 &mut self.properties
1192 }
1193}
1194
1195impl ::private::Sealed for StackSet {}
1196
1197impl From<StackSetProperties> for StackSet {
1198 fn from(properties: StackSetProperties) -> StackSet {
1199 StackSet { properties }
1200 }
1201}
1202
1203#[derive(Debug, Default)]
1205pub struct TypeActivation {
1206 properties: TypeActivationProperties
1207}
1208
1209#[derive(Debug, Default)]
1211pub struct TypeActivationProperties {
1212 pub auto_update: Option<::Value<bool>>,
1217 pub execution_role_arn: Option<::Value<String>>,
1222 pub logging_config: Option<::Value<self::type_activation::LoggingConfig>>,
1227 pub major_version: Option<::Value<String>>,
1232 pub public_type_arn: Option<::Value<String>>,
1237 pub publisher_id: Option<::Value<String>>,
1242 pub r#type: Option<::Value<String>>,
1247 pub type_name: Option<::Value<String>>,
1252 pub type_name_alias: Option<::Value<String>>,
1257 pub version_bump: Option<::Value<String>>,
1262}
1263
1264impl ::serde::Serialize for TypeActivationProperties {
1265 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1266 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1267 if let Some(ref auto_update) = self.auto_update {
1268 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AutoUpdate", auto_update)?;
1269 }
1270 if let Some(ref execution_role_arn) = self.execution_role_arn {
1271 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ExecutionRoleArn", execution_role_arn)?;
1272 }
1273 if let Some(ref logging_config) = self.logging_config {
1274 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LoggingConfig", logging_config)?;
1275 }
1276 if let Some(ref major_version) = self.major_version {
1277 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MajorVersion", major_version)?;
1278 }
1279 if let Some(ref public_type_arn) = self.public_type_arn {
1280 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PublicTypeArn", public_type_arn)?;
1281 }
1282 if let Some(ref publisher_id) = self.publisher_id {
1283 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PublisherId", publisher_id)?;
1284 }
1285 if let Some(ref r#type) = self.r#type {
1286 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Type", r#type)?;
1287 }
1288 if let Some(ref type_name) = self.type_name {
1289 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TypeName", type_name)?;
1290 }
1291 if let Some(ref type_name_alias) = self.type_name_alias {
1292 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TypeNameAlias", type_name_alias)?;
1293 }
1294 if let Some(ref version_bump) = self.version_bump {
1295 ::serde::ser::SerializeMap::serialize_entry(&mut map, "VersionBump", version_bump)?;
1296 }
1297 ::serde::ser::SerializeMap::end(map)
1298 }
1299}
1300
1301impl<'de> ::serde::Deserialize<'de> for TypeActivationProperties {
1302 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<TypeActivationProperties, D::Error> {
1303 struct Visitor;
1304
1305 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1306 type Value = TypeActivationProperties;
1307
1308 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1309 write!(f, "a struct of type TypeActivationProperties")
1310 }
1311
1312 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1313 let mut auto_update: Option<::Value<bool>> = None;
1314 let mut execution_role_arn: Option<::Value<String>> = None;
1315 let mut logging_config: Option<::Value<self::type_activation::LoggingConfig>> = None;
1316 let mut major_version: Option<::Value<String>> = None;
1317 let mut public_type_arn: Option<::Value<String>> = None;
1318 let mut publisher_id: Option<::Value<String>> = None;
1319 let mut r#type: Option<::Value<String>> = None;
1320 let mut type_name: Option<::Value<String>> = None;
1321 let mut type_name_alias: Option<::Value<String>> = None;
1322 let mut version_bump: Option<::Value<String>> = None;
1323
1324 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1325 match __cfn_key.as_ref() {
1326 "AutoUpdate" => {
1327 auto_update = ::serde::de::MapAccess::next_value(&mut map)?;
1328 }
1329 "ExecutionRoleArn" => {
1330 execution_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1331 }
1332 "LoggingConfig" => {
1333 logging_config = ::serde::de::MapAccess::next_value(&mut map)?;
1334 }
1335 "MajorVersion" => {
1336 major_version = ::serde::de::MapAccess::next_value(&mut map)?;
1337 }
1338 "PublicTypeArn" => {
1339 public_type_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1340 }
1341 "PublisherId" => {
1342 publisher_id = ::serde::de::MapAccess::next_value(&mut map)?;
1343 }
1344 "Type" => {
1345 r#type = ::serde::de::MapAccess::next_value(&mut map)?;
1346 }
1347 "TypeName" => {
1348 type_name = ::serde::de::MapAccess::next_value(&mut map)?;
1349 }
1350 "TypeNameAlias" => {
1351 type_name_alias = ::serde::de::MapAccess::next_value(&mut map)?;
1352 }
1353 "VersionBump" => {
1354 version_bump = ::serde::de::MapAccess::next_value(&mut map)?;
1355 }
1356 _ => {}
1357 }
1358 }
1359
1360 Ok(TypeActivationProperties {
1361 auto_update: auto_update,
1362 execution_role_arn: execution_role_arn,
1363 logging_config: logging_config,
1364 major_version: major_version,
1365 public_type_arn: public_type_arn,
1366 publisher_id: publisher_id,
1367 r#type: r#type,
1368 type_name: type_name,
1369 type_name_alias: type_name_alias,
1370 version_bump: version_bump,
1371 })
1372 }
1373 }
1374
1375 d.deserialize_map(Visitor)
1376 }
1377}
1378
1379impl ::Resource for TypeActivation {
1380 type Properties = TypeActivationProperties;
1381 const TYPE: &'static str = "AWS::CloudFormation::TypeActivation";
1382 fn properties(&self) -> &TypeActivationProperties {
1383 &self.properties
1384 }
1385 fn properties_mut(&mut self) -> &mut TypeActivationProperties {
1386 &mut self.properties
1387 }
1388}
1389
1390impl ::private::Sealed for TypeActivation {}
1391
1392impl From<TypeActivationProperties> for TypeActivation {
1393 fn from(properties: TypeActivationProperties) -> TypeActivation {
1394 TypeActivation { properties }
1395 }
1396}
1397
1398#[derive(Debug, Default)]
1400pub struct WaitCondition {
1401 properties: WaitConditionProperties
1402}
1403
1404#[derive(Debug, Default)]
1406pub struct WaitConditionProperties {
1407 pub count: Option<::Value<u32>>,
1412 pub handle: Option<::Value<String>>,
1417 pub timeout: Option<::Value<String>>,
1422}
1423
1424impl ::serde::Serialize for WaitConditionProperties {
1425 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1426 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1427 if let Some(ref count) = self.count {
1428 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Count", count)?;
1429 }
1430 if let Some(ref handle) = self.handle {
1431 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Handle", handle)?;
1432 }
1433 if let Some(ref timeout) = self.timeout {
1434 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Timeout", timeout)?;
1435 }
1436 ::serde::ser::SerializeMap::end(map)
1437 }
1438}
1439
1440impl<'de> ::serde::Deserialize<'de> for WaitConditionProperties {
1441 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<WaitConditionProperties, D::Error> {
1442 struct Visitor;
1443
1444 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1445 type Value = WaitConditionProperties;
1446
1447 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1448 write!(f, "a struct of type WaitConditionProperties")
1449 }
1450
1451 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1452 let mut count: Option<::Value<u32>> = None;
1453 let mut handle: Option<::Value<String>> = None;
1454 let mut timeout: Option<::Value<String>> = None;
1455
1456 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1457 match __cfn_key.as_ref() {
1458 "Count" => {
1459 count = ::serde::de::MapAccess::next_value(&mut map)?;
1460 }
1461 "Handle" => {
1462 handle = ::serde::de::MapAccess::next_value(&mut map)?;
1463 }
1464 "Timeout" => {
1465 timeout = ::serde::de::MapAccess::next_value(&mut map)?;
1466 }
1467 _ => {}
1468 }
1469 }
1470
1471 Ok(WaitConditionProperties {
1472 count: count,
1473 handle: handle,
1474 timeout: timeout,
1475 })
1476 }
1477 }
1478
1479 d.deserialize_map(Visitor)
1480 }
1481}
1482
1483impl ::Resource for WaitCondition {
1484 type Properties = WaitConditionProperties;
1485 const TYPE: &'static str = "AWS::CloudFormation::WaitCondition";
1486 fn properties(&self) -> &WaitConditionProperties {
1487 &self.properties
1488 }
1489 fn properties_mut(&mut self) -> &mut WaitConditionProperties {
1490 &mut self.properties
1491 }
1492}
1493
1494impl ::private::Sealed for WaitCondition {}
1495
1496impl From<WaitConditionProperties> for WaitCondition {
1497 fn from(properties: WaitConditionProperties) -> WaitCondition {
1498 WaitCondition { properties }
1499 }
1500}
1501
1502#[derive(Debug, Default)]
1504pub struct WaitConditionHandle {
1505 properties: WaitConditionHandleProperties
1506}
1507
1508#[derive(Debug, Default)]
1510pub struct WaitConditionHandleProperties {
1511}
1512
1513impl ::serde::Serialize for WaitConditionHandleProperties {
1514 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1515 let map = ::serde::Serializer::serialize_map(s, None)?;
1516 ::serde::ser::SerializeMap::end(map)
1517 }
1518}
1519
1520impl<'de> ::serde::Deserialize<'de> for WaitConditionHandleProperties {
1521 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<WaitConditionHandleProperties, D::Error> {
1522 struct Visitor;
1523
1524 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1525 type Value = WaitConditionHandleProperties;
1526
1527 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1528 write!(f, "a struct of type WaitConditionHandleProperties")
1529 }
1530
1531 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, _map: A) -> Result<Self::Value, A::Error> {
1532 Ok(WaitConditionHandleProperties {})
1533 }
1534 }
1535
1536 d.deserialize_map(Visitor)
1537 }
1538}
1539
1540impl ::Resource for WaitConditionHandle {
1541 type Properties = WaitConditionHandleProperties;
1542 const TYPE: &'static str = "AWS::CloudFormation::WaitConditionHandle";
1543 fn properties(&self) -> &WaitConditionHandleProperties {
1544 &self.properties
1545 }
1546 fn properties_mut(&mut self) -> &mut WaitConditionHandleProperties {
1547 &mut self.properties
1548 }
1549}
1550
1551impl ::private::Sealed for WaitConditionHandle {}
1552
1553impl From<WaitConditionHandleProperties> for WaitConditionHandle {
1554 fn from(properties: WaitConditionHandleProperties) -> WaitConditionHandle {
1555 WaitConditionHandle { properties }
1556 }
1557}
1558
1559pub mod resource_version {
1560 #[derive(Debug, Default)]
1564 pub struct LoggingConfig {
1565 pub log_group_name: Option<::Value<String>>,
1570 pub log_role_arn: Option<::Value<String>>,
1575 }
1576
1577 impl ::codec::SerializeValue for LoggingConfig {
1578 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1579 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1580 if let Some(ref log_group_name) = self.log_group_name {
1581 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogGroupName", log_group_name)?;
1582 }
1583 if let Some(ref log_role_arn) = self.log_role_arn {
1584 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogRoleArn", log_role_arn)?;
1585 }
1586 ::serde::ser::SerializeMap::end(map)
1587 }
1588 }
1589
1590 impl ::codec::DeserializeValue for LoggingConfig {
1591 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<LoggingConfig, D::Error> {
1592 struct Visitor;
1593
1594 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1595 type Value = LoggingConfig;
1596
1597 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1598 write!(f, "a struct of type LoggingConfig")
1599 }
1600
1601 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1602 let mut log_group_name: Option<::Value<String>> = None;
1603 let mut log_role_arn: Option<::Value<String>> = None;
1604
1605 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1606 match __cfn_key.as_ref() {
1607 "LogGroupName" => {
1608 log_group_name = ::serde::de::MapAccess::next_value(&mut map)?;
1609 }
1610 "LogRoleArn" => {
1611 log_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1612 }
1613 _ => {}
1614 }
1615 }
1616
1617 Ok(LoggingConfig {
1618 log_group_name: log_group_name,
1619 log_role_arn: log_role_arn,
1620 })
1621 }
1622 }
1623
1624 d.deserialize_map(Visitor)
1625 }
1626 }
1627}
1628
1629pub mod stack_set {
1630 #[derive(Debug, Default)]
1634 pub struct AutoDeployment {
1635 pub enabled: Option<::Value<bool>>,
1640 pub retain_stacks_on_account_removal: Option<::Value<bool>>,
1645 }
1646
1647 impl ::codec::SerializeValue for AutoDeployment {
1648 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1649 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1650 if let Some(ref enabled) = self.enabled {
1651 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Enabled", enabled)?;
1652 }
1653 if let Some(ref retain_stacks_on_account_removal) = self.retain_stacks_on_account_removal {
1654 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RetainStacksOnAccountRemoval", retain_stacks_on_account_removal)?;
1655 }
1656 ::serde::ser::SerializeMap::end(map)
1657 }
1658 }
1659
1660 impl ::codec::DeserializeValue for AutoDeployment {
1661 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<AutoDeployment, D::Error> {
1662 struct Visitor;
1663
1664 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1665 type Value = AutoDeployment;
1666
1667 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1668 write!(f, "a struct of type AutoDeployment")
1669 }
1670
1671 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1672 let mut enabled: Option<::Value<bool>> = None;
1673 let mut retain_stacks_on_account_removal: Option<::Value<bool>> = None;
1674
1675 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1676 match __cfn_key.as_ref() {
1677 "Enabled" => {
1678 enabled = ::serde::de::MapAccess::next_value(&mut map)?;
1679 }
1680 "RetainStacksOnAccountRemoval" => {
1681 retain_stacks_on_account_removal = ::serde::de::MapAccess::next_value(&mut map)?;
1682 }
1683 _ => {}
1684 }
1685 }
1686
1687 Ok(AutoDeployment {
1688 enabled: enabled,
1689 retain_stacks_on_account_removal: retain_stacks_on_account_removal,
1690 })
1691 }
1692 }
1693
1694 d.deserialize_map(Visitor)
1695 }
1696 }
1697
1698 #[derive(Debug, Default)]
1700 pub struct DeploymentTargets {
1701 pub accounts: Option<::ValueList<String>>,
1706 pub organizational_unit_ids: Option<::ValueList<String>>,
1711 }
1712
1713 impl ::codec::SerializeValue for DeploymentTargets {
1714 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1715 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1716 if let Some(ref accounts) = self.accounts {
1717 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Accounts", accounts)?;
1718 }
1719 if let Some(ref organizational_unit_ids) = self.organizational_unit_ids {
1720 ::serde::ser::SerializeMap::serialize_entry(&mut map, "OrganizationalUnitIds", organizational_unit_ids)?;
1721 }
1722 ::serde::ser::SerializeMap::end(map)
1723 }
1724 }
1725
1726 impl ::codec::DeserializeValue for DeploymentTargets {
1727 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DeploymentTargets, D::Error> {
1728 struct Visitor;
1729
1730 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1731 type Value = DeploymentTargets;
1732
1733 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1734 write!(f, "a struct of type DeploymentTargets")
1735 }
1736
1737 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1738 let mut accounts: Option<::ValueList<String>> = None;
1739 let mut organizational_unit_ids: Option<::ValueList<String>> = None;
1740
1741 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1742 match __cfn_key.as_ref() {
1743 "Accounts" => {
1744 accounts = ::serde::de::MapAccess::next_value(&mut map)?;
1745 }
1746 "OrganizationalUnitIds" => {
1747 organizational_unit_ids = ::serde::de::MapAccess::next_value(&mut map)?;
1748 }
1749 _ => {}
1750 }
1751 }
1752
1753 Ok(DeploymentTargets {
1754 accounts: accounts,
1755 organizational_unit_ids: organizational_unit_ids,
1756 })
1757 }
1758 }
1759
1760 d.deserialize_map(Visitor)
1761 }
1762 }
1763
1764 #[derive(Debug, Default)]
1766 pub struct OperationPreferences {
1767 pub failure_tolerance_count: Option<::Value<u32>>,
1772 pub failure_tolerance_percentage: Option<::Value<u32>>,
1777 pub max_concurrent_count: Option<::Value<u32>>,
1782 pub max_concurrent_percentage: Option<::Value<u32>>,
1787 pub region_concurrency_type: Option<::Value<String>>,
1792 pub region_order: Option<::ValueList<String>>,
1797 }
1798
1799 impl ::codec::SerializeValue for OperationPreferences {
1800 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1801 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1802 if let Some(ref failure_tolerance_count) = self.failure_tolerance_count {
1803 ::serde::ser::SerializeMap::serialize_entry(&mut map, "FailureToleranceCount", failure_tolerance_count)?;
1804 }
1805 if let Some(ref failure_tolerance_percentage) = self.failure_tolerance_percentage {
1806 ::serde::ser::SerializeMap::serialize_entry(&mut map, "FailureTolerancePercentage", failure_tolerance_percentage)?;
1807 }
1808 if let Some(ref max_concurrent_count) = self.max_concurrent_count {
1809 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MaxConcurrentCount", max_concurrent_count)?;
1810 }
1811 if let Some(ref max_concurrent_percentage) = self.max_concurrent_percentage {
1812 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MaxConcurrentPercentage", max_concurrent_percentage)?;
1813 }
1814 if let Some(ref region_concurrency_type) = self.region_concurrency_type {
1815 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RegionConcurrencyType", region_concurrency_type)?;
1816 }
1817 if let Some(ref region_order) = self.region_order {
1818 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RegionOrder", region_order)?;
1819 }
1820 ::serde::ser::SerializeMap::end(map)
1821 }
1822 }
1823
1824 impl ::codec::DeserializeValue for OperationPreferences {
1825 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<OperationPreferences, D::Error> {
1826 struct Visitor;
1827
1828 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1829 type Value = OperationPreferences;
1830
1831 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1832 write!(f, "a struct of type OperationPreferences")
1833 }
1834
1835 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1836 let mut failure_tolerance_count: Option<::Value<u32>> = None;
1837 let mut failure_tolerance_percentage: Option<::Value<u32>> = None;
1838 let mut max_concurrent_count: Option<::Value<u32>> = None;
1839 let mut max_concurrent_percentage: Option<::Value<u32>> = None;
1840 let mut region_concurrency_type: Option<::Value<String>> = None;
1841 let mut region_order: Option<::ValueList<String>> = None;
1842
1843 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1844 match __cfn_key.as_ref() {
1845 "FailureToleranceCount" => {
1846 failure_tolerance_count = ::serde::de::MapAccess::next_value(&mut map)?;
1847 }
1848 "FailureTolerancePercentage" => {
1849 failure_tolerance_percentage = ::serde::de::MapAccess::next_value(&mut map)?;
1850 }
1851 "MaxConcurrentCount" => {
1852 max_concurrent_count = ::serde::de::MapAccess::next_value(&mut map)?;
1853 }
1854 "MaxConcurrentPercentage" => {
1855 max_concurrent_percentage = ::serde::de::MapAccess::next_value(&mut map)?;
1856 }
1857 "RegionConcurrencyType" => {
1858 region_concurrency_type = ::serde::de::MapAccess::next_value(&mut map)?;
1859 }
1860 "RegionOrder" => {
1861 region_order = ::serde::de::MapAccess::next_value(&mut map)?;
1862 }
1863 _ => {}
1864 }
1865 }
1866
1867 Ok(OperationPreferences {
1868 failure_tolerance_count: failure_tolerance_count,
1869 failure_tolerance_percentage: failure_tolerance_percentage,
1870 max_concurrent_count: max_concurrent_count,
1871 max_concurrent_percentage: max_concurrent_percentage,
1872 region_concurrency_type: region_concurrency_type,
1873 region_order: region_order,
1874 })
1875 }
1876 }
1877
1878 d.deserialize_map(Visitor)
1879 }
1880 }
1881
1882 #[derive(Debug, Default)]
1884 pub struct Parameter {
1885 pub parameter_key: ::Value<String>,
1890 pub parameter_value: ::Value<String>,
1895 }
1896
1897 impl ::codec::SerializeValue for Parameter {
1898 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1899 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1900 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ParameterKey", &self.parameter_key)?;
1901 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ParameterValue", &self.parameter_value)?;
1902 ::serde::ser::SerializeMap::end(map)
1903 }
1904 }
1905
1906 impl ::codec::DeserializeValue for Parameter {
1907 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<Parameter, D::Error> {
1908 struct Visitor;
1909
1910 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1911 type Value = Parameter;
1912
1913 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1914 write!(f, "a struct of type Parameter")
1915 }
1916
1917 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1918 let mut parameter_key: Option<::Value<String>> = None;
1919 let mut parameter_value: Option<::Value<String>> = None;
1920
1921 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1922 match __cfn_key.as_ref() {
1923 "ParameterKey" => {
1924 parameter_key = ::serde::de::MapAccess::next_value(&mut map)?;
1925 }
1926 "ParameterValue" => {
1927 parameter_value = ::serde::de::MapAccess::next_value(&mut map)?;
1928 }
1929 _ => {}
1930 }
1931 }
1932
1933 Ok(Parameter {
1934 parameter_key: parameter_key.ok_or(::serde::de::Error::missing_field("ParameterKey"))?,
1935 parameter_value: parameter_value.ok_or(::serde::de::Error::missing_field("ParameterValue"))?,
1936 })
1937 }
1938 }
1939
1940 d.deserialize_map(Visitor)
1941 }
1942 }
1943
1944 #[derive(Debug, Default)]
1946 pub struct StackInstances {
1947 pub deployment_targets: ::Value<DeploymentTargets>,
1952 pub parameter_overrides: Option<::ValueList<Parameter>>,
1957 pub regions: ::ValueList<String>,
1962 }
1963
1964 impl ::codec::SerializeValue for StackInstances {
1965 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1966 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1967 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DeploymentTargets", &self.deployment_targets)?;
1968 if let Some(ref parameter_overrides) = self.parameter_overrides {
1969 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ParameterOverrides", parameter_overrides)?;
1970 }
1971 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Regions", &self.regions)?;
1972 ::serde::ser::SerializeMap::end(map)
1973 }
1974 }
1975
1976 impl ::codec::DeserializeValue for StackInstances {
1977 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<StackInstances, D::Error> {
1978 struct Visitor;
1979
1980 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1981 type Value = StackInstances;
1982
1983 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1984 write!(f, "a struct of type StackInstances")
1985 }
1986
1987 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1988 let mut deployment_targets: Option<::Value<DeploymentTargets>> = None;
1989 let mut parameter_overrides: Option<::ValueList<Parameter>> = None;
1990 let mut regions: Option<::ValueList<String>> = None;
1991
1992 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1993 match __cfn_key.as_ref() {
1994 "DeploymentTargets" => {
1995 deployment_targets = ::serde::de::MapAccess::next_value(&mut map)?;
1996 }
1997 "ParameterOverrides" => {
1998 parameter_overrides = ::serde::de::MapAccess::next_value(&mut map)?;
1999 }
2000 "Regions" => {
2001 regions = ::serde::de::MapAccess::next_value(&mut map)?;
2002 }
2003 _ => {}
2004 }
2005 }
2006
2007 Ok(StackInstances {
2008 deployment_targets: deployment_targets.ok_or(::serde::de::Error::missing_field("DeploymentTargets"))?,
2009 parameter_overrides: parameter_overrides,
2010 regions: regions.ok_or(::serde::de::Error::missing_field("Regions"))?,
2011 })
2012 }
2013 }
2014
2015 d.deserialize_map(Visitor)
2016 }
2017 }
2018}
2019
2020pub mod type_activation {
2021 #[derive(Debug, Default)]
2025 pub struct LoggingConfig {
2026 pub log_group_name: Option<::Value<String>>,
2031 pub log_role_arn: Option<::Value<String>>,
2036 }
2037
2038 impl ::codec::SerializeValue for LoggingConfig {
2039 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2040 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2041 if let Some(ref log_group_name) = self.log_group_name {
2042 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogGroupName", log_group_name)?;
2043 }
2044 if let Some(ref log_role_arn) = self.log_role_arn {
2045 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogRoleArn", log_role_arn)?;
2046 }
2047 ::serde::ser::SerializeMap::end(map)
2048 }
2049 }
2050
2051 impl ::codec::DeserializeValue for LoggingConfig {
2052 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<LoggingConfig, D::Error> {
2053 struct Visitor;
2054
2055 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2056 type Value = LoggingConfig;
2057
2058 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2059 write!(f, "a struct of type LoggingConfig")
2060 }
2061
2062 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2063 let mut log_group_name: Option<::Value<String>> = None;
2064 let mut log_role_arn: Option<::Value<String>> = None;
2065
2066 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2067 match __cfn_key.as_ref() {
2068 "LogGroupName" => {
2069 log_group_name = ::serde::de::MapAccess::next_value(&mut map)?;
2070 }
2071 "LogRoleArn" => {
2072 log_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
2073 }
2074 _ => {}
2075 }
2076 }
2077
2078 Ok(LoggingConfig {
2079 log_group_name: log_group_name,
2080 log_role_arn: log_role_arn,
2081 })
2082 }
2083 }
2084
2085 d.deserialize_map(Visitor)
2086 }
2087 }
2088}