1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include <aws/cloudfront/model/DistributionConfig.h>
7 #include <aws/core/utils/xml/XmlSerializer.h>
8 #include <aws/core/utils/StringUtils.h>
9 #include <aws/core/utils/memory/stl/AWSStringStream.h>
10
11 #include <utility>
12
13 using namespace Aws::Utils::Xml;
14 using namespace Aws::Utils;
15
16 namespace Aws
17 {
18 namespace CloudFront
19 {
20 namespace Model
21 {
22
DistributionConfig()23 DistributionConfig::DistributionConfig() :
24 m_callerReferenceHasBeenSet(false),
25 m_aliasesHasBeenSet(false),
26 m_defaultRootObjectHasBeenSet(false),
27 m_originsHasBeenSet(false),
28 m_originGroupsHasBeenSet(false),
29 m_defaultCacheBehaviorHasBeenSet(false),
30 m_cacheBehaviorsHasBeenSet(false),
31 m_customErrorResponsesHasBeenSet(false),
32 m_commentHasBeenSet(false),
33 m_loggingHasBeenSet(false),
34 m_priceClass(PriceClass::NOT_SET),
35 m_priceClassHasBeenSet(false),
36 m_enabled(false),
37 m_enabledHasBeenSet(false),
38 m_viewerCertificateHasBeenSet(false),
39 m_restrictionsHasBeenSet(false),
40 m_webACLIdHasBeenSet(false),
41 m_httpVersion(HttpVersion::NOT_SET),
42 m_httpVersionHasBeenSet(false),
43 m_isIPV6Enabled(false),
44 m_isIPV6EnabledHasBeenSet(false)
45 {
46 }
47
DistributionConfig(const XmlNode & xmlNode)48 DistributionConfig::DistributionConfig(const XmlNode& xmlNode) :
49 m_callerReferenceHasBeenSet(false),
50 m_aliasesHasBeenSet(false),
51 m_defaultRootObjectHasBeenSet(false),
52 m_originsHasBeenSet(false),
53 m_originGroupsHasBeenSet(false),
54 m_defaultCacheBehaviorHasBeenSet(false),
55 m_cacheBehaviorsHasBeenSet(false),
56 m_customErrorResponsesHasBeenSet(false),
57 m_commentHasBeenSet(false),
58 m_loggingHasBeenSet(false),
59 m_priceClass(PriceClass::NOT_SET),
60 m_priceClassHasBeenSet(false),
61 m_enabled(false),
62 m_enabledHasBeenSet(false),
63 m_viewerCertificateHasBeenSet(false),
64 m_restrictionsHasBeenSet(false),
65 m_webACLIdHasBeenSet(false),
66 m_httpVersion(HttpVersion::NOT_SET),
67 m_httpVersionHasBeenSet(false),
68 m_isIPV6Enabled(false),
69 m_isIPV6EnabledHasBeenSet(false)
70 {
71 *this = xmlNode;
72 }
73
operator =(const XmlNode & xmlNode)74 DistributionConfig& DistributionConfig::operator =(const XmlNode& xmlNode)
75 {
76 XmlNode resultNode = xmlNode;
77
78 if(!resultNode.IsNull())
79 {
80 XmlNode callerReferenceNode = resultNode.FirstChild("CallerReference");
81 if(!callerReferenceNode.IsNull())
82 {
83 m_callerReference = Aws::Utils::Xml::DecodeEscapedXmlText(callerReferenceNode.GetText());
84 m_callerReferenceHasBeenSet = true;
85 }
86 XmlNode aliasesNode = resultNode.FirstChild("Aliases");
87 if(!aliasesNode.IsNull())
88 {
89 m_aliases = aliasesNode;
90 m_aliasesHasBeenSet = true;
91 }
92 XmlNode defaultRootObjectNode = resultNode.FirstChild("DefaultRootObject");
93 if(!defaultRootObjectNode.IsNull())
94 {
95 m_defaultRootObject = Aws::Utils::Xml::DecodeEscapedXmlText(defaultRootObjectNode.GetText());
96 m_defaultRootObjectHasBeenSet = true;
97 }
98 XmlNode originsNode = resultNode.FirstChild("Origins");
99 if(!originsNode.IsNull())
100 {
101 m_origins = originsNode;
102 m_originsHasBeenSet = true;
103 }
104 XmlNode originGroupsNode = resultNode.FirstChild("OriginGroups");
105 if(!originGroupsNode.IsNull())
106 {
107 m_originGroups = originGroupsNode;
108 m_originGroupsHasBeenSet = true;
109 }
110 XmlNode defaultCacheBehaviorNode = resultNode.FirstChild("DefaultCacheBehavior");
111 if(!defaultCacheBehaviorNode.IsNull())
112 {
113 m_defaultCacheBehavior = defaultCacheBehaviorNode;
114 m_defaultCacheBehaviorHasBeenSet = true;
115 }
116 XmlNode cacheBehaviorsNode = resultNode.FirstChild("CacheBehaviors");
117 if(!cacheBehaviorsNode.IsNull())
118 {
119 m_cacheBehaviors = cacheBehaviorsNode;
120 m_cacheBehaviorsHasBeenSet = true;
121 }
122 XmlNode customErrorResponsesNode = resultNode.FirstChild("CustomErrorResponses");
123 if(!customErrorResponsesNode.IsNull())
124 {
125 m_customErrorResponses = customErrorResponsesNode;
126 m_customErrorResponsesHasBeenSet = true;
127 }
128 XmlNode commentNode = resultNode.FirstChild("Comment");
129 if(!commentNode.IsNull())
130 {
131 m_comment = Aws::Utils::Xml::DecodeEscapedXmlText(commentNode.GetText());
132 m_commentHasBeenSet = true;
133 }
134 XmlNode loggingNode = resultNode.FirstChild("Logging");
135 if(!loggingNode.IsNull())
136 {
137 m_logging = loggingNode;
138 m_loggingHasBeenSet = true;
139 }
140 XmlNode priceClassNode = resultNode.FirstChild("PriceClass");
141 if(!priceClassNode.IsNull())
142 {
143 m_priceClass = PriceClassMapper::GetPriceClassForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(priceClassNode.GetText()).c_str()).c_str());
144 m_priceClassHasBeenSet = true;
145 }
146 XmlNode enabledNode = resultNode.FirstChild("Enabled");
147 if(!enabledNode.IsNull())
148 {
149 m_enabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(enabledNode.GetText()).c_str()).c_str());
150 m_enabledHasBeenSet = true;
151 }
152 XmlNode viewerCertificateNode = resultNode.FirstChild("ViewerCertificate");
153 if(!viewerCertificateNode.IsNull())
154 {
155 m_viewerCertificate = viewerCertificateNode;
156 m_viewerCertificateHasBeenSet = true;
157 }
158 XmlNode restrictionsNode = resultNode.FirstChild("Restrictions");
159 if(!restrictionsNode.IsNull())
160 {
161 m_restrictions = restrictionsNode;
162 m_restrictionsHasBeenSet = true;
163 }
164 XmlNode webACLIdNode = resultNode.FirstChild("WebACLId");
165 if(!webACLIdNode.IsNull())
166 {
167 m_webACLId = Aws::Utils::Xml::DecodeEscapedXmlText(webACLIdNode.GetText());
168 m_webACLIdHasBeenSet = true;
169 }
170 XmlNode httpVersionNode = resultNode.FirstChild("HttpVersion");
171 if(!httpVersionNode.IsNull())
172 {
173 m_httpVersion = HttpVersionMapper::GetHttpVersionForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(httpVersionNode.GetText()).c_str()).c_str());
174 m_httpVersionHasBeenSet = true;
175 }
176 XmlNode isIPV6EnabledNode = resultNode.FirstChild("IsIPV6Enabled");
177 if(!isIPV6EnabledNode.IsNull())
178 {
179 m_isIPV6Enabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(isIPV6EnabledNode.GetText()).c_str()).c_str());
180 m_isIPV6EnabledHasBeenSet = true;
181 }
182 }
183
184 return *this;
185 }
186
AddToNode(XmlNode & parentNode) const187 void DistributionConfig::AddToNode(XmlNode& parentNode) const
188 {
189 Aws::StringStream ss;
190 if(m_callerReferenceHasBeenSet)
191 {
192 XmlNode callerReferenceNode = parentNode.CreateChildElement("CallerReference");
193 callerReferenceNode.SetText(m_callerReference);
194 }
195
196 if(m_aliasesHasBeenSet)
197 {
198 XmlNode aliasesNode = parentNode.CreateChildElement("Aliases");
199 m_aliases.AddToNode(aliasesNode);
200 }
201
202 if(m_defaultRootObjectHasBeenSet)
203 {
204 XmlNode defaultRootObjectNode = parentNode.CreateChildElement("DefaultRootObject");
205 defaultRootObjectNode.SetText(m_defaultRootObject);
206 }
207
208 if(m_originsHasBeenSet)
209 {
210 XmlNode originsNode = parentNode.CreateChildElement("Origins");
211 m_origins.AddToNode(originsNode);
212 }
213
214 if(m_originGroupsHasBeenSet)
215 {
216 XmlNode originGroupsNode = parentNode.CreateChildElement("OriginGroups");
217 m_originGroups.AddToNode(originGroupsNode);
218 }
219
220 if(m_defaultCacheBehaviorHasBeenSet)
221 {
222 XmlNode defaultCacheBehaviorNode = parentNode.CreateChildElement("DefaultCacheBehavior");
223 m_defaultCacheBehavior.AddToNode(defaultCacheBehaviorNode);
224 }
225
226 if(m_cacheBehaviorsHasBeenSet)
227 {
228 XmlNode cacheBehaviorsNode = parentNode.CreateChildElement("CacheBehaviors");
229 m_cacheBehaviors.AddToNode(cacheBehaviorsNode);
230 }
231
232 if(m_customErrorResponsesHasBeenSet)
233 {
234 XmlNode customErrorResponsesNode = parentNode.CreateChildElement("CustomErrorResponses");
235 m_customErrorResponses.AddToNode(customErrorResponsesNode);
236 }
237
238 if(m_commentHasBeenSet)
239 {
240 XmlNode commentNode = parentNode.CreateChildElement("Comment");
241 commentNode.SetText(m_comment);
242 }
243
244 if(m_loggingHasBeenSet)
245 {
246 XmlNode loggingNode = parentNode.CreateChildElement("Logging");
247 m_logging.AddToNode(loggingNode);
248 }
249
250 if(m_priceClassHasBeenSet)
251 {
252 XmlNode priceClassNode = parentNode.CreateChildElement("PriceClass");
253 priceClassNode.SetText(PriceClassMapper::GetNameForPriceClass(m_priceClass));
254 }
255
256 if(m_enabledHasBeenSet)
257 {
258 XmlNode enabledNode = parentNode.CreateChildElement("Enabled");
259 ss << std::boolalpha << m_enabled;
260 enabledNode.SetText(ss.str());
261 ss.str("");
262 }
263
264 if(m_viewerCertificateHasBeenSet)
265 {
266 XmlNode viewerCertificateNode = parentNode.CreateChildElement("ViewerCertificate");
267 m_viewerCertificate.AddToNode(viewerCertificateNode);
268 }
269
270 if(m_restrictionsHasBeenSet)
271 {
272 XmlNode restrictionsNode = parentNode.CreateChildElement("Restrictions");
273 m_restrictions.AddToNode(restrictionsNode);
274 }
275
276 if(m_webACLIdHasBeenSet)
277 {
278 XmlNode webACLIdNode = parentNode.CreateChildElement("WebACLId");
279 webACLIdNode.SetText(m_webACLId);
280 }
281
282 if(m_httpVersionHasBeenSet)
283 {
284 XmlNode httpVersionNode = parentNode.CreateChildElement("HttpVersion");
285 httpVersionNode.SetText(HttpVersionMapper::GetNameForHttpVersion(m_httpVersion));
286 }
287
288 if(m_isIPV6EnabledHasBeenSet)
289 {
290 XmlNode isIPV6EnabledNode = parentNode.CreateChildElement("IsIPV6Enabled");
291 ss << std::boolalpha << m_isIPV6Enabled;
292 isIPV6EnabledNode.SetText(ss.str());
293 ss.str("");
294 }
295
296 }
297
298 } // namespace Model
299 } // namespace CloudFront
300 } // namespace Aws
301