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