cfn/aws/
sdb.rs

1//! Types for the `SDB` service.
2
3/// The [`AWS::SDB::Domain`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-simpledb.html) resource type.
4#[derive(Debug, Default)]
5pub struct Domain {
6    properties: DomainProperties
7}
8
9/// Properties for the `Domain` resource.
10#[derive(Debug, Default)]
11pub struct DomainProperties {
12    /// Property [`Description`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-simpledb.html#cfn-sdb-domain-description).
13    ///
14    /// Update type: _Mutable_.
15    /// AWS CloudFormation doesn't replace the resource when you change this property.
16    pub description: Option<::Value<String>>,
17}
18
19impl ::serde::Serialize for DomainProperties {
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        if let Some(ref description) = self.description {
23            ::serde::ser::SerializeMap::serialize_entry(&mut map, "Description", description)?;
24        }
25        ::serde::ser::SerializeMap::end(map)
26    }
27}
28
29impl<'de> ::serde::Deserialize<'de> for DomainProperties {
30    fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<DomainProperties, D::Error> {
31        struct Visitor;
32
33        impl<'de> ::serde::de::Visitor<'de> for Visitor {
34            type Value = DomainProperties;
35
36            fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
37                write!(f, "a struct of type DomainProperties")
38            }
39
40            fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
41                let mut description: Option<::Value<String>> = None;
42
43                while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
44                    match __cfn_key.as_ref() {
45                        "Description" => {
46                            description = ::serde::de::MapAccess::next_value(&mut map)?;
47                        }
48                        _ => {}
49                    }
50                }
51
52                Ok(DomainProperties {
53                    description: description,
54                })
55            }
56        }
57
58        d.deserialize_map(Visitor)
59    }
60}
61
62impl ::Resource for Domain {
63    type Properties = DomainProperties;
64    const TYPE: &'static str = "AWS::SDB::Domain";
65    fn properties(&self) -> &DomainProperties {
66        &self.properties
67    }
68    fn properties_mut(&mut self) -> &mut DomainProperties {
69        &mut self.properties
70    }
71}
72
73impl ::private::Sealed for Domain {}
74
75impl From<DomainProperties> for Domain {
76    fn from(properties: DomainProperties) -> Domain {
77        Domain { properties }
78    }
79}