1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include <aws/rds/model/DBEngineVersion.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 RDS
19 {
20 namespace Model
21 {
22
DBEngineVersion()23 DBEngineVersion::DBEngineVersion() :
24 m_engineHasBeenSet(false),
25 m_engineVersionHasBeenSet(false),
26 m_dBParameterGroupFamilyHasBeenSet(false),
27 m_dBEngineDescriptionHasBeenSet(false),
28 m_dBEngineVersionDescriptionHasBeenSet(false),
29 m_defaultCharacterSetHasBeenSet(false),
30 m_supportedCharacterSetsHasBeenSet(false),
31 m_supportedNcharCharacterSetsHasBeenSet(false),
32 m_validUpgradeTargetHasBeenSet(false),
33 m_supportedTimezonesHasBeenSet(false),
34 m_exportableLogTypesHasBeenSet(false),
35 m_supportsLogExportsToCloudwatchLogs(false),
36 m_supportsLogExportsToCloudwatchLogsHasBeenSet(false),
37 m_supportsReadReplica(false),
38 m_supportsReadReplicaHasBeenSet(false),
39 m_supportedEngineModesHasBeenSet(false),
40 m_supportedFeatureNamesHasBeenSet(false),
41 m_statusHasBeenSet(false),
42 m_supportsParallelQuery(false),
43 m_supportsParallelQueryHasBeenSet(false),
44 m_supportsGlobalDatabases(false),
45 m_supportsGlobalDatabasesHasBeenSet(false)
46 {
47 }
48
DBEngineVersion(const XmlNode & xmlNode)49 DBEngineVersion::DBEngineVersion(const XmlNode& xmlNode) :
50 m_engineHasBeenSet(false),
51 m_engineVersionHasBeenSet(false),
52 m_dBParameterGroupFamilyHasBeenSet(false),
53 m_dBEngineDescriptionHasBeenSet(false),
54 m_dBEngineVersionDescriptionHasBeenSet(false),
55 m_defaultCharacterSetHasBeenSet(false),
56 m_supportedCharacterSetsHasBeenSet(false),
57 m_supportedNcharCharacterSetsHasBeenSet(false),
58 m_validUpgradeTargetHasBeenSet(false),
59 m_supportedTimezonesHasBeenSet(false),
60 m_exportableLogTypesHasBeenSet(false),
61 m_supportsLogExportsToCloudwatchLogs(false),
62 m_supportsLogExportsToCloudwatchLogsHasBeenSet(false),
63 m_supportsReadReplica(false),
64 m_supportsReadReplicaHasBeenSet(false),
65 m_supportedEngineModesHasBeenSet(false),
66 m_supportedFeatureNamesHasBeenSet(false),
67 m_statusHasBeenSet(false),
68 m_supportsParallelQuery(false),
69 m_supportsParallelQueryHasBeenSet(false),
70 m_supportsGlobalDatabases(false),
71 m_supportsGlobalDatabasesHasBeenSet(false)
72 {
73 *this = xmlNode;
74 }
75
operator =(const XmlNode & xmlNode)76 DBEngineVersion& DBEngineVersion::operator =(const XmlNode& xmlNode)
77 {
78 XmlNode resultNode = xmlNode;
79
80 if(!resultNode.IsNull())
81 {
82 XmlNode engineNode = resultNode.FirstChild("Engine");
83 if(!engineNode.IsNull())
84 {
85 m_engine = Aws::Utils::Xml::DecodeEscapedXmlText(engineNode.GetText());
86 m_engineHasBeenSet = true;
87 }
88 XmlNode engineVersionNode = resultNode.FirstChild("EngineVersion");
89 if(!engineVersionNode.IsNull())
90 {
91 m_engineVersion = Aws::Utils::Xml::DecodeEscapedXmlText(engineVersionNode.GetText());
92 m_engineVersionHasBeenSet = true;
93 }
94 XmlNode dBParameterGroupFamilyNode = resultNode.FirstChild("DBParameterGroupFamily");
95 if(!dBParameterGroupFamilyNode.IsNull())
96 {
97 m_dBParameterGroupFamily = Aws::Utils::Xml::DecodeEscapedXmlText(dBParameterGroupFamilyNode.GetText());
98 m_dBParameterGroupFamilyHasBeenSet = true;
99 }
100 XmlNode dBEngineDescriptionNode = resultNode.FirstChild("DBEngineDescription");
101 if(!dBEngineDescriptionNode.IsNull())
102 {
103 m_dBEngineDescription = Aws::Utils::Xml::DecodeEscapedXmlText(dBEngineDescriptionNode.GetText());
104 m_dBEngineDescriptionHasBeenSet = true;
105 }
106 XmlNode dBEngineVersionDescriptionNode = resultNode.FirstChild("DBEngineVersionDescription");
107 if(!dBEngineVersionDescriptionNode.IsNull())
108 {
109 m_dBEngineVersionDescription = Aws::Utils::Xml::DecodeEscapedXmlText(dBEngineVersionDescriptionNode.GetText());
110 m_dBEngineVersionDescriptionHasBeenSet = true;
111 }
112 XmlNode defaultCharacterSetNode = resultNode.FirstChild("DefaultCharacterSet");
113 if(!defaultCharacterSetNode.IsNull())
114 {
115 m_defaultCharacterSet = defaultCharacterSetNode;
116 m_defaultCharacterSetHasBeenSet = true;
117 }
118 XmlNode supportedCharacterSetsNode = resultNode.FirstChild("SupportedCharacterSets");
119 if(!supportedCharacterSetsNode.IsNull())
120 {
121 XmlNode supportedCharacterSetsMember = supportedCharacterSetsNode.FirstChild("CharacterSet");
122 while(!supportedCharacterSetsMember.IsNull())
123 {
124 m_supportedCharacterSets.push_back(supportedCharacterSetsMember);
125 supportedCharacterSetsMember = supportedCharacterSetsMember.NextNode("CharacterSet");
126 }
127
128 m_supportedCharacterSetsHasBeenSet = true;
129 }
130 XmlNode supportedNcharCharacterSetsNode = resultNode.FirstChild("SupportedNcharCharacterSets");
131 if(!supportedNcharCharacterSetsNode.IsNull())
132 {
133 XmlNode supportedNcharCharacterSetsMember = supportedNcharCharacterSetsNode.FirstChild("CharacterSet");
134 while(!supportedNcharCharacterSetsMember.IsNull())
135 {
136 m_supportedNcharCharacterSets.push_back(supportedNcharCharacterSetsMember);
137 supportedNcharCharacterSetsMember = supportedNcharCharacterSetsMember.NextNode("CharacterSet");
138 }
139
140 m_supportedNcharCharacterSetsHasBeenSet = true;
141 }
142 XmlNode validUpgradeTargetNode = resultNode.FirstChild("ValidUpgradeTarget");
143 if(!validUpgradeTargetNode.IsNull())
144 {
145 XmlNode validUpgradeTargetMember = validUpgradeTargetNode.FirstChild("UpgradeTarget");
146 while(!validUpgradeTargetMember.IsNull())
147 {
148 m_validUpgradeTarget.push_back(validUpgradeTargetMember);
149 validUpgradeTargetMember = validUpgradeTargetMember.NextNode("UpgradeTarget");
150 }
151
152 m_validUpgradeTargetHasBeenSet = true;
153 }
154 XmlNode supportedTimezonesNode = resultNode.FirstChild("SupportedTimezones");
155 if(!supportedTimezonesNode.IsNull())
156 {
157 XmlNode supportedTimezonesMember = supportedTimezonesNode.FirstChild("Timezone");
158 while(!supportedTimezonesMember.IsNull())
159 {
160 m_supportedTimezones.push_back(supportedTimezonesMember);
161 supportedTimezonesMember = supportedTimezonesMember.NextNode("Timezone");
162 }
163
164 m_supportedTimezonesHasBeenSet = true;
165 }
166 XmlNode exportableLogTypesNode = resultNode.FirstChild("ExportableLogTypes");
167 if(!exportableLogTypesNode.IsNull())
168 {
169 XmlNode exportableLogTypesMember = exportableLogTypesNode.FirstChild("member");
170 while(!exportableLogTypesMember.IsNull())
171 {
172 m_exportableLogTypes.push_back(exportableLogTypesMember.GetText());
173 exportableLogTypesMember = exportableLogTypesMember.NextNode("member");
174 }
175
176 m_exportableLogTypesHasBeenSet = true;
177 }
178 XmlNode supportsLogExportsToCloudwatchLogsNode = resultNode.FirstChild("SupportsLogExportsToCloudwatchLogs");
179 if(!supportsLogExportsToCloudwatchLogsNode.IsNull())
180 {
181 m_supportsLogExportsToCloudwatchLogs = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(supportsLogExportsToCloudwatchLogsNode.GetText()).c_str()).c_str());
182 m_supportsLogExportsToCloudwatchLogsHasBeenSet = true;
183 }
184 XmlNode supportsReadReplicaNode = resultNode.FirstChild("SupportsReadReplica");
185 if(!supportsReadReplicaNode.IsNull())
186 {
187 m_supportsReadReplica = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(supportsReadReplicaNode.GetText()).c_str()).c_str());
188 m_supportsReadReplicaHasBeenSet = true;
189 }
190 XmlNode supportedEngineModesNode = resultNode.FirstChild("SupportedEngineModes");
191 if(!supportedEngineModesNode.IsNull())
192 {
193 XmlNode supportedEngineModesMember = supportedEngineModesNode.FirstChild("member");
194 while(!supportedEngineModesMember.IsNull())
195 {
196 m_supportedEngineModes.push_back(supportedEngineModesMember.GetText());
197 supportedEngineModesMember = supportedEngineModesMember.NextNode("member");
198 }
199
200 m_supportedEngineModesHasBeenSet = true;
201 }
202 XmlNode supportedFeatureNamesNode = resultNode.FirstChild("SupportedFeatureNames");
203 if(!supportedFeatureNamesNode.IsNull())
204 {
205 XmlNode supportedFeatureNamesMember = supportedFeatureNamesNode.FirstChild("member");
206 while(!supportedFeatureNamesMember.IsNull())
207 {
208 m_supportedFeatureNames.push_back(supportedFeatureNamesMember.GetText());
209 supportedFeatureNamesMember = supportedFeatureNamesMember.NextNode("member");
210 }
211
212 m_supportedFeatureNamesHasBeenSet = true;
213 }
214 XmlNode statusNode = resultNode.FirstChild("Status");
215 if(!statusNode.IsNull())
216 {
217 m_status = Aws::Utils::Xml::DecodeEscapedXmlText(statusNode.GetText());
218 m_statusHasBeenSet = true;
219 }
220 XmlNode supportsParallelQueryNode = resultNode.FirstChild("SupportsParallelQuery");
221 if(!supportsParallelQueryNode.IsNull())
222 {
223 m_supportsParallelQuery = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(supportsParallelQueryNode.GetText()).c_str()).c_str());
224 m_supportsParallelQueryHasBeenSet = true;
225 }
226 XmlNode supportsGlobalDatabasesNode = resultNode.FirstChild("SupportsGlobalDatabases");
227 if(!supportsGlobalDatabasesNode.IsNull())
228 {
229 m_supportsGlobalDatabases = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(supportsGlobalDatabasesNode.GetText()).c_str()).c_str());
230 m_supportsGlobalDatabasesHasBeenSet = true;
231 }
232 }
233
234 return *this;
235 }
236
OutputToStream(Aws::OStream & oStream,const char * location,unsigned index,const char * locationValue) const237 void DBEngineVersion::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const
238 {
239 if(m_engineHasBeenSet)
240 {
241 oStream << location << index << locationValue << ".Engine=" << StringUtils::URLEncode(m_engine.c_str()) << "&";
242 }
243
244 if(m_engineVersionHasBeenSet)
245 {
246 oStream << location << index << locationValue << ".EngineVersion=" << StringUtils::URLEncode(m_engineVersion.c_str()) << "&";
247 }
248
249 if(m_dBParameterGroupFamilyHasBeenSet)
250 {
251 oStream << location << index << locationValue << ".DBParameterGroupFamily=" << StringUtils::URLEncode(m_dBParameterGroupFamily.c_str()) << "&";
252 }
253
254 if(m_dBEngineDescriptionHasBeenSet)
255 {
256 oStream << location << index << locationValue << ".DBEngineDescription=" << StringUtils::URLEncode(m_dBEngineDescription.c_str()) << "&";
257 }
258
259 if(m_dBEngineVersionDescriptionHasBeenSet)
260 {
261 oStream << location << index << locationValue << ".DBEngineVersionDescription=" << StringUtils::URLEncode(m_dBEngineVersionDescription.c_str()) << "&";
262 }
263
264 if(m_defaultCharacterSetHasBeenSet)
265 {
266 Aws::StringStream defaultCharacterSetLocationAndMemberSs;
267 defaultCharacterSetLocationAndMemberSs << location << index << locationValue << ".DefaultCharacterSet";
268 m_defaultCharacterSet.OutputToStream(oStream, defaultCharacterSetLocationAndMemberSs.str().c_str());
269 }
270
271 if(m_supportedCharacterSetsHasBeenSet)
272 {
273 unsigned supportedCharacterSetsIdx = 1;
274 for(auto& item : m_supportedCharacterSets)
275 {
276 Aws::StringStream supportedCharacterSetsSs;
277 supportedCharacterSetsSs << location << index << locationValue << ".CharacterSet." << supportedCharacterSetsIdx++;
278 item.OutputToStream(oStream, supportedCharacterSetsSs.str().c_str());
279 }
280 }
281
282 if(m_supportedNcharCharacterSetsHasBeenSet)
283 {
284 unsigned supportedNcharCharacterSetsIdx = 1;
285 for(auto& item : m_supportedNcharCharacterSets)
286 {
287 Aws::StringStream supportedNcharCharacterSetsSs;
288 supportedNcharCharacterSetsSs << location << index << locationValue << ".CharacterSet." << supportedNcharCharacterSetsIdx++;
289 item.OutputToStream(oStream, supportedNcharCharacterSetsSs.str().c_str());
290 }
291 }
292
293 if(m_validUpgradeTargetHasBeenSet)
294 {
295 unsigned validUpgradeTargetIdx = 1;
296 for(auto& item : m_validUpgradeTarget)
297 {
298 Aws::StringStream validUpgradeTargetSs;
299 validUpgradeTargetSs << location << index << locationValue << ".UpgradeTarget." << validUpgradeTargetIdx++;
300 item.OutputToStream(oStream, validUpgradeTargetSs.str().c_str());
301 }
302 }
303
304 if(m_supportedTimezonesHasBeenSet)
305 {
306 unsigned supportedTimezonesIdx = 1;
307 for(auto& item : m_supportedTimezones)
308 {
309 Aws::StringStream supportedTimezonesSs;
310 supportedTimezonesSs << location << index << locationValue << ".Timezone." << supportedTimezonesIdx++;
311 item.OutputToStream(oStream, supportedTimezonesSs.str().c_str());
312 }
313 }
314
315 if(m_exportableLogTypesHasBeenSet)
316 {
317 unsigned exportableLogTypesIdx = 1;
318 for(auto& item : m_exportableLogTypes)
319 {
320 oStream << location << index << locationValue << ".ExportableLogTypes.member." << exportableLogTypesIdx++ << "=" << StringUtils::URLEncode(item.c_str()) << "&";
321 }
322 }
323
324 if(m_supportsLogExportsToCloudwatchLogsHasBeenSet)
325 {
326 oStream << location << index << locationValue << ".SupportsLogExportsToCloudwatchLogs=" << std::boolalpha << m_supportsLogExportsToCloudwatchLogs << "&";
327 }
328
329 if(m_supportsReadReplicaHasBeenSet)
330 {
331 oStream << location << index << locationValue << ".SupportsReadReplica=" << std::boolalpha << m_supportsReadReplica << "&";
332 }
333
334 if(m_supportedEngineModesHasBeenSet)
335 {
336 unsigned supportedEngineModesIdx = 1;
337 for(auto& item : m_supportedEngineModes)
338 {
339 oStream << location << index << locationValue << ".SupportedEngineModes.member." << supportedEngineModesIdx++ << "=" << StringUtils::URLEncode(item.c_str()) << "&";
340 }
341 }
342
343 if(m_supportedFeatureNamesHasBeenSet)
344 {
345 unsigned supportedFeatureNamesIdx = 1;
346 for(auto& item : m_supportedFeatureNames)
347 {
348 oStream << location << index << locationValue << ".SupportedFeatureNames.member." << supportedFeatureNamesIdx++ << "=" << StringUtils::URLEncode(item.c_str()) << "&";
349 }
350 }
351
352 if(m_statusHasBeenSet)
353 {
354 oStream << location << index << locationValue << ".Status=" << StringUtils::URLEncode(m_status.c_str()) << "&";
355 }
356
357 if(m_supportsParallelQueryHasBeenSet)
358 {
359 oStream << location << index << locationValue << ".SupportsParallelQuery=" << std::boolalpha << m_supportsParallelQuery << "&";
360 }
361
362 if(m_supportsGlobalDatabasesHasBeenSet)
363 {
364 oStream << location << index << locationValue << ".SupportsGlobalDatabases=" << std::boolalpha << m_supportsGlobalDatabases << "&";
365 }
366
367 }
368
OutputToStream(Aws::OStream & oStream,const char * location) const369 void DBEngineVersion::OutputToStream(Aws::OStream& oStream, const char* location) const
370 {
371 if(m_engineHasBeenSet)
372 {
373 oStream << location << ".Engine=" << StringUtils::URLEncode(m_engine.c_str()) << "&";
374 }
375 if(m_engineVersionHasBeenSet)
376 {
377 oStream << location << ".EngineVersion=" << StringUtils::URLEncode(m_engineVersion.c_str()) << "&";
378 }
379 if(m_dBParameterGroupFamilyHasBeenSet)
380 {
381 oStream << location << ".DBParameterGroupFamily=" << StringUtils::URLEncode(m_dBParameterGroupFamily.c_str()) << "&";
382 }
383 if(m_dBEngineDescriptionHasBeenSet)
384 {
385 oStream << location << ".DBEngineDescription=" << StringUtils::URLEncode(m_dBEngineDescription.c_str()) << "&";
386 }
387 if(m_dBEngineVersionDescriptionHasBeenSet)
388 {
389 oStream << location << ".DBEngineVersionDescription=" << StringUtils::URLEncode(m_dBEngineVersionDescription.c_str()) << "&";
390 }
391 if(m_defaultCharacterSetHasBeenSet)
392 {
393 Aws::String defaultCharacterSetLocationAndMember(location);
394 defaultCharacterSetLocationAndMember += ".DefaultCharacterSet";
395 m_defaultCharacterSet.OutputToStream(oStream, defaultCharacterSetLocationAndMember.c_str());
396 }
397 if(m_supportedCharacterSetsHasBeenSet)
398 {
399 unsigned supportedCharacterSetsIdx = 1;
400 for(auto& item : m_supportedCharacterSets)
401 {
402 Aws::StringStream supportedCharacterSetsSs;
403 supportedCharacterSetsSs << location << ".CharacterSet." << supportedCharacterSetsIdx++;
404 item.OutputToStream(oStream, supportedCharacterSetsSs.str().c_str());
405 }
406 }
407 if(m_supportedNcharCharacterSetsHasBeenSet)
408 {
409 unsigned supportedNcharCharacterSetsIdx = 1;
410 for(auto& item : m_supportedNcharCharacterSets)
411 {
412 Aws::StringStream supportedNcharCharacterSetsSs;
413 supportedNcharCharacterSetsSs << location << ".CharacterSet." << supportedNcharCharacterSetsIdx++;
414 item.OutputToStream(oStream, supportedNcharCharacterSetsSs.str().c_str());
415 }
416 }
417 if(m_validUpgradeTargetHasBeenSet)
418 {
419 unsigned validUpgradeTargetIdx = 1;
420 for(auto& item : m_validUpgradeTarget)
421 {
422 Aws::StringStream validUpgradeTargetSs;
423 validUpgradeTargetSs << location << ".UpgradeTarget." << validUpgradeTargetIdx++;
424 item.OutputToStream(oStream, validUpgradeTargetSs.str().c_str());
425 }
426 }
427 if(m_supportedTimezonesHasBeenSet)
428 {
429 unsigned supportedTimezonesIdx = 1;
430 for(auto& item : m_supportedTimezones)
431 {
432 Aws::StringStream supportedTimezonesSs;
433 supportedTimezonesSs << location << ".Timezone." << supportedTimezonesIdx++;
434 item.OutputToStream(oStream, supportedTimezonesSs.str().c_str());
435 }
436 }
437 if(m_exportableLogTypesHasBeenSet)
438 {
439 unsigned exportableLogTypesIdx = 1;
440 for(auto& item : m_exportableLogTypes)
441 {
442 oStream << location << ".ExportableLogTypes.member." << exportableLogTypesIdx++ << "=" << StringUtils::URLEncode(item.c_str()) << "&";
443 }
444 }
445 if(m_supportsLogExportsToCloudwatchLogsHasBeenSet)
446 {
447 oStream << location << ".SupportsLogExportsToCloudwatchLogs=" << std::boolalpha << m_supportsLogExportsToCloudwatchLogs << "&";
448 }
449 if(m_supportsReadReplicaHasBeenSet)
450 {
451 oStream << location << ".SupportsReadReplica=" << std::boolalpha << m_supportsReadReplica << "&";
452 }
453 if(m_supportedEngineModesHasBeenSet)
454 {
455 unsigned supportedEngineModesIdx = 1;
456 for(auto& item : m_supportedEngineModes)
457 {
458 oStream << location << ".SupportedEngineModes.member." << supportedEngineModesIdx++ << "=" << StringUtils::URLEncode(item.c_str()) << "&";
459 }
460 }
461 if(m_supportedFeatureNamesHasBeenSet)
462 {
463 unsigned supportedFeatureNamesIdx = 1;
464 for(auto& item : m_supportedFeatureNames)
465 {
466 oStream << location << ".SupportedFeatureNames.member." << supportedFeatureNamesIdx++ << "=" << StringUtils::URLEncode(item.c_str()) << "&";
467 }
468 }
469 if(m_statusHasBeenSet)
470 {
471 oStream << location << ".Status=" << StringUtils::URLEncode(m_status.c_str()) << "&";
472 }
473 if(m_supportsParallelQueryHasBeenSet)
474 {
475 oStream << location << ".SupportsParallelQuery=" << std::boolalpha << m_supportsParallelQuery << "&";
476 }
477 if(m_supportsGlobalDatabasesHasBeenSet)
478 {
479 oStream << location << ".SupportsGlobalDatabases=" << std::boolalpha << m_supportsGlobalDatabases << "&";
480 }
481 }
482
483 } // namespace Model
484 } // namespace RDS
485 } // namespace Aws
486