Class: AWSCDK::SES::CfnMailManagerRuleSet::SNSActionProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
ses/cfn_mail_manager_rule_set.rb

Overview

The action to publish the email content to an Amazon SNS topic.

When executed, this action will send the email as a notification to the specified SNS topic.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(role_arn:, topic_arn:, action_failure_policy: nil, encoding: nil, payload_type: nil) ⇒ SNSActionProperty

Returns a new instance of SNSActionProperty.

Parameters:

  • role_arn (String)

    The Amazon Resource Name (ARN) of the IAM Role to use while writing to Amazon SNS.

  • topic_arn (String)

    The Amazon Resource Name (ARN) of the Amazon SNS Topic to which notification for the email received will be published.

  • action_failure_policy (String, nil) (defaults to: nil)

    A policy that states what to do in the case of failure.

  • encoding (String, nil) (defaults to: nil)

    The encoding to use for the email within the Amazon SNS notification.

  • payload_type (String, nil) (defaults to: nil)

    The expected payload type within the Amazon SNS notification.



2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
# File 'ses/cfn_mail_manager_rule_set.rb', line 2071

def initialize(role_arn:, topic_arn:, action_failure_policy: nil, encoding: nil, payload_type: nil)
  @role_arn = role_arn
  Jsii::Type.check_type(@role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "roleArn")
  @topic_arn = topic_arn
  Jsii::Type.check_type(@topic_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "topicArn")
  @action_failure_policy = action_failure_policy
  Jsii::Type.check_type(@action_failure_policy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "actionFailurePolicy") unless @action_failure_policy.nil?
  @encoding = encoding
  Jsii::Type.check_type(@encoding, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "encoding") unless @encoding.nil?
  @payload_type = payload_type
  Jsii::Type.check_type(@payload_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "payloadType") unless @payload_type.nil?
end

Instance Attribute Details

#action_failure_policyString? (readonly)

A policy that states what to do in the case of failure.

The action will fail if there are configuration errors. For example, specified SNS topic has been deleted or the role lacks necessary permissions to call the sns:Publish API.



2102
2103
2104
# File 'ses/cfn_mail_manager_rule_set.rb', line 2102

def action_failure_policy
  @action_failure_policy
end

#encodingString? (readonly)

The encoding to use for the email within the Amazon SNS notification.

The default value is UTF-8 . Use BASE64 if you need to preserve all special characters, especially when the original message uses a different encoding format.



2109
2110
2111
# File 'ses/cfn_mail_manager_rule_set.rb', line 2109

def encoding
  @encoding
end

#payload_typeString? (readonly)

The expected payload type within the Amazon SNS notification.

CONTENT attempts to publish the full email content with 20KB of headers content. HEADERS extracts up to 100KB of header content to include in the notification, email content will not be included to the notification. The default value is CONTENT .



2116
2117
2118
# File 'ses/cfn_mail_manager_rule_set.rb', line 2116

def payload_type
  @payload_type
end

#role_arnString (readonly)

The Amazon Resource Name (ARN) of the IAM Role to use while writing to Amazon SNS.

This role must have access to the sns:Publish API for the given topic.



2090
2091
2092
# File 'ses/cfn_mail_manager_rule_set.rb', line 2090

def role_arn
  @role_arn
end

#topic_arnString (readonly)

The Amazon Resource Name (ARN) of the Amazon SNS Topic to which notification for the email received will be published.



2095
2096
2097
# File 'ses/cfn_mail_manager_rule_set.rb', line 2095

def topic_arn
  @topic_arn
end

Class Method Details

.jsii_propertiesObject



2118
2119
2120
2121
2122
2123
2124
2125
2126
# File 'ses/cfn_mail_manager_rule_set.rb', line 2118

def self.jsii_properties
  {
    :role_arn => "roleArn",
    :topic_arn => "topicArn",
    :action_failure_policy => "actionFailurePolicy",
    :encoding => "encoding",
    :payload_type => "payloadType",
  }
end

Instance Method Details

#to_jsiiObject



2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
# File 'ses/cfn_mail_manager_rule_set.rb', line 2128

def to_jsii
  result = {}
  result.merge!({
    "roleArn" => @role_arn,
    "topicArn" => @topic_arn,
    "actionFailurePolicy" => @action_failure_policy,
    "encoding" => @encoding,
    "payloadType" => @payload_type,
  })
  result.compact
end