101 lines
3.2 KiB
TypeScript
101 lines
3.2 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { CfnDeliveryStream } from './kinesisfirehose.generated';
|
|
import type * as iam from '../../aws-iam';
|
|
import type { Duration, Size } from '../../core';
|
|
/**
|
|
* Configure the LambdaFunctionProcessor.
|
|
*/
|
|
export interface DataProcessorProps {
|
|
/**
|
|
* The length of time Amazon Data Firehose will buffer incoming data before calling the processor.
|
|
*s
|
|
* @default Duration.minutes(1)
|
|
*/
|
|
readonly bufferInterval?: Duration;
|
|
/**
|
|
* The amount of incoming data Amazon Data Firehose will buffer before calling the processor.
|
|
*
|
|
* @default Size.mebibytes(3)
|
|
*/
|
|
readonly bufferSize?: Size;
|
|
/**
|
|
* The number of times Amazon Data Firehose will retry the processor invocation after a failure due to network timeout or invocation limits.
|
|
*
|
|
* @default 3
|
|
*/
|
|
readonly retries?: number;
|
|
}
|
|
/**
|
|
* The key-value pair that identifies the underlying processor resource.
|
|
*
|
|
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html
|
|
*/
|
|
export interface DataProcessorIdentifier {
|
|
/**
|
|
* The parameter name that corresponds to the processor resource's identifier.
|
|
*/
|
|
readonly parameterName: string;
|
|
/**
|
|
* The identifier of the underlying processor resource.
|
|
*/
|
|
readonly parameterValue: string;
|
|
}
|
|
/**
|
|
* The full configuration of a data processor.
|
|
*
|
|
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-kinesisfirehose-deliverystream-processor.html
|
|
*/
|
|
export interface DataProcessorConfig {
|
|
/**
|
|
* The type of processor.
|
|
*/
|
|
readonly processorType: string;
|
|
/**
|
|
* The key-value pair that identifies the underlying processor resource.
|
|
*
|
|
* Ignored when the `parameters` is specified.
|
|
*/
|
|
readonly processorIdentifier: DataProcessorIdentifier;
|
|
/**
|
|
* The processor parameters.
|
|
*
|
|
* @default - No processor parameters
|
|
*/
|
|
readonly parameters?: CfnDeliveryStream.ProcessorParameterProperty[];
|
|
}
|
|
/**
|
|
* Options when binding a DataProcessor to a delivery stream destination.
|
|
*/
|
|
export interface DataProcessorBindOptions {
|
|
/**
|
|
* The IAM role assumed by Amazon Data Firehose to write to the destination that this DataProcessor will bind to.
|
|
*/
|
|
readonly role: iam.IRole;
|
|
/**
|
|
* Whether the dynamic partitioning is enabled.
|
|
* @default false
|
|
*/
|
|
readonly dynamicPartitioningEnabled?: boolean;
|
|
/**
|
|
* S3 bucket prefix
|
|
* @default - No prefix
|
|
*/
|
|
readonly prefix?: string;
|
|
}
|
|
/**
|
|
* A data processor that Amazon Data Firehose will call to transform records before delivering data.
|
|
*/
|
|
export interface IDataProcessor {
|
|
/**
|
|
* The constructor props of the DataProcessor.
|
|
*/
|
|
readonly props: DataProcessorProps;
|
|
/**
|
|
* Binds this processor to a destination of a delivery stream.
|
|
*
|
|
* Implementers should use this method to grant processor invocation permissions to the provided stream and return the
|
|
* necessary configuration to register as a processor.
|
|
*/
|
|
bind(scope: Construct, options: DataProcessorBindOptions): DataProcessorConfig;
|
|
}
|