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