@altostra/core
Version:
Core library for shared types and logic
49 lines (48 loc) • 2 kB
TypeScript
import type { NaturalNumber, NaturalNumberOrZero } from "../../../common/CustomTypes/Numerics";
import type { Arn } from "../../CustomTypes/Arn";
import type { AwsResourceCommon } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
export declare type EventSourceMappingType = 'AWS::Lambda::EventSourceMapping';
export interface EventSourceMapping extends AwsResourceCommon {
Type: EventSourceMappingType;
Properties: EventSourceMappingProperties;
}
export declare type EventSourceMappingProperties = SQSEventSourceMappingProperties | StreamEventSourceMappingProperties;
export interface EventSourceMappingPropertiesBase {
BatchSize?: NaturalNumber;
Enabled?: boolean;
EventSourceArn: CloudFormationValue<Arn>;
FunctionName: CloudFormationValue<string>;
FilterCriteria: FilterCriteria;
}
export interface FilterCriteria {
Filters: Filter[];
}
export interface Filter {
Pattern: string;
}
export declare type StartingPosition = 'AT_TIMESTAMP' | 'LATEST' | 'TRIM_HORIZON';
export interface SQSEventSourceMappingProperties extends EventSourceMappingPropertiesBase {
ReportBatchItemFailures?: ['FunctionResponseTypes'];
MaximumBatchingWindowInSeconds?: NaturalNumber | 0;
ScalingConfig?: ScalingConfig;
}
export interface ScalingConfig {
MaximumConcurrency?: NaturalNumber;
}
export interface StreamEventSourceMappingProperties extends EventSourceMappingPropertiesBase {
BisectBatchOnFunctionError?: boolean;
DestinationConfig?: {
OnFailure: {
Destination: CloudFormationValue<Arn>;
};
};
MaximumBatchingWindowInSeconds?: NaturalNumberOrZero;
MaximumRecordAgeInSeconds?: NaturalNumber;
MaximumRetryAttempts?: NaturalNumber | -1 | 0;
ParallelizationFactor?: NaturalNumber;
StartingPosition: StartingPosition;
StartingPositionTimestamp?: number;
ReportBatchItemFailures?: ['FunctionResponseTypes'];
TumblingWindowInSeconds?: NaturalNumberOrZero;
}