102 lines
4.0 KiB
TypeScript
102 lines
4.0 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { CommonDestinationProps, CommonDestinationS3Props } from './common';
|
|
import type { DestinationBindOptions, DestinationConfig, IDestination } from './destination';
|
|
import type { IInputFormat, IOutputFormat, SchemaConfiguration } from './record-format';
|
|
import type * as s3 from '../../aws-s3';
|
|
import * as cdk from '../../core';
|
|
/**
|
|
* Props for defining an S3 destination of an Amazon Data Firehose delivery stream.
|
|
*/
|
|
export interface S3BucketProps extends CommonDestinationS3Props, CommonDestinationProps {
|
|
/**
|
|
* Specify a file extension.
|
|
* It will override the default file extension appended by Data Format Conversion or S3 compression features such as `.parquet` or `.gz`.
|
|
*
|
|
* File extension must start with a period (`.`) and can contain allowed characters: `0-9a-z!-_.*'()`.
|
|
*
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-s3
|
|
* @default - The default file extension appended by Data Format Conversion or S3 compression features
|
|
*/
|
|
readonly fileExtension?: string;
|
|
/**
|
|
* The time zone you prefer.
|
|
*
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html#timestamp-namespace
|
|
*
|
|
* @default - UTC
|
|
*/
|
|
readonly timeZone?: cdk.TimeZone;
|
|
/**
|
|
* The input format, output format, and schema config for converting data from the JSON format to the Parquet or ORC format before writing to Amazon S3.
|
|
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-dataformatconversionconfiguration
|
|
*
|
|
* @default - no data format conversion is done
|
|
*/
|
|
readonly dataFormatConversion?: DataFormatConversionProps;
|
|
/**
|
|
* Specify dynamic partitioning.
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
|
|
* @default - Dynamic partitioning is disabled.
|
|
*/
|
|
readonly dynamicPartitioning?: DynamicPartitioningProps;
|
|
}
|
|
/**
|
|
* Props for specifying data format conversion for Firehose
|
|
*
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html
|
|
*/
|
|
export interface DataFormatConversionProps {
|
|
/**
|
|
* Whether data format conversion is enabled or not.
|
|
*
|
|
* @default `true`
|
|
*/
|
|
readonly enabled?: boolean;
|
|
/**
|
|
* The schema configuration to use in converting the input format to output format
|
|
*/
|
|
readonly schemaConfiguration: SchemaConfiguration;
|
|
/**
|
|
* The input format to convert from for record format conversion
|
|
*/
|
|
readonly inputFormat: IInputFormat;
|
|
/**
|
|
* The output format to convert to for record format conversion
|
|
*/
|
|
readonly outputFormat: IOutputFormat;
|
|
}
|
|
/**
|
|
* Props for defining dynamic partitioning.
|
|
*
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
|
|
*/
|
|
export interface DynamicPartitioningProps {
|
|
/**
|
|
* Whether to enable the dynamic partitioning.
|
|
*
|
|
* You cannot enable dynamic partitioning for an existing Firehose stream that does not have dynamic partitioning already enabled.
|
|
*
|
|
* @see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning-enable.html
|
|
*/
|
|
readonly enabled: boolean;
|
|
/**
|
|
* The total amount of time that Data Firehose spends on retries.
|
|
*
|
|
* Minimum: Duration.seconds(0)
|
|
* Maximum: Duration.seconds(7200)
|
|
*
|
|
* @default Duration.seconds(300)
|
|
*/
|
|
readonly retryDuration?: cdk.Duration;
|
|
}
|
|
/**
|
|
* An S3 bucket destination for data from an Amazon Data Firehose delivery stream.
|
|
*/
|
|
export declare class S3Bucket implements IDestination {
|
|
private readonly bucket;
|
|
private readonly props;
|
|
constructor(bucket: s3.IBucket, props?: S3BucketProps);
|
|
bind(scope: Construct, _options: DestinationBindOptions): DestinationConfig;
|
|
private getS3BackupMode;
|
|
}
|