Skip to content

Commit 94b33e8

Browse files
authored
Add SecretsManagerSecretRotationEvent (#811)
1 parent 9ed543c commit 94b33e8

File tree

6 files changed

+40
-0
lines changed

6 files changed

+40
-0
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ check-event-features:
101101
cargo test --package aws_lambda_events --no-default-features --features rabbitmq
102102
cargo test --package aws_lambda_events --no-default-features --features s3
103103
cargo test --package aws_lambda_events --no-default-features --features s3_batch_job
104+
cargo test --package aws_lambda_events --no-default-features --features secretsmanager
104105
cargo test --package aws_lambda_events --no-default-features --features ses
105106
cargo test --package aws_lambda_events --no-default-features --features sns
106107
cargo test --package aws_lambda_events --no-default-features --features sqs

lambda-events/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ default = [
7575
"s3",
7676
"s3_batch_job",
7777
"ses",
78+
"secretsmanager",
7879
"sns",
7980
"sqs",
8081
"streams",
@@ -119,6 +120,7 @@ lex = []
119120
rabbitmq = []
120121
s3 = ["bytes", "chrono", "http", "http-body", "http-serde"]
121122
s3_batch_job = ["s3"]
123+
secretsmanager = []
122124
ses = ["chrono"]
123125
sns = ["chrono", "serde_with"]
124126
sqs = ["serde_with"]

lambda-events/src/event/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ pub mod rabbitmq;
133133
#[cfg(feature = "s3")]
134134
pub mod s3;
135135

136+
/// AWS Lambda event definitions for secretsmanager.
137+
#[cfg(feature = "secretsmanager")]
138+
pub mod secretsmanager;
139+
136140
/// AWS Lambda event definitions for ses.
137141
#[cfg(feature = "ses")]
138142
pub mod ses;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use serde::{Deserialize, Serialize};
2+
3+
#[derive(Debug, Clone, Eq, PartialEq, Deserialize, Serialize)]
4+
#[serde(rename_all = "PascalCase")]
5+
pub struct SecretsManagerSecretRotationEvent {
6+
pub step: String,
7+
pub secret_id: String,
8+
pub client_request_token: String,
9+
}
10+
11+
#[cfg(test)]
12+
mod test {
13+
use super::*;
14+
15+
#[test]
16+
#[cfg(feature = "secretsmanager")]
17+
fn example_secretsmanager_secret_rotation_event() {
18+
let data = include_bytes!("../../fixtures/example-secretsmanager-secret-rotation-event.json");
19+
let parsed: SecretsManagerSecretRotationEvent = serde_json::from_slice(data).unwrap();
20+
let output: String = serde_json::to_string(&parsed).unwrap();
21+
let reparsed: SecretsManagerSecretRotationEvent = serde_json::from_slice(output.as_bytes()).unwrap();
22+
assert_eq!(parsed, reparsed);
23+
}
24+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"Step": "createSecret",
3+
"SecretId": "arn:aws:secretsmanager:us-east-1:111122223333:secret:id-ABCD1E",
4+
"ClientRequestToken": "1ab23456-cde7-8912-34fg-h56i78j9k12l"
5+
}

lambda-events/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ pub use event::s3;
153153
#[cfg(feature = "s3")]
154154
pub use event::s3::batch_job as s3_batch_job;
155155

156+
/// AWS Lambda event definitions for secretsmanager.
157+
#[cfg(feature = "secretsmanager")]
158+
pub use event::secretsmanager;
159+
156160
/// AWS Lambda event definitions for ses.
157161
#[cfg(feature = "ses")]
158162
pub use event::ses;

0 commit comments

Comments
 (0)