import { Duration, aws_lambda as lambda, aws_s3 as s3, RemovalPolicy } from 'aws-cdk-lib'; import { Construct } from 'constructs'; /** * Properties for the construct */ export interface RootmailProps { /** * Domain used for root mail feature. */ readonly domain: string; /** * Subdomain used for root mail feature. * * @default 'aws' */ readonly subdomain?: string; /** * The total time to wait for the DNS records to be available/wired. * * @default Duration.hours(2) */ readonly totalTimeToWireDNS?: Duration; /** * The hosted zone ID of the domain that is registered Route53 AND in the same AWS account * to enable autowiring of the DNS records. * * @default emtpy string */ readonly wireDNSToHostedZoneID?: string; /** * The custom SES receive function to use * * [disable-awslint:ref-via-interface] * * @default the provided functions within the construct */ readonly customSesReceiveFunction?: lambda.Function; /** * Filtered email subjects. NOTE: must not contain commas. * * @default [] */ readonly filteredEmailSubjects?: string[]; /** * The removal policy for the email bucket * * @default RemovalPolicy.RETAIN */ readonly emailBucketDeletePolicy?: RemovalPolicy; /** * Whether to set all removal policies to DESTROY. This is useful for integration testing purposes. * * @default false */ readonly setDestroyPolicyToAllResources?: boolean; } /** * Rootmail construct */ export declare class Rootmail extends Construct { /** * The name parameter in SSM to store the domain name server. */ readonly hostedZoneParameterName: string; /** * S3 bucket to store the root mails in */ readonly emailBucket: s3.Bucket; constructor(scope: Construct, id: string, props: RootmailProps); }