From b9eba8fc8e44c7c1ed59eb50db1df910ccd691e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Dal=C3=A9n?= Date: Mon, 8 Jul 2019 22:36:53 +0200 Subject: [PATCH] [aws-lambda] Add missing fields on CognitoUserPoolTriggerEvent (#36668) See: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html#cognito-user-pools-lambda-trigger-syntax-pre-token-generation The linkParameter doesn't seem to be in the documentation, but it is there on the events. --- types/aws-lambda/aws-lambda-tests.ts | 26 ++++++++++++++++++++++++++ types/aws-lambda/index.d.ts | 10 ++++++++++ 2 files changed, 36 insertions(+) diff --git a/types/aws-lambda/aws-lambda-tests.ts b/types/aws-lambda/aws-lambda-tests.ts index 4da38ff8e0..1296bd54e4 100644 --- a/types/aws-lambda/aws-lambda-tests.ts +++ b/types/aws-lambda/aws-lambda-tests.ts @@ -444,6 +444,7 @@ str = cognitoUserPoolEvent.callerContext.clientId; str = cognitoUserPoolEvent.request.userAttributes["email"]; str = cognitoUserPoolEvent.request.validationData!["k1"]; strOrUndefined = cognitoUserPoolEvent.request.codeParameter; +strOrUndefined = cognitoUserPoolEvent.request.linkParameter; strOrUndefined = cognitoUserPoolEvent.request.usernameParameter; boolOrUndefined = cognitoUserPoolEvent.request.newDeviceUsed; cognitoUserPoolEvent.request.session![0].challengeName === "CUSTOM_CHALLENGE"; @@ -477,6 +478,31 @@ cognitoUserPoolEvent.response.desiredDeliveryMediums === ["EMAIL"]; cognitoUserPoolEvent.response.desiredDeliveryMediums === ["SMS"]; cognitoUserPoolEvent.response.desiredDeliveryMediums === ["SMS", "EMAIL"]; boolOrUndefined = cognitoUserPoolEvent.response.forceAliasCreation; +// From AWS examples +cognitoUserPoolEvent.response = { + claimsOverrideDetails: { + claimsToAddOrOverride: { + attribute_key2: "attribute_value2", + attribute_key: "attribute_value" + }, + claimsToSuppress: ["email"] + } +}; +cognitoUserPoolEvent.response = { + claimsOverrideDetails: { + claimsToAddOrOverride: { + attribute_key2: "attribute_value2", + attribute_key: "attribute_value" + }, + claimsToSuppress: ["email"], + groupOverrideDetails: { + 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" + } + } +}; +cognitoUserPoolEvent.response.claimsOverrideDetails!.groupOverrideDetails = null; // CloudFormation Custom Resource switch (cloudformationCustomResourceEvent.RequestType) { diff --git a/types/aws-lambda/index.d.ts b/types/aws-lambda/index.d.ts index 1a17141c7a..35b07b035b 100644 --- a/types/aws-lambda/index.d.ts +++ b/types/aws-lambda/index.d.ts @@ -293,6 +293,7 @@ export interface CognitoUserPoolTriggerEvent { userAttributes: { [key: string]: string }; validationData?: { [key: string]: string }; codeParameter?: string; + linkParameter?: string; usernameParameter?: string; newDeviceUsed?: boolean; session?: Array<{ @@ -322,6 +323,15 @@ export interface CognitoUserPoolTriggerEvent { messageAction?: "SUPPRESS"; desiredDeliveryMediums?: Array<"EMAIL" | "SMS">; forceAliasCreation?: boolean; + claimsOverrideDetails?: { + claimsToAddOrOverride?: { [key: string]: string }; + claimsToSuppress?: string[]; + groupOverrideDetails?: null | { + groupsToOverride?: string[]; + iamRolesToOverride?: string[]; + preferredRole?: string; + }; + }; }; } export type CognitoUserPoolEvent = CognitoUserPoolTriggerEvent;