aws-ddk-core
Version:
The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.
131 lines (130 loc) • 5 kB
TypeScript
import * as firehose from "@aws-cdk/aws-kinesisfirehose-alpha";
import * as destinations from "@aws-cdk/aws-kinesisfirehose-destinations-alpha";
import * as events from "aws-cdk-lib/aws-events";
import * as iam from "aws-cdk-lib/aws-iam";
import * as kinesis from "aws-cdk-lib/aws-kinesis";
import * as kms from "aws-cdk-lib/aws-kms";
import * as s3 from "aws-cdk-lib/aws-s3";
import { Construct } from "constructs";
import { DataStage, DataStageProps } from "../pipelines/stage";
/**
* Properties of the Firehose Delivery stream to be created.
*/
export interface DeliveryStreamProps {
/**
* The destinations that this delivery stream will deliver data to.
*
* Only a singleton array is supported at this time.
*/
readonly destinations?: firehose.IDestination[];
/**
* A name for the delivery stream.
*
* @default - a name is generated by CloudFormation.
*/
readonly deliveryStreamName?: string;
/**
* Indicates the type of customer master key (CMK) to use for server-side encryption, if any.
*
* @default StreamEncryption.UNENCRYPTED - unless `encryptionKey` is provided, in which case this will be implicitly set to `StreamEncryption.CUSTOMER_MANAGED`
*/
readonly encryption?: firehose.StreamEncryption;
/**
* Customer managed key to server-side encrypt data in the stream.
*
* @default - no KMS key will be used; if `encryption` is set to `CUSTOMER_MANAGED`, a KMS key will be created for you
*/
readonly encryptionKey?: kms.IKey;
/**
* The IAM role associated with this delivery stream.
*
* Assumed by Kinesis Data Firehose to read from sources and encrypt data server-side.
*
* @default - a role will be created with default permissions.
*/
readonly role?: iam.IRole;
/**
* The Kinesis data stream to use as a source for this delivery stream.
*
* @default - data must be written to the delivery stream via a direct put.
*/
readonly sourceStream?: kinesis.IStream;
}
/**
* Properties for `FirehoseToS3Stage`.
*/
export interface FirehoseToS3StageProps extends DataStageProps {
/**
* Preexisting S3 Bucket to use as a destination for the Firehose Stream.
* If no bucket is provided, a new one is created.
*
* Amazon EventBridge notifications must be enabled on the bucket in order
* for this stage to produce events after its completion.
*/
readonly s3Bucket?: s3.IBucket;
/**
* Properties of the S3 Bucket to be created as a delivery destination.
*
* Amazon EventBridge notifications must be enabled on the bucket in order
* for this stage to produce events after its completion.
*/
readonly s3BucketProps?: s3.BucketProps;
/**
* Firehose Delivery stream.
* If no stram is provided, a new one is created.
*/
readonly firehoseDeliveryStream?: firehose.DeliveryStream;
/**
* Properties of the Firehose Delivery stream to be created.
*/
readonly firehoseDeliveryStreamProps?: DeliveryStreamProps;
/**
* Props for defining an S3 destination of a Kinesis Data Firehose delivery stream.
*/
readonly kinesisFirehoseDestinationsS3BucketProps?: destinations.S3BucketProps;
/**
* A prefix that Kinesis Data Firehose evaluates and adds to records before writing them to S3.
* This prefix appears immediately following the bucket name.
* @default “YYYY/MM/DD/HH”
*/
readonly dataOutputPrefix?: string;
/**
* Add Kinesis Data Stream to front Firehose Delivery.
* @default false
*/
readonly dataStreamEnabled?: boolean;
/**
* Preexisting Kinesis Data Stream to use in stage before Delivery Stream.
* Setting this parameter will override any creation of Kinesis Data Streams
* in this stage.
* The `dataStreamEnabled` parameter will have no effect.
*/
readonly dataStream?: kinesis.Stream;
/**
* Threshold for Cloudwatch Alarm created for this stage.
* @default 900
*/
readonly deliveryStreamDataFreshnessErrorsAlarmThreshold?: number;
/**
* Evaluation period value for Cloudwatch alarm created for this stage.
* @default 1
*/
readonly deliveryStreamDataFreshnessErrorsEvaluationPeriods?: number;
}
/**
* DDK Kinesis Firehose Delivery stream to S3 stage, with an optional Kinesis Data Stream.
*/
export declare class FirehoseToS3Stage extends DataStage {
readonly targets?: events.IRuleTarget[];
readonly eventPattern?: events.EventPattern;
readonly bucket: s3.IBucket;
readonly deliveryStream: firehose.DeliveryStream;
readonly dataStream?: kinesis.Stream;
/**
* Constructs `FirehoseToS3Stage`.
* @param scope Scope within which this construct is defined.
* @param id Identifier of the stage.
* @param props Properties for the stage.
*/
constructor(scope: Construct, id: string, props: FirehoseToS3StageProps);
}