awsses

package
v2.79.0 Latest Latest
Warning

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

Go to latest
Published: May 10, 2023 License: Apache-2.0 Imports: 9 Imported by: 3

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 "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,
})

Use addEventDestination() to publish email sending events to Amazon SNS or Amazon CloudWatch:

var myConfigurationSet configurationSet
var myTopic topic


myConfigurationSet.AddEventDestination(jsii.String("ToSns"), &ConfigurationSetEventDestinationOptions{
	Destination: ses.EventDestination_SnsTopic(myTopic),
})
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:

var myHostedZone iPublicHostedZone


identity := ses.NewEmailIdentity(this, 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):

var myHostedZone iPublicHostedZone


ses.NewEmailIdentity(this, jsii.String("Identity"), &EmailIdentityProps{
	Identity: ses.Identity_PublicHostedZone(myHostedZone),
	DkimIdentity: ses.DkimIdentity_ByoDkim(&ByoDkimOptions{
		PrivateKey: awscdk.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:

identity := ses.NewEmailIdentity(this, jsii.String("Identity"), &EmailIdentityProps{
	Identity: ses.Identity_Domain(jsii.String("cdk.dev")),
})

for _, record := range identity.DkimRecords {}
Virtual Deliverability Manager (VDM)

Virtual Deliverability Manager is an Amazon SES feature that helps you enhance email deliverability, like increasing inbox deliverability and email conversions, by providing insights into your sending and delivery data, and giving advice on how to fix the issues that are negatively affecting your delivery success rate and reputation.

Use the VdmAttributes construct to configure the Virtual Deliverability Manager for your account:

// Enables engagement tracking and optimized shared delivery by default
// Enables engagement tracking and optimized shared delivery by default
ses.NewVdmAttributes(this, jsii.String("Vdm"))

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 CfnVdmAttributes_CFN_RESOURCE_TYPE_NAME added in v2.51.0

func CfnVdmAttributes_CFN_RESOURCE_TYPE_NAME() *string

func CfnVdmAttributes_IsCfnElement added in v2.51.0

func CfnVdmAttributes_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 CfnVdmAttributes_IsCfnResource added in v2.51.0

func CfnVdmAttributes_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVdmAttributes_IsConstruct added in v2.51.0

func CfnVdmAttributes_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 ConfigurationSetEventDestination_IsConstruct added in v2.74.0

func ConfigurationSetEventDestination_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 ConfigurationSetEventDestination_IsOwnedResource added in v2.74.0

func ConfigurationSetEventDestination_IsOwnedResource(construct constructs.IConstruct) *bool

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

func ConfigurationSetEventDestination_IsResource added in v2.74.0

func ConfigurationSetEventDestination_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

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 NewCfnVdmAttributes_Override added in v2.51.0

func NewCfnVdmAttributes_Override(c CfnVdmAttributes, scope constructs.Construct, id *string, props *CfnVdmAttributesProps)

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

func NewConfigurationSetEventDestination_Override added in v2.74.0

func NewConfigurationSetEventDestination_Override(c ConfigurationSetEventDestination, scope constructs.Construct, id *string, props *ConfigurationSetEventDestinationProps)

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 NewEventDestination_Override added in v2.74.0

func NewEventDestination_Override(e EventDestination)

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 NewVdmAttributes_Override added in v2.54.0

func NewVdmAttributes_Override(v VdmAttributes, scope constructs.Construct, id *string, props *VdmAttributesProps)

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.

func VdmAttributes_IsConstruct added in v2.54.0

func VdmAttributes_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 VdmAttributes_IsOwnedResource added in v2.54.0

func VdmAttributes_IsOwnedResource(construct constructs.IConstruct) *bool

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

func VdmAttributes_IsResource added in v2.54.0

func VdmAttributes_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:

var myHostedZone iPublicHostedZone

ses.NewEmailIdentity(this, jsii.String("Identity"), &EmailIdentityProps{
	Identity: ses.Identity_PublicHostedZone(myHostedZone),
	DkimIdentity: ses.DkimIdentity_ByoDkim(&ByoDkimOptions{
		PrivateKey: awscdk.SecretValue_SecretsManager(jsii.String("dkim-private-key")),
		PublicKey: jsii.String("...base64-encoded-public-key..."),
		Selector: jsii.String("selector"),
	}),
})

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
	// Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS).
	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
	// An object that represents the reputation settings for the configuration set.
	ReputationOptions() interface{}
	SetReputationOptions(val interface{})
	// An object that defines whether or not Amazon SES can send email that you send using the configuration set.
	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
	// An object that contains information about the suppression list preferences for your account.
	SuppressionOptions() interface{}
	SetSuppressionOptions(val interface{})
	// The name of the custom open and click tracking domain associated with the configuration set.
	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{}
	// The Virtual Deliverability Manager (VDM) options that apply to the configuration set.
	VdmOptions() interface{}
	SetVdmOptions(val 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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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`.

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/) .

> *Required permissions:* > > To apply any of the resource options, you will need to have the corresponding AWS Identity and Access Management (IAM) SES API v2 permissions: > > - `ses:GetConfigurationSet` > > - (This permission is replacing the v1 *ses:DescribeConfigurationSet* permission which will not work with these v2 resource options.) > - `ses:PutConfigurationSetDeliveryOptions` > - `ses:PutConfigurationSetReputationOptions` > - `ses:PutConfigurationSetSendingOptions` > - `ses:PutConfigurationSetSuppressionOptions` > - `ses:PutConfigurationSetTrackingOptions`.

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"),
	},
	VdmOptions: &VdmOptionsProperty{
		DashboardOptions: &DashboardOptionsProperty{
			EngagementMetrics: jsii.String("engagementMetrics"),
		},
		GuardianOptions: &GuardianOptionsProperty{
			OptimizedSharedDelivery: jsii.String("optimizedSharedDelivery"),
		},
	},
})

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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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, Amazon Kinesis Data Firehose, or Amazon Simple Notification Service (Amazon SNS).

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 send request was successful and SES will attempt to deliver the message to the recipient’s mail server. (If account-level or global suppression is being used, SES will still count it as a send, but delivery is suppressed.)
	// - `reject` - SES accepted the email, but determined that it contained a virus and didn’t attempt to deliver it to the recipient’s mail server.
	// - `bounce` - ( *Hard bounce* ) The recipient's mail server permanently rejected the email. ( *Soft bounces* are only included when SES fails to deliver the email after retrying for a period of time.)
	// - `complaint` - The email was successfully delivered to the recipient’s mail server, but the recipient marked it as spam.
	// - `delivery` - SES successfully delivered the email to the recipient's mail server.
	// - `open` - The recipient received the message and opened it in their email client.
	// - `click` - The recipient clicked one or more links in the email.
	// - `renderingFailure` - The email wasn't sent because of a template rendering issue. This event type can occur when template data is missing, or when there is a mismatch between template parameters and data. (This event type only occurs when you send email using the [`SendTemplatedEmail`](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendTemplatedEmail.html) or [`SendBulkTemplatedEmail`](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendBulkTemplatedEmail.html) API operations.)
	// - `deliveryDelay` - The email couldn't be delivered to the recipient’s mail server because a temporary issue occurred. Delivery delays can occur, for example, when the recipient's inbox is full, or when the receiving email server experiences a transient issue.
	// - `subscription` - The email was successfully delivered, but the recipient updated their subscription preferences by clicking on an *unsubscribe* link as part of your [subscription management](https://docs.aws.amazon.com/ses/latest/dg/sending-email-subscription-management.html) .
	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"`
	// An object that contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.
	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 {
	// The ARN of the Amazon SNS topic for email sending events.
	//
	// 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:"required" json:"topicArn" yaml:"topicArn"`
}

Contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.

Event destinations, such as Amazon SNS, 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"

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

type CfnConfigurationSetProps

type CfnConfigurationSetProps struct {
	// Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS).
	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"`
	// An object that represents the reputation settings for the configuration set.
	ReputationOptions interface{} `field:"optional" json:"reputationOptions" yaml:"reputationOptions"`
	// An object that defines whether or not Amazon SES can send email that you send using the configuration set.
	SendingOptions interface{} `field:"optional" json:"sendingOptions" yaml:"sendingOptions"`
	// An object that contains information about the suppression list preferences for your account.
	SuppressionOptions interface{} `field:"optional" json:"suppressionOptions" yaml:"suppressionOptions"`
	// The name of the custom open and click tracking domain associated with the configuration set.
	TrackingOptions interface{} `field:"optional" json:"trackingOptions" yaml:"trackingOptions"`
	// The Virtual Deliverability Manager (VDM) options that apply to the configuration set.
	VdmOptions interface{} `field:"optional" json:"vdmOptions" yaml:"vdmOptions"`
}

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"),
	},
	VdmOptions: &VdmOptionsProperty{
		DashboardOptions: &DashboardOptionsProperty{
			EngagementMetrics: jsii.String("engagementMetrics"),
		},
		GuardianOptions: &GuardianOptionsProperty{
			OptimizedSharedDelivery: jsii.String("optimizedSharedDelivery"),
		},
	},
}

type CfnConfigurationSet_DashboardOptionsProperty added in v2.51.0

type CfnConfigurationSet_DashboardOptionsProperty struct {
	// Specifies the status of your VDM engagement metrics collection. Can be one of the following:.
	//
	// - `ENABLED` – Amazon SES enables engagement metrics for the configuration set.
	// - `DISABLED` – Amazon SES disables engagement metrics for the configuration set.
	EngagementMetrics *string `field:"required" json:"engagementMetrics" yaml:"engagementMetrics"`
}

Settings for your VDM configuration as applicable to the Dashboard.

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"

dashboardOptionsProperty := &DashboardOptionsProperty{
	EngagementMetrics: jsii.String("engagementMetrics"),
}

type CfnConfigurationSet_DeliveryOptionsProperty added in v2.29.0

type CfnConfigurationSet_DeliveryOptionsProperty struct {
	// The name of the dedicated IP pool to associate with the configuration set.
	SendingPoolName *string `field:"optional" json:"sendingPoolName" yaml:"sendingPoolName"`
	// Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS).
	//
	// If the value is `REQUIRE` , messages are only delivered if a TLS connection can be established. If the value is `OPTIONAL` , messages can be delivered in plain text if a TLS connection can't be established.
	//
	// Valid Values: `REQUIRE | OPTIONAL`.
	TlsPolicy *string `field:"optional" json:"tlsPolicy" yaml:"tlsPolicy"`
}

Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS).

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_GuardianOptionsProperty added in v2.51.0

type CfnConfigurationSet_GuardianOptionsProperty struct {
	// Specifies the status of your VDM optimized shared delivery. Can be one of the following:.
	//
	// - `ENABLED` – Amazon SES enables optimized shared delivery for the configuration set.
	// - `DISABLED` – Amazon SES disables optimized shared delivery for the configuration set.
	OptimizedSharedDelivery *string `field:"required" json:"optimizedSharedDelivery" yaml:"optimizedSharedDelivery"`
}

Settings for your VDM configuration as applicable to the Guardian.

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"

guardianOptionsProperty := &GuardianOptionsProperty{
	OptimizedSharedDelivery: jsii.String("optimizedSharedDelivery"),
}

type CfnConfigurationSet_ReputationOptionsProperty added in v2.29.0

type CfnConfigurationSet_ReputationOptionsProperty struct {
	// Describes whether or not Amazon SES publishes reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch.
	//
	// If the value is `true` , reputation metrics are published. If the value is `false` , reputation metrics are not published. The default value is `false` .
	ReputationMetricsEnabled interface{} `field:"optional" json:"reputationMetricsEnabled" yaml:"reputationMetricsEnabled"`
}

Contains information about the reputation settings for a configuration set.

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 {
	// If `true` , email sending is enabled for the configuration set.
	//
	// If `false` , email sending is disabled for the configuration set.
	SendingEnabled interface{} `field:"optional" json:"sendingEnabled" yaml:"sendingEnabled"`
}

Used to enable or disable email sending for messages that use this configuration set in the current AWS Region.

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 {
	// A list that contains the reasons that email addresses are automatically added to the suppression list for your account.
	//
	// This list can contain any or all of the following:
	//
	// - `COMPLAINT` – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint.
	// - `BOUNCE` – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce.
	SuppressedReasons *[]*string `field:"optional" json:"suppressedReasons" yaml:"suppressedReasons"`
}

An object that contains information about the suppression list preferences for your account.

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 {
	// The custom subdomain that is used to redirect email recipients to the Amazon SES event tracking domain.
	CustomRedirectDomain *string `field:"optional" json:"customRedirectDomain" yaml:"customRedirectDomain"`
}

A domain that is used to redirect email recipients to an Amazon SES-operated domain.

This domain captures open and click events generated by Amazon SES emails.

For more information, see [Configuring Custom Domains to Handle Open and Click Tracking](https://docs.aws.amazon.com/ses/latest/dg/configure-custom-open-click-domains.html) in the *Amazon SES Developer Guide* .

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 CfnConfigurationSet_VdmOptionsProperty added in v2.51.0

type CfnConfigurationSet_VdmOptionsProperty struct {
	// Settings for your VDM configuration as applicable to the Dashboard.
	DashboardOptions interface{} `field:"optional" json:"dashboardOptions" yaml:"dashboardOptions"`
	// Settings for your VDM configuration as applicable to the Guardian.
	GuardianOptions interface{} `field:"optional" json:"guardianOptions" yaml:"guardianOptions"`
}

The Virtual Deliverability Manager (VDM) options that apply to a configuration set.

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"

vdmOptionsProperty := &VdmOptionsProperty{
	DashboardOptions: &DashboardOptionsProperty{
		EngagementMetrics: jsii.String("engagementMetrics"),
	},
	GuardianOptions: &GuardianOptionsProperty{
		OptimizedSharedDelivery: jsii.String("optimizedSharedDelivery"),
	},
}

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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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
	// The name of the dedicated IP pool that the IP address is associated with.
	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 type of scaling mode.
	//
	// The following options are available:
	//
	// - `STANDARD` - The customer controls which IPs are part of the dedicated IP pool.
	// - `MANAGED` - The reputation and number of IPs is automatically managed by Amazon SES .
	//
	// The `STANDARD` option is selected by default if no value is specified.
	ScalingMode() *string
	SetScalingMode(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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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`.

Create a new pool of dedicated IP addresses. A pool can include one or more dedicated IP addresses that are associated with your AWS account . You can associate a pool with a configuration set. When you send an email that uses that configuration set, the message is sent from one of the addresses in the associated pool.

> You can't delete dedicated IP pools that have a `STANDARD` scaling mode and one or more dedicated IP addresses. This constraint doesn't apply to dedicated IP pools that have a `MANAGED` scaling mode.

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"),
	ScalingMode: jsii.String("scalingMode"),
})

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 {
	// The name of the dedicated IP pool that the IP address is associated with.
	PoolName *string `field:"optional" json:"poolName" yaml:"poolName"`
	// The type of scaling mode.
	//
	// The following options are available:
	//
	// - `STANDARD` - The customer controls which IPs are part of the dedicated IP pool.
	// - `MANAGED` - The reputation and number of IPs is automatically managed by Amazon SES .
	//
	// The `STANDARD` option is selected by default if no value is specified.
	ScalingMode *string `field:"optional" json:"scalingMode" yaml:"scalingMode"`
}

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"),
	ScalingMode: jsii.String("scalingMode"),
}

type CfnEmailIdentity added in v2.31.0

type CfnEmailIdentity interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The host name for the first token that you have to add to the DNS configuration for your domain.
	AttrDkimDnsTokenName1() *string
	// The host name for the second token that you have to add to the DNS configuration for your domain.
	AttrDkimDnsTokenName2() *string
	// The host name for the third token that you have to add to the DNS configuration for your domain.
	AttrDkimDnsTokenName3() *string
	// The record value for the first token that you have to add to the DNS configuration for your domain.
	AttrDkimDnsTokenValue1() *string
	// The record value for the second token that you have to add to the DNS configuration for your domain.
	AttrDkimDnsTokenValue2() *string
	// The record value for the third token that you have to add to the DNS configuration for your domain.
	AttrDkimDnsTokenValue3() *string
	// Options for this resource, such as condition, update policy etc.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	CfnResourceType() *string
	// Used to associate a configuration set with an email identity.
	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
	// An object that contains information about the DKIM attributes for the identity.
	DkimAttributes() interface{}
	SetDkimAttributes(val interface{})
	// If your request includes this object, Amazon SES configures the identity to use Bring Your Own DKIM (BYODKIM) for DKIM authentication purposes, or, configures the key length to be used for [Easy DKIM](https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-dkim-easy.html) .
	DkimSigningAttributes() interface{}
	SetDkimSigningAttributes(val interface{})
	// The email address or domain to verify.
	EmailIdentity() *string
	SetEmailIdentity(val *string)
	// Used to enable or disable feedback forwarding for an identity.
	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
	// Used to enable or disable the custom Mail-From domain configuration for an email identity.
	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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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`.

Specifies an identity for using within SES. An identity is an email address or domain that you use when you send email. Before you can use an identity to send email, you first have to verify it. By verifying an identity, you demonstrate that you're the owner of the identity, and that you've given Amazon SES API v2 permission to send email from the identity.

When you verify an email address, SES sends an email to the address. Your email address is verified as soon as you follow the link in the verification email. When you verify a domain without specifying the DkimSigningAttributes properties, OR only the NextSigningKeyLength property of DkimSigningAttributes, this resource provides a set of CNAME token names and values (DkimDNSTokenName1, DkimDNSTokenValue1, DkimDNSTokenName2, DkimDNSTokenValue2, DkimDNSTokenName3, DkimDNSTokenValue3) as outputs. You can then add these to the DNS configuration for your domain. Your domain is verified when Amazon SES detects these records in the DNS configuration for your domain. This verification method is known as Easy DKIM.

Alternatively, you can perform the verification process by providing your own public-private key pair. This verification method is known as Bring Your Own DKIM (BYODKIM). To use BYODKIM, your resource must include DkimSigningAttributes properties DomainSigningSelector and DomainSigningPrivateKey. When you specify this object, you provide a selector (DomainSigningSelector) (a component of the DNS record name that identifies the public key to use for DKIM authentication) and a private key (DomainSigningPrivateKey).

Additionally, you can associate an existing configuration set with the email identity that you're verifying.

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 {
	// The email address or domain to verify.
	EmailIdentity *string `field:"required" json:"emailIdentity" yaml:"emailIdentity"`
	// Used to associate a configuration set with an email identity.
	ConfigurationSetAttributes interface{} `field:"optional" json:"configurationSetAttributes" yaml:"configurationSetAttributes"`
	// An object that contains information about the DKIM attributes for the identity.
	DkimAttributes interface{} `field:"optional" json:"dkimAttributes" yaml:"dkimAttributes"`
	// If your request includes this object, Amazon SES configures the identity to use Bring Your Own DKIM (BYODKIM) for DKIM authentication purposes, or, configures the key length to be used for [Easy DKIM](https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-dkim-easy.html) .
	DkimSigningAttributes interface{} `field:"optional" json:"dkimSigningAttributes" yaml:"dkimSigningAttributes"`
	// Used to enable or disable feedback forwarding for an identity.
	FeedbackAttributes interface{} `field:"optional" json:"feedbackAttributes" yaml:"feedbackAttributes"`
	// Used to enable or disable the custom Mail-From domain configuration for an email identity.
	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 {
	// The configuration set to associate with an email identity.
	ConfigurationSetName *string `field:"optional" json:"configurationSetName" yaml:"configurationSetName"`
}

Used to associate a configuration set with an email 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"

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

type CfnEmailIdentity_DkimAttributesProperty added in v2.31.0

type CfnEmailIdentity_DkimAttributesProperty struct {
	// Sets the DKIM signing configuration for the identity.
	//
	// When you set this value `true` , then the messages that are sent from the identity are signed using DKIM. If you set this value to `false` , your messages are sent without DKIM signing.
	SigningEnabled interface{} `field:"optional" json:"signingEnabled" yaml:"signingEnabled"`
}

Used to enable or disable DKIM authentication for an email 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"

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

type CfnEmailIdentity_DkimSigningAttributesProperty added in v2.31.0

type CfnEmailIdentity_DkimSigningAttributesProperty struct {
	// [Bring Your Own DKIM] A private key that's used to generate a DKIM signature.
	//
	// The private key must use 1024 or 2048-bit RSA encryption, and must be encoded using base64 encoding.
	//
	// > Rather than embedding sensitive information directly in your CFN templates, we recommend you use dynamic parameters in the stack template to reference sensitive information that is stored and managed outside of CFN, such as in the AWS Systems Manager Parameter Store or AWS Secrets Manager.
	// >
	// > For more information, see the [Do not embed credentials in your templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds) best practice.
	DomainSigningPrivateKey *string `field:"optional" json:"domainSigningPrivateKey" yaml:"domainSigningPrivateKey"`
	// [Bring Your Own DKIM] 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"`
	// [Easy DKIM] The key length of the future DKIM key pair to be generated.
	//
	// This can be changed at most once per day.
	//
	// Valid Values: `RSA_1024_BIT | RSA_2048_BIT`.
	NextSigningKeyLength *string `field:"optional" json:"nextSigningKeyLength" yaml:"nextSigningKeyLength"`
}

Used to configure or change the DKIM authentication settings for an email domain identity.

You can use this operation to do any of the following:

- Update the signing attributes for an identity that uses Bring Your Own DKIM (BYODKIM). - Update the key length that should be used for Easy DKIM. - Change from using no DKIM authentication to using Easy DKIM. - Change from using no DKIM authentication to using BYODKIM. - Change from using Easy DKIM to using BYODKIM. - Change from using BYODKIM to using Easy DKIM.

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 {
	// Sets the feedback forwarding configuration for the identity.
	//
	// If the value is `true` , you 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).
	EmailForwardingEnabled interface{} `field:"optional" json:"emailForwardingEnabled" yaml:"emailForwardingEnabled"`
}

Used to enable or disable feedback forwarding for an identity.

This setting determines what happens when an identity is used to send an email that results in a bounce or complaint event.

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 {
	// The action to take if the required MX record isn't found when you send an email.
	//
	// When you set this value to `USE_DEFAULT_VALUE` , the mail is sent using *amazonses.com* as the MAIL FROM domain. When you set this value to `REJECT_MESSAGE` , the Amazon SES API v2 returns a `MailFromDomainNotVerified` error, and doesn't attempt to deliver the email.
	//
	// These behaviors are taken when the custom MAIL FROM domain configuration is in the `Pending` , `Failed` , and `TemporaryFailure` states.
	//
	// Valid Values: `USE_DEFAULT_VALUE | REJECT_MESSAGE`.
	BehaviorOnMxFailure *string `field:"optional" json:"behaviorOnMxFailure" yaml:"behaviorOnMxFailure"`
	// 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"`
}

Used to enable or disable the custom Mail-From domain configuration for an email 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"

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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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` .
	//
	// Valid Values: `Require | 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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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 CfnVdmAttributes added in v2.51.0

type CfnVdmAttributes interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrVdmAttributesResourceId() *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
	// Specifies additional settings for your VDM configuration as applicable to the Dashboard.
	DashboardAttributes() interface{}
	SetDashboardAttributes(val interface{})
	// Specifies additional settings for your VDM configuration as applicable to the Guardian.
	GuardianAttributes() interface{}
	SetGuardianAttributes(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.
	AddDependency(target awscdk.CfnResource)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	// Deprecated: use addDependency.
	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, typeHint awscdk.ResolutionTypeHint) 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)
	// Retrieves an array of resources this resource depends on.
	//
	// This assembles dependencies on resources across stacks (including nested stacks)
	// automatically.
	ObtainDependencies() *[]interface{}
	// Get a shallow copy of dependencies between this resource and other resources in the same stack.
	ObtainResourceDependencies() *[]awscdk.CfnResource
	// Overrides the auto-generated logical ID with a specific ID.
	OverrideLogicalId(newLogicalId *string)
	// Indicates that this resource no longer depends on another resource.
	//
	// This can be used for resources across stacks (including nested stacks)
	// and the dependency will automatically be removed from the relevant scope.
	RemoveDependency(target awscdk.CfnResource)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Replaces one dependency with another.
	ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource)
	// 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::VdmAttributes`.

The Virtual Deliverability Manager (VDM) attributes that apply to your Amazon SES account.

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"

cfnVdmAttributes := awscdk.Aws_ses.NewCfnVdmAttributes(this, jsii.String("MyCfnVdmAttributes"), &CfnVdmAttributesProps{
	DashboardAttributes: &DashboardAttributesProperty{
		EngagementMetrics: jsii.String("engagementMetrics"),
	},
	GuardianAttributes: &GuardianAttributesProperty{
		OptimizedSharedDelivery: jsii.String("optimizedSharedDelivery"),
	},
})

func NewCfnVdmAttributes added in v2.51.0

func NewCfnVdmAttributes(scope constructs.Construct, id *string, props *CfnVdmAttributesProps) CfnVdmAttributes

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

type CfnVdmAttributesProps added in v2.51.0

type CfnVdmAttributesProps struct {
	// Specifies additional settings for your VDM configuration as applicable to the Dashboard.
	DashboardAttributes interface{} `field:"optional" json:"dashboardAttributes" yaml:"dashboardAttributes"`
	// Specifies additional settings for your VDM configuration as applicable to the Guardian.
	GuardianAttributes interface{} `field:"optional" json:"guardianAttributes" yaml:"guardianAttributes"`
}

Properties for defining a `CfnVdmAttributes`.

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"

cfnVdmAttributesProps := &CfnVdmAttributesProps{
	DashboardAttributes: &DashboardAttributesProperty{
		EngagementMetrics: jsii.String("engagementMetrics"),
	},
	GuardianAttributes: &GuardianAttributesProperty{
		OptimizedSharedDelivery: jsii.String("optimizedSharedDelivery"),
	},
}

type CfnVdmAttributes_DashboardAttributesProperty added in v2.51.0

type CfnVdmAttributes_DashboardAttributesProperty struct {
	// Specifies the status of your VDM engagement metrics collection. Can be one of the following:.
	//
	// - `ENABLED` – Amazon SES enables engagement metrics for your account.
	// - `DISABLED` – Amazon SES disables engagement metrics for your account.
	EngagementMetrics *string `field:"optional" json:"engagementMetrics" yaml:"engagementMetrics"`
}

Settings for your VDM configuration as applicable to the Dashboard.

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"

dashboardAttributesProperty := &DashboardAttributesProperty{
	EngagementMetrics: jsii.String("engagementMetrics"),
}

type CfnVdmAttributes_GuardianAttributesProperty added in v2.51.0

type CfnVdmAttributes_GuardianAttributesProperty struct {
	// Specifies the status of your VDM optimized shared delivery. Can be one of the following:.
	//
	// - `ENABLED` – Amazon SES enables optimized shared delivery for your account.
	// - `DISABLED` – Amazon SES disables optimized shared delivery for your account.
	OptimizedSharedDelivery *string `field:"optional" json:"optimizedSharedDelivery" yaml:"optimizedSharedDelivery"`
}

Settings for your VDM configuration as applicable to the Guardian.

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"

guardianAttributesProperty := &GuardianAttributesProperty{
	OptimizedSharedDelivery: jsii.String("optimizedSharedDelivery"),
}

type CloudWatchDimension added in v2.74.0

type CloudWatchDimension 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.
	DefaultValue *string `field:"required" json:"defaultValue" yaml:"defaultValue"`
	// The name of an Amazon CloudWatch dimension associated with an email sending metric.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch.
	Source CloudWatchDimensionSource `field:"required" json:"source" yaml:"source"`
}

A CloudWatch dimension upon which to categorize your emails.

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"

cloudWatchDimension := &CloudWatchDimension{
	DefaultValue: jsii.String("defaultValue"),
	Name: jsii.String("name"),
	Source: awscdk.Aws_ses.CloudWatchDimensionSource_EMAIL_HEADER,
}

type CloudWatchDimensionSource added in v2.74.0

type CloudWatchDimensionSource string

Source for CloudWatch dimension.

const (
	// Amazon SES retrieves the dimension name and value from a header in the email.
	//
	// Note: You can't use any of the following email headers as the Dimension Name:
	// `Received`, `To`, `From`, `DKIM-Signature`, `CC`, `message-id`, or `Return-Path`.
	CloudWatchDimensionSource_EMAIL_HEADER CloudWatchDimensionSource = "EMAIL_HEADER"
	// Amazon SES retrieves the dimension name and value from a tag that you specified in a link.
	// See: https://docs.aws.amazon.com/ses/latest/dg/faqs-metrics.html#sending-metric-faqs-clicks-q5
	//
	CloudWatchDimensionSource_LINK_TAG CloudWatchDimensionSource = "LINK_TAG"
	// Amazon SES retrieves the dimension name and value from a tag that you specify by using the `X-SES-MESSAGE-TAGS` header or the Tags API parameter.
	//
	// You can also use the Message Tag value source to create dimensions based on Amazon SES auto-tags.
	// To use an auto-tag, type the complete name of the auto-tag as the Dimension Name. For example,
	// to create a dimension based on the configuration set auto-tag, use `ses:configuration-set` for the
	// Dimension Name, and the name of the configuration set for the Default Value.
	// See: https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html#event-publishing-how-works
	//
	CloudWatchDimensionSource_MESSAGE_TAG CloudWatchDimensionSource = "MESSAGE_TAG"
)

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
	// Adds an event destination to this configuration set.
	AddEventDestination(id *string, options *ConfigurationSetEventDestinationOptions) ConfigurationSetEventDestination
	// 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 ConfigurationSetEventDestination added in v2.74.0

type ConfigurationSetEventDestination interface {
	awscdk.Resource
	IConfigurationSetEventDestination
	// The ID of the configuration set event destination.
	ConfigurationSetEventDestinationId() *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 event destination.

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 configurationSet configurationSet
var eventDestination eventDestination

configurationSetEventDestination := awscdk.Aws_ses.NewConfigurationSetEventDestination(this, jsii.String("MyConfigurationSetEventDestination"), &ConfigurationSetEventDestinationProps{
	ConfigurationSet: configurationSet,
	Destination: eventDestination,

	// the properties below are optional
	ConfigurationSetEventDestinationName: jsii.String("configurationSetEventDestinationName"),
	Enabled: jsii.Boolean(false),
	Events: []emailSendingEvent{
		awscdk.*Aws_ses.*emailSendingEvent_SEND,
	},
})

func NewConfigurationSetEventDestination added in v2.74.0

func NewConfigurationSetEventDestination(scope constructs.Construct, id *string, props *ConfigurationSetEventDestinationProps) ConfigurationSetEventDestination

type ConfigurationSetEventDestinationOptions added in v2.74.0

type ConfigurationSetEventDestinationOptions struct {
	// The event destination.
	Destination EventDestination `field:"required" json:"destination" yaml:"destination"`
	// A name for the configuration set event destination.
	ConfigurationSetEventDestinationName *string `field:"optional" json:"configurationSetEventDestinationName" yaml:"configurationSetEventDestinationName"`
	// Whether Amazon SES publishes events to this destination.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The type of email sending events to publish to the event destination.
	Events *[]EmailSendingEvent `field:"optional" json:"events" yaml:"events"`
}

Options for a configuration set event destination.

Example:

var myConfigurationSet configurationSet
var myTopic topic

myConfigurationSet.AddEventDestination(jsii.String("ToSns"), &ConfigurationSetEventDestinationOptions{
	Destination: ses.EventDestination_SnsTopic(myTopic),
})

type ConfigurationSetEventDestinationProps added in v2.74.0

type ConfigurationSetEventDestinationProps struct {
	// The event destination.
	Destination EventDestination `field:"required" json:"destination" yaml:"destination"`
	// A name for the configuration set event destination.
	ConfigurationSetEventDestinationName *string `field:"optional" json:"configurationSetEventDestinationName" yaml:"configurationSetEventDestinationName"`
	// Whether Amazon SES publishes events to this destination.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The type of email sending events to publish to the event destination.
	Events *[]EmailSendingEvent `field:"optional" json:"events" yaml:"events"`
	// The configuration set that contains the event destination.
	ConfigurationSet IConfigurationSet `field:"required" json:"configurationSet" yaml:"configurationSet"`
}

Properties for a configuration set event destination.

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 configurationSet configurationSet
var eventDestination eventDestination

configurationSetEventDestinationProps := &ConfigurationSetEventDestinationProps{
	ConfigurationSet: configurationSet,
	Destination: eventDestination,

	// the properties below are optional
	ConfigurationSetEventDestinationName: jsii.String("configurationSetEventDestinationName"),
	Enabled: jsii.Boolean(false),
	Events: []emailSendingEvent{
		awscdk.Aws_ses.*emailSendingEvent_SEND,
	},
}

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:

var myHostedZone iPublicHostedZone

ses.NewEmailIdentity(this, jsii.String("Identity"), &EmailIdentityProps{
	Identity: ses.Identity_PublicHostedZone(myHostedZone),
	DkimIdentity: ses.DkimIdentity_ByoDkim(&ByoDkimOptions{
		PrivateKey: awscdk.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:

var myHostedZone iPublicHostedZone

identity := ses.NewEmailIdentity(this, 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:

var myHostedZone iPublicHostedZone

identity := ses.NewEmailIdentity(this, jsii.String("Identity"), &EmailIdentityProps{
	Identity: ses.Identity_PublicHostedZone(myHostedZone),
	MailFromDomain: jsii.String("mail.cdk.dev"),
})

type EmailSendingEvent added in v2.74.0

type EmailSendingEvent string

Email sending event.

const (
	// The send request was successful and SES will attempt to deliver the message to the recipient's mail server.
	//
	// (If account-level or global suppression is
	// being used, SES will still count it as a send, but delivery is suppressed.)
	EmailSendingEvent_SEND EmailSendingEvent = "SEND"
	// SES accepted the email, but determined that it contained a virus and didn’t attempt to deliver it to the recipient’s mail server.
	EmailSendingEvent_REJECT EmailSendingEvent = "REJECT"
	// (Hard bounce) The recipient's mail server permanently rejected the email.
	//
	// (Soft bounces are only included when SES fails to deliver the email after
	// retrying for a period of time.)
	EmailSendingEvent_BOUNCE EmailSendingEvent = "BOUNCE"
	// The email was successfully delivered to the recipient’s mail server, but the recipient marked it as spam.
	EmailSendingEvent_COMPLAINT EmailSendingEvent = "COMPLAINT"
	// SES successfully delivered the email to the recipient's mail server.
	EmailSendingEvent_DELIVERY EmailSendingEvent = "DELIVERY"
	// The recipient received the message and opened it in their email client.
	EmailSendingEvent_OPEN EmailSendingEvent = "OPEN"
	// The recipient clicked one or more links in the email.
	EmailSendingEvent_CLICK EmailSendingEvent = "CLICK"
	// The email wasn't sent because of a template rendering issue.
	//
	// This event type
	// can occur when template data is missing, or when there is a mismatch between
	// template parameters and data. (This event type only occurs when you send email
	// using the `SendTemplatedEmail` or `SendBulkTemplatedEmail` API operations.)
	EmailSendingEvent_RENDERING_FAILURE EmailSendingEvent = "RENDERING_FAILURE"
	// The email couldn't be delivered to the recipient’s mail server because a temporary issue occurred.
	//
	// Delivery delays can occur, for example, when the recipient's inbox
	// is full, or when the receiving email server experiences a transient issue.
	EmailSendingEvent_DELIVERY_DELAY EmailSendingEvent = "DELIVERY_DELAY"
	// The email was successfully delivered, but the recipient updated their subscription preferences by clicking on an unsubscribe link as part of your subscription management.
	EmailSendingEvent_SUBSCRIPTION EmailSendingEvent = "SUBSCRIPTION"
)

type EventDestination added in v2.74.0

type EventDestination interface {
	// A list of CloudWatch dimensions upon which to categorize your emails.
	Dimensions() *[]*CloudWatchDimension
	// A SNS topic to use as event destination.
	Topic() awssns.ITopic
}

An event destination.

Example:

var myConfigurationSet configurationSet
var myTopic topic

myConfigurationSet.AddEventDestination(jsii.String("ToSns"), &ConfigurationSetEventDestinationOptions{
	Destination: ses.EventDestination_SnsTopic(myTopic),
})

func EventDestination_CloudWatchDimensions added in v2.74.0

func EventDestination_CloudWatchDimensions(dimensions *[]*CloudWatchDimension) EventDestination

Use CloudWatch dimensions as event destination.

func EventDestination_SnsTopic added in v2.74.0

func EventDestination_SnsTopic(topic awssns.ITopic) EventDestination

Use a SNS topic as event destination.

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 IConfigurationSetEventDestination added in v2.74.0

type IConfigurationSetEventDestination interface {
	awscdk.IResource
	// The ID of the configuration set event destination.
	ConfigurationSetEventDestinationId() *string
}

A configuration set event destination.

func ConfigurationSetEventDestination_FromConfigurationSetEventDestinationId added in v2.74.0

func ConfigurationSetEventDestination_FromConfigurationSetEventDestinationId(scope constructs.Construct, id *string, configurationSetEventDestinationId *string) IConfigurationSetEventDestination

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 IVdmAttributes added in v2.54.0

type IVdmAttributes interface {
	awscdk.IResource
	// The name of the resource behind the Virtual Deliverablity Manager attributes.
	VdmAttributesName() *string
}

Virtual Deliverablity Manager (VDM) attributes.

func VdmAttributes_FromVdmAttributesName added in v2.54.0

func VdmAttributes_FromVdmAttributesName(scope constructs.Construct, id *string, vdmAttributesName *string) IVdmAttributes

Use an existing Virtual Deliverablity Manager attributes resource.

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:

var myHostedZone iPublicHostedZone

identity := ses.NewEmailIdentity(this, 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 "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 VdmAttributes added in v2.54.0

type VdmAttributes interface {
	awscdk.Resource
	IVdmAttributes
	// 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
	// The name of the resource behind the Virtual Deliverablity Manager attributes.
	VdmAttributesName() *string
	// Resource ID for the Virtual Deliverablity Manager attributes.
	VdmAttributesResourceId() *string
	// 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
}

Virtual Deliverablity Manager (VDM) attributes.

Example:

// Enables engagement tracking and optimized shared delivery by default
// Enables engagement tracking and optimized shared delivery by default
ses.NewVdmAttributes(this, jsii.String("Vdm"))

func NewVdmAttributes added in v2.54.0

func NewVdmAttributes(scope constructs.Construct, id *string, props *VdmAttributesProps) VdmAttributes

type VdmAttributesProps added in v2.54.0

type VdmAttributesProps struct {
	// Whether engagement metrics are enabled for your account.
	EngagementMetrics *bool `field:"optional" json:"engagementMetrics" yaml:"engagementMetrics"`
	// Whether optimized shared delivery is enabled for your account.
	OptimizedSharedDelivery *bool `field:"optional" json:"optimizedSharedDelivery" yaml:"optimizedSharedDelivery"`
}

Properties for the Virtual Deliverablity Manager (VDM) attributes.

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"

vdmAttributesProps := &VdmAttributesProps{
	EngagementMetrics: jsii.Boolean(false),
	OptimizedSharedDelivery: jsii.Boolean(false),
}

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