/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace SES { namespace Model { /** *

When included in a receipt rule, this action publishes a notification to * Amazon Simple Notification Service (Amazon SNS). This action includes a complete * copy of the email content in the Amazon SNS notifications. Amazon SNS * notifications for all other actions simply provide information about the email. * They do not include the email content itself.

If you own the Amazon SNS * topic, you don't need to do anything to give Amazon SES permission to publish * emails to it. However, if you don't own the Amazon SNS topic, you need to attach * a policy to the topic to give Amazon SES permissions to access it. For * information about giving permissions, see the Amazon * SES Developer Guide.

You can only publish emails that are * 150 KB or less (including the header) to Amazon SNS. Larger emails will bounce. * If you anticipate emails larger than 150 KB, use the S3 action instead.

*

For information about using a receipt rule to publish an Amazon * SNS notification, see the Amazon * SES Developer Guide.

See Also:

AWS API * Reference

*/ class SNSAction { public: AWS_SES_API SNSAction(); AWS_SES_API SNSAction(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_SES_API SNSAction& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_SES_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_SES_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline const Aws::String& GetTopicArn() const{ return m_topicArn; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline bool TopicArnHasBeenSet() const { return m_topicArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline void SetTopicArn(const Aws::String& value) { m_topicArnHasBeenSet = true; m_topicArn = value; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline void SetTopicArn(Aws::String&& value) { m_topicArnHasBeenSet = true; m_topicArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline void SetTopicArn(const char* value) { m_topicArnHasBeenSet = true; m_topicArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline SNSAction& WithTopicArn(const Aws::String& value) { SetTopicArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline SNSAction& WithTopicArn(Aws::String&& value) { SetTopicArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example * of an Amazon SNS topic ARN is * arn:aws:sns:us-west-2:123456789012:MyTopic. For more information * about Amazon SNS topics, see the Amazon SNS * Developer Guide.

*/ inline SNSAction& WithTopicArn(const char* value) { SetTopicArn(value); return *this;} /** *

The encoding to use for the email within the Amazon SNS notification. UTF-8 * is easier to use, but may not preserve all special characters when a message was * encoded with a different encoding format. Base64 preserves all special * characters. The default value is UTF-8.

*/ inline const SNSActionEncoding& GetEncoding() const{ return m_encoding; } /** *

The encoding to use for the email within the Amazon SNS notification. UTF-8 * is easier to use, but may not preserve all special characters when a message was * encoded with a different encoding format. Base64 preserves all special * characters. The default value is UTF-8.

*/ inline bool EncodingHasBeenSet() const { return m_encodingHasBeenSet; } /** *

The encoding to use for the email within the Amazon SNS notification. UTF-8 * is easier to use, but may not preserve all special characters when a message was * encoded with a different encoding format. Base64 preserves all special * characters. The default value is UTF-8.

*/ inline void SetEncoding(const SNSActionEncoding& value) { m_encodingHasBeenSet = true; m_encoding = value; } /** *

The encoding to use for the email within the Amazon SNS notification. UTF-8 * is easier to use, but may not preserve all special characters when a message was * encoded with a different encoding format. Base64 preserves all special * characters. The default value is UTF-8.

*/ inline void SetEncoding(SNSActionEncoding&& value) { m_encodingHasBeenSet = true; m_encoding = std::move(value); } /** *

The encoding to use for the email within the Amazon SNS notification. UTF-8 * is easier to use, but may not preserve all special characters when a message was * encoded with a different encoding format. Base64 preserves all special * characters. The default value is UTF-8.

*/ inline SNSAction& WithEncoding(const SNSActionEncoding& value) { SetEncoding(value); return *this;} /** *

The encoding to use for the email within the Amazon SNS notification. UTF-8 * is easier to use, but may not preserve all special characters when a message was * encoded with a different encoding format. Base64 preserves all special * characters. The default value is UTF-8.

*/ inline SNSAction& WithEncoding(SNSActionEncoding&& value) { SetEncoding(std::move(value)); return *this;} private: Aws::String m_topicArn; bool m_topicArnHasBeenSet = false; SNSActionEncoding m_encoding; bool m_encodingHasBeenSet = false; }; } // namespace Model } // namespace SES } // namespace Aws