Skip to content

Commit 62e64bf

Browse files
committed
feat: include new replay-name field in parser and data_classes
1 parent f7bb809 commit 62e64bf

File tree

5 files changed

+13
-4
lines changed

5 files changed

+13
-4
lines changed

Diff for: aws_lambda_powertools/utilities/data_classes/event_bridge_event.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Dict, List
1+
from typing import Any, Dict, List, Optional
22

33
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
44

@@ -62,3 +62,8 @@ def detail_type(self) -> str:
6262
def detail(self) -> Dict[str, Any]:
6363
"""A JSON object, whose content is at the discretion of the service originating the event. """
6464
return self["detail"]
65+
66+
@property
67+
def replay_name(self) -> Optional[str]:
68+
"""Identifies whether the event is being replayed and what is the name of the replay."""
69+
return self["replay-name"]

Diff for: aws_lambda_powertools/utilities/parser/models/event_bridge.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import datetime
2-
from typing import Any, Dict, List
2+
from typing import Any, Dict, List, Optional
33

44
from pydantic import BaseModel, Field
55

@@ -14,3 +14,4 @@ class EventBridgeModel(BaseModel):
1414
resources: List[str]
1515
detail_type: str = Field(None, alias="detail-type")
1616
detail: Dict[str, Any]
17+
replay_name: Optional[str] = Field(None, alias="replay-name")

Diff for: tests/events/eventBridgeEvent.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
"detail": {
1313
"instance_id": "i-1234567890abcdef0",
1414
"state": "terminated"
15-
}
16-
}
15+
},
16+
"replay-name": "replay_archive"
17+
}

Diff for: tests/functional/parser/test_eventbridge.py

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def handle_eventbridge_no_envelope(event: MyAdvancedEventbridgeBusiness, _: Lamb
2727
assert event.resources == ["arn:aws:ec2:us-west-1:123456789012:instance/i-1234567890abcdef0"]
2828
assert event.source == "aws.ec2"
2929
assert event.detail_type == "EC2 Instance State-change Notification"
30+
assert event.replay_name == "replay_archive"
3031

3132

3233
def test_handle_eventbridge_trigger_event():

Diff for: tests/functional/test_lambda_trigger_events.py

+1
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ def test_event_bridge_event():
370370
assert event.source == event["source"]
371371
assert event.detail_type == event["detail-type"]
372372
assert event.detail == event["detail"]
373+
assert event.replay_name == "replay_archive"
373374

374375

375376
def test_s3_trigger_event():

0 commit comments

Comments
 (0)