1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include <aws/redshift/model/UpdateTarget.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 Redshift
19 {
20 namespace Model
21 {
22
UpdateTarget()23 UpdateTarget::UpdateTarget() :
24 m_maintenanceTrackNameHasBeenSet(false),
25 m_databaseVersionHasBeenSet(false),
26 m_supportedOperationsHasBeenSet(false)
27 {
28 }
29
UpdateTarget(const XmlNode & xmlNode)30 UpdateTarget::UpdateTarget(const XmlNode& xmlNode) :
31 m_maintenanceTrackNameHasBeenSet(false),
32 m_databaseVersionHasBeenSet(false),
33 m_supportedOperationsHasBeenSet(false)
34 {
35 *this = xmlNode;
36 }
37
operator =(const XmlNode & xmlNode)38 UpdateTarget& UpdateTarget::operator =(const XmlNode& xmlNode)
39 {
40 XmlNode resultNode = xmlNode;
41
42 if(!resultNode.IsNull())
43 {
44 XmlNode maintenanceTrackNameNode = resultNode.FirstChild("MaintenanceTrackName");
45 if(!maintenanceTrackNameNode.IsNull())
46 {
47 m_maintenanceTrackName = Aws::Utils::Xml::DecodeEscapedXmlText(maintenanceTrackNameNode.GetText());
48 m_maintenanceTrackNameHasBeenSet = true;
49 }
50 XmlNode databaseVersionNode = resultNode.FirstChild("DatabaseVersion");
51 if(!databaseVersionNode.IsNull())
52 {
53 m_databaseVersion = Aws::Utils::Xml::DecodeEscapedXmlText(databaseVersionNode.GetText());
54 m_databaseVersionHasBeenSet = true;
55 }
56 XmlNode supportedOperationsNode = resultNode.FirstChild("SupportedOperations");
57 if(!supportedOperationsNode.IsNull())
58 {
59 XmlNode supportedOperationsMember = supportedOperationsNode.FirstChild("SupportedOperation");
60 while(!supportedOperationsMember.IsNull())
61 {
62 m_supportedOperations.push_back(supportedOperationsMember);
63 supportedOperationsMember = supportedOperationsMember.NextNode("SupportedOperation");
64 }
65
66 m_supportedOperationsHasBeenSet = true;
67 }
68 }
69
70 return *this;
71 }
72
OutputToStream(Aws::OStream & oStream,const char * location,unsigned index,const char * locationValue) const73 void UpdateTarget::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const
74 {
75 if(m_maintenanceTrackNameHasBeenSet)
76 {
77 oStream << location << index << locationValue << ".MaintenanceTrackName=" << StringUtils::URLEncode(m_maintenanceTrackName.c_str()) << "&";
78 }
79
80 if(m_databaseVersionHasBeenSet)
81 {
82 oStream << location << index << locationValue << ".DatabaseVersion=" << StringUtils::URLEncode(m_databaseVersion.c_str()) << "&";
83 }
84
85 if(m_supportedOperationsHasBeenSet)
86 {
87 unsigned supportedOperationsIdx = 1;
88 for(auto& item : m_supportedOperations)
89 {
90 Aws::StringStream supportedOperationsSs;
91 supportedOperationsSs << location << index << locationValue << ".SupportedOperation." << supportedOperationsIdx++;
92 item.OutputToStream(oStream, supportedOperationsSs.str().c_str());
93 }
94 }
95
96 }
97
OutputToStream(Aws::OStream & oStream,const char * location) const98 void UpdateTarget::OutputToStream(Aws::OStream& oStream, const char* location) const
99 {
100 if(m_maintenanceTrackNameHasBeenSet)
101 {
102 oStream << location << ".MaintenanceTrackName=" << StringUtils::URLEncode(m_maintenanceTrackName.c_str()) << "&";
103 }
104 if(m_databaseVersionHasBeenSet)
105 {
106 oStream << location << ".DatabaseVersion=" << StringUtils::URLEncode(m_databaseVersion.c_str()) << "&";
107 }
108 if(m_supportedOperationsHasBeenSet)
109 {
110 unsigned supportedOperationsIdx = 1;
111 for(auto& item : m_supportedOperations)
112 {
113 Aws::StringStream supportedOperationsSs;
114 supportedOperationsSs << location << ".SupportedOperation." << supportedOperationsIdx++;
115 item.OutputToStream(oStream, supportedOperationsSs.str().c_str());
116 }
117 }
118 }
119
120 } // namespace Model
121 } // namespace Redshift
122 } // namespace Aws
123