use crate::custom_serde::*;
use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use serde_json::Value;
use std::collections::HashMap;
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEvent {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub dataset_name: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub dataset_records: HashMap<String, CognitoDatasetRecord>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub event_type: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub identity_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub identity_pool_id: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub region: Option<String>,
pub version: i64,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoDatasetRecord {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub new_value: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub old_value: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub op: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreSignup {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsPreSignupRequest,
pub response: CognitoEventUserPoolsPreSignupResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreAuthentication {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsPreAuthenticationRequest,
pub response: CognitoEventUserPoolsPreAuthenticationResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPostConfirmation {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsPostConfirmationRequest,
pub response: CognitoEventUserPoolsPostConfirmationResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreTokenGen {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsPreTokenGenRequest,
pub response: CognitoEventUserPoolsPreTokenGenResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPostAuthentication {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsPostAuthenticationRequest,
pub response: CognitoEventUserPoolsPostAuthenticationResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsMigrateUser {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
#[serde(rename = "request")]
pub cognito_event_user_pools_migrate_user_request: CognitoEventUserPoolsMigrateUserRequest,
#[serde(rename = "response")]
pub cognito_event_user_pools_migrate_user_response: CognitoEventUserPoolsMigrateUserResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsCallerContext {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
#[serde(rename = "awsSdkVersion")]
pub awssdk_version: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub client_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsHeader {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub version: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub trigger_source: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub region: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user_pool_id: Option<String>,
pub caller_context: CognitoEventUserPoolsCallerContext,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub user_name: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreSignupRequest {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub validation_data: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreSignupResponse {
pub auto_confirm_user: bool,
pub auto_verify_email: bool,
pub auto_verify_phone: bool,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreAuthenticationRequest {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub validation_data: HashMap<String, String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct CognitoEventUserPoolsPreAuthenticationResponse {}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPostConfirmationRequest {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct CognitoEventUserPoolsPostConfirmationResponse {}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreTokenGenRequest {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
pub group_configuration: GroupConfiguration,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPreTokenGenResponse {
pub claims_override_details: ClaimsOverrideDetails,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsPostAuthenticationRequest {
pub new_device_used: bool,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct CognitoEventUserPoolsPostAuthenticationResponse {}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsMigrateUserRequest {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub password: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub validation_data: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsMigrateUserResponse {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub final_user_status: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub message_action: Option<String>,
pub desired_delivery_mediums: Vec<String>,
pub force_alias_creation: bool,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ClaimsOverrideDetails {
pub group_override_details: GroupConfiguration,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub claims_to_add_or_override: HashMap<String, String>,
pub claims_to_suppress: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GroupConfiguration {
pub groups_to_override: Vec<String>,
pub iam_roles_to_override: Vec<String>,
pub preferred_role: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsChallengeResult {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub challenge_name: Option<String>,
pub challenge_result: bool,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub challenge_metadata: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsDefineAuthChallengeRequest {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
pub session: Vec<Option<CognitoEventUserPoolsChallengeResult>>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
pub user_not_found: bool,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsDefineAuthChallengeResponse {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub challenge_name: Option<String>,
pub issue_tokens: bool,
pub fail_authentication: bool,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsDefineAuthChallenge {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsDefineAuthChallengeRequest,
pub response: CognitoEventUserPoolsDefineAuthChallengeResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsCreateAuthChallengeRequest {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub challenge_name: Option<String>,
pub session: Vec<Option<CognitoEventUserPoolsChallengeResult>>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsCreateAuthChallengeResponse {
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub public_challenge_parameters: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub private_challenge_parameters: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub challenge_metadata: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsCreateAuthChallenge {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsCreateAuthChallengeRequest,
pub response: CognitoEventUserPoolsCreateAuthChallengeResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsVerifyAuthChallengeRequest<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub user_attributes: HashMap<String, String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub private_challenge_parameters: HashMap<String, String>,
#[serde(bound = "")]
pub challenge_answer: Option<T1>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsVerifyAuthChallengeResponse {
pub answer_correct: bool,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsVerifyAuthChallenge {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsVerifyAuthChallengeRequest,
pub response: CognitoEventUserPoolsVerifyAuthChallengeResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsCustomMessage {
#[serde(rename = "CognitoEventUserPoolsHeader")]
#[serde(flatten)]
pub cognito_event_user_pools_header: CognitoEventUserPoolsHeader,
pub request: CognitoEventUserPoolsCustomMessageRequest,
pub response: CognitoEventUserPoolsCustomMessageResponse,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsCustomMessageRequest<T1 = Value>
where
T1: DeserializeOwned,
T1: Serialize,
{
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
#[serde(bound = "")]
pub user_attributes: HashMap<String, T1>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub code_parameter: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub username_parameter: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_map")]
#[serde(default)]
pub client_metadata: HashMap<String, String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CognitoEventUserPoolsCustomMessageResponse {
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub sms_message: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub email_message: Option<String>,
#[serde(deserialize_with = "deserialize_lambda_string")]
#[serde(default)]
pub email_subject: Option<String>,
}
#[cfg(test)]
mod test {
use super::*;
extern crate serde_json;
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event() {
let data = include_bytes!("fixtures/example-cognito-event.json");
let parsed: CognitoEvent = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEvent = serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_create_auth_challenge() {
let data =
include_bytes!("fixtures/example-cognito-event-userpools-create-auth-challenge.json");
let parsed: CognitoEventUserPoolsCreateAuthChallenge =
serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsCreateAuthChallenge =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_custommessage() {
let data = include_bytes!("fixtures/example-cognito-event-userpools-custommessage.json");
let parsed: CognitoEventUserPoolsCustomMessage = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsCustomMessage =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_define_auth_challenge() {
let data =
include_bytes!("fixtures/example-cognito-event-userpools-define-auth-challenge.json");
let parsed: CognitoEventUserPoolsDefineAuthChallenge =
serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsDefineAuthChallenge =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_migrateuser() {
let data = include_bytes!("fixtures/example-cognito-event-userpools-migrateuser.json");
let parsed: CognitoEventUserPoolsMigrateUser = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsMigrateUser =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_postauthentication() {
let data =
include_bytes!("fixtures/example-cognito-event-userpools-postauthentication.json");
let parsed: CognitoEventUserPoolsPostAuthentication = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsPostAuthentication =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_postconfirmation() {
let data = include_bytes!("fixtures/example-cognito-event-userpools-postconfirmation.json");
let parsed: CognitoEventUserPoolsPostConfirmation = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsPostConfirmation =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_preauthentication() {
let data =
include_bytes!("fixtures/example-cognito-event-userpools-preauthentication.json");
let parsed: CognitoEventUserPoolsPreAuthentication = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsPreAuthentication =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_presignup() {
let data = include_bytes!("fixtures/example-cognito-event-userpools-presignup.json");
let parsed: CognitoEventUserPoolsPreSignup = serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsPreSignup =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
#[test]
#[cfg(feature = "cognito")]
fn example_cognito_event_userpools_pretokengen() {
let data = include_bytes!("fixtures/example-cognito-event-userpools-pretokengen.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_verify_auth_challenge() {
let data =
include_bytes!("fixtures/example-cognito-event-userpools-verify-auth-challenge.json");
let parsed: CognitoEventUserPoolsVerifyAuthChallenge =
serde_json::from_slice(data).unwrap();
let output: String = serde_json::to_string(&parsed).unwrap();
let reparsed: CognitoEventUserPoolsVerifyAuthChallenge =
serde_json::from_slice(output.as_bytes()).unwrap();
assert_eq!(parsed, reparsed);
}
}