Skip to content

UserPoolUser ​

The UserPoolUser resource allows you to manage AWS Cognito UserPoolUsers that represent individual users in your Cognito User Pool.

Minimal Example ​

Create a basic UserPoolUser with required properties and one optional property:

ts
import AWS from "alchemy/aws/control";

const userPoolUser = await AWS.Cognito.UserPoolUser("newUser", {
  UserPoolId: "us-east-1_examplepool",
  Username: "john.doe@example.com",
  UserAttributes: [
    { Name: "email", Value: "john.doe@example.com" },
    { Name: "phone_number", Value: "+15555551234" }
  ]
});

Advanced Configuration ​

Create a UserPoolUser with additional configurations including validation data and message action:

ts
const advancedUserPoolUser = await AWS.Cognito.UserPoolUser("advancedUser", {
  UserPoolId: "us-east-1_examplepool",
  Username: "jane.doe@example.com",
  UserAttributes: [
    { Name: "email", Value: "jane.doe@example.com" },
    { Name: "name", Value: "Jane Doe" }
  ],
  ValidationData: [
    { Name: "custom:role", Value: "admin" }
  ],
  MessageAction: "SUPPRESS" // Suppresses the welcome message
});

User with Alias Creation ​

Create a UserPoolUser with alias creation enabled for seamless sign-in:

ts
const aliasUser = await AWS.Cognito.UserPoolUser("aliasUser", {
  UserPoolId: "us-east-1_examplepool",
  Username: "alias@example.com",
  UserAttributes: [
    { Name: "email", Value: "alias@example.com" },
    { Name: "preferred_username", Value: "aliasUser" }
  ],
  ForceAliasCreation: true // Forces alias creation for the user
});

User with Custom Client Metadata ​

Create a UserPoolUser while passing client metadata for custom handling in your application:

ts
const metadataUser = await AWS.Cognito.UserPoolUser("metadataUser", {
  UserPoolId: "us-east-1_examplepool",
  Username: "metadata@example.com",
  UserAttributes: [
    { Name: "email", Value: "metadata@example.com" }
  ],
  ClientMetadata: {
    source: "signupForm",
    referralCode: "REF123"
  }
});