181 lines
6.0 KiB
TypeScript
181 lines
6.0 KiB
TypeScript
import type { ILoggingConfig } from './logging-config';
|
|
import type { IDataProcessor } from './processor';
|
|
import type * as iam from '../../aws-iam';
|
|
import type * as kms from '../../aws-kms';
|
|
import type * as s3 from '../../aws-s3';
|
|
import type * as cdk from '../../core';
|
|
/**
|
|
* Possible compression options Amazon Data Firehose can use to compress data on delivery.
|
|
*/
|
|
export declare class Compression {
|
|
readonly value: string;
|
|
/**
|
|
* gzip
|
|
*/
|
|
static readonly GZIP: Compression;
|
|
/**
|
|
* Hadoop-compatible Snappy
|
|
*/
|
|
static readonly HADOOP_SNAPPY: Compression;
|
|
/**
|
|
* Snappy
|
|
*/
|
|
static readonly SNAPPY: Compression;
|
|
/**
|
|
* ZIP
|
|
*/
|
|
static readonly ZIP: Compression;
|
|
/**
|
|
* Uncompressed
|
|
*/
|
|
static readonly UNCOMPRESSED: Compression;
|
|
/**
|
|
* Creates a new Compression instance with a custom value.
|
|
*/
|
|
static of(value: string): Compression;
|
|
/**
|
|
* @param value the string value of the Compression.
|
|
*/
|
|
private constructor();
|
|
}
|
|
/**
|
|
* Options for S3 record backup of a delivery stream.
|
|
*/
|
|
export declare enum BackupMode {
|
|
/**
|
|
* All records are backed up.
|
|
*/
|
|
ALL = 0,
|
|
/**
|
|
* Only records that failed to deliver or transform are backed up.
|
|
*/
|
|
FAILED = 1
|
|
}
|
|
/**
|
|
* Logging related properties for a delivery stream destination.
|
|
*/
|
|
interface DestinationLoggingProps {
|
|
/**
|
|
* Configuration that determines whether to log errors during data transformation or delivery failures,
|
|
* and specifies the CloudWatch log group for storing error logs.
|
|
*
|
|
* @default - errors will be logged and a log group will be created for you.
|
|
*/
|
|
readonly loggingConfig?: ILoggingConfig;
|
|
}
|
|
/**
|
|
* Common properties for defining a backup, intermediary, or final S3 destination for a Amazon Data Firehose delivery stream.
|
|
*/
|
|
export interface CommonDestinationS3Props {
|
|
/**
|
|
* The length of time that Firehose buffers incoming data before delivering
|
|
* it to the S3 bucket.
|
|
*
|
|
* Minimum: Duration.seconds(0) when dynamic partitioning is disabled, Duration.seconds(60) when it is enabled
|
|
* Maximum: Duration.seconds(900)
|
|
*
|
|
* @default Duration.seconds(300)
|
|
*/
|
|
readonly bufferingInterval?: cdk.Duration;
|
|
/**
|
|
* The size of the buffer that Amazon Data Firehose uses for incoming data before
|
|
* delivering it to the S3 bucket.
|
|
*
|
|
* Minimum: Size.mebibytes(1) when record data format conversion or dynamic partitioning is disabled, Size.mebibytes(64) when it is enabled
|
|
* Maximum: Size.mebibytes(128)
|
|
*
|
|
* @default Size.mebibytes(5) when record data format conversion or dynamic partitioning is disabled, Size.mebibytes(128) when it is enabled
|
|
*/
|
|
readonly bufferingSize?: cdk.Size;
|
|
/**
|
|
* The type of compression that Amazon Data Firehose uses to compress the data
|
|
* that it delivers to the Amazon S3 bucket.
|
|
*
|
|
* The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift
|
|
* destinations because they are not supported by the Amazon Redshift COPY operation
|
|
* that reads from the S3 bucket.
|
|
*
|
|
* @default - UNCOMPRESSED
|
|
*/
|
|
readonly compression?: Compression;
|
|
/**
|
|
* The AWS KMS key used to encrypt the data that it delivers to your Amazon S3 bucket.
|
|
*
|
|
* @default - Data is not encrypted.
|
|
*/
|
|
readonly encryptionKey?: kms.IKey;
|
|
/**
|
|
* A prefix that Amazon Data Firehose evaluates and adds to failed records before writing them to S3.
|
|
*
|
|
* This prefix appears immediately following the bucket name.
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html#prefix-rules
|
|
*
|
|
* @default - See the documentation above
|
|
*/
|
|
readonly errorOutputPrefix?: string;
|
|
/**
|
|
* A prefix that Amazon Data Firehose evaluates and adds to records before writing them to S3.
|
|
*
|
|
* This prefix appears immediately following the bucket name.
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html
|
|
*
|
|
* @default - "YYYY/MM/DD/HH/"
|
|
*/
|
|
readonly dataOutputPrefix?: string;
|
|
}
|
|
/**
|
|
* Properties for defining an S3 backup destination.
|
|
*
|
|
* S3 backup is available for all destinations, regardless of whether the final destination is S3 or not.
|
|
*/
|
|
export interface DestinationS3BackupProps extends DestinationLoggingProps, CommonDestinationS3Props {
|
|
/**
|
|
* The S3 bucket that will store data and failed records.
|
|
*
|
|
* @default - If `mode` is set to `BackupMode.ALL` or `BackupMode.FAILED`, a bucket will be created for you.
|
|
*/
|
|
readonly bucket?: s3.IBucket;
|
|
/**
|
|
* Indicates the mode by which incoming records should be backed up to S3, if any.
|
|
*
|
|
* If `bucket` is provided, this will be implicitly set to `BackupMode.ALL`.
|
|
*
|
|
* @default - If `bucket` is provided, the default will be `BackupMode.ALL`. Otherwise,
|
|
* source records are not backed up to S3.
|
|
*/
|
|
readonly mode?: BackupMode;
|
|
}
|
|
/**
|
|
* Generic properties for defining a delivery stream destination.
|
|
*/
|
|
export interface CommonDestinationProps extends DestinationLoggingProps {
|
|
/**
|
|
* The IAM role associated with this destination.
|
|
*
|
|
* Assumed by Amazon Data Firehose to invoke processors and write to destinations
|
|
*
|
|
* @default - a role will be created with default permissions.
|
|
*/
|
|
readonly role?: iam.IRole;
|
|
/**
|
|
* The data transformation that should be performed on the data before writing to the destination.
|
|
*
|
|
* @default - no data transformation will occur.
|
|
* @deprecated Use `processors` instead.
|
|
*/
|
|
readonly processor?: IDataProcessor;
|
|
/**
|
|
* The data transformation that should be performed on the data before writing to the destination.
|
|
*
|
|
* @default - no data transformation will occur.
|
|
*/
|
|
readonly processors?: IDataProcessor[];
|
|
/**
|
|
* The configuration for backing up source records to S3.
|
|
*
|
|
* @default - source records will not be backed up to S3.
|
|
*/
|
|
readonly s3Backup?: DestinationS3BackupProps;
|
|
}
|
|
export {};
|