@@ -125,6 +125,41 @@ class KinesisFirehoseDataTransformationResponse:
125
125
records : List[KinesisFirehoseResponseRecord]
126
126
records of Kinesis Data Firehose response object,
127
127
optional parameter at start. can be added later using `add_record` function.
128
+
129
+ Examples
130
+ --------
131
+
132
+ **Transforming data records**
133
+
134
+ ```python
135
+ from aws_lambda_powertools.utilities.data_classes import (
136
+ KinesisFirehoseDataTransformationRecord,
137
+ KinesisFirehoseDataTransformationResponse,
138
+ KinesisFirehoseEvent,
139
+ )
140
+ from aws_lambda_powertools.utilities.serialization import base64_from_json
141
+ from aws_lambda_powertools.utilities.typing import LambdaContext
142
+
143
+
144
+ def lambda_handler(event: dict, context: LambdaContext):
145
+ firehose_event = KinesisFirehoseEvent(event)
146
+ result = KinesisFirehoseDataTransformationResponse()
147
+
148
+ for record in firehose_event.records:
149
+ payload = record.data_as_text # base64 decoded data as str
150
+
151
+ ## generate data to return
152
+ transformed_data = {"tool_used": "powertools_dataclass", "original_payload": payload}
153
+ processed_record = KinesisFirehoseDataTransformationRecord(
154
+ record_id=record.record_id,
155
+ data=base64_from_json(transformed_data),
156
+ )
157
+
158
+ result.add_record(processed_record)
159
+
160
+ # return transformed records
161
+ return result.asdict()
162
+ ```
128
163
"""
129
164
130
165
records : List [KinesisFirehoseDataTransformationRecord ] = field (default_factory = list )
0 commit comments