Skip to content

Commit 5236155

Browse files
committed
add data for tumbling window
1 parent 6bcb720 commit 5236155

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,18 @@ def kinesis(self) -> KinesisStreamRecordPayload:
100100
return KinesisStreamRecordPayload(self["kinesis"])
101101

102102

103+
class KinesisStreamWindow(DictWrapper):
104+
@property
105+
def start(self) -> str:
106+
"""The time window started"""
107+
return self["start"]
108+
109+
@property
110+
def end(self) -> str:
111+
"""The time window will end"""
112+
return self["end"]
113+
114+
103115
class KinesisStreamEvent(DictWrapper):
104116
"""Kinesis stream event
105117
@@ -113,6 +125,30 @@ def records(self) -> Iterator[KinesisStreamRecord]:
113125
for record in self["Records"]:
114126
yield KinesisStreamRecord(record)
115127

128+
@property
129+
def window(self) -> KinesisStreamWindow:
130+
return KinesisStreamWindow(self["window"])
131+
132+
@property
133+
def state(self) -> dict:
134+
return self["state"]
135+
136+
@property
137+
def shard_id(self) -> str:
138+
return self["shardId"]
139+
140+
@property
141+
def event_source_arn(self) -> str:
142+
return self["eventSourceARN"]
143+
144+
@property
145+
def is_final_invoke_for_window(self) -> bool:
146+
return self["isFinalInvokeForWindow"]
147+
148+
@property
149+
def is_window_terminated_early(self) -> bool:
150+
return self["isWindowTerminatedEarly"]
151+
116152

117153
def extract_cloudwatch_logs_from_event(event: KinesisStreamEvent) -> list[CloudWatchLogsDecodedData]:
118154
return [CloudWatchLogsDecodedData(record.kinesis.data_zlib_compressed_as_json()) for record in event.records]

0 commit comments

Comments
 (0)