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