diff --git a/aws_lambda_events/src/cognito/mod.rs b/aws_lambda_events/src/cognito/mod.rs index f37fcd7..fbcfc3c 100644 --- a/aws_lambda_events/src/cognito/mod.rs +++ b/aws_lambda_events/src/cognito/mod.rs @@ -220,11 +220,11 @@ pub struct CognitoEventUserPoolsPreTokenGenRequest { pub client_metadata: HashMap, } -/// `CognitoEventUserPoolsPreTokenGenResponse` containst the response portion of a PreTokenGen event +/// `CognitoEventUserPoolsPreTokenGenResponse` contains the response portion of a PreTokenGen event #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct CognitoEventUserPoolsPreTokenGenResponse { - pub claims_override_details: ClaimsOverrideDetails, + pub claims_override_details: Option, } /// `CognitoEventUserPoolsPostAuthenticationRequest` contains the request portion of a PostAuthentication event @@ -286,7 +286,7 @@ pub struct ClaimsOverrideDetails { pub claims_to_suppress: Vec, } -/// `GroupConfiguration` allows lambda to override groups, roles and set a perferred role +/// `GroupConfiguration` allows lambda to override groups, roles and set a preferred role #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct GroupConfiguration { @@ -363,7 +363,7 @@ pub struct CognitoEventUserPoolsCreateAuthChallengeRequest { pub client_metadata: HashMap, } -/// `CognitoEventUserPoolsCreateAuthChallengeResponse` defines create auth challenge response rarameters +/// `CognitoEventUserPoolsCreateAuthChallengeResponse` defines create auth challenge response parameters #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct CognitoEventUserPoolsCreateAuthChallengeResponse { @@ -618,6 +618,19 @@ mod test { assert_eq!(parsed, reparsed); } + #[test] + #[cfg(feature = "cognito")] + fn example_cognito_event_userpools_pretokengen_incoming() { + let data = include_bytes!( + "../generated/fixtures/example-cognito-event-userpools-pretokengen-incoming.json" + ); + let parsed: CognitoEventUserPoolsPreTokenGen = serde_json::from_slice(data).unwrap(); + let output: String = serde_json::to_string(&parsed).unwrap(); + let reparsed: CognitoEventUserPoolsPreTokenGen = + serde_json::from_slice(output.as_bytes()).unwrap(); + assert_eq!(parsed, reparsed); + } + #[test] #[cfg(feature = "cognito")] fn example_cognito_event_userpools_pretokengen() { diff --git a/aws_lambda_events/src/generated/fixtures/example-cognito-event-userpools-pretokengen-incoming.json b/aws_lambda_events/src/generated/fixtures/example-cognito-event-userpools-pretokengen-incoming.json new file mode 100644 index 0000000..fed10a5 --- /dev/null +++ b/aws_lambda_events/src/generated/fixtures/example-cognito-event-userpools-pretokengen-incoming.json @@ -0,0 +1,29 @@ +{ + "version": "1", + "triggerSource": "PreTokenGen", + "region": "region", + "userPoolId": "userPoolId", + "userName": "userName", + "callerContext": { + "awsSdkVersion": "calling aws sdk with version", + "clientId": "apps client id" + }, + "request": { + "userAttributes": { + "email": "email", + "phone_number": "phone_number" + }, + "groupConfiguration": { + "groupsToOverride": ["group-A", "group-B", "group-C"], + "iamRolesToOverride": ["arn:aws:iam::XXXXXXXXXXXX:role/sns_callerA", "arn:aws:iam::XXXXXXXXX:role/sns_callerB", "arn:aws:iam::XXXXXXXXXX:role/sns_callerC"], + "preferredRole": "arn:aws:iam::XXXXXXXXXXX:role/sns_caller" + }, + "clientMetadata": { + "exampleMetadataKey": "example metadata value" + } + }, + "response": { + "claimsOverrideDetails": null + } +} +