UNPKG

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
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); }