UNPKG

1.55 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 region: string;
15 records: FirehoseTransformationEventRecord[];
16}
17
18export interface FirehoseTransformationEventRecord {
19 recordId: string;
20 approximateArrivalTimestamp: number;
21 /** Base64 encoded */
22 data: string;
23 kinesisRecordMetadata?: FirehoseRecordMetadata | undefined;
24}
25
26export interface FirehoseRecordMetadata {
27 shardId: string;
28 partitionKey: string;
29 approximateArrivalTimestamp: number;
30 sequenceNumber: string;
31 subsequenceNumber: string;
32}
33
34export type FirehoseRecordTransformationStatus = 'Ok' | 'Dropped' | 'ProcessingFailed';
35
36export interface FirehoseTransformationResultRecord {
37 recordId: string;
38 result: FirehoseRecordTransformationStatus;
39 /** Encode in Base64 */
40 data: string;
41}
42
43export interface FirehoseTransformationResult {
44 records: FirehoseTransformationResultRecord[];
45}