File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
aws_lambda_powertools/utilities/data_classes Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -100,6 +100,18 @@ def kinesis(self) -> KinesisStreamRecordPayload:
100
100
return KinesisStreamRecordPayload (self ["kinesis" ])
101
101
102
102
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
+
103
115
class KinesisStreamEvent (DictWrapper ):
104
116
"""Kinesis stream event
105
117
@@ -113,6 +125,30 @@ def records(self) -> Iterator[KinesisStreamRecord]:
113
125
for record in self ["Records" ]:
114
126
yield KinesisStreamRecord (record )
115
127
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
+
116
152
117
153
def extract_cloudwatch_logs_from_event (event : KinesisStreamEvent ) -> list [CloudWatchLogsDecodedData ]:
118
154
return [CloudWatchLogsDecodedData (record .kinesis .data_zlib_compressed_as_json ()) for record in event .records ]
You can’t perform that action at this time.
0 commit comments