UNPKG

1.6 kBTypeScriptView Raw
1import { Callback, Handler } from "../handler";
2
3export type FirehoseTransformationHandler = Handler<FirehoseTransformationEvent, FirehoseTransformationResult>;
4export type FirehoseTransformationCallback = Callback<FirehoseTransformationResult>;
5
6// Kinesis Data Firehose Event
7// https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-kinesis-firehose
8// https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html
9// https://aws.amazon.com/blogs/compute/amazon-kinesis-firehose-data-transformation-with-aws-lambda/
10// Examples in the lambda blueprints
11export interface FirehoseTransformationEvent {
12 invocationId: string;
13 deliveryStreamArn: string;
14 sourceKinesisStreamArn?: string | undefined;
15 region: string;
16 records: FirehoseTransformationEventRecord[];
17}
18
19export interface FirehoseTransformationEventRecord {
20 recordId: string;
21 approximateArrivalTimestamp: number;
22 /** Base64 encoded */
23 data: string;
24 kinesisRecordMetadata?: FirehoseRecordMetadata | undefined;
25}
26
27export interface FirehoseRecordMetadata {
28 shardId: string;
29 partitionKey: string;
30 approximateArrivalTimestamp: number;
31 sequenceNumber: string;
32 subsequenceNumber: string;
33}
34
35export type FirehoseRecordTransformationStatus = 'Ok' | 'Dropped' | 'ProcessingFailed';
36
37export interface FirehoseTransformationResultRecord {
38 recordId: string;
39 result: FirehoseRecordTransformationStatus;
40 /** Encode in Base64 */
41 data: string;
42}
43
44export interface FirehoseTransformationResult {
45 records: FirehoseTransformationResultRecord[];
46}