Skip to content

Commit 29e148a

Browse files
authored
Add struct for CodeDeployLifecycleEvent (#835)
CodeDeploy Hooks Lifecycle Event support * Added struct * Added unit test
1 parent e0e95e6 commit 29e148a

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lambda-events/src/event/codedeploy/mod.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,31 @@ pub struct CodeDeployEventDetail {
6565
pub deployment_group: Option<String>,
6666
}
6767

68+
#[derive(Debug, Clone, Deserialize, Serialize, Eq, PartialEq)]
69+
#[serde(rename_all = "PascalCase")]
70+
pub struct CodeDeployLifecycleEvent {
71+
pub deployment_id: String,
72+
pub lifecycle_event_hook_execution_id: String,
73+
}
74+
6875
#[cfg(test)]
6976
mod test {
7077
use super::*;
7178

79+
#[test]
80+
#[cfg(feature = "codedeploy")]
81+
fn example_codedeploy_lifecycle_event() {
82+
let data = include_bytes!("../../fixtures/example-codedeploy-lifecycle-event.json");
83+
let parsed: CodeDeployLifecycleEvent = serde_json::from_slice(data).unwrap();
84+
85+
assert_eq!(parsed.deployment_id, "d-deploymentId".to_string());
86+
assert_eq!(parsed.lifecycle_event_hook_execution_id, "eyJlbmNyeXB0ZWREYXRhIjoiY3VHU2NjdkJXUTJQUENVd2dkYUNGRVg0dWlpME9UWVdHTVhZcDRXVW5LYUVKc21EaUFPMkNLNXMwMWFrNDlYVStlbXdRb29xS3NJTUNVQ3RYRGFZSXc1VTFwUllvMDhmMzdlbDZFeDVVdjZrNFc0eU5waGh6YTRvdkNWcmVveVR6OWdERlM2SmlIYW1TZz09IiwiaXZQYXJhbWV0ZXJTcGVjIjoiTm1ZNFR6RzZxQVhHamhhLyIsIm1hdGVyaWFsU2V0U2VyaWFsIjoxfQ==".to_string());
87+
88+
let output: String = serde_json::to_string(&parsed).unwrap();
89+
let reparsed: CodeDeployLifecycleEvent = serde_json::from_slice(output.as_bytes()).unwrap();
90+
assert_eq!(parsed, reparsed);
91+
}
92+
7293
#[test]
7394
#[cfg(feature = "codedeploy")]
7495
fn example_codedeploy_deployment_event() {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"DeploymentId": "d-deploymentId",
3+
"LifecycleEventHookExecutionId": "eyJlbmNyeXB0ZWREYXRhIjoiY3VHU2NjdkJXUTJQUENVd2dkYUNGRVg0dWlpME9UWVdHTVhZcDRXVW5LYUVKc21EaUFPMkNLNXMwMWFrNDlYVStlbXdRb29xS3NJTUNVQ3RYRGFZSXc1VTFwUllvMDhmMzdlbDZFeDVVdjZrNFc0eU5waGh6YTRvdkNWcmVveVR6OWdERlM2SmlIYW1TZz09IiwiaXZQYXJhbWV0ZXJTcGVjIjoiTm1ZNFR6RzZxQVhHamhhLyIsIm1hdGVyaWFsU2V0U2VyaWFsIjoxfQ=="
4+
}
5+

0 commit comments

Comments
 (0)