Files
agent-claw/cdk/node_modules/aws-cdk-lib/aws-ses/lib/configuration-set-event-destination.d.ts
2026-05-06 18:55:16 -05:00

237 lines
8.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Construct } from 'constructs';
import type * as events from '../../aws-events';
import * as iam from '../../aws-iam';
import type * as firehose from '../../aws-kinesisfirehose';
import type * as sns from '../../aws-sns';
import type { IResource } from '../../core';
import { Resource } from '../../core';
import type { IConfigurationSetRef, IConfigurationSetEventDestinationRef, ConfigurationSetEventDestinationReference } from '../../interfaces/generated/aws-ses-interfaces.generated';
/**
* A configuration set event destination
*/
export interface IConfigurationSetEventDestination extends IResource, IConfigurationSetEventDestinationRef {
/**
* The ID of the configuration set event destination
*
* @attribute
*/
readonly configurationSetEventDestinationId: string;
}
/**
* Options for a configuration set event destination
*/
export interface ConfigurationSetEventDestinationOptions {
/**
* A name for the configuration set event destination
*
* @default - a CloudFormation generated name
*/
readonly configurationSetEventDestinationName?: string;
/**
* Whether Amazon SES publishes events to this destination
*
* @default true
*/
readonly enabled?: boolean;
/**
* The event destination
*/
readonly destination: EventDestination;
/**
* The type of email sending events to publish to the event destination
*
* @default - send all event types
*/
readonly events?: EmailSendingEvent[];
}
/**
* An event destination
*/
export declare abstract class EventDestination {
/**
* Use a SNS topic as event destination
*/
static snsTopic(topic: sns.ITopic): EventDestination;
/**
* Use CloudWatch dimensions as event destination
*/
static cloudWatchDimensions(dimensions: CloudWatchDimension[]): EventDestination;
/**
* Use Event Bus as event destination
*/
static eventBus(eventBus: events.IEventBusRef): EventDestination;
/**
* Use Firehose Delivery Stream as event destination
*/
static firehoseDeliveryStream(stream: FirehoseDeliveryStreamDestination): EventDestination;
/**
* A SNS topic to use as event destination
*
* @default - do not send events to a SNS topic
*/
abstract readonly topic?: sns.ITopic;
/**
* A list of CloudWatch dimensions upon which to categorize your emails
*
* @default - do not send events to CloudWatch
*/
abstract readonly dimensions?: CloudWatchDimension[];
/**
* Use Event Bus as event destination
*
* @default - do not send events to Event bus
*/
abstract readonly bus?: events.IEventBusRef;
/**
* Use Firehose Delivery Stream
*
* @default - do not send events to Firehose Delivery Stream
*/
abstract readonly stream?: FirehoseDeliveryStreamDestination;
}
/**
* Properties for a configuration set event destination
*/
export interface ConfigurationSetEventDestinationProps extends ConfigurationSetEventDestinationOptions {
/**
* The configuration set that contains the event destination.
*/
readonly configurationSet: IConfigurationSetRef;
}
/**
* Email sending event
*/
export declare enum EmailSendingEvent {
/**
* 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.)
*/
SEND = "send",
/**
* SES accepted the email, but determined that it contained a virus and didnt
* attempt to deliver it to the recipients mail server.
*/
REJECT = "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.)
*/
BOUNCE = "bounce",
/**
* The email was successfully delivered to the recipients mail server, but the
* recipient marked it as spam.
*/
COMPLAINT = "complaint",
/**
* SES successfully delivered the email to the recipient's mail server.
*/
DELIVERY = "delivery",
/**
* The recipient received the message and opened it in their email client.
*/
OPEN = "open",
/**
* The recipient clicked one or more links in the email.
*/
CLICK = "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.)
*/
RENDERING_FAILURE = "renderingFailure",
/**
* The email couldn't be delivered to the recipients 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.
*/
DELIVERY_DELAY = "deliveryDelay",
/**
* The email was successfully delivered, but the recipient updated their subscription
* preferences by clicking on an unsubscribe link as part of your subscription management.
*/
SUBSCRIPTION = "subscription"
}
/**
* A CloudWatch dimension upon which to categorize your emails
*/
export interface CloudWatchDimension {
/**
* The place where Amazon SES finds the value of a dimension to publish to
* Amazon CloudWatch.
*/
readonly source: CloudWatchDimensionSource;
/**
* The name of an Amazon CloudWatch dimension associated with an email sending metric.
*/
readonly name: string;
/**
* 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.
*/
readonly defaultValue: string;
}
/**
* Source for CloudWatch dimension
*/
export declare enum CloudWatchDimensionSource {
/**
* 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`.
*/
EMAIL_HEADER = "emailHeader",
/**
* 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
*/
LINK_TAG = "linkTag",
/**
* 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/event-publishing-send-email.html
* @see https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html#event-publishing-how-works
*/
MESSAGE_TAG = "messageTag"
}
/**
* An object that defines an Amazon Data Firehose destination for email events
*/
export interface FirehoseDeliveryStreamDestination {
/**
* The Amazon Data Firehose stream that the Amazon SES API v2 sends email events to.
*/
readonly deliveryStream: firehose.IDeliveryStream;
/**
* The IAM role that the Amazon SES API v2 uses to send email events to the Amazon Data Firehose stream.
*
* @default - Create IAM Role for Amazon Data Firehose Delivery stream
*/
readonly role?: iam.IRole;
}
/**
* A configuration set event destination
*/
export declare class ConfigurationSetEventDestination extends Resource implements IConfigurationSetEventDestination {
/** Uniquely identifies this class. */
static readonly PROPERTY_INJECTION_ID: string;
/**
* Use an existing configuration set
*/
static fromConfigurationSetEventDestinationId(scope: Construct, id: string, configurationSetEventDestinationId: string): IConfigurationSetEventDestination;
readonly configurationSetEventDestinationId: string;
get configurationSetEventDestinationRef(): ConfigurationSetEventDestinationReference;
constructor(scope: Construct, id: string, props: ConfigurationSetEventDestinationProps);
}