1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/email/model/S3Action.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 SES
19 {
20 namespace Model
21 {
22 
S3Action()23 S3Action::S3Action() :
24     m_topicArnHasBeenSet(false),
25     m_bucketNameHasBeenSet(false),
26     m_objectKeyPrefixHasBeenSet(false),
27     m_kmsKeyArnHasBeenSet(false)
28 {
29 }
30 
S3Action(const XmlNode & xmlNode)31 S3Action::S3Action(const XmlNode& xmlNode) :
32     m_topicArnHasBeenSet(false),
33     m_bucketNameHasBeenSet(false),
34     m_objectKeyPrefixHasBeenSet(false),
35     m_kmsKeyArnHasBeenSet(false)
36 {
37   *this = xmlNode;
38 }
39 
operator =(const XmlNode & xmlNode)40 S3Action& S3Action::operator =(const XmlNode& xmlNode)
41 {
42   XmlNode resultNode = xmlNode;
43 
44   if(!resultNode.IsNull())
45   {
46     XmlNode topicArnNode = resultNode.FirstChild("TopicArn");
47     if(!topicArnNode.IsNull())
48     {
49       m_topicArn = Aws::Utils::Xml::DecodeEscapedXmlText(topicArnNode.GetText());
50       m_topicArnHasBeenSet = true;
51     }
52     XmlNode bucketNameNode = resultNode.FirstChild("BucketName");
53     if(!bucketNameNode.IsNull())
54     {
55       m_bucketName = Aws::Utils::Xml::DecodeEscapedXmlText(bucketNameNode.GetText());
56       m_bucketNameHasBeenSet = true;
57     }
58     XmlNode objectKeyPrefixNode = resultNode.FirstChild("ObjectKeyPrefix");
59     if(!objectKeyPrefixNode.IsNull())
60     {
61       m_objectKeyPrefix = Aws::Utils::Xml::DecodeEscapedXmlText(objectKeyPrefixNode.GetText());
62       m_objectKeyPrefixHasBeenSet = true;
63     }
64     XmlNode kmsKeyArnNode = resultNode.FirstChild("KmsKeyArn");
65     if(!kmsKeyArnNode.IsNull())
66     {
67       m_kmsKeyArn = Aws::Utils::Xml::DecodeEscapedXmlText(kmsKeyArnNode.GetText());
68       m_kmsKeyArnHasBeenSet = true;
69     }
70   }
71 
72   return *this;
73 }
74 
OutputToStream(Aws::OStream & oStream,const char * location,unsigned index,const char * locationValue) const75 void S3Action::OutputToStream(Aws::OStream& oStream, const char* location, unsigned index, const char* locationValue) const
76 {
77   if(m_topicArnHasBeenSet)
78   {
79       oStream << location << index << locationValue << ".TopicArn=" << StringUtils::URLEncode(m_topicArn.c_str()) << "&";
80   }
81 
82   if(m_bucketNameHasBeenSet)
83   {
84       oStream << location << index << locationValue << ".BucketName=" << StringUtils::URLEncode(m_bucketName.c_str()) << "&";
85   }
86 
87   if(m_objectKeyPrefixHasBeenSet)
88   {
89       oStream << location << index << locationValue << ".ObjectKeyPrefix=" << StringUtils::URLEncode(m_objectKeyPrefix.c_str()) << "&";
90   }
91 
92   if(m_kmsKeyArnHasBeenSet)
93   {
94       oStream << location << index << locationValue << ".KmsKeyArn=" << StringUtils::URLEncode(m_kmsKeyArn.c_str()) << "&";
95   }
96 
97 }
98 
OutputToStream(Aws::OStream & oStream,const char * location) const99 void S3Action::OutputToStream(Aws::OStream& oStream, const char* location) const
100 {
101   if(m_topicArnHasBeenSet)
102   {
103       oStream << location << ".TopicArn=" << StringUtils::URLEncode(m_topicArn.c_str()) << "&";
104   }
105   if(m_bucketNameHasBeenSet)
106   {
107       oStream << location << ".BucketName=" << StringUtils::URLEncode(m_bucketName.c_str()) << "&";
108   }
109   if(m_objectKeyPrefixHasBeenSet)
110   {
111       oStream << location << ".ObjectKeyPrefix=" << StringUtils::URLEncode(m_objectKeyPrefix.c_str()) << "&";
112   }
113   if(m_kmsKeyArnHasBeenSet)
114   {
115       oStream << location << ".KmsKeyArn=" << StringUtils::URLEncode(m_kmsKeyArn.c_str()) << "&";
116   }
117 }
118 
119 } // namespace Model
120 } // namespace SES
121 } // namespace Aws
122