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/ValidDBInstanceModificationsMessage.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
ValidDBInstanceModificationsMessage()23 ValidDBInstanceModificationsMessage::ValidDBInstanceModificationsMessage() :
24 m_storageHasBeenSet(false),
25 m_validProcessorFeaturesHasBeenSet(false)
26 {
27 }
28
ValidDBInstanceModificationsMessage(const XmlNode & xmlNode)29 ValidDBInstanceModificationsMessage::ValidDBInstanceModificationsMessage(const XmlNode& xmlNode) :
30 m_storageHasBeenSet(false),
31 m_validProcessorFeaturesHasBeenSet(false)
32 {
33 *this = xmlNode;
34 }
35
operator =(const XmlNode & xmlNode)36 ValidDBInstanceModificationsMessage& ValidDBInstanceModificationsMessage::operator =(const XmlNode& xmlNode)
37 {
38 XmlNode resultNode = xmlNode;
39
40 if(!resultNode.IsNull())
41 {
42 XmlNode storageNode = resultNode.FirstChild("Storage");
43 if(!storageNode.IsNull())
44 {
45 XmlNode storageMember = storageNode.FirstChild("ValidStorageOptions");
46 while(!storageMember.IsNull())
47 {
48 m_storage.push_back(storageMember);
49 storageMember = storageMember.NextNode("ValidStorageOptions");
50 }
51
52 m_storageHasBeenSet = true;
53 }
54 XmlNode validProcessorFeaturesNode = resultNode.FirstChild("ValidProcessorFeatures");
55 if(!validProcessorFeaturesNode.IsNull())
56 {
57 XmlNode validProcessorFeaturesMember = validProcessorFeaturesNode.FirstChild("AvailableProcessorFeature");
58 while(!validProcessorFeaturesMember.IsNull())
59 {
60 m_validProcessorFeatures.push_back(validProcessorFeaturesMember);
61 validProcessorFeaturesMember = validProcessorFeaturesMember.NextNode("AvailableProcessorFeature");
62 }
63
64 m_validProcessorFeaturesHasBeenSet = true;
65 }
66 }
67
68 return *this;
69 }
70
OutputToStream(Aws::OStream & oStream,const char * location,unsigned index,const char * locationValue) const71 void ValidDBInstanceModificationsMessage::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const
72 {
73 if(m_storageHasBeenSet)
74 {
75 unsigned storageIdx = 1;
76 for(auto& item : m_storage)
77 {
78 Aws::StringStream storageSs;
79 storageSs << location << index << locationValue << ".ValidStorageOptions." << storageIdx++;
80 item.OutputToStream(oStream, storageSs.str().c_str());
81 }
82 }
83
84 if(m_validProcessorFeaturesHasBeenSet)
85 {
86 unsigned validProcessorFeaturesIdx = 1;
87 for(auto& item : m_validProcessorFeatures)
88 {
89 Aws::StringStream validProcessorFeaturesSs;
90 validProcessorFeaturesSs << location << index << locationValue << ".AvailableProcessorFeature." << validProcessorFeaturesIdx++;
91 item.OutputToStream(oStream, validProcessorFeaturesSs.str().c_str());
92 }
93 }
94
95 }
96
OutputToStream(Aws::OStream & oStream,const char * location) const97 void ValidDBInstanceModificationsMessage::OutputToStream(Aws::OStream& oStream, const char* location) const
98 {
99 if(m_storageHasBeenSet)
100 {
101 unsigned storageIdx = 1;
102 for(auto& item : m_storage)
103 {
104 Aws::StringStream storageSs;
105 storageSs << location << ".ValidStorageOptions." << storageIdx++;
106 item.OutputToStream(oStream, storageSs.str().c_str());
107 }
108 }
109 if(m_validProcessorFeaturesHasBeenSet)
110 {
111 unsigned validProcessorFeaturesIdx = 1;
112 for(auto& item : m_validProcessorFeatures)
113 {
114 Aws::StringStream validProcessorFeaturesSs;
115 validProcessorFeaturesSs << location << ".AvailableProcessorFeature." << validProcessorFeaturesIdx++;
116 item.OutputToStream(oStream, validProcessorFeaturesSs.str().c_str());
117 }
118 }
119 }
120
121 } // namespace Model
122 } // namespace RDS
123 } // namespace Aws
124