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/PendingModifiedValues.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 
PendingModifiedValues()23 PendingModifiedValues::PendingModifiedValues() :
24     m_dBInstanceClassHasBeenSet(false),
25     m_allocatedStorage(0),
26     m_allocatedStorageHasBeenSet(false),
27     m_masterUserPasswordHasBeenSet(false),
28     m_port(0),
29     m_portHasBeenSet(false),
30     m_backupRetentionPeriod(0),
31     m_backupRetentionPeriodHasBeenSet(false),
32     m_multiAZ(false),
33     m_multiAZHasBeenSet(false),
34     m_engineVersionHasBeenSet(false),
35     m_licenseModelHasBeenSet(false),
36     m_iops(0),
37     m_iopsHasBeenSet(false),
38     m_dBInstanceIdentifierHasBeenSet(false),
39     m_storageTypeHasBeenSet(false),
40     m_cACertificateIdentifierHasBeenSet(false),
41     m_dBSubnetGroupNameHasBeenSet(false),
42     m_pendingCloudwatchLogsExportsHasBeenSet(false),
43     m_processorFeaturesHasBeenSet(false),
44     m_iAMDatabaseAuthenticationEnabled(false),
45     m_iAMDatabaseAuthenticationEnabledHasBeenSet(false)
46 {
47 }
48 
PendingModifiedValues(const XmlNode & xmlNode)49 PendingModifiedValues::PendingModifiedValues(const XmlNode& xmlNode) :
50     m_dBInstanceClassHasBeenSet(false),
51     m_allocatedStorage(0),
52     m_allocatedStorageHasBeenSet(false),
53     m_masterUserPasswordHasBeenSet(false),
54     m_port(0),
55     m_portHasBeenSet(false),
56     m_backupRetentionPeriod(0),
57     m_backupRetentionPeriodHasBeenSet(false),
58     m_multiAZ(false),
59     m_multiAZHasBeenSet(false),
60     m_engineVersionHasBeenSet(false),
61     m_licenseModelHasBeenSet(false),
62     m_iops(0),
63     m_iopsHasBeenSet(false),
64     m_dBInstanceIdentifierHasBeenSet(false),
65     m_storageTypeHasBeenSet(false),
66     m_cACertificateIdentifierHasBeenSet(false),
67     m_dBSubnetGroupNameHasBeenSet(false),
68     m_pendingCloudwatchLogsExportsHasBeenSet(false),
69     m_processorFeaturesHasBeenSet(false),
70     m_iAMDatabaseAuthenticationEnabled(false),
71     m_iAMDatabaseAuthenticationEnabledHasBeenSet(false)
72 {
73   *this = xmlNode;
74 }
75 
operator =(const XmlNode & xmlNode)76 PendingModifiedValues& PendingModifiedValues::operator =(const XmlNode& xmlNode)
77 {
78   XmlNode resultNode = xmlNode;
79 
80   if(!resultNode.IsNull())
81   {
82     XmlNode dBInstanceClassNode = resultNode.FirstChild("DBInstanceClass");
83     if(!dBInstanceClassNode.IsNull())
84     {
85       m_dBInstanceClass = Aws::Utils::Xml::DecodeEscapedXmlText(dBInstanceClassNode.GetText());
86       m_dBInstanceClassHasBeenSet = true;
87     }
88     XmlNode allocatedStorageNode = resultNode.FirstChild("AllocatedStorage");
89     if(!allocatedStorageNode.IsNull())
90     {
91       m_allocatedStorage = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(allocatedStorageNode.GetText()).c_str()).c_str());
92       m_allocatedStorageHasBeenSet = true;
93     }
94     XmlNode masterUserPasswordNode = resultNode.FirstChild("MasterUserPassword");
95     if(!masterUserPasswordNode.IsNull())
96     {
97       m_masterUserPassword = Aws::Utils::Xml::DecodeEscapedXmlText(masterUserPasswordNode.GetText());
98       m_masterUserPasswordHasBeenSet = true;
99     }
100     XmlNode portNode = resultNode.FirstChild("Port");
101     if(!portNode.IsNull())
102     {
103       m_port = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(portNode.GetText()).c_str()).c_str());
104       m_portHasBeenSet = true;
105     }
106     XmlNode backupRetentionPeriodNode = resultNode.FirstChild("BackupRetentionPeriod");
107     if(!backupRetentionPeriodNode.IsNull())
108     {
109       m_backupRetentionPeriod = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(backupRetentionPeriodNode.GetText()).c_str()).c_str());
110       m_backupRetentionPeriodHasBeenSet = true;
111     }
112     XmlNode multiAZNode = resultNode.FirstChild("MultiAZ");
113     if(!multiAZNode.IsNull())
114     {
115       m_multiAZ = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(multiAZNode.GetText()).c_str()).c_str());
116       m_multiAZHasBeenSet = true;
117     }
118     XmlNode engineVersionNode = resultNode.FirstChild("EngineVersion");
119     if(!engineVersionNode.IsNull())
120     {
121       m_engineVersion = Aws::Utils::Xml::DecodeEscapedXmlText(engineVersionNode.GetText());
122       m_engineVersionHasBeenSet = true;
123     }
124     XmlNode licenseModelNode = resultNode.FirstChild("LicenseModel");
125     if(!licenseModelNode.IsNull())
126     {
127       m_licenseModel = Aws::Utils::Xml::DecodeEscapedXmlText(licenseModelNode.GetText());
128       m_licenseModelHasBeenSet = true;
129     }
130     XmlNode iopsNode = resultNode.FirstChild("Iops");
131     if(!iopsNode.IsNull())
132     {
133       m_iops = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(iopsNode.GetText()).c_str()).c_str());
134       m_iopsHasBeenSet = true;
135     }
136     XmlNode dBInstanceIdentifierNode = resultNode.FirstChild("DBInstanceIdentifier");
137     if(!dBInstanceIdentifierNode.IsNull())
138     {
139       m_dBInstanceIdentifier = Aws::Utils::Xml::DecodeEscapedXmlText(dBInstanceIdentifierNode.GetText());
140       m_dBInstanceIdentifierHasBeenSet = true;
141     }
142     XmlNode storageTypeNode = resultNode.FirstChild("StorageType");
143     if(!storageTypeNode.IsNull())
144     {
145       m_storageType = Aws::Utils::Xml::DecodeEscapedXmlText(storageTypeNode.GetText());
146       m_storageTypeHasBeenSet = true;
147     }
148     XmlNode cACertificateIdentifierNode = resultNode.FirstChild("CACertificateIdentifier");
149     if(!cACertificateIdentifierNode.IsNull())
150     {
151       m_cACertificateIdentifier = Aws::Utils::Xml::DecodeEscapedXmlText(cACertificateIdentifierNode.GetText());
152       m_cACertificateIdentifierHasBeenSet = true;
153     }
154     XmlNode dBSubnetGroupNameNode = resultNode.FirstChild("DBSubnetGroupName");
155     if(!dBSubnetGroupNameNode.IsNull())
156     {
157       m_dBSubnetGroupName = Aws::Utils::Xml::DecodeEscapedXmlText(dBSubnetGroupNameNode.GetText());
158       m_dBSubnetGroupNameHasBeenSet = true;
159     }
160     XmlNode pendingCloudwatchLogsExportsNode = resultNode.FirstChild("PendingCloudwatchLogsExports");
161     if(!pendingCloudwatchLogsExportsNode.IsNull())
162     {
163       m_pendingCloudwatchLogsExports = pendingCloudwatchLogsExportsNode;
164       m_pendingCloudwatchLogsExportsHasBeenSet = true;
165     }
166     XmlNode processorFeaturesNode = resultNode.FirstChild("ProcessorFeatures");
167     if(!processorFeaturesNode.IsNull())
168     {
169       XmlNode processorFeaturesMember = processorFeaturesNode.FirstChild("ProcessorFeature");
170       while(!processorFeaturesMember.IsNull())
171       {
172         m_processorFeatures.push_back(processorFeaturesMember);
173         processorFeaturesMember = processorFeaturesMember.NextNode("ProcessorFeature");
174       }
175 
176       m_processorFeaturesHasBeenSet = true;
177     }
178     XmlNode iAMDatabaseAuthenticationEnabledNode = resultNode.FirstChild("IAMDatabaseAuthenticationEnabled");
179     if(!iAMDatabaseAuthenticationEnabledNode.IsNull())
180     {
181       m_iAMDatabaseAuthenticationEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(iAMDatabaseAuthenticationEnabledNode.GetText()).c_str()).c_str());
182       m_iAMDatabaseAuthenticationEnabledHasBeenSet = true;
183     }
184   }
185 
186   return *this;
187 }
188 
OutputToStream(Aws::OStream & oStream,const char * location,unsigned index,const char * locationValue) const189 void PendingModifiedValues::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const
190 {
191   if(m_dBInstanceClassHasBeenSet)
192   {
193       oStream << location << index << locationValue << ".DBInstanceClass=" << StringUtils::URLEncode(m_dBInstanceClass.c_str()) << "&";
194   }
195 
196   if(m_allocatedStorageHasBeenSet)
197   {
198       oStream << location << index << locationValue << ".AllocatedStorage=" << m_allocatedStorage << "&";
199   }
200 
201   if(m_masterUserPasswordHasBeenSet)
202   {
203       oStream << location << index << locationValue << ".MasterUserPassword=" << StringUtils::URLEncode(m_masterUserPassword.c_str()) << "&";
204   }
205 
206   if(m_portHasBeenSet)
207   {
208       oStream << location << index << locationValue << ".Port=" << m_port << "&";
209   }
210 
211   if(m_backupRetentionPeriodHasBeenSet)
212   {
213       oStream << location << index << locationValue << ".BackupRetentionPeriod=" << m_backupRetentionPeriod << "&";
214   }
215 
216   if(m_multiAZHasBeenSet)
217   {
218       oStream << location << index << locationValue << ".MultiAZ=" << std::boolalpha << m_multiAZ << "&";
219   }
220 
221   if(m_engineVersionHasBeenSet)
222   {
223       oStream << location << index << locationValue << ".EngineVersion=" << StringUtils::URLEncode(m_engineVersion.c_str()) << "&";
224   }
225 
226   if(m_licenseModelHasBeenSet)
227   {
228       oStream << location << index << locationValue << ".LicenseModel=" << StringUtils::URLEncode(m_licenseModel.c_str()) << "&";
229   }
230 
231   if(m_iopsHasBeenSet)
232   {
233       oStream << location << index << locationValue << ".Iops=" << m_iops << "&";
234   }
235 
236   if(m_dBInstanceIdentifierHasBeenSet)
237   {
238       oStream << location << index << locationValue << ".DBInstanceIdentifier=" << StringUtils::URLEncode(m_dBInstanceIdentifier.c_str()) << "&";
239   }
240 
241   if(m_storageTypeHasBeenSet)
242   {
243       oStream << location << index << locationValue << ".StorageType=" << StringUtils::URLEncode(m_storageType.c_str()) << "&";
244   }
245 
246   if(m_cACertificateIdentifierHasBeenSet)
247   {
248       oStream << location << index << locationValue << ".CACertificateIdentifier=" << StringUtils::URLEncode(m_cACertificateIdentifier.c_str()) << "&";
249   }
250 
251   if(m_dBSubnetGroupNameHasBeenSet)
252   {
253       oStream << location << index << locationValue << ".DBSubnetGroupName=" << StringUtils::URLEncode(m_dBSubnetGroupName.c_str()) << "&";
254   }
255 
256   if(m_pendingCloudwatchLogsExportsHasBeenSet)
257   {
258       Aws::StringStream pendingCloudwatchLogsExportsLocationAndMemberSs;
259       pendingCloudwatchLogsExportsLocationAndMemberSs << location << index << locationValue << ".PendingCloudwatchLogsExports";
260       m_pendingCloudwatchLogsExports.OutputToStream(oStream, pendingCloudwatchLogsExportsLocationAndMemberSs.str().c_str());
261   }
262 
263   if(m_processorFeaturesHasBeenSet)
264   {
265       unsigned processorFeaturesIdx = 1;
266       for(auto& item : m_processorFeatures)
267       {
268         Aws::StringStream processorFeaturesSs;
269         processorFeaturesSs << location << index << locationValue << ".ProcessorFeature." << processorFeaturesIdx++;
270         item.OutputToStream(oStream, processorFeaturesSs.str().c_str());
271       }
272   }
273 
274   if(m_iAMDatabaseAuthenticationEnabledHasBeenSet)
275   {
276       oStream << location << index << locationValue << ".IAMDatabaseAuthenticationEnabled=" << std::boolalpha << m_iAMDatabaseAuthenticationEnabled << "&";
277   }
278 
279 }
280 
OutputToStream(Aws::OStream & oStream,const char * location) const281 void PendingModifiedValues::OutputToStream(Aws::OStream& oStream, const char* location) const
282 {
283   if(m_dBInstanceClassHasBeenSet)
284   {
285       oStream << location << ".DBInstanceClass=" << StringUtils::URLEncode(m_dBInstanceClass.c_str()) << "&";
286   }
287   if(m_allocatedStorageHasBeenSet)
288   {
289       oStream << location << ".AllocatedStorage=" << m_allocatedStorage << "&";
290   }
291   if(m_masterUserPasswordHasBeenSet)
292   {
293       oStream << location << ".MasterUserPassword=" << StringUtils::URLEncode(m_masterUserPassword.c_str()) << "&";
294   }
295   if(m_portHasBeenSet)
296   {
297       oStream << location << ".Port=" << m_port << "&";
298   }
299   if(m_backupRetentionPeriodHasBeenSet)
300   {
301       oStream << location << ".BackupRetentionPeriod=" << m_backupRetentionPeriod << "&";
302   }
303   if(m_multiAZHasBeenSet)
304   {
305       oStream << location << ".MultiAZ=" << std::boolalpha << m_multiAZ << "&";
306   }
307   if(m_engineVersionHasBeenSet)
308   {
309       oStream << location << ".EngineVersion=" << StringUtils::URLEncode(m_engineVersion.c_str()) << "&";
310   }
311   if(m_licenseModelHasBeenSet)
312   {
313       oStream << location << ".LicenseModel=" << StringUtils::URLEncode(m_licenseModel.c_str()) << "&";
314   }
315   if(m_iopsHasBeenSet)
316   {
317       oStream << location << ".Iops=" << m_iops << "&";
318   }
319   if(m_dBInstanceIdentifierHasBeenSet)
320   {
321       oStream << location << ".DBInstanceIdentifier=" << StringUtils::URLEncode(m_dBInstanceIdentifier.c_str()) << "&";
322   }
323   if(m_storageTypeHasBeenSet)
324   {
325       oStream << location << ".StorageType=" << StringUtils::URLEncode(m_storageType.c_str()) << "&";
326   }
327   if(m_cACertificateIdentifierHasBeenSet)
328   {
329       oStream << location << ".CACertificateIdentifier=" << StringUtils::URLEncode(m_cACertificateIdentifier.c_str()) << "&";
330   }
331   if(m_dBSubnetGroupNameHasBeenSet)
332   {
333       oStream << location << ".DBSubnetGroupName=" << StringUtils::URLEncode(m_dBSubnetGroupName.c_str()) << "&";
334   }
335   if(m_pendingCloudwatchLogsExportsHasBeenSet)
336   {
337       Aws::String pendingCloudwatchLogsExportsLocationAndMember(location);
338       pendingCloudwatchLogsExportsLocationAndMember += ".PendingCloudwatchLogsExports";
339       m_pendingCloudwatchLogsExports.OutputToStream(oStream, pendingCloudwatchLogsExportsLocationAndMember.c_str());
340   }
341   if(m_processorFeaturesHasBeenSet)
342   {
343       unsigned processorFeaturesIdx = 1;
344       for(auto& item : m_processorFeatures)
345       {
346         Aws::StringStream processorFeaturesSs;
347         processorFeaturesSs << location <<  ".ProcessorFeature." << processorFeaturesIdx++;
348         item.OutputToStream(oStream, processorFeaturesSs.str().c_str());
349       }
350   }
351   if(m_iAMDatabaseAuthenticationEnabledHasBeenSet)
352   {
353       oStream << location << ".IAMDatabaseAuthenticationEnabled=" << std::boolalpha << m_iAMDatabaseAuthenticationEnabled << "&";
354   }
355 }
356 
357 } // namespace Model
358 } // namespace RDS
359 } // namespace Aws
360