UNPKG

1.81 kBTypeScriptView Raw
1import { Handler } from "../handler";
2
3// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
4export type KinesisStreamHandler = Handler<KinesisStreamEvent, KinesisStreamBatchResponse | void>;
5
6export type KinesisStreamTumblingWindowHandler = Handler<
7 KinesisStreamTumblingWindowEvent,
8 // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
9 KinesisStreamStateResponse | void
10>;
11
12// Kinesis Streams
13// https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-kinesis-streams
14export interface KinesisStreamRecordPayload {
15 approximateArrivalTimestamp: number;
16 data: string;
17 kinesisSchemaVersion: string;
18 partitionKey: string;
19 sequenceNumber: string;
20}
21
22export interface KinesisStreamRecord {
23 awsRegion: string;
24 eventID: string;
25 eventName: string;
26 eventSource: string;
27 eventSourceARN: string;
28 eventVersion: string;
29 invokeIdentityArn: string;
30 kinesis: KinesisStreamRecordPayload;
31}
32
33export interface KinesisStreamEvent {
34 Records: KinesisStreamRecord[];
35}
36
37// https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows
38export interface KinesisStreamTumblingWindowEvent extends KinesisStreamEvent {
39 window: { start: string; end: string };
40 state?: { [key: string]: any };
41 isFinalInvokeForWindow: boolean;
42 isWindowTerminatedEarly: boolean;
43}
44
45export interface KinesisStreamStateResponse extends Partial<KinesisStreamBatchResponse> {
46 state: { [key: string]: any };
47}
48
49// https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting
50export interface KinesisStreamBatchResponse {
51 batchItemFailures: KinesisStreamBatchItemFailure[];
52}
53
54export interface KinesisStreamBatchItemFailure {
55 itemIdentifier: string;
56}