UNPKG

1.74 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 FirehoseTransformationMetadata {
38 partitionKeys: { [name: string]: string };
39}
40
41export interface FirehoseTransformationResultRecord {
42 recordId: string;
43 result: FirehoseRecordTransformationStatus;
44 /** Encode in Base64 */
45 data?: string;
46 metadata?: FirehoseTransformationMetadata;
47}
48
49export interface FirehoseTransformationResult {
50 records: FirehoseTransformationResultRecord[];
51}