awsses

package
v2.39.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2022 License: Apache-2.0 Imports: 7 Imported by: 1

README

Amazon Simple Email Service Construct Library

This module is part of the AWS Cloud Development Kit project.

Email receiving

Create a receipt rule set with rules and actions (actions can be found in the @aws-cdk/aws-ses-actions package):

import s3 "github.com/aws/aws-cdk-go/awscdk"
import actions "github.com/aws/aws-cdk-go/awscdk"


bucket := s3.NewBucket(this, jsii.String("Bucket"))
topic := sns.NewTopic(this, jsii.String("Topic"))

ses.NewReceiptRuleSet(this, jsii.String("RuleSet"), &receiptRuleSetProps{
	rules: []receiptRuleOptions{
		&receiptRuleOptions{
			recipients: []*string{
				jsii.String("hello@aws.com"),
			},
			actions: []iReceiptRuleAction{
				actions.NewAddHeader(&addHeaderProps{
					name: jsii.String("X-Special-Header"),
					value: jsii.String("aws"),
				}),
				actions.NewS3(&s3Props{
					bucket: bucket,
					objectKeyPrefix: jsii.String("emails/"),
					topic: topic,
				}),
			},
		},
		&receiptRuleOptions{
			recipients: []*string{
				jsii.String("aws.com"),
			},
			actions: []*iReceiptRuleAction{
				actions.NewSns(&snsProps{
					topic: topic,
				}),
			},
		},
	},
})

Alternatively, rules can be added to a rule set:

ruleSet := ses.NewReceiptRuleSet(this, jsii.String("RuleSet"))

awsRule := ruleSet.addRule(jsii.String("Aws"), &receiptRuleOptions{
	recipients: []*string{
		jsii.String("aws.com"),
	},
})

And actions to rules:

import actions "github.com/aws/aws-cdk-go/awscdk"

var awsRule receiptRule
var topic topic

awsRule.addAction(actions.NewSns(&snsProps{
	topic: topic,
}))

When using addRule, the new rule is added after the last added rule unless after is specified.

Drop spams

A rule to drop spam can be added by setting dropSpam to true:

ses.NewReceiptRuleSet(this, jsii.String("RuleSet"), &receiptRuleSetProps{
	dropSpam: jsii.Boolean(true),
})

This will add a rule at the top of the rule set with a Lambda action that stops processing messages that have at least one spam indicator. See Lambda Function Examples.

Receipt filter

Create a receipt filter:

ses.NewReceiptFilter(this, jsii.String("Filter"), &receiptFilterProps{
	ip: jsii.String("1.2.3.4/16"),
})

An allow list filter is also available:

ses.NewAllowListReceiptFilter(this, jsii.String("AllowList"), &allowListReceiptFilterProps{
	ips: []*string{
		jsii.String("10.0.0.0/16"),
		jsii.String("1.2.3.4/16"),
	},
})

This will first create a block all filter and then create allow filters for the listed ip addresses.

Email sending

Dedicated IP pools

When you create a new Amazon SES account, your emails are sent from IP addresses that are shared with other Amazon SES users. For an additional monthly charge, you can lease dedicated IP addresses that are reserved for your exclusive use.

Use the DedicatedIpPool construct to create a pool of dedicated IP addresses:

ses.NewDedicatedIpPool(this, jsii.String("Pool"))

The pool can then be used in a configuration set.

Configuration sets

Configuration sets are groups of rules that you can apply to your verified identities. A verified identity is a domain, subdomain, or email address you use to send email through Amazon SES. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

Use the ConfigurationSet construct to create a configuration set:

var myPool iDedicatedIpPool


ses.NewConfigurationSet(this, jsii.String("ConfigurationSet"), &configurationSetProps{
	customTrackingRedirectDomain: jsii.String("track.cdk.dev"),
	suppressionReasons: ses.suppressionReasons_COMPLAINTS_ONLY,
	tlsPolicy: ses.configurationSetTlsPolicy_REQUIRE,
	dedicatedIpPool: myPool,
})
Email identity

In Amazon SES, a verified identity is a domain or email address that you use to send or receive email. Before you can send an email using Amazon SES, you must create and verify each identity that you're going to use as a From, Source, Sender, or Return-Path address. Verifying an identity with Amazon SES confirms that you own it and helps prevent unauthorized use.

To verify an identity for a hosted zone, you create an EmailIdentity:

// Example automatically generated from non-compiling source. May contain errors.
var myHostedZone iPublicHostedZone


identity := ses.NewEmailIdentity(stack, jsii.String("Identity"), &emailIdentityProps{
	identity: ses.identity.publicHostedZone(myHostedZone),
	mailFromDomain: jsii.String("mail.cdk.dev"),
})

By default, Easy DKIM with a 2048-bit DKIM key is used.

You can instead configure DKIM authentication by using your own public-private key pair. This process is known as Bring Your Own DKIM (BYODKIM):

// Example automatically generated from non-compiling source. May contain errors.
var myHostedZone iPublicHostedZone


ses.NewEmailIdentity(stack, jsii.String("Identity"), &emailIdentityProps{
	identity: ses.identity.publicHostedZone(myHostedZone),
	dkimIdentity: dkimIdentity_ByoDkim(map[string]interface{}{
		"privateKey": SecretValue_secretsManager(jsii.String("dkim-private-key")),
		"publicKey": jsii.String("...base64-encoded-public-key..."),
		"selector": jsii.String("selector"),
	}),
})

When using publicHostedZone() for the identity, all necessary Amazon Route 53 records are created automatically:

  • CNAME records for Easy DKIM
  • TXT record for BYOD DKIM
  • MX and TXT records for the custom MAIL FROM

When working with domain(), records must be created manually:

// Example automatically generated from non-compiling source. May contain errors.
identity := ses.NewEmailIdentity(stack, jsii.String("Identity"), &emailIdentityProps{
	identity: ses.identity.domain(jsii.String("cdk.dev")),
})

for _, record := range identity.dkimRecords {}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllowListReceiptFilter_IsConstruct

func AllowListReceiptFilter_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnConfigurationSetEventDestination_CFN_RESOURCE_TYPE_NAME

func CfnConfigurationSetEventDestination_CFN_RESOURCE_TYPE_NAME() *string

func CfnConfigurationSetEventDestination_IsCfnElement

func CfnConfigurationSetEventDestination_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnConfigurationSetEventDestination_IsCfnResource

func CfnConfigurationSetEventDestination_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnConfigurationSetEventDestination_IsConstruct

func CfnConfigurationSetEventDestination_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnConfigurationSet_CFN_RESOURCE_TYPE_NAME

func CfnConfigurationSet_CFN_RESOURCE_TYPE_NAME() *string

func CfnConfigurationSet_IsCfnElement

func CfnConfigurationSet_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnConfigurationSet_IsCfnResource

func CfnConfigurationSet_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnConfigurationSet_IsConstruct

func CfnConfigurationSet_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnContactList_CFN_RESOURCE_TYPE_NAME

func CfnContactList_CFN_RESOURCE_TYPE_NAME() *string

func CfnContactList_IsCfnElement

func CfnContactList_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnContactList_IsCfnResource

func CfnContactList_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnContactList_IsConstruct

func CfnContactList_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnDedicatedIpPool_CFN_RESOURCE_TYPE_NAME added in v2.31.0

func CfnDedicatedIpPool_CFN_RESOURCE_TYPE_NAME() *string

func CfnDedicatedIpPool_IsCfnElement added in v2.31.0

func CfnDedicatedIpPool_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDedicatedIpPool_IsCfnResource added in v2.31.0

func CfnDedicatedIpPool_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnDedicatedIpPool_IsConstruct added in v2.31.0

func CfnDedicatedIpPool_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnEmailIdentity_CFN_RESOURCE_TYPE_NAME added in v2.31.0

func CfnEmailIdentity_CFN_RESOURCE_TYPE_NAME() *string

func CfnEmailIdentity_IsCfnElement added in v2.31.0

func CfnEmailIdentity_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnEmailIdentity_IsCfnResource added in v2.31.0

func CfnEmailIdentity_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnEmailIdentity_IsConstruct added in v2.31.0

func CfnEmailIdentity_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnReceiptFilter_CFN_RESOURCE_TYPE_NAME

func CfnReceiptFilter_CFN_RESOURCE_TYPE_NAME() *string

func CfnReceiptFilter_IsCfnElement

func CfnReceiptFilter_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnReceiptFilter_IsCfnResource

func CfnReceiptFilter_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnReceiptFilter_IsConstruct

func CfnReceiptFilter_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnReceiptRuleSet_CFN_RESOURCE_TYPE_NAME

func CfnReceiptRuleSet_CFN_RESOURCE_TYPE_NAME() *string

func CfnReceiptRuleSet_IsCfnElement

func CfnReceiptRuleSet_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnReceiptRuleSet_IsCfnResource

func CfnReceiptRuleSet_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnReceiptRuleSet_IsConstruct

func CfnReceiptRuleSet_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnReceiptRule_CFN_RESOURCE_TYPE_NAME

func CfnReceiptRule_CFN_RESOURCE_TYPE_NAME() *string

func CfnReceiptRule_IsCfnElement

func CfnReceiptRule_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnReceiptRule_IsCfnResource

func CfnReceiptRule_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnReceiptRule_IsConstruct

func CfnReceiptRule_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func CfnTemplate_CFN_RESOURCE_TYPE_NAME

func CfnTemplate_CFN_RESOURCE_TYPE_NAME() *string

func CfnTemplate_IsCfnElement

func CfnTemplate_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnTemplate_IsCfnResource

func CfnTemplate_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnTemplate_IsConstruct

func CfnTemplate_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func ConfigurationSet_IsConstruct added in v2.32.0

func ConfigurationSet_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func ConfigurationSet_IsOwnedResource added in v2.32.0

func ConfigurationSet_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func ConfigurationSet_IsResource added in v2.32.0

func ConfigurationSet_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func DedicatedIpPool_IsConstruct added in v2.32.0

func DedicatedIpPool_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func DedicatedIpPool_IsOwnedResource added in v2.32.0

func DedicatedIpPool_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func DedicatedIpPool_IsResource added in v2.32.0

func DedicatedIpPool_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func DropSpamReceiptRule_IsConstruct

func DropSpamReceiptRule_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func EmailIdentity_IsConstruct added in v2.32.0

func EmailIdentity_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func EmailIdentity_IsOwnedResource added in v2.32.0

func EmailIdentity_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func EmailIdentity_IsResource added in v2.32.0

func EmailIdentity_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NewAllowListReceiptFilter_Override

func NewAllowListReceiptFilter_Override(a AllowListReceiptFilter, scope constructs.Construct, id *string, props *AllowListReceiptFilterProps)

func NewCfnConfigurationSetEventDestination_Override

func NewCfnConfigurationSetEventDestination_Override(c CfnConfigurationSetEventDestination, scope constructs.Construct, id *string, props *CfnConfigurationSetEventDestinationProps)

Create a new `AWS::SES::ConfigurationSetEventDestination`.

func NewCfnConfigurationSet_Override

func NewCfnConfigurationSet_Override(c CfnConfigurationSet, scope constructs.Construct, id *string, props *CfnConfigurationSetProps)

Create a new `AWS::SES::ConfigurationSet`.

func NewCfnContactList_Override

func NewCfnContactList_Override(c CfnContactList, scope constructs.Construct, id *string, props *CfnContactListProps)

Create a new `AWS::SES::ContactList`.

func NewCfnDedicatedIpPool_Override added in v2.31.0

func NewCfnDedicatedIpPool_Override(c CfnDedicatedIpPool, scope constructs.Construct, id *string, props *CfnDedicatedIpPoolProps)

Create a new `AWS::SES::DedicatedIpPool`.

func NewCfnEmailIdentity_Override added in v2.31.0

func NewCfnEmailIdentity_Override(c CfnEmailIdentity, scope constructs.Construct, id *string, props *CfnEmailIdentityProps)

Create a new `AWS::SES::EmailIdentity`.

func NewCfnReceiptFilter_Override

func NewCfnReceiptFilter_Override(c CfnReceiptFilter, scope constructs.Construct, id *string, props *CfnReceiptFilterProps)

Create a new `AWS::SES::ReceiptFilter`.

func NewCfnReceiptRuleSet_Override

func NewCfnReceiptRuleSet_Override(c CfnReceiptRuleSet, scope constructs.Construct, id *string, props *CfnReceiptRuleSetProps)

Create a new `AWS::SES::ReceiptRuleSet`.

func NewCfnReceiptRule_Override

func NewCfnReceiptRule_Override(c CfnReceiptRule, scope constructs.Construct, id *string, props *CfnReceiptRuleProps)

Create a new `AWS::SES::ReceiptRule`.

func NewCfnTemplate_Override

func NewCfnTemplate_Override(c CfnTemplate, scope constructs.Construct, id *string, props *CfnTemplateProps)

Create a new `AWS::SES::Template`.

func NewConfigurationSet_Override added in v2.32.0

func NewConfigurationSet_Override(c ConfigurationSet, scope constructs.Construct, id *string, props *ConfigurationSetProps)

func NewDedicatedIpPool_Override added in v2.32.0

func NewDedicatedIpPool_Override(d DedicatedIpPool, scope constructs.Construct, id *string, props *DedicatedIpPoolProps)

func NewDkimIdentity_Override added in v2.32.0

func NewDkimIdentity_Override(d DkimIdentity)

func NewDropSpamReceiptRule_Override

func NewDropSpamReceiptRule_Override(d DropSpamReceiptRule, scope constructs.Construct, id *string, props *DropSpamReceiptRuleProps)

func NewEmailIdentity_Override added in v2.32.0

func NewEmailIdentity_Override(e EmailIdentity, scope constructs.Construct, id *string, props *EmailIdentityProps)

func NewIdentity_Override added in v2.32.0

func NewIdentity_Override(i Identity)

func NewReceiptFilter_Override

func NewReceiptFilter_Override(r ReceiptFilter, scope constructs.Construct, id *string, props *ReceiptFilterProps)

func NewReceiptRuleSet_Override

func NewReceiptRuleSet_Override(r ReceiptRuleSet, scope constructs.Construct, id *string, props *ReceiptRuleSetProps)

func NewReceiptRule_Override

func NewReceiptRule_Override(r ReceiptRule, scope constructs.Construct, id *string, props *ReceiptRuleProps)

func ReceiptFilter_IsConstruct

func ReceiptFilter_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func ReceiptFilter_IsOwnedResource added in v2.32.0

func ReceiptFilter_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func ReceiptFilter_IsResource

func ReceiptFilter_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func ReceiptRuleSet_IsConstruct

func ReceiptRuleSet_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func ReceiptRuleSet_IsOwnedResource added in v2.32.0

func ReceiptRuleSet_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func ReceiptRuleSet_IsResource

func ReceiptRuleSet_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func ReceiptRule_IsConstruct

func ReceiptRule_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func ReceiptRule_IsOwnedResource added in v2.32.0

func ReceiptRule_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise.

func ReceiptRule_IsResource

func ReceiptRule_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

Types

type AddHeaderActionConfig

type AddHeaderActionConfig struct {
	// The name of the header that you want to add to the incoming message.
	HeaderName *string `field:"required" json:"headerName" yaml:"headerName"`
	// The content that you want to include in the header.
	HeaderValue *string `field:"required" json:"headerValue" yaml:"headerValue"`
}

AddHeaderAction configuration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

addHeaderActionConfig := &addHeaderActionConfig{
	headerName: jsii.String("headerName"),
	headerValue: jsii.String("headerValue"),
}

type AllowListReceiptFilter

type AllowListReceiptFilter interface {
	constructs.Construct
	// The tree node.
	Node() constructs.Node
	// Returns a string representation of this construct.
	ToString() *string
}

An allow list receipt filter.

Example:

ses.NewAllowListReceiptFilter(this, jsii.String("AllowList"), &allowListReceiptFilterProps{
	ips: []*string{
		jsii.String("10.0.0.0/16"),
		jsii.String("1.2.3.4/16"),
	},
})

func NewAllowListReceiptFilter

func NewAllowListReceiptFilter(scope constructs.Construct, id *string, props *AllowListReceiptFilterProps) AllowListReceiptFilter

type AllowListReceiptFilterProps

type AllowListReceiptFilterProps struct {
	// A list of ip addresses or ranges to allow list.
	Ips *[]*string `field:"required" json:"ips" yaml:"ips"`
}

Construction properties for am AllowListReceiptFilter.

Example:

ses.NewAllowListReceiptFilter(this, jsii.String("AllowList"), &allowListReceiptFilterProps{
	ips: []*string{
		jsii.String("10.0.0.0/16"),
		jsii.String("1.2.3.4/16"),
	},
})

type BounceActionConfig

type BounceActionConfig struct {
	// Human-readable text to include in the bounce message.
	Message *string `field:"required" json:"message" yaml:"message"`
	// The email address of the sender of the bounced email.
	//
	// This is the address that the bounce message is sent from.
	Sender *string `field:"required" json:"sender" yaml:"sender"`
	// The SMTP reply code, as defined by RFC 5321.
	SmtpReplyCode *string `field:"required" json:"smtpReplyCode" yaml:"smtpReplyCode"`
	// The SMTP enhanced status code, as defined by RFC 3463.
	StatusCode *string `field:"optional" json:"statusCode" yaml:"statusCode"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the bounce action is taken.
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

BoundAction configuration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

bounceActionConfig := &bounceActionConfig{
	message: jsii.String("message"),
	sender: jsii.String("sender"),
	smtpReplyCode: jsii.String("smtpReplyCode"),

	// the properties below are optional
	statusCode: jsii.String("statusCode"),
	topicArn: jsii.String("topicArn"),
}

type ByoDkimOptions added in v2.32.0

type ByoDkimOptions struct {
	// The private key that's used to generate a DKIM signature.
	PrivateKey awscdk.SecretValue `field:"required" json:"privateKey" yaml:"privateKey"`
	// A string that's used to identify a public key in the DNS configuration for a domain.
	Selector *string `field:"required" json:"selector" yaml:"selector"`
	// The public key.
	//
	// If specified, a TXT record with the public key is created.
	PublicKey *string `field:"optional" json:"publicKey" yaml:"publicKey"`
}

Options for BYO DKIM.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import cdk "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var secretValue secretValue

byoDkimOptions := &byoDkimOptions{
	privateKey: secretValue,
	selector: jsii.String("selector"),

	// the properties below are optional
	publicKey: jsii.String("publicKey"),
}

type CfnConfigurationSet

type CfnConfigurationSet interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// `AWS::SES::ConfigurationSet.DeliveryOptions`.
	DeliveryOptions() interface{}
	SetDeliveryOptions(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The name of the configuration set. The name must meet the following requirements:.
	//
	// - Contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
	// - Contain 64 characters or fewer.
	Name() *string
	SetName(val *string)
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// `AWS::SES::ConfigurationSet.ReputationOptions`.
	ReputationOptions() interface{}
	SetReputationOptions(val interface{})
	// `AWS::SES::ConfigurationSet.SendingOptions`.
	SendingOptions() interface{}
	SetSendingOptions(val interface{})
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// `AWS::SES::ConfigurationSet.SuppressionOptions`.
	SuppressionOptions() interface{}
	SetSuppressionOptions(val interface{})
	// `AWS::SES::ConfigurationSet.TrackingOptions`.
	TrackingOptions() interface{}
	SetTrackingOptions(val interface{})
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::ConfigurationSet`.

The name of the configuration set.

Configuration sets let you create groups of rules that you can apply to the emails you send using Amazon SES. For more information about using configuration sets, see [Using Amazon SES Configuration Sets](https://docs.aws.amazon.com/ses/latest/dg/using-configuration-sets.html) in the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnConfigurationSet := awscdk.Aws_ses.NewCfnConfigurationSet(this, jsii.String("MyCfnConfigurationSet"), &cfnConfigurationSetProps{
	deliveryOptions: &deliveryOptionsProperty{
		sendingPoolName: jsii.String("sendingPoolName"),
		tlsPolicy: jsii.String("tlsPolicy"),
	},
	name: jsii.String("name"),
	reputationOptions: &reputationOptionsProperty{
		reputationMetricsEnabled: jsii.Boolean(false),
	},
	sendingOptions: &sendingOptionsProperty{
		sendingEnabled: jsii.Boolean(false),
	},
	suppressionOptions: &suppressionOptionsProperty{
		suppressedReasons: []*string{
			jsii.String("suppressedReasons"),
		},
	},
	trackingOptions: &trackingOptionsProperty{
		customRedirectDomain: jsii.String("customRedirectDomain"),
	},
})

func NewCfnConfigurationSet

func NewCfnConfigurationSet(scope constructs.Construct, id *string, props *CfnConfigurationSetProps) CfnConfigurationSet

Create a new `AWS::SES::ConfigurationSet`.

type CfnConfigurationSetEventDestination

type CfnConfigurationSetEventDestination interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// The name of the configuration set that contains the event destination.
	ConfigurationSetName() *string
	SetConfigurationSetName(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The event destination object.
	EventDestination() interface{}
	SetEventDestination(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::ConfigurationSetEventDestination`.

Specifies a configuration set event destination. An event destination is an AWS service that Amazon SES publishes email sending events to. When you specify an event destination, you provide one, and only one, destination. You can send event data to Amazon CloudWatch or Amazon Kinesis Data Firehose.

> You can't specify Amazon SNS event destinations in CloudFormation templates.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnConfigurationSetEventDestination := awscdk.Aws_ses.NewCfnConfigurationSetEventDestination(this, jsii.String("MyCfnConfigurationSetEventDestination"), &cfnConfigurationSetEventDestinationProps{
	configurationSetName: jsii.String("configurationSetName"),
	eventDestination: &eventDestinationProperty{
		matchingEventTypes: []*string{
			jsii.String("matchingEventTypes"),
		},

		// the properties below are optional
		cloudWatchDestination: &cloudWatchDestinationProperty{
			dimensionConfigurations: []interface{}{
				&dimensionConfigurationProperty{
					defaultDimensionValue: jsii.String("defaultDimensionValue"),
					dimensionName: jsii.String("dimensionName"),
					dimensionValueSource: jsii.String("dimensionValueSource"),
				},
			},
		},
		enabled: jsii.Boolean(false),
		kinesisFirehoseDestination: &kinesisFirehoseDestinationProperty{
			deliveryStreamArn: jsii.String("deliveryStreamArn"),
			iamRoleArn: jsii.String("iamRoleArn"),
		},
		name: jsii.String("name"),
		snsDestination: &snsDestinationProperty{
			topicArn: jsii.String("topicArn"),
		},
	},
})

func NewCfnConfigurationSetEventDestination

func NewCfnConfigurationSetEventDestination(scope constructs.Construct, id *string, props *CfnConfigurationSetEventDestinationProps) CfnConfigurationSetEventDestination

Create a new `AWS::SES::ConfigurationSetEventDestination`.

type CfnConfigurationSetEventDestinationProps

type CfnConfigurationSetEventDestinationProps struct {
	// The name of the configuration set that contains the event destination.
	ConfigurationSetName *string `field:"required" json:"configurationSetName" yaml:"configurationSetName"`
	// The event destination object.
	EventDestination interface{} `field:"required" json:"eventDestination" yaml:"eventDestination"`
}

Properties for defining a `CfnConfigurationSetEventDestination`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnConfigurationSetEventDestinationProps := &cfnConfigurationSetEventDestinationProps{
	configurationSetName: jsii.String("configurationSetName"),
	eventDestination: &eventDestinationProperty{
		matchingEventTypes: []*string{
			jsii.String("matchingEventTypes"),
		},

		// the properties below are optional
		cloudWatchDestination: &cloudWatchDestinationProperty{
			dimensionConfigurations: []interface{}{
				&dimensionConfigurationProperty{
					defaultDimensionValue: jsii.String("defaultDimensionValue"),
					dimensionName: jsii.String("dimensionName"),
					dimensionValueSource: jsii.String("dimensionValueSource"),
				},
			},
		},
		enabled: jsii.Boolean(false),
		kinesisFirehoseDestination: &kinesisFirehoseDestinationProperty{
			deliveryStreamArn: jsii.String("deliveryStreamArn"),
			iamRoleArn: jsii.String("iamRoleArn"),
		},
		name: jsii.String("name"),
		snsDestination: &snsDestinationProperty{
			topicArn: jsii.String("topicArn"),
		},
	},
}

type CfnConfigurationSetEventDestination_CloudWatchDestinationProperty

type CfnConfigurationSetEventDestination_CloudWatchDestinationProperty struct {
	// A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch.
	DimensionConfigurations interface{} `field:"optional" json:"dimensionConfigurations" yaml:"dimensionConfigurations"`
}

Contains information associated with an Amazon CloudWatch event destination to which email sending events are published.

Event destinations, such as Amazon CloudWatch, are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cloudWatchDestinationProperty := &cloudWatchDestinationProperty{
	dimensionConfigurations: []interface{}{
		&dimensionConfigurationProperty{
			defaultDimensionValue: jsii.String("defaultDimensionValue"),
			dimensionName: jsii.String("dimensionName"),
			dimensionValueSource: jsii.String("dimensionValueSource"),
		},
	},
}

type CfnConfigurationSetEventDestination_DimensionConfigurationProperty

type CfnConfigurationSetEventDestination_DimensionConfigurationProperty struct {
	// The default value of the dimension that is published to Amazon CloudWatch if you do not provide the value of the dimension when you send an email.
	//
	// The default value must meet the following requirements:
	//
	// - Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), dashes (-), at signs (@), or periods (.).
	// - Contain 256 characters or fewer.
	DefaultDimensionValue *string `field:"required" json:"defaultDimensionValue" yaml:"defaultDimensionValue"`
	// The name of an Amazon CloudWatch dimension associated with an email sending metric.
	//
	// The name must meet the following requirements:
	//
	// - Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), dashes (-), or colons (:).
	// - Contain 256 characters or fewer.
	DimensionName *string `field:"required" json:"dimensionName" yaml:"dimensionName"`
	// The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch.
	//
	// To use the message tags that you specify using an `X-SES-MESSAGE-TAGS` header or a parameter to the `SendEmail` / `SendRawEmail` API, specify `messageTag` . To use your own email headers, specify `emailHeader` . To put a custom tag on any link included in your email, specify `linkTag` .
	DimensionValueSource *string `field:"required" json:"dimensionValueSource" yaml:"dimensionValueSource"`
}

Contains the dimension configuration to use when you publish email sending events to Amazon CloudWatch.

For information about publishing email sending events to Amazon CloudWatch, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

dimensionConfigurationProperty := &dimensionConfigurationProperty{
	defaultDimensionValue: jsii.String("defaultDimensionValue"),
	dimensionName: jsii.String("dimensionName"),
	dimensionValueSource: jsii.String("dimensionValueSource"),
}

type CfnConfigurationSetEventDestination_EventDestinationProperty

type CfnConfigurationSetEventDestination_EventDestinationProperty struct {
	// The type of email sending events to publish to the event destination.
	//
	// - `send` - The call was successful and Amazon SES is attempting to deliver the email.
	// - `reject` - Amazon SES determined that the email contained a virus and rejected it.
	// - `bounce` - The recipient's mail server permanently rejected the email. This corresponds to a hard bounce.
	// - `complaint` - The recipient marked the email as spam.
	// - `delivery` - Amazon SES successfully delivered the email to the recipient's mail server.
	// - `open` - The recipient received the email and opened it in their email client.
	// - `click` - The recipient clicked one or more links in the email.
	// - `renderingFailure` - Amazon SES did not send the email because of a template rendering issue.
	MatchingEventTypes *[]*string `field:"required" json:"matchingEventTypes" yaml:"matchingEventTypes"`
	// An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination.
	CloudWatchDestination interface{} `field:"optional" json:"cloudWatchDestination" yaml:"cloudWatchDestination"`
	// Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set.
	//
	// Set to `true` to enable publishing to this destination; set to `false` to prevent publishing to this destination. The default value is `false` .
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.
	KinesisFirehoseDestination interface{} `field:"optional" json:"kinesisFirehoseDestination" yaml:"kinesisFirehoseDestination"`
	// The name of the event destination. The name must meet the following requirements:.
	//
	// - Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
	// - Contain 64 characters or fewer.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// `CfnConfigurationSetEventDestination.EventDestinationProperty.SnsDestination`.
	SnsDestination interface{} `field:"optional" json:"snsDestination" yaml:"snsDestination"`
}

Contains information about an event destination.

> When you create or update an event destination, you must provide one, and only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis Firehose or Amazon Simple Notification Service (Amazon SNS).

Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). For information about using configuration sets, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

eventDestinationProperty := &eventDestinationProperty{
	matchingEventTypes: []*string{
		jsii.String("matchingEventTypes"),
	},

	// the properties below are optional
	cloudWatchDestination: &cloudWatchDestinationProperty{
		dimensionConfigurations: []interface{}{
			&dimensionConfigurationProperty{
				defaultDimensionValue: jsii.String("defaultDimensionValue"),
				dimensionName: jsii.String("dimensionName"),
				dimensionValueSource: jsii.String("dimensionValueSource"),
			},
		},
	},
	enabled: jsii.Boolean(false),
	kinesisFirehoseDestination: &kinesisFirehoseDestinationProperty{
		deliveryStreamArn: jsii.String("deliveryStreamArn"),
		iamRoleArn: jsii.String("iamRoleArn"),
	},
	name: jsii.String("name"),
	snsDestination: &snsDestinationProperty{
		topicArn: jsii.String("topicArn"),
	},
}

type CfnConfigurationSetEventDestination_KinesisFirehoseDestinationProperty

type CfnConfigurationSetEventDestination_KinesisFirehoseDestinationProperty struct {
	// The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to.
	DeliveryStreamArn *string `field:"required" json:"deliveryStreamArn" yaml:"deliveryStreamArn"`
	// The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream.
	IamRoleArn *string `field:"required" json:"iamRoleArn" yaml:"iamRoleArn"`
}

Contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.

Event destinations, such as Amazon Kinesis Firehose, are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

kinesisFirehoseDestinationProperty := &kinesisFirehoseDestinationProperty{
	deliveryStreamArn: jsii.String("deliveryStreamArn"),
	iamRoleArn: jsii.String("iamRoleArn"),
}

type CfnConfigurationSetEventDestination_SnsDestinationProperty added in v2.29.0

type CfnConfigurationSetEventDestination_SnsDestinationProperty struct {
	// `CfnConfigurationSetEventDestination.SnsDestinationProperty.TopicARN`.
	TopicArn *string `field:"required" json:"topicArn" yaml:"topicArn"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

snsDestinationProperty := &snsDestinationProperty{
	topicArn: jsii.String("topicArn"),
}

type CfnConfigurationSetProps

type CfnConfigurationSetProps struct {
	// `AWS::SES::ConfigurationSet.DeliveryOptions`.
	DeliveryOptions interface{} `field:"optional" json:"deliveryOptions" yaml:"deliveryOptions"`
	// The name of the configuration set. The name must meet the following requirements:.
	//
	// - Contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
	// - Contain 64 characters or fewer.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// `AWS::SES::ConfigurationSet.ReputationOptions`.
	ReputationOptions interface{} `field:"optional" json:"reputationOptions" yaml:"reputationOptions"`
	// `AWS::SES::ConfigurationSet.SendingOptions`.
	SendingOptions interface{} `field:"optional" json:"sendingOptions" yaml:"sendingOptions"`
	// `AWS::SES::ConfigurationSet.SuppressionOptions`.
	SuppressionOptions interface{} `field:"optional" json:"suppressionOptions" yaml:"suppressionOptions"`
	// `AWS::SES::ConfigurationSet.TrackingOptions`.
	TrackingOptions interface{} `field:"optional" json:"trackingOptions" yaml:"trackingOptions"`
}

Properties for defining a `CfnConfigurationSet`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnConfigurationSetProps := &cfnConfigurationSetProps{
	deliveryOptions: &deliveryOptionsProperty{
		sendingPoolName: jsii.String("sendingPoolName"),
		tlsPolicy: jsii.String("tlsPolicy"),
	},
	name: jsii.String("name"),
	reputationOptions: &reputationOptionsProperty{
		reputationMetricsEnabled: jsii.Boolean(false),
	},
	sendingOptions: &sendingOptionsProperty{
		sendingEnabled: jsii.Boolean(false),
	},
	suppressionOptions: &suppressionOptionsProperty{
		suppressedReasons: []*string{
			jsii.String("suppressedReasons"),
		},
	},
	trackingOptions: &trackingOptionsProperty{
		customRedirectDomain: jsii.String("customRedirectDomain"),
	},
}

type CfnConfigurationSet_DeliveryOptionsProperty added in v2.29.0

type CfnConfigurationSet_DeliveryOptionsProperty struct {
	// `CfnConfigurationSet.DeliveryOptionsProperty.SendingPoolName`.
	SendingPoolName *string `field:"optional" json:"sendingPoolName" yaml:"sendingPoolName"`
	// `CfnConfigurationSet.DeliveryOptionsProperty.TlsPolicy`.
	TlsPolicy *string `field:"optional" json:"tlsPolicy" yaml:"tlsPolicy"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

deliveryOptionsProperty := &deliveryOptionsProperty{
	sendingPoolName: jsii.String("sendingPoolName"),
	tlsPolicy: jsii.String("tlsPolicy"),
}

type CfnConfigurationSet_ReputationOptionsProperty added in v2.29.0

type CfnConfigurationSet_ReputationOptionsProperty struct {
	// `CfnConfigurationSet.ReputationOptionsProperty.ReputationMetricsEnabled`.
	ReputationMetricsEnabled interface{} `field:"optional" json:"reputationMetricsEnabled" yaml:"reputationMetricsEnabled"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

reputationOptionsProperty := &reputationOptionsProperty{
	reputationMetricsEnabled: jsii.Boolean(false),
}

type CfnConfigurationSet_SendingOptionsProperty added in v2.29.0

type CfnConfigurationSet_SendingOptionsProperty struct {
	// `CfnConfigurationSet.SendingOptionsProperty.SendingEnabled`.
	SendingEnabled interface{} `field:"optional" json:"sendingEnabled" yaml:"sendingEnabled"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

sendingOptionsProperty := &sendingOptionsProperty{
	sendingEnabled: jsii.Boolean(false),
}

type CfnConfigurationSet_SuppressionOptionsProperty added in v2.29.0

type CfnConfigurationSet_SuppressionOptionsProperty struct {
	// `CfnConfigurationSet.SuppressionOptionsProperty.SuppressedReasons`.
	SuppressedReasons *[]*string `field:"optional" json:"suppressedReasons" yaml:"suppressedReasons"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

suppressionOptionsProperty := &suppressionOptionsProperty{
	suppressedReasons: []*string{
		jsii.String("suppressedReasons"),
	},
}

type CfnConfigurationSet_TrackingOptionsProperty added in v2.29.0

type CfnConfigurationSet_TrackingOptionsProperty struct {
	// `CfnConfigurationSet.TrackingOptionsProperty.CustomRedirectDomain`.
	CustomRedirectDomain *string `field:"optional" json:"customRedirectDomain" yaml:"customRedirectDomain"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

trackingOptionsProperty := &trackingOptionsProperty{
	customRedirectDomain: jsii.String("customRedirectDomain"),
}

type CfnContactList

type CfnContactList interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// The name of the contact list.
	ContactListName() *string
	SetContactListName(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// A description of what the contact list is about.
	Description() *string
	SetDescription(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// The tags associated with a contact list.
	Tags() awscdk.TagManager
	// An interest group, theme, or label within a list.
	//
	// A contact list can have multiple topics.
	Topics() interface{}
	SetTopics(val interface{})
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::ContactList`.

A list that contains contacts that have subscribed to a particular topic or topics.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnContactList := awscdk.Aws_ses.NewCfnContactList(this, jsii.String("MyCfnContactList"), &cfnContactListProps{
	contactListName: jsii.String("contactListName"),
	description: jsii.String("description"),
	tags: []cfnTag{
		&cfnTag{
			key: jsii.String("key"),
			value: jsii.String("value"),
		},
	},
	topics: []interface{}{
		&topicProperty{
			defaultSubscriptionStatus: jsii.String("defaultSubscriptionStatus"),
			displayName: jsii.String("displayName"),
			topicName: jsii.String("topicName"),

			// the properties below are optional
			description: jsii.String("description"),
		},
	},
})

func NewCfnContactList

func NewCfnContactList(scope constructs.Construct, id *string, props *CfnContactListProps) CfnContactList

Create a new `AWS::SES::ContactList`.

type CfnContactListProps

type CfnContactListProps struct {
	// The name of the contact list.
	ContactListName *string `field:"optional" json:"contactListName" yaml:"contactListName"`
	// A description of what the contact list is about.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The tags associated with a contact list.
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
	// An interest group, theme, or label within a list.
	//
	// A contact list can have multiple topics.
	Topics interface{} `field:"optional" json:"topics" yaml:"topics"`
}

Properties for defining a `CfnContactList`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnContactListProps := &cfnContactListProps{
	contactListName: jsii.String("contactListName"),
	description: jsii.String("description"),
	tags: []cfnTag{
		&cfnTag{
			key: jsii.String("key"),
			value: jsii.String("value"),
		},
	},
	topics: []interface{}{
		&topicProperty{
			defaultSubscriptionStatus: jsii.String("defaultSubscriptionStatus"),
			displayName: jsii.String("displayName"),
			topicName: jsii.String("topicName"),

			// the properties below are optional
			description: jsii.String("description"),
		},
	},
}

type CfnContactList_TopicProperty

type CfnContactList_TopicProperty struct {
	// The default subscription status to be applied to a contact if the contact has not noted their preference for subscribing to a topic.
	DefaultSubscriptionStatus *string `field:"required" json:"defaultSubscriptionStatus" yaml:"defaultSubscriptionStatus"`
	// The name of the topic the contact will see.
	DisplayName *string `field:"required" json:"displayName" yaml:"displayName"`
	// The name of the topic.
	TopicName *string `field:"required" json:"topicName" yaml:"topicName"`
	// A description of what the topic is about, which the contact will see.
	Description *string `field:"optional" json:"description" yaml:"description"`
}

An interest group, theme, or label within a list.

Lists can have multiple topics.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

topicProperty := &topicProperty{
	defaultSubscriptionStatus: jsii.String("defaultSubscriptionStatus"),
	displayName: jsii.String("displayName"),
	topicName: jsii.String("topicName"),

	// the properties below are optional
	description: jsii.String("description"),
}

type CfnDedicatedIpPool added in v2.31.0

type CfnDedicatedIpPool interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// `AWS::SES::DedicatedIpPool.PoolName`.
	PoolName() *string
	SetPoolName(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::DedicatedIpPool`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnDedicatedIpPool := awscdk.Aws_ses.NewCfnDedicatedIpPool(this, jsii.String("MyCfnDedicatedIpPool"), &cfnDedicatedIpPoolProps{
	poolName: jsii.String("poolName"),
})

func NewCfnDedicatedIpPool added in v2.31.0

func NewCfnDedicatedIpPool(scope constructs.Construct, id *string, props *CfnDedicatedIpPoolProps) CfnDedicatedIpPool

Create a new `AWS::SES::DedicatedIpPool`.

type CfnDedicatedIpPoolProps added in v2.31.0

type CfnDedicatedIpPoolProps struct {
	// `AWS::SES::DedicatedIpPool.PoolName`.
	PoolName *string `field:"optional" json:"poolName" yaml:"poolName"`
}

Properties for defining a `CfnDedicatedIpPool`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnDedicatedIpPoolProps := &cfnDedicatedIpPoolProps{
	poolName: jsii.String("poolName"),
}

type CfnEmailIdentity added in v2.31.0

type CfnEmailIdentity interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrDkimDnsTokenName1() *string
	AttrDkimDnsTokenName2() *string
	AttrDkimDnsTokenName3() *string
	AttrDkimDnsTokenValue1() *string
	AttrDkimDnsTokenValue2() *string
	AttrDkimDnsTokenValue3() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// `AWS::SES::EmailIdentity.ConfigurationSetAttributes`.
	ConfigurationSetAttributes() interface{}
	SetConfigurationSetAttributes(val interface{})
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// `AWS::SES::EmailIdentity.DkimAttributes`.
	DkimAttributes() interface{}
	SetDkimAttributes(val interface{})
	// `AWS::SES::EmailIdentity.DkimSigningAttributes`.
	DkimSigningAttributes() interface{}
	SetDkimSigningAttributes(val interface{})
	// `AWS::SES::EmailIdentity.EmailIdentity`.
	EmailIdentity() *string
	SetEmailIdentity(val *string)
	// `AWS::SES::EmailIdentity.FeedbackAttributes`.
	FeedbackAttributes() interface{}
	SetFeedbackAttributes(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// `AWS::SES::EmailIdentity.MailFromAttributes`.
	MailFromAttributes() interface{}
	SetMailFromAttributes(val interface{})
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::EmailIdentity`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEmailIdentity := awscdk.Aws_ses.NewCfnEmailIdentity(this, jsii.String("MyCfnEmailIdentity"), &cfnEmailIdentityProps{
	emailIdentity: jsii.String("emailIdentity"),

	// the properties below are optional
	configurationSetAttributes: &configurationSetAttributesProperty{
		configurationSetName: jsii.String("configurationSetName"),
	},
	dkimAttributes: &dkimAttributesProperty{
		signingEnabled: jsii.Boolean(false),
	},
	dkimSigningAttributes: &dkimSigningAttributesProperty{
		domainSigningPrivateKey: jsii.String("domainSigningPrivateKey"),
		domainSigningSelector: jsii.String("domainSigningSelector"),
		nextSigningKeyLength: jsii.String("nextSigningKeyLength"),
	},
	feedbackAttributes: &feedbackAttributesProperty{
		emailForwardingEnabled: jsii.Boolean(false),
	},
	mailFromAttributes: &mailFromAttributesProperty{
		behaviorOnMxFailure: jsii.String("behaviorOnMxFailure"),
		mailFromDomain: jsii.String("mailFromDomain"),
	},
})

func NewCfnEmailIdentity added in v2.31.0

func NewCfnEmailIdentity(scope constructs.Construct, id *string, props *CfnEmailIdentityProps) CfnEmailIdentity

Create a new `AWS::SES::EmailIdentity`.

type CfnEmailIdentityProps added in v2.31.0

type CfnEmailIdentityProps struct {
	// `AWS::SES::EmailIdentity.EmailIdentity`.
	EmailIdentity *string `field:"required" json:"emailIdentity" yaml:"emailIdentity"`
	// `AWS::SES::EmailIdentity.ConfigurationSetAttributes`.
	ConfigurationSetAttributes interface{} `field:"optional" json:"configurationSetAttributes" yaml:"configurationSetAttributes"`
	// `AWS::SES::EmailIdentity.DkimAttributes`.
	DkimAttributes interface{} `field:"optional" json:"dkimAttributes" yaml:"dkimAttributes"`
	// `AWS::SES::EmailIdentity.DkimSigningAttributes`.
	DkimSigningAttributes interface{} `field:"optional" json:"dkimSigningAttributes" yaml:"dkimSigningAttributes"`
	// `AWS::SES::EmailIdentity.FeedbackAttributes`.
	FeedbackAttributes interface{} `field:"optional" json:"feedbackAttributes" yaml:"feedbackAttributes"`
	// `AWS::SES::EmailIdentity.MailFromAttributes`.
	MailFromAttributes interface{} `field:"optional" json:"mailFromAttributes" yaml:"mailFromAttributes"`
}

Properties for defining a `CfnEmailIdentity`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEmailIdentityProps := &cfnEmailIdentityProps{
	emailIdentity: jsii.String("emailIdentity"),

	// the properties below are optional
	configurationSetAttributes: &configurationSetAttributesProperty{
		configurationSetName: jsii.String("configurationSetName"),
	},
	dkimAttributes: &dkimAttributesProperty{
		signingEnabled: jsii.Boolean(false),
	},
	dkimSigningAttributes: &dkimSigningAttributesProperty{
		domainSigningPrivateKey: jsii.String("domainSigningPrivateKey"),
		domainSigningSelector: jsii.String("domainSigningSelector"),
		nextSigningKeyLength: jsii.String("nextSigningKeyLength"),
	},
	feedbackAttributes: &feedbackAttributesProperty{
		emailForwardingEnabled: jsii.Boolean(false),
	},
	mailFromAttributes: &mailFromAttributesProperty{
		behaviorOnMxFailure: jsii.String("behaviorOnMxFailure"),
		mailFromDomain: jsii.String("mailFromDomain"),
	},
}

type CfnEmailIdentity_ConfigurationSetAttributesProperty added in v2.31.0

type CfnEmailIdentity_ConfigurationSetAttributesProperty struct {
	// `CfnEmailIdentity.ConfigurationSetAttributesProperty.ConfigurationSetName`.
	ConfigurationSetName *string `field:"optional" json:"configurationSetName" yaml:"configurationSetName"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

configurationSetAttributesProperty := &configurationSetAttributesProperty{
	configurationSetName: jsii.String("configurationSetName"),
}

type CfnEmailIdentity_DkimAttributesProperty added in v2.31.0

type CfnEmailIdentity_DkimAttributesProperty struct {
	// `CfnEmailIdentity.DkimAttributesProperty.SigningEnabled`.
	SigningEnabled interface{} `field:"optional" json:"signingEnabled" yaml:"signingEnabled"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

dkimAttributesProperty := &dkimAttributesProperty{
	signingEnabled: jsii.Boolean(false),
}

type CfnEmailIdentity_DkimSigningAttributesProperty added in v2.31.0

type CfnEmailIdentity_DkimSigningAttributesProperty struct {
	// `CfnEmailIdentity.DkimSigningAttributesProperty.DomainSigningPrivateKey`.
	DomainSigningPrivateKey *string `field:"optional" json:"domainSigningPrivateKey" yaml:"domainSigningPrivateKey"`
	// `CfnEmailIdentity.DkimSigningAttributesProperty.DomainSigningSelector`.
	DomainSigningSelector *string `field:"optional" json:"domainSigningSelector" yaml:"domainSigningSelector"`
	// `CfnEmailIdentity.DkimSigningAttributesProperty.NextSigningKeyLength`.
	NextSigningKeyLength *string `field:"optional" json:"nextSigningKeyLength" yaml:"nextSigningKeyLength"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

dkimSigningAttributesProperty := &dkimSigningAttributesProperty{
	domainSigningPrivateKey: jsii.String("domainSigningPrivateKey"),
	domainSigningSelector: jsii.String("domainSigningSelector"),
	nextSigningKeyLength: jsii.String("nextSigningKeyLength"),
}

type CfnEmailIdentity_FeedbackAttributesProperty added in v2.31.0

type CfnEmailIdentity_FeedbackAttributesProperty struct {
	// `CfnEmailIdentity.FeedbackAttributesProperty.EmailForwardingEnabled`.
	EmailForwardingEnabled interface{} `field:"optional" json:"emailForwardingEnabled" yaml:"emailForwardingEnabled"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

feedbackAttributesProperty := &feedbackAttributesProperty{
	emailForwardingEnabled: jsii.Boolean(false),
}

type CfnEmailIdentity_MailFromAttributesProperty added in v2.31.0

type CfnEmailIdentity_MailFromAttributesProperty struct {
	// `CfnEmailIdentity.MailFromAttributesProperty.BehaviorOnMxFailure`.
	BehaviorOnMxFailure *string `field:"optional" json:"behaviorOnMxFailure" yaml:"behaviorOnMxFailure"`
	// `CfnEmailIdentity.MailFromAttributesProperty.MailFromDomain`.
	MailFromDomain *string `field:"optional" json:"mailFromDomain" yaml:"mailFromDomain"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

mailFromAttributesProperty := &mailFromAttributesProperty{
	behaviorOnMxFailure: jsii.String("behaviorOnMxFailure"),
	mailFromDomain: jsii.String("mailFromDomain"),
}

type CfnReceiptFilter

type CfnReceiptFilter interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// A data structure that describes the IP address filter to create, which consists of a name, an IP address range, and whether to allow or block mail from it.
	Filter() interface{}
	SetFilter(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::ReceiptFilter`.

Specify a new IP address filter. You use IP address filters when you receive email with Amazon SES.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnReceiptFilter := awscdk.Aws_ses.NewCfnReceiptFilter(this, jsii.String("MyCfnReceiptFilter"), &cfnReceiptFilterProps{
	filter: &filterProperty{
		ipFilter: &ipFilterProperty{
			cidr: jsii.String("cidr"),
			policy: jsii.String("policy"),
		},

		// the properties below are optional
		name: jsii.String("name"),
	},
})

func NewCfnReceiptFilter

func NewCfnReceiptFilter(scope constructs.Construct, id *string, props *CfnReceiptFilterProps) CfnReceiptFilter

Create a new `AWS::SES::ReceiptFilter`.

type CfnReceiptFilterProps

type CfnReceiptFilterProps struct {
	// A data structure that describes the IP address filter to create, which consists of a name, an IP address range, and whether to allow or block mail from it.
	Filter interface{} `field:"required" json:"filter" yaml:"filter"`
}

Properties for defining a `CfnReceiptFilter`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnReceiptFilterProps := &cfnReceiptFilterProps{
	filter: &filterProperty{
		ipFilter: &ipFilterProperty{
			cidr: jsii.String("cidr"),
			policy: jsii.String("policy"),
		},

		// the properties below are optional
		name: jsii.String("name"),
	},
}

type CfnReceiptFilter_FilterProperty

type CfnReceiptFilter_FilterProperty struct {
	// A structure that provides the IP addresses to block or allow, and whether to block or allow incoming mail from them.
	IpFilter interface{} `field:"required" json:"ipFilter" yaml:"ipFilter"`
	// The name of the IP address filter. The name must meet the following requirements:.
	//
	// - Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
	// - Start and end with a letter or number.
	// - Contain 64 characters or fewer.
	Name *string `field:"optional" json:"name" yaml:"name"`
}

Specifies an IP address filter.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

filterProperty := &filterProperty{
	ipFilter: &ipFilterProperty{
		cidr: jsii.String("cidr"),
		policy: jsii.String("policy"),
	},

	// the properties below are optional
	name: jsii.String("name"),
}

type CfnReceiptFilter_IpFilterProperty

type CfnReceiptFilter_IpFilterProperty struct {
	// A single IP address or a range of IP addresses to block or allow, specified in Classless Inter-Domain Routing (CIDR) notation.
	//
	// An example of a single email address is 10.0.0.1. An example of a range of IP addresses is 10.0.0.1/24. For more information about CIDR notation, see [RFC 2317](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc2317) .
	Cidr *string `field:"required" json:"cidr" yaml:"cidr"`
	// Indicates whether to block or allow incoming mail from the specified IP addresses.
	Policy *string `field:"required" json:"policy" yaml:"policy"`
}

A receipt IP address filter enables you to specify whether to accept or reject mail originating from an IP address or range of IP addresses.

For information about setting up IP address filters, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-ip-filtering-console-walkthrough.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

ipFilterProperty := &ipFilterProperty{
	cidr: jsii.String("cidr"),
	policy: jsii.String("policy"),
}

type CfnReceiptRule

type CfnReceiptRule interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The name of an existing rule after which the new rule is placed.
	//
	// If this parameter is null, the new rule is inserted at the beginning of the rule list.
	After() *string
	SetAfter(val *string)
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy.
	Rule() interface{}
	SetRule(val interface{})
	// The name of the rule set where the receipt rule is added.
	RuleSetName() *string
	SetRuleSetName(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::ReceiptRule`.

Specifies a receipt rule.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnReceiptRule := awscdk.Aws_ses.NewCfnReceiptRule(this, jsii.String("MyCfnReceiptRule"), &cfnReceiptRuleProps{
	rule: &ruleProperty{
		actions: []interface{}{
			&actionProperty{
				addHeaderAction: &addHeaderActionProperty{
					headerName: jsii.String("headerName"),
					headerValue: jsii.String("headerValue"),
				},
				bounceAction: &bounceActionProperty{
					message: jsii.String("message"),
					sender: jsii.String("sender"),
					smtpReplyCode: jsii.String("smtpReplyCode"),

					// the properties below are optional
					statusCode: jsii.String("statusCode"),
					topicArn: jsii.String("topicArn"),
				},
				lambdaAction: &lambdaActionProperty{
					functionArn: jsii.String("functionArn"),

					// the properties below are optional
					invocationType: jsii.String("invocationType"),
					topicArn: jsii.String("topicArn"),
				},
				s3Action: &s3ActionProperty{
					bucketName: jsii.String("bucketName"),

					// the properties below are optional
					kmsKeyArn: jsii.String("kmsKeyArn"),
					objectKeyPrefix: jsii.String("objectKeyPrefix"),
					topicArn: jsii.String("topicArn"),
				},
				snsAction: &sNSActionProperty{
					encoding: jsii.String("encoding"),
					topicArn: jsii.String("topicArn"),
				},
				stopAction: &stopActionProperty{
					scope: jsii.String("scope"),

					// the properties below are optional
					topicArn: jsii.String("topicArn"),
				},
				workmailAction: &workmailActionProperty{
					organizationArn: jsii.String("organizationArn"),

					// the properties below are optional
					topicArn: jsii.String("topicArn"),
				},
			},
		},
		enabled: jsii.Boolean(false),
		name: jsii.String("name"),
		recipients: []*string{
			jsii.String("recipients"),
		},
		scanEnabled: jsii.Boolean(false),
		tlsPolicy: jsii.String("tlsPolicy"),
	},
	ruleSetName: jsii.String("ruleSetName"),

	// the properties below are optional
	after: jsii.String("after"),
})

func NewCfnReceiptRule

func NewCfnReceiptRule(scope constructs.Construct, id *string, props *CfnReceiptRuleProps) CfnReceiptRule

Create a new `AWS::SES::ReceiptRule`.

type CfnReceiptRuleProps

type CfnReceiptRuleProps struct {
	// A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy.
	Rule interface{} `field:"required" json:"rule" yaml:"rule"`
	// The name of the rule set where the receipt rule is added.
	RuleSetName *string `field:"required" json:"ruleSetName" yaml:"ruleSetName"`
	// The name of an existing rule after which the new rule is placed.
	//
	// If this parameter is null, the new rule is inserted at the beginning of the rule list.
	After *string `field:"optional" json:"after" yaml:"after"`
}

Properties for defining a `CfnReceiptRule`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnReceiptRuleProps := &cfnReceiptRuleProps{
	rule: &ruleProperty{
		actions: []interface{}{
			&actionProperty{
				addHeaderAction: &addHeaderActionProperty{
					headerName: jsii.String("headerName"),
					headerValue: jsii.String("headerValue"),
				},
				bounceAction: &bounceActionProperty{
					message: jsii.String("message"),
					sender: jsii.String("sender"),
					smtpReplyCode: jsii.String("smtpReplyCode"),

					// the properties below are optional
					statusCode: jsii.String("statusCode"),
					topicArn: jsii.String("topicArn"),
				},
				lambdaAction: &lambdaActionProperty{
					functionArn: jsii.String("functionArn"),

					// the properties below are optional
					invocationType: jsii.String("invocationType"),
					topicArn: jsii.String("topicArn"),
				},
				s3Action: &s3ActionProperty{
					bucketName: jsii.String("bucketName"),

					// the properties below are optional
					kmsKeyArn: jsii.String("kmsKeyArn"),
					objectKeyPrefix: jsii.String("objectKeyPrefix"),
					topicArn: jsii.String("topicArn"),
				},
				snsAction: &sNSActionProperty{
					encoding: jsii.String("encoding"),
					topicArn: jsii.String("topicArn"),
				},
				stopAction: &stopActionProperty{
					scope: jsii.String("scope"),

					// the properties below are optional
					topicArn: jsii.String("topicArn"),
				},
				workmailAction: &workmailActionProperty{
					organizationArn: jsii.String("organizationArn"),

					// the properties below are optional
					topicArn: jsii.String("topicArn"),
				},
			},
		},
		enabled: jsii.Boolean(false),
		name: jsii.String("name"),
		recipients: []*string{
			jsii.String("recipients"),
		},
		scanEnabled: jsii.Boolean(false),
		tlsPolicy: jsii.String("tlsPolicy"),
	},
	ruleSetName: jsii.String("ruleSetName"),

	// the properties below are optional
	after: jsii.String("after"),
}

type CfnReceiptRuleSet

type CfnReceiptRuleSet interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The name of the receipt rule set to reorder.
	RuleSetName() *string
	SetRuleSetName(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::ReceiptRuleSet`.

Creates an empty receipt rule set.

For information about setting up receipt rule sets, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-concepts.html#receiving-email-concepts-rules) .

You can execute this operation no more than once per second.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnReceiptRuleSet := awscdk.Aws_ses.NewCfnReceiptRuleSet(this, jsii.String("MyCfnReceiptRuleSet"), &cfnReceiptRuleSetProps{
	ruleSetName: jsii.String("ruleSetName"),
})

func NewCfnReceiptRuleSet

func NewCfnReceiptRuleSet(scope constructs.Construct, id *string, props *CfnReceiptRuleSetProps) CfnReceiptRuleSet

Create a new `AWS::SES::ReceiptRuleSet`.

type CfnReceiptRuleSetProps

type CfnReceiptRuleSetProps struct {
	// The name of the receipt rule set to reorder.
	RuleSetName *string `field:"optional" json:"ruleSetName" yaml:"ruleSetName"`
}

Properties for defining a `CfnReceiptRuleSet`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnReceiptRuleSetProps := &cfnReceiptRuleSetProps{
	ruleSetName: jsii.String("ruleSetName"),
}

type CfnReceiptRule_ActionProperty

type CfnReceiptRule_ActionProperty struct {
	// Adds a header to the received email.
	AddHeaderAction interface{} `field:"optional" json:"addHeaderAction" yaml:"addHeaderAction"`
	// Rejects the received email by returning a bounce response to the sender and, optionally, publishes a notification to Amazon Simple Notification Service (Amazon SNS).
	BounceAction interface{} `field:"optional" json:"bounceAction" yaml:"bounceAction"`
	// Calls an AWS Lambda function, and optionally, publishes a notification to Amazon SNS.
	LambdaAction interface{} `field:"optional" json:"lambdaAction" yaml:"lambdaAction"`
	// Saves the received message to an Amazon Simple Storage Service (Amazon S3) bucket and, optionally, publishes a notification to Amazon SNS.
	S3Action interface{} `field:"optional" json:"s3Action" yaml:"s3Action"`
	// Publishes the email content within a notification to Amazon SNS.
	SnsAction interface{} `field:"optional" json:"snsAction" yaml:"snsAction"`
	// Terminates the evaluation of the receipt rule set and optionally publishes a notification to Amazon SNS.
	StopAction interface{} `field:"optional" json:"stopAction" yaml:"stopAction"`
	// Calls Amazon WorkMail and, optionally, publishes a notification to Amazon Amazon SNS.
	WorkmailAction interface{} `field:"optional" json:"workmailAction" yaml:"workmailAction"`
}

An action that Amazon SES can take when it receives an email on behalf of one or more email addresses or domains that you own.

An instance of this data type can represent only one action.

For information about setting up receipt rules, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-receipt-rules-console-walkthrough.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

actionProperty := &actionProperty{
	addHeaderAction: &addHeaderActionProperty{
		headerName: jsii.String("headerName"),
		headerValue: jsii.String("headerValue"),
	},
	bounceAction: &bounceActionProperty{
		message: jsii.String("message"),
		sender: jsii.String("sender"),
		smtpReplyCode: jsii.String("smtpReplyCode"),

		// the properties below are optional
		statusCode: jsii.String("statusCode"),
		topicArn: jsii.String("topicArn"),
	},
	lambdaAction: &lambdaActionProperty{
		functionArn: jsii.String("functionArn"),

		// the properties below are optional
		invocationType: jsii.String("invocationType"),
		topicArn: jsii.String("topicArn"),
	},
	s3Action: &s3ActionProperty{
		bucketName: jsii.String("bucketName"),

		// the properties below are optional
		kmsKeyArn: jsii.String("kmsKeyArn"),
		objectKeyPrefix: jsii.String("objectKeyPrefix"),
		topicArn: jsii.String("topicArn"),
	},
	snsAction: &sNSActionProperty{
		encoding: jsii.String("encoding"),
		topicArn: jsii.String("topicArn"),
	},
	stopAction: &stopActionProperty{
		scope: jsii.String("scope"),

		// the properties below are optional
		topicArn: jsii.String("topicArn"),
	},
	workmailAction: &workmailActionProperty{
		organizationArn: jsii.String("organizationArn"),

		// the properties below are optional
		topicArn: jsii.String("topicArn"),
	},
}

type CfnReceiptRule_AddHeaderActionProperty

type CfnReceiptRule_AddHeaderActionProperty struct {
	// The name of the header to add to the incoming message.
	//
	// The name must contain at least one character, and can contain up to 50 characters. It consists of alphanumeric (a–z, A–Z, 0–9) characters and dashes.
	HeaderName *string `field:"required" json:"headerName" yaml:"headerName"`
	// The content to include in the header.
	//
	// This value can contain up to 2048 characters. It can't contain newline ( `\n` ) or carriage return ( `\r` ) characters.
	HeaderValue *string `field:"required" json:"headerValue" yaml:"headerValue"`
}

When included in a receipt rule, this action adds a header to the received email.

For information about adding a header using a receipt rule, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-add-header.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

addHeaderActionProperty := &addHeaderActionProperty{
	headerName: jsii.String("headerName"),
	headerValue: jsii.String("headerValue"),
}

type CfnReceiptRule_BounceActionProperty

type CfnReceiptRule_BounceActionProperty struct {
	// Human-readable text to include in the bounce message.
	Message *string `field:"required" json:"message" yaml:"message"`
	// The email address of the sender of the bounced email.
	//
	// This is the address from which the bounce message is sent.
	Sender *string `field:"required" json:"sender" yaml:"sender"`
	// The SMTP reply code, as defined by [RFC 5321](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc5321) .
	SmtpReplyCode *string `field:"required" json:"smtpReplyCode" yaml:"smtpReplyCode"`
	// The SMTP enhanced status code, as defined by [RFC 3463](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3463) .
	StatusCode *string `field:"optional" json:"statusCode" yaml:"statusCode"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the bounce action is taken.
	//
	// You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS.
	//
	// For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) .
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

When included in a receipt rule, this action rejects the received email by returning a bounce response to the sender and, optionally, publishes a notification to Amazon Simple Notification Service (Amazon SNS).

For information about sending a bounce message in response to a received email, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-bounce.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

bounceActionProperty := &bounceActionProperty{
	message: jsii.String("message"),
	sender: jsii.String("sender"),
	smtpReplyCode: jsii.String("smtpReplyCode"),

	// the properties below are optional
	statusCode: jsii.String("statusCode"),
	topicArn: jsii.String("topicArn"),
}

type CfnReceiptRule_LambdaActionProperty

type CfnReceiptRule_LambdaActionProperty struct {
	// The Amazon Resource Name (ARN) of the AWS Lambda function.
	//
	// An example of an AWS Lambda function ARN is `arn:aws:lambda:us-west-2:account-id:function:MyFunction` . For more information about AWS Lambda, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) .
	FunctionArn *string `field:"required" json:"functionArn" yaml:"functionArn"`
	// The invocation type of the AWS Lambda function.
	//
	// An invocation type of `RequestResponse` means that the execution of the function immediately results in a response, and a value of `Event` means that the function is invoked asynchronously. The default value is `Event` . For information about AWS Lambda invocation types, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) .
	//
	// > There is a 30-second timeout on `RequestResponse` invocations. You should use `Event` invocation in most cases. Use `RequestResponse` only to make a mail flow decision, such as whether to stop the receipt rule or the receipt rule set.
	InvocationType *string `field:"optional" json:"invocationType" yaml:"invocationType"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the Lambda action is executed.
	//
	// You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS.
	//
	// For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) .
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

When included in a receipt rule, this action calls an AWS Lambda function and, optionally, publishes a notification to Amazon Simple Notification Service (Amazon SNS).

To enable Amazon SES to call your AWS Lambda function or to publish to an Amazon SNS topic of another account, Amazon SES must have permission to access those resources. For information about giving permissions, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html) .

For information about using AWS Lambda actions in receipt rules, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-lambda.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

lambdaActionProperty := &lambdaActionProperty{
	functionArn: jsii.String("functionArn"),

	// the properties below are optional
	invocationType: jsii.String("invocationType"),
	topicArn: jsii.String("topicArn"),
}

type CfnReceiptRule_RuleProperty

type CfnReceiptRule_RuleProperty struct {
	// An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule.
	Actions interface{} `field:"optional" json:"actions" yaml:"actions"`
	// If `true` , the receipt rule is active.
	//
	// The default value is `false` .
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The name of the receipt rule. The name must meet the following requirements:.
	//
	// - Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), dashes (-), or periods (.).
	// - Start and end with a letter or number.
	// - Contain 64 characters or fewer.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The recipient domains and email addresses that the receipt rule applies to.
	//
	// If this field is not specified, this rule matches all recipients on all verified domains.
	Recipients *[]*string `field:"optional" json:"recipients" yaml:"recipients"`
	// If `true` , then messages that this receipt rule applies to are scanned for spam and viruses.
	//
	// The default value is `false` .
	ScanEnabled interface{} `field:"optional" json:"scanEnabled" yaml:"scanEnabled"`
	// Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS).
	//
	// If this parameter is set to `Require` , Amazon SES bounces emails that are not received over TLS. The default is `Optional` .
	TlsPolicy *string `field:"optional" json:"tlsPolicy" yaml:"tlsPolicy"`
}

Receipt rules enable you to specify which actions Amazon SES should take when it receives mail on behalf of one or more email addresses or domains that you own.

Each receipt rule defines a set of email addresses or domains that it applies to. If the email addresses or domains match at least one recipient address of the message, Amazon SES executes all of the receipt rule's actions on the message.

For information about setting up receipt rules, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-receipt-rules-console-walkthrough.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

ruleProperty := &ruleProperty{
	actions: []interface{}{
		&actionProperty{
			addHeaderAction: &addHeaderActionProperty{
				headerName: jsii.String("headerName"),
				headerValue: jsii.String("headerValue"),
			},
			bounceAction: &bounceActionProperty{
				message: jsii.String("message"),
				sender: jsii.String("sender"),
				smtpReplyCode: jsii.String("smtpReplyCode"),

				// the properties below are optional
				statusCode: jsii.String("statusCode"),
				topicArn: jsii.String("topicArn"),
			},
			lambdaAction: &lambdaActionProperty{
				functionArn: jsii.String("functionArn"),

				// the properties below are optional
				invocationType: jsii.String("invocationType"),
				topicArn: jsii.String("topicArn"),
			},
			s3Action: &s3ActionProperty{
				bucketName: jsii.String("bucketName"),

				// the properties below are optional
				kmsKeyArn: jsii.String("kmsKeyArn"),
				objectKeyPrefix: jsii.String("objectKeyPrefix"),
				topicArn: jsii.String("topicArn"),
			},
			snsAction: &sNSActionProperty{
				encoding: jsii.String("encoding"),
				topicArn: jsii.String("topicArn"),
			},
			stopAction: &stopActionProperty{
				scope: jsii.String("scope"),

				// the properties below are optional
				topicArn: jsii.String("topicArn"),
			},
			workmailAction: &workmailActionProperty{
				organizationArn: jsii.String("organizationArn"),

				// the properties below are optional
				topicArn: jsii.String("topicArn"),
			},
		},
	},
	enabled: jsii.Boolean(false),
	name: jsii.String("name"),
	recipients: []*string{
		jsii.String("recipients"),
	},
	scanEnabled: jsii.Boolean(false),
	tlsPolicy: jsii.String("tlsPolicy"),
}

type CfnReceiptRule_S3ActionProperty

type CfnReceiptRule_S3ActionProperty struct {
	// The name of the Amazon S3 bucket for incoming email.
	BucketName *string `field:"required" json:"bucketName" yaml:"bucketName"`
	// The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket.
	//
	// You can use the default master key or a custom master key that you created in AWS KMS as follows:
	//
	// - To use the default master key, provide an ARN in the form of `arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses` . For example, if your AWS account ID is 123456789012 and you want to use the default master key in the US West (Oregon) Region, the ARN of the default master key would be `arn:aws:kms:us-west-2:123456789012:alias/aws/ses` . If you use the default master key, you don't need to perform any extra steps to give Amazon SES permission to use the key.
	// - To use a custom master key that you created in AWS KMS, provide the ARN of the master key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it. For more information about giving permissions, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html) .
	//
	// For more information about key policies, see the [AWS KMS Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) . If you do not specify a master key, Amazon SES does not encrypt your emails.
	//
	// > Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the [AWS SDK for Java](https://docs.aws.amazon.com/sdk-for-java/) and [AWS SDK for Ruby](https://docs.aws.amazon.com/sdk-for-ruby/) only. For more information about client-side encryption using AWS KMS master keys, see the [Amazon S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html) .
	KmsKeyArn *string `field:"optional" json:"kmsKeyArn" yaml:"kmsKeyArn"`
	// The key prefix of the Amazon S3 bucket.
	//
	// The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket.
	ObjectKeyPrefix *string `field:"optional" json:"objectKeyPrefix" yaml:"objectKeyPrefix"`
	// The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket.
	//
	// You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS.
	//
	// For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) .
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

When included in a receipt rule, this action saves the received message to an Amazon Simple Storage Service (Amazon S3) bucket and, optionally, publishes a notification to Amazon Simple Notification Service (Amazon SNS).

To enable Amazon SES to write emails to your Amazon S3 bucket, use an AWS KMS key to encrypt your emails, or publish to an Amazon SNS topic of another account, Amazon SES must have permission to access those resources. For information about granting permissions, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html) .

> When you save your emails to an Amazon S3 bucket, the maximum email size (including headers) is 30 MB. Emails larger than that bounces.

For information about specifying Amazon S3 actions in receipt rules, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-s3.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

s3ActionProperty := &s3ActionProperty{
	bucketName: jsii.String("bucketName"),

	// the properties below are optional
	kmsKeyArn: jsii.String("kmsKeyArn"),
	objectKeyPrefix: jsii.String("objectKeyPrefix"),
	topicArn: jsii.String("topicArn"),
}

type CfnReceiptRule_SNSActionProperty

type CfnReceiptRule_SNSActionProperty struct {
	// 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.
	Encoding *string `field:"optional" json:"encoding" yaml:"encoding"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify.
	//
	// You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS.
	//
	// For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) .
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

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](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html) .

> You can only publish emails that are 150 KB or less (including the header) to Amazon SNS. Larger emails 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](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-sns.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

sNSActionProperty := &sNSActionProperty{
	encoding: jsii.String("encoding"),
	topicArn: jsii.String("topicArn"),
}

type CfnReceiptRule_StopActionProperty

type CfnReceiptRule_StopActionProperty struct {
	// The scope of the StopAction.
	//
	// The only acceptable value is `RuleSet` .
	Scope *string `field:"required" json:"scope" yaml:"scope"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the stop action is taken.
	//
	// You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) Amazon SNS operation.
	//
	// For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) .
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

When included in a receipt rule, this action terminates the evaluation of the receipt rule set and, optionally, publishes a notification to Amazon Simple Notification Service (Amazon SNS).

For information about setting a stop action in a receipt rule, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-stop.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

stopActionProperty := &stopActionProperty{
	scope: jsii.String("scope"),

	// the properties below are optional
	topicArn: jsii.String("topicArn"),
}

type CfnReceiptRule_WorkmailActionProperty

type CfnReceiptRule_WorkmailActionProperty struct {
	// The Amazon Resource Name (ARN) of the Amazon WorkMail organization. Amazon WorkMail ARNs use the following format:.
	//
	// `arn:aws:workmail:<region>:<awsAccountId>:organization/<workmailOrganizationId>`
	//
	// You can find the ID of your organization by using the [ListOrganizations](https://docs.aws.amazon.com/workmail/latest/APIReference/API_ListOrganizations.html) operation in Amazon WorkMail. Amazon WorkMail organization IDs begin with " `m-` ", followed by a string of alphanumeric characters.
	//
	// For information about Amazon WorkMail organizations, see the [Amazon WorkMail Administrator Guide](https://docs.aws.amazon.com/workmail/latest/adminguide/organizations_overview.html) .
	OrganizationArn *string `field:"required" json:"organizationArn" yaml:"organizationArn"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the WorkMail action is called.
	//
	// You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS.
	//
	// For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) .
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

When included in a receipt rule, this action calls Amazon WorkMail and, optionally, publishes a notification to Amazon Simple Notification Service (Amazon SNS).

It usually isn't necessary to set this up manually, because Amazon WorkMail adds the rule automatically during its setup procedure.

For information using a receipt rule to call Amazon WorkMail, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-workmail.html) .

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

workmailActionProperty := &workmailActionProperty{
	organizationArn: jsii.String("organizationArn"),

	// the properties below are optional
	topicArn: jsii.String("topicArn"),
}

type CfnTemplate

type CfnTemplate interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	LogicalId() *string
	// The tree node.
	Node() constructs.Node
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	Stack() awscdk.Stack
	// The content of the email, composed of a subject line and either an HTML part or a text-only part.
	Template() interface{}
	SetTemplate(val interface{})
	// Deprecated.
	// Deprecated: use `updatedProperties`
	//
	// Return properties modified after initiation
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperites() *map[string]interface{}
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	UpdatedProperties() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
	// cases, a snapshot can be taken of the resource prior to deletion
	// (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
	// can be found in the following link:.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options
	//
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	ShouldSynthesize() *bool
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::SES::Template`.

Specifies an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnTemplate := awscdk.Aws_ses.NewCfnTemplate(this, jsii.String("MyCfnTemplate"), &cfnTemplateProps{
	template: &templateProperty{
		subjectPart: jsii.String("subjectPart"),

		// the properties below are optional
		htmlPart: jsii.String("htmlPart"),
		templateName: jsii.String("templateName"),
		textPart: jsii.String("textPart"),
	},
})

func NewCfnTemplate

func NewCfnTemplate(scope constructs.Construct, id *string, props *CfnTemplateProps) CfnTemplate

Create a new `AWS::SES::Template`.

type CfnTemplateProps

type CfnTemplateProps struct {
	// The content of the email, composed of a subject line and either an HTML part or a text-only part.
	Template interface{} `field:"optional" json:"template" yaml:"template"`
}

Properties for defining a `CfnTemplate`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnTemplateProps := &cfnTemplateProps{
	template: &templateProperty{
		subjectPart: jsii.String("subjectPart"),

		// the properties below are optional
		htmlPart: jsii.String("htmlPart"),
		templateName: jsii.String("templateName"),
		textPart: jsii.String("textPart"),
	},
}

type CfnTemplate_TemplateProperty

type CfnTemplate_TemplateProperty struct {
	// The subject line of the email.
	SubjectPart *string `field:"required" json:"subjectPart" yaml:"subjectPart"`
	// The HTML body of the email.
	HtmlPart *string `field:"optional" json:"htmlPart" yaml:"htmlPart"`
	// The name of the template.
	TemplateName *string `field:"optional" json:"templateName" yaml:"templateName"`
	// The email body that is visible to recipients whose email clients do not display HTML content.
	TextPart *string `field:"optional" json:"textPart" yaml:"textPart"`
}

The content of the email, composed of a subject line and either an HTML part or a text-only part.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

templateProperty := &templateProperty{
	subjectPart: jsii.String("subjectPart"),

	// the properties below are optional
	htmlPart: jsii.String("htmlPart"),
	templateName: jsii.String("templateName"),
	textPart: jsii.String("textPart"),
}

type ConfigurationSet added in v2.32.0

type ConfigurationSet interface {
	awscdk.Resource
	IConfigurationSet
	// The name of the configuration set.
	ConfigurationSetName() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//    cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

A configuration set.

Example:

var myPool iDedicatedIpPool

ses.NewConfigurationSet(this, jsii.String("ConfigurationSet"), &configurationSetProps{
	customTrackingRedirectDomain: jsii.String("track.cdk.dev"),
	suppressionReasons: ses.suppressionReasons_COMPLAINTS_ONLY,
	tlsPolicy: ses.configurationSetTlsPolicy_REQUIRE,
	dedicatedIpPool: myPool,
})

func NewConfigurationSet added in v2.32.0

func NewConfigurationSet(scope constructs.Construct, id *string, props *ConfigurationSetProps) ConfigurationSet

type ConfigurationSetProps added in v2.32.0

type ConfigurationSetProps struct {
	// A name for the configuration set.
	ConfigurationSetName *string `field:"optional" json:"configurationSetName" yaml:"configurationSetName"`
	// The custom subdomain that is used to redirect email recipients to the Amazon SES event tracking domain.
	CustomTrackingRedirectDomain *string `field:"optional" json:"customTrackingRedirectDomain" yaml:"customTrackingRedirectDomain"`
	// The dedicated IP pool to associate with the configuration set.
	DedicatedIpPool IDedicatedIpPool `field:"optional" json:"dedicatedIpPool" yaml:"dedicatedIpPool"`
	// Whether to publish reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch.
	ReputationMetrics *bool `field:"optional" json:"reputationMetrics" yaml:"reputationMetrics"`
	// Whether email sending is enabled.
	SendingEnabled *bool `field:"optional" json:"sendingEnabled" yaml:"sendingEnabled"`
	// The reasons for which recipient email addresses should be automatically added to your account's suppression list.
	SuppressionReasons SuppressionReasons `field:"optional" json:"suppressionReasons" yaml:"suppressionReasons"`
	// Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS).
	TlsPolicy ConfigurationSetTlsPolicy `field:"optional" json:"tlsPolicy" yaml:"tlsPolicy"`
}

Properties for a configuration set.

Example:

var myPool iDedicatedIpPool

ses.NewConfigurationSet(this, jsii.String("ConfigurationSet"), &configurationSetProps{
	customTrackingRedirectDomain: jsii.String("track.cdk.dev"),
	suppressionReasons: ses.suppressionReasons_COMPLAINTS_ONLY,
	tlsPolicy: ses.configurationSetTlsPolicy_REQUIRE,
	dedicatedIpPool: myPool,
})

type ConfigurationSetTlsPolicy added in v2.32.0

type ConfigurationSetTlsPolicy string

TLS policy for a configuration set.

Example:

var myPool iDedicatedIpPool

ses.NewConfigurationSet(this, jsii.String("ConfigurationSet"), &configurationSetProps{
	customTrackingRedirectDomain: jsii.String("track.cdk.dev"),
	suppressionReasons: ses.suppressionReasons_COMPLAINTS_ONLY,
	tlsPolicy: ses.configurationSetTlsPolicy_REQUIRE,
	dedicatedIpPool: myPool,
})
const (
	// Messages are only delivered if a TLS connection can be established.
	ConfigurationSetTlsPolicy_REQUIRE ConfigurationSetTlsPolicy = "REQUIRE"
	// Messages can be delivered in plain text if a TLS connection can't be established.
	ConfigurationSetTlsPolicy_OPTIONAL ConfigurationSetTlsPolicy = "OPTIONAL"
)

type DedicatedIpPool added in v2.32.0

type DedicatedIpPool interface {
	awscdk.Resource
	IDedicatedIpPool
	// The name of the dedicated IP pool.
	DedicatedIpPoolName() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//    cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

A dedicated IP pool.

Example:

ses.NewDedicatedIpPool(this, jsii.String("Pool"))

func NewDedicatedIpPool added in v2.32.0

func NewDedicatedIpPool(scope constructs.Construct, id *string, props *DedicatedIpPoolProps) DedicatedIpPool

type DedicatedIpPoolProps added in v2.32.0

type DedicatedIpPoolProps struct {
	// A name for the dedicated IP pool.
	DedicatedIpPoolName *string `field:"optional" json:"dedicatedIpPoolName" yaml:"dedicatedIpPoolName"`
}

Properties for a dedicated IP pool.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

dedicatedIpPoolProps := &dedicatedIpPoolProps{
	dedicatedIpPoolName: jsii.String("dedicatedIpPoolName"),
}

type DkimIdentity added in v2.32.0

type DkimIdentity interface {
	// Binds this DKIM identity to the email identity.
	Bind(emailIdentity EmailIdentity, hostedZone awsroute53.IPublicHostedZone) *DkimIdentityConfig
}

The identity to use for DKIM.

Example:

// Example automatically generated from non-compiling source. May contain errors.
var myHostedZone iPublicHostedZone

ses.NewEmailIdentity(stack, jsii.String("Identity"), &emailIdentityProps{
	identity: ses.identity.publicHostedZone(myHostedZone),
	dkimIdentity: dkimIdentity_ByoDkim(map[string]interface{}{
		"privateKey": SecretValue_secretsManager(jsii.String("dkim-private-key")),
		"publicKey": jsii.String("...base64-encoded-public-key..."),
		"selector": jsii.String("selector"),
	}),
})

type DkimIdentityConfig added in v2.32.0

type DkimIdentityConfig struct {
	// A private key that's used to generate a DKIM signature.
	DomainSigningPrivateKey *string `field:"optional" json:"domainSigningPrivateKey" yaml:"domainSigningPrivateKey"`
	// A string that's used to identify a public key in the DNS configuration for a domain.
	DomainSigningSelector *string `field:"optional" json:"domainSigningSelector" yaml:"domainSigningSelector"`
	// The key length of the future DKIM key pair to be generated.
	//
	// This can be changed
	// at most once per day.
	NextSigningKeyLength EasyDkimSigningKeyLength `field:"optional" json:"nextSigningKeyLength" yaml:"nextSigningKeyLength"`
}

Configuration for DKIM identity.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

dkimIdentityConfig := &dkimIdentityConfig{
	domainSigningPrivateKey: jsii.String("domainSigningPrivateKey"),
	domainSigningSelector: jsii.String("domainSigningSelector"),
	nextSigningKeyLength: awscdk.Aws_ses.easyDkimSigningKeyLength_RSA_1024_BIT,
}

type DkimRecord added in v2.32.0

type DkimRecord struct {
	// The name of the record.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The value of the record.
	Value *string `field:"required" json:"value" yaml:"value"`
}

A DKIM record.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

dkimRecord := &dkimRecord{
	name: jsii.String("name"),
	value: jsii.String("value"),
}

type DropSpamReceiptRule

type DropSpamReceiptRule interface {
	constructs.Construct
	// The tree node.
	Node() constructs.Node
	Rule() ReceiptRule
	// Returns a string representation of this construct.
	ToString() *string
}

A rule added at the top of the rule set to drop spam/virus.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var receiptRule receiptRule
var receiptRuleAction iReceiptRuleAction
var receiptRuleSet receiptRuleSet

dropSpamReceiptRule := awscdk.Aws_ses.NewDropSpamReceiptRule(this, jsii.String("MyDropSpamReceiptRule"), &dropSpamReceiptRuleProps{
	ruleSet: receiptRuleSet,

	// the properties below are optional
	actions: []*iReceiptRuleAction{
		receiptRuleAction,
	},
	after: receiptRule,
	enabled: jsii.Boolean(false),
	receiptRuleName: jsii.String("receiptRuleName"),
	recipients: []*string{
		jsii.String("recipients"),
	},
	scanEnabled: jsii.Boolean(false),
	tlsPolicy: awscdk.*Aws_ses.tlsPolicy_OPTIONAL,
})

See: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-lambda-example-functions.html

func NewDropSpamReceiptRule

func NewDropSpamReceiptRule(scope constructs.Construct, id *string, props *DropSpamReceiptRuleProps) DropSpamReceiptRule

type DropSpamReceiptRuleProps

type DropSpamReceiptRuleProps struct {
	// An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule.
	Actions *[]IReceiptRuleAction `field:"optional" json:"actions" yaml:"actions"`
	// An existing rule after which the new rule will be placed.
	After IReceiptRule `field:"optional" json:"after" yaml:"after"`
	// Whether the rule is active.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The name for the rule.
	ReceiptRuleName *string `field:"optional" json:"receiptRuleName" yaml:"receiptRuleName"`
	// The recipient domains and email addresses that the receipt rule applies to.
	Recipients *[]*string `field:"optional" json:"recipients" yaml:"recipients"`
	// Whether to scan for spam and viruses.
	ScanEnabled *bool `field:"optional" json:"scanEnabled" yaml:"scanEnabled"`
	// Whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS).
	TlsPolicy TlsPolicy `field:"optional" json:"tlsPolicy" yaml:"tlsPolicy"`
	// The name of the rule set that the receipt rule will be added to.
	RuleSet IReceiptRuleSet `field:"required" json:"ruleSet" yaml:"ruleSet"`
}

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var receiptRule receiptRule
var receiptRuleAction iReceiptRuleAction
var receiptRuleSet receiptRuleSet

dropSpamReceiptRuleProps := &dropSpamReceiptRuleProps{
	ruleSet: receiptRuleSet,

	// the properties below are optional
	actions: []*iReceiptRuleAction{
		receiptRuleAction,
	},
	after: receiptRule,
	enabled: jsii.Boolean(false),
	receiptRuleName: jsii.String("receiptRuleName"),
	recipients: []*string{
		jsii.String("recipients"),
	},
	scanEnabled: jsii.Boolean(false),
	tlsPolicy: awscdk.Aws_ses.tlsPolicy_OPTIONAL,
}

type EasyDkimSigningKeyLength added in v2.32.0

type EasyDkimSigningKeyLength string

The signing key length for Easy DKIM.

const (
	// RSA 1024-bit.
	EasyDkimSigningKeyLength_RSA_1024_BIT EasyDkimSigningKeyLength = "RSA_1024_BIT"
	// RSA 2048-bit.
	EasyDkimSigningKeyLength_RSA_2048_BIT EasyDkimSigningKeyLength = "RSA_2048_BIT"
)

type EmailIdentity added in v2.32.0

type EmailIdentity interface {
	awscdk.Resource
	IEmailIdentity
	// The host name for the first token that you have to add to the DNS configurationfor your domain.
	DkimDnsTokenName1() *string
	// The host name for the second token that you have to add to the DNS configuration for your domain.
	DkimDnsTokenName2() *string
	// The host name for the third token that you have to add to the DNS configuration for your domain.
	DkimDnsTokenName3() *string
	// The record value for the first token that you have to add to the DNS configuration for your domain.
	DkimDnsTokenValue1() *string
	// The record value for the second token that you have to add to the DNS configuration for your domain.
	DkimDnsTokenValue2() *string
	// The record value for the third token that you have to add to the DNS configuration for your domain.
	DkimDnsTokenValue3() *string
	// DKIM records for this identity.
	DkimRecords() *[]*DkimRecord
	// The name of the email identity.
	EmailIdentityName() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//    cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

An email identity.

Example:

// Example automatically generated from non-compiling source. May contain errors.
var myHostedZone iPublicHostedZone

identity := ses.NewEmailIdentity(stack, jsii.String("Identity"), &emailIdentityProps{
	identity: ses.identity.publicHostedZone(myHostedZone),
	mailFromDomain: jsii.String("mail.cdk.dev"),
})

func NewEmailIdentity added in v2.32.0

func NewEmailIdentity(scope constructs.Construct, id *string, props *EmailIdentityProps) EmailIdentity

type EmailIdentityProps added in v2.32.0

type EmailIdentityProps struct {
	// The email address or domain to verify.
	Identity Identity `field:"required" json:"identity" yaml:"identity"`
	// The configuration set to associate with the email identity.
	ConfigurationSet IConfigurationSet `field:"optional" json:"configurationSet" yaml:"configurationSet"`
	// The type of DKIM identity to use.
	DkimIdentity DkimIdentity `field:"optional" json:"dkimIdentity" yaml:"dkimIdentity"`
	// Whether the messages that are sent from the identity are signed using DKIM.
	DkimSigning *bool `field:"optional" json:"dkimSigning" yaml:"dkimSigning"`
	// Whether to receive email notifications when bounce or complaint events occur.
	//
	// These notifications are sent to the address that you specified in the `Return-Path`
	// header of the original email.
	//
	// You're required to have a method of tracking bounces and complaints. If you haven't set
	// up another mechanism for receiving bounce or complaint notifications (for example, by
	// setting up an event destination), you receive an email notification when these events
	// occur (even if this setting is disabled).
	FeedbackForwarding *bool `field:"optional" json:"feedbackForwarding" yaml:"feedbackForwarding"`
	// The action to take if the required MX record for the MAIL FROM domain isn't found when you send an email.
	MailFromBehaviorOnMxFailure MailFromBehaviorOnMxFailure `field:"optional" json:"mailFromBehaviorOnMxFailure" yaml:"mailFromBehaviorOnMxFailure"`
	// The custom MAIL FROM domain that you want the verified identity to use.
	//
	// The MAIL FROM domain
	// must meet the following criteria:
	//    - It has to be a subdomain of the verified identity
	//    - It can't be used to receive email
	//    - It can't be used in a "From" address if the MAIL FROM domain is a destination for feedback
	// forwarding emails.
	MailFromDomain *string `field:"optional" json:"mailFromDomain" yaml:"mailFromDomain"`
}

Properties for an email identity.

Example:

// Example automatically generated from non-compiling source. May contain errors.
var myHostedZone iPublicHostedZone

identity := ses.NewEmailIdentity(stack, jsii.String("Identity"), &emailIdentityProps{
	identity: ses.identity.publicHostedZone(myHostedZone),
	mailFromDomain: jsii.String("mail.cdk.dev"),
})

type IConfigurationSet added in v2.32.0

type IConfigurationSet interface {
	awscdk.IResource
	// The name of the configuration set.
	ConfigurationSetName() *string
}

A configuration set.

func ConfigurationSet_FromConfigurationSetName added in v2.32.0

func ConfigurationSet_FromConfigurationSetName(scope constructs.Construct, id *string, configurationSetName *string) IConfigurationSet

Use an existing configuration set.

type IDedicatedIpPool added in v2.32.0

type IDedicatedIpPool interface {
	awscdk.IResource
	// The name of the dedicated IP pool.
	DedicatedIpPoolName() *string
}

A dedicated IP pool.

func DedicatedIpPool_FromDedicatedIpPoolName added in v2.32.0

func DedicatedIpPool_FromDedicatedIpPoolName(scope constructs.Construct, id *string, dedicatedIpPoolName *string) IDedicatedIpPool

Use an existing dedicated IP pool.

type IEmailIdentity added in v2.32.0

type IEmailIdentity interface {
	awscdk.IResource
	// The name of the email identity.
	EmailIdentityName() *string
}

An email identity.

func EmailIdentity_FromEmailIdentityName added in v2.32.0

func EmailIdentity_FromEmailIdentityName(scope constructs.Construct, id *string, emailIdentityName *string) IEmailIdentity

Use an existing email identity.

type IReceiptRule

type IReceiptRule interface {
	awscdk.IResource
	// The name of the receipt rule.
	ReceiptRuleName() *string
}

A receipt rule.

func ReceiptRule_FromReceiptRuleName

func ReceiptRule_FromReceiptRuleName(scope constructs.Construct, id *string, receiptRuleName *string) IReceiptRule

type IReceiptRuleAction

type IReceiptRuleAction interface {
	// Returns the receipt rule action specification.
	Bind(receiptRule IReceiptRule) *ReceiptRuleActionConfig
}

An abstract action for a receipt rule.

type IReceiptRuleSet

type IReceiptRuleSet interface {
	awscdk.IResource
	// Adds a new receipt rule in this rule set.
	//
	// The new rule is added after
	// the last added rule unless `after` is specified.
	AddRule(id *string, options *ReceiptRuleOptions) ReceiptRule
	// The receipt rule set name.
	ReceiptRuleSetName() *string
}

A receipt rule set.

func ReceiptRuleSet_FromReceiptRuleSetName

func ReceiptRuleSet_FromReceiptRuleSetName(scope constructs.Construct, id *string, receiptRuleSetName *string) IReceiptRuleSet

Import an exported receipt rule set.

type Identity added in v2.32.0

type Identity interface {
	// The hosted zone associated with this identity.
	HostedZone() awsroute53.IPublicHostedZone
	// The value of the identity.
	Value() *string
}

Identity.

Example:

// Example automatically generated from non-compiling source. May contain errors.
var myHostedZone iPublicHostedZone

identity := ses.NewEmailIdentity(stack, jsii.String("Identity"), &emailIdentityProps{
	identity: ses.identity.publicHostedZone(myHostedZone),
	mailFromDomain: jsii.String("mail.cdk.dev"),
})

func Identity_Domain added in v2.32.0

func Identity_Domain(domain *string) Identity

Verify a domain name.

DKIM records will have to be added manually to complete the verification process.

func Identity_Email added in v2.32.0

func Identity_Email(email *string) Identity

Verify an email address.

To complete the verification process look for an email from no-reply-aws@amazon.com, open it and click the link.

func Identity_PublicHostedZone added in v2.32.0

func Identity_PublicHostedZone(hostedZone awsroute53.IPublicHostedZone) Identity

Verify a public hosted zone.

DKIM and MAIL FROM records will be added automatically to the hosted zone.

type LambdaActionConfig

type LambdaActionConfig struct {
	// The Amazon Resource Name (ARN) of the AWS Lambda function.
	FunctionArn *string `field:"required" json:"functionArn" yaml:"functionArn"`
	// The invocation type of the AWS Lambda function.
	InvocationType *string `field:"optional" json:"invocationType" yaml:"invocationType"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the Lambda action is executed.
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

LambdaAction configuration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

lambdaActionConfig := &lambdaActionConfig{
	functionArn: jsii.String("functionArn"),

	// the properties below are optional
	invocationType: jsii.String("invocationType"),
	topicArn: jsii.String("topicArn"),
}

type MailFromBehaviorOnMxFailure added in v2.32.0

type MailFromBehaviorOnMxFailure string

The action to take if the required MX record for the MAIL FROM domain isn't found.

const (
	// The mail is sent using amazonses.com as the MAIL FROM domain.
	MailFromBehaviorOnMxFailure_USE_DEFAULT_VALUE MailFromBehaviorOnMxFailure = "USE_DEFAULT_VALUE"
	// The Amazon SES API v2 returns a `MailFromDomainNotVerified` error and doesn't attempt to deliver the email.
	MailFromBehaviorOnMxFailure_REJECT_MESSAGE MailFromBehaviorOnMxFailure = "REJECT_MESSAGE"
)

type ReceiptFilter

type ReceiptFilter interface {
	awscdk.Resource
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//    cross-environment scenarios.
	PhysicalName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

A receipt filter.

When instantiated without props, it creates a block all receipt filter.

Example:

ses.NewReceiptFilter(this, jsii.String("Filter"), &receiptFilterProps{
	ip: jsii.String("1.2.3.4/16"),
})

func NewReceiptFilter

func NewReceiptFilter(scope constructs.Construct, id *string, props *ReceiptFilterProps) ReceiptFilter

type ReceiptFilterPolicy

type ReceiptFilterPolicy string

The policy for the receipt filter.

const (
	// Allow the ip address or range.
	ReceiptFilterPolicy_ALLOW ReceiptFilterPolicy = "ALLOW"
	// Block the ip address or range.
	ReceiptFilterPolicy_BLOCK ReceiptFilterPolicy = "BLOCK"
)

type ReceiptFilterProps

type ReceiptFilterProps struct {
	// The ip address or range to filter.
	Ip *string `field:"optional" json:"ip" yaml:"ip"`
	// The policy for the filter.
	Policy ReceiptFilterPolicy `field:"optional" json:"policy" yaml:"policy"`
	// The name for the receipt filter.
	ReceiptFilterName *string `field:"optional" json:"receiptFilterName" yaml:"receiptFilterName"`
}

Construction properties for a ReceiptFilter.

Example:

ses.NewReceiptFilter(this, jsii.String("Filter"), &receiptFilterProps{
	ip: jsii.String("1.2.3.4/16"),
})

type ReceiptRule

type ReceiptRule interface {
	awscdk.Resource
	IReceiptRule
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//    cross-environment scenarios.
	PhysicalName() *string
	// The name of the receipt rule.
	ReceiptRuleName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Adds an action to this receipt rule.
	AddAction(action IReceiptRuleAction)
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

A new receipt rule.

Example:

ruleSet := ses.NewReceiptRuleSet(this, jsii.String("RuleSet"))

awsRule := ruleSet.addRule(jsii.String("Aws"), &receiptRuleOptions{
	recipients: []*string{
		jsii.String("aws.com"),
	},
})

func NewReceiptRule

func NewReceiptRule(scope constructs.Construct, id *string, props *ReceiptRuleProps) ReceiptRule

type ReceiptRuleActionConfig

type ReceiptRuleActionConfig struct {
	// Adds a header to the received email.
	AddHeaderAction *AddHeaderActionConfig `field:"optional" json:"addHeaderAction" yaml:"addHeaderAction"`
	// Rejects the received email by returning a bounce response to the sender and, optionally, publishes a notification to Amazon SNS.
	BounceAction *BounceActionConfig `field:"optional" json:"bounceAction" yaml:"bounceAction"`
	// Calls an AWS Lambda function, and optionally, publishes a notification to Amazon SNS.
	LambdaAction *LambdaActionConfig `field:"optional" json:"lambdaAction" yaml:"lambdaAction"`
	// Saves the received message to an Amazon S3 bucket and, optionally, publishes a notification to Amazon SNS.
	S3Action *S3ActionConfig `field:"optional" json:"s3Action" yaml:"s3Action"`
	// Publishes the email content within a notification to Amazon SNS.
	SnsAction *SNSActionConfig `field:"optional" json:"snsAction" yaml:"snsAction"`
	// Terminates the evaluation of the receipt rule set and optionally publishes a notification to Amazon SNS.
	StopAction *StopActionConfig `field:"optional" json:"stopAction" yaml:"stopAction"`
	// Calls Amazon WorkMail and, optionally, publishes a notification to Amazon SNS.
	WorkmailAction *WorkmailActionConfig `field:"optional" json:"workmailAction" yaml:"workmailAction"`
}

Properties for a receipt rule action.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

receiptRuleActionConfig := &receiptRuleActionConfig{
	addHeaderAction: &addHeaderActionConfig{
		headerName: jsii.String("headerName"),
		headerValue: jsii.String("headerValue"),
	},
	bounceAction: &bounceActionConfig{
		message: jsii.String("message"),
		sender: jsii.String("sender"),
		smtpReplyCode: jsii.String("smtpReplyCode"),

		// the properties below are optional
		statusCode: jsii.String("statusCode"),
		topicArn: jsii.String("topicArn"),
	},
	lambdaAction: &lambdaActionConfig{
		functionArn: jsii.String("functionArn"),

		// the properties below are optional
		invocationType: jsii.String("invocationType"),
		topicArn: jsii.String("topicArn"),
	},
	s3Action: &s3ActionConfig{
		bucketName: jsii.String("bucketName"),

		// the properties below are optional
		kmsKeyArn: jsii.String("kmsKeyArn"),
		objectKeyPrefix: jsii.String("objectKeyPrefix"),
		topicArn: jsii.String("topicArn"),
	},
	snsAction: &sNSActionConfig{
		encoding: jsii.String("encoding"),
		topicArn: jsii.String("topicArn"),
	},
	stopAction: &stopActionConfig{
		scope: jsii.String("scope"),

		// the properties below are optional
		topicArn: jsii.String("topicArn"),
	},
	workmailAction: &workmailActionConfig{
		organizationArn: jsii.String("organizationArn"),

		// the properties below are optional
		topicArn: jsii.String("topicArn"),
	},
}

type ReceiptRuleOptions

type ReceiptRuleOptions struct {
	// An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule.
	Actions *[]IReceiptRuleAction `field:"optional" json:"actions" yaml:"actions"`
	// An existing rule after which the new rule will be placed.
	After IReceiptRule `field:"optional" json:"after" yaml:"after"`
	// Whether the rule is active.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The name for the rule.
	ReceiptRuleName *string `field:"optional" json:"receiptRuleName" yaml:"receiptRuleName"`
	// The recipient domains and email addresses that the receipt rule applies to.
	Recipients *[]*string `field:"optional" json:"recipients" yaml:"recipients"`
	// Whether to scan for spam and viruses.
	ScanEnabled *bool `field:"optional" json:"scanEnabled" yaml:"scanEnabled"`
	// Whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS).
	TlsPolicy TlsPolicy `field:"optional" json:"tlsPolicy" yaml:"tlsPolicy"`
}

Options to add a receipt rule to a receipt rule set.

Example:

ruleSet := ses.NewReceiptRuleSet(this, jsii.String("RuleSet"))

awsRule := ruleSet.addRule(jsii.String("Aws"), &receiptRuleOptions{
	recipients: []*string{
		jsii.String("aws.com"),
	},
})

type ReceiptRuleProps

type ReceiptRuleProps struct {
	// An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule.
	Actions *[]IReceiptRuleAction `field:"optional" json:"actions" yaml:"actions"`
	// An existing rule after which the new rule will be placed.
	After IReceiptRule `field:"optional" json:"after" yaml:"after"`
	// Whether the rule is active.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The name for the rule.
	ReceiptRuleName *string `field:"optional" json:"receiptRuleName" yaml:"receiptRuleName"`
	// The recipient domains and email addresses that the receipt rule applies to.
	Recipients *[]*string `field:"optional" json:"recipients" yaml:"recipients"`
	// Whether to scan for spam and viruses.
	ScanEnabled *bool `field:"optional" json:"scanEnabled" yaml:"scanEnabled"`
	// Whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS).
	TlsPolicy TlsPolicy `field:"optional" json:"tlsPolicy" yaml:"tlsPolicy"`
	// The name of the rule set that the receipt rule will be added to.
	RuleSet IReceiptRuleSet `field:"required" json:"ruleSet" yaml:"ruleSet"`
}

Construction properties for a ReceiptRule.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var receiptRule receiptRule
var receiptRuleAction iReceiptRuleAction
var receiptRuleSet receiptRuleSet

receiptRuleProps := &receiptRuleProps{
	ruleSet: receiptRuleSet,

	// the properties below are optional
	actions: []*iReceiptRuleAction{
		receiptRuleAction,
	},
	after: receiptRule,
	enabled: jsii.Boolean(false),
	receiptRuleName: jsii.String("receiptRuleName"),
	recipients: []*string{
		jsii.String("recipients"),
	},
	scanEnabled: jsii.Boolean(false),
	tlsPolicy: awscdk.Aws_ses.tlsPolicy_OPTIONAL,
}

type ReceiptRuleSet

type ReceiptRuleSet interface {
	awscdk.Resource
	IReceiptRuleSet
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	Env() *awscdk.ResourceEnvironment
	// The tree node.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//    cross-environment scenarios.
	PhysicalName() *string
	// The receipt rule set name.
	ReceiptRuleSetName() *string
	// The stack in which this resource is defined.
	Stack() awscdk.Stack
	// Adds a drop spam rule.
	AddDropSpamRule()
	// Adds a new receipt rule in this rule set.
	//
	// The new rule is added after
	// the last added rule unless `after` is specified.
	AddRule(id *string, options *ReceiptRuleOptions) ReceiptRule
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	ToString() *string
}

A new receipt rule set.

Example:

ruleSet := ses.NewReceiptRuleSet(this, jsii.String("RuleSet"))

awsRule := ruleSet.addRule(jsii.String("Aws"), &receiptRuleOptions{
	recipients: []*string{
		jsii.String("aws.com"),
	},
})

func NewReceiptRuleSet

func NewReceiptRuleSet(scope constructs.Construct, id *string, props *ReceiptRuleSetProps) ReceiptRuleSet

type ReceiptRuleSetProps

type ReceiptRuleSetProps struct {
	// Whether to add a first rule to stop processing messages that have at least one spam indicator.
	DropSpam *bool `field:"optional" json:"dropSpam" yaml:"dropSpam"`
	// The name for the receipt rule set.
	ReceiptRuleSetName *string `field:"optional" json:"receiptRuleSetName" yaml:"receiptRuleSetName"`
	// The list of rules to add to this rule set.
	//
	// Rules are added in the same
	// order as they appear in the list.
	Rules *[]*ReceiptRuleOptions `field:"optional" json:"rules" yaml:"rules"`
}

Construction properties for a ReceiptRuleSet.

Example:

import s3 "github.com/aws/aws-cdk-go/awscdk"
import actions "github.com/aws/aws-cdk-go/awscdk"

bucket := s3.NewBucket(this, jsii.String("Bucket"))
topic := sns.NewTopic(this, jsii.String("Topic"))

ses.NewReceiptRuleSet(this, jsii.String("RuleSet"), &receiptRuleSetProps{
	rules: []receiptRuleOptions{
		&receiptRuleOptions{
			recipients: []*string{
				jsii.String("hello@aws.com"),
			},
			actions: []iReceiptRuleAction{
				actions.NewAddHeader(&addHeaderProps{
					name: jsii.String("X-Special-Header"),
					value: jsii.String("aws"),
				}),
				actions.NewS3(&s3Props{
					bucket: bucket,
					objectKeyPrefix: jsii.String("emails/"),
					topic: topic,
				}),
			},
		},
		&receiptRuleOptions{
			recipients: []*string{
				jsii.String("aws.com"),
			},
			actions: []*iReceiptRuleAction{
				actions.NewSns(&snsProps{
					topic: topic,
				}),
			},
		},
	},
})

type S3ActionConfig

type S3ActionConfig struct {
	// The name of the Amazon S3 bucket that you want to send incoming mail to.
	BucketName *string `field:"required" json:"bucketName" yaml:"bucketName"`
	// The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket.
	KmsKeyArn *string `field:"optional" json:"kmsKeyArn" yaml:"kmsKeyArn"`
	// The key prefix of the Amazon S3 bucket.
	ObjectKeyPrefix *string `field:"optional" json:"objectKeyPrefix" yaml:"objectKeyPrefix"`
	// The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket.
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

S3Action configuration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

s3ActionConfig := &s3ActionConfig{
	bucketName: jsii.String("bucketName"),

	// the properties below are optional
	kmsKeyArn: jsii.String("kmsKeyArn"),
	objectKeyPrefix: jsii.String("objectKeyPrefix"),
	topicArn: jsii.String("topicArn"),
}

type SNSActionConfig

type SNSActionConfig struct {
	// The encoding to use for the email within the Amazon SNS notification.
	Encoding *string `field:"optional" json:"encoding" yaml:"encoding"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify.
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

SNSAction configuration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

sNSActionConfig := &sNSActionConfig{
	encoding: jsii.String("encoding"),
	topicArn: jsii.String("topicArn"),
}

type StopActionConfig

type StopActionConfig struct {
	// The scope of the StopAction.
	//
	// The only acceptable value is RuleSet.
	Scope *string `field:"required" json:"scope" yaml:"scope"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the stop action is taken.
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

StopAction configuration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

stopActionConfig := &stopActionConfig{
	scope: jsii.String("scope"),

	// the properties below are optional
	topicArn: jsii.String("topicArn"),
}

type SuppressionReasons added in v2.32.0

type SuppressionReasons string

Reasons for which recipient email addresses should be automatically added to your account's suppression list.

Example:

var myPool iDedicatedIpPool

ses.NewConfigurationSet(this, jsii.String("ConfigurationSet"), &configurationSetProps{
	customTrackingRedirectDomain: jsii.String("track.cdk.dev"),
	suppressionReasons: ses.suppressionReasons_COMPLAINTS_ONLY,
	tlsPolicy: ses.configurationSetTlsPolicy_REQUIRE,
	dedicatedIpPool: myPool,
})
const (
	// Bounces and complaints.
	SuppressionReasons_BOUNCES_AND_COMPLAINTS SuppressionReasons = "BOUNCES_AND_COMPLAINTS"
	// Bounces only.
	SuppressionReasons_BOUNCES_ONLY SuppressionReasons = "BOUNCES_ONLY"
	// Complaints only.
	SuppressionReasons_COMPLAINTS_ONLY SuppressionReasons = "COMPLAINTS_ONLY"
)

type TlsPolicy

type TlsPolicy string

The type of TLS policy for a receipt rule.

const (
	// Do not check for TLS.
	TlsPolicy_OPTIONAL TlsPolicy = "OPTIONAL"
	// Bounce emails that are not received over TLS.
	TlsPolicy_REQUIRE TlsPolicy = "REQUIRE"
)

type WorkmailActionConfig

type WorkmailActionConfig struct {
	// The Amazon Resource Name (ARN) of the Amazon WorkMail organization.
	OrganizationArn *string `field:"required" json:"organizationArn" yaml:"organizationArn"`
	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the WorkMail action is called.
	TopicArn *string `field:"optional" json:"topicArn" yaml:"topicArn"`
}

WorkmailAction configuration.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

workmailActionConfig := &workmailActionConfig{
	organizationArn: jsii.String("organizationArn"),

	// the properties below are optional
	topicArn: jsii.String("topicArn"),
}

Source Files

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL