NAME

Paws::CognitoIdp::CreateUserPool - Arguments for method CreateUserPool on Paws::CognitoIdp

DESCRIPTION

This class represents the parameters used for calling the method CreateUserPool on the Amazon Cognito Identity Provider service. Use the attributes of this class as arguments to method CreateUserPool.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateUserPool.

SYNOPSIS

my $cognito-idp = Paws->service('CognitoIdp');
my $CreateUserPoolResponse = $cognito -idp->CreateUserPool(
  PoolName               => 'MyUserPoolNameType',
  AccountRecoverySetting => {
    RecoveryMechanisms => [
      {
        Name => 'verified_email'
        ,    # values: verified_email, verified_phone_number, admin_only
        Priority => 1,    # min: 1, max: 2

      },
      ...
    ],    # min: 1, max: 2; OPTIONAL
  },    # OPTIONAL
  AdminCreateUserConfig => {
    AllowAdminCreateUserOnly => 1,    # OPTIONAL
    InviteMessageTemplate    => {
      EmailMessage =>
        'MyEmailVerificationMessageType',    # min: 6, max: 20000; OPTIONAL
      EmailSubject =>
        'MyEmailVerificationSubjectType',    # min: 1, max: 140; OPTIONAL
      SMSMessage =>
        'MySmsVerificationMessageType',      # min: 6, max: 140; OPTIONAL
    },    # OPTIONAL
    UnusedAccountValidityDays => 1,    # max: 365; OPTIONAL
  },    # OPTIONAL
  AliasAttributes => [
    'phone_number', ...    # values: phone_number, email, preferred_username
  ],    # OPTIONAL
  AutoVerifiedAttributes => [
    'phone_number', ...    # values: phone_number, email
  ],    # OPTIONAL
  DeviceConfiguration => {
    ChallengeRequiredOnNewDevice     => 1,    # OPTIONAL
    DeviceOnlyRememberedOnUserPrompt => 1,    # OPTIONAL
  },    # OPTIONAL
  EmailConfiguration => {
    ConfigurationSet => 'MySESConfigurationSet', # min: 1, max: 64; OPTIONAL
    EmailSendingAccount =>
      'COGNITO_DEFAULT',    # values: COGNITO_DEFAULT, DEVELOPER; OPTIONAL
    From                => 'MyStringType',          # OPTIONAL
    ReplyToEmailAddress => 'MyEmailAddressType',    # OPTIONAL
    SourceArn           => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
  },    # OPTIONAL
  EmailVerificationMessage => 'MyEmailVerificationMessageType',   # OPTIONAL
  EmailVerificationSubject => 'MyEmailVerificationSubjectType',   # OPTIONAL
  LambdaConfig             => {
    CreateAuthChallenge => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    CustomEmailSender   => {
      LambdaArn     => 'MyArnType',        # min: 20, max: 2048; OPTIONAL
      LambdaVersion => 'V1_0',             # values: V1_0

    },    # OPTIONAL
    CustomMessage   => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    CustomSMSSender => {
      LambdaArn     => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
      LambdaVersion => 'V1_0',         # values: V1_0

    },    # OPTIONAL
    DefineAuthChallenge => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    KMSKeyID            => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    PostAuthentication  => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    PostConfirmation    => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    PreAuthentication   => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    PreSignUp           => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    PreTokenGeneration  => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    UserMigration       => 'MyArnType',    # min: 20, max: 2048; OPTIONAL
    VerifyAuthChallengeResponse =>
      'MyArnType',                         # min: 20, max: 2048; OPTIONAL
  },    # OPTIONAL
  MfaConfiguration => 'OFF',    # OPTIONAL
  Policies         => {
    PasswordPolicy => {
      MinimumLength                 => 1,    # min: 6, max: 99; OPTIONAL
      RequireLowercase              => 1,    # OPTIONAL
      RequireNumbers                => 1,    # OPTIONAL
      RequireSymbols                => 1,    # OPTIONAL
      RequireUppercase              => 1,    # OPTIONAL
      TemporaryPasswordValidityDays => 1,    # max: 365; OPTIONAL
    },    # OPTIONAL
  },    # OPTIONAL
  Schema => [
    {
      AttributeDataType =>
        'String',    # values: String, Number, DateTime, Boolean; OPTIONAL
      DeveloperOnlyAttribute => 1,            # OPTIONAL
      Mutable                => 1,            # OPTIONAL
      Name => 'MyCustomAttributeNameType',    # min: 1, max: 20; OPTIONAL
      NumberAttributeConstraints => {
        MaxValue => 'MyStringType',           # OPTIONAL
        MinValue => 'MyStringType',           # OPTIONAL
      },    # OPTIONAL
      Required                   => 1,    # OPTIONAL
      StringAttributeConstraints => {
        MaxLength => 'MyStringType',      # OPTIONAL
        MinLength => 'MyStringType',      # OPTIONAL
      },    # OPTIONAL
    },
    ...
  ],    # OPTIONAL
  SmsAuthenticationMessage => 'MySmsVerificationMessageType',    # OPTIONAL
  SmsConfiguration         => {
    SnsCallerArn => 'MyArnType',       # min: 20, max: 2048; OPTIONAL
    ExternalId   => 'MyStringType',    # OPTIONAL
  },    # OPTIONAL
  SmsVerificationMessage => 'MySmsVerificationMessageType',    # OPTIONAL
  UserPoolAddOns         => {
    AdvancedSecurityMode => 'OFF',    # values: OFF, AUDIT, ENFORCED

  },    # OPTIONAL
  UserPoolTags => {
    'MyTagKeysType' =>
      'MyTagValueType',    # key: min: 1, max: 128, value: max: 256
  },    # OPTIONAL
  UsernameAttributes => [
    'phone_number', ...    # values: phone_number, email
  ],    # OPTIONAL
  UsernameConfiguration => {
    CaseSensitive => 1,

  },    # OPTIONAL
  VerificationMessageTemplate => {
    DefaultEmailOption => 'CONFIRM_WITH_LINK'
    ,    # values: CONFIRM_WITH_LINK, CONFIRM_WITH_CODE; OPTIONAL
    EmailMessage =>
      'MyEmailVerificationMessageType',    # min: 6, max: 20000; OPTIONAL
    EmailMessageByLink =>
      'MyEmailVerificationMessageByLinkType', # min: 6, max: 20000; OPTIONAL
    EmailSubject =>
      'MyEmailVerificationSubjectType',       # min: 1, max: 140; OPTIONAL
    EmailSubjectByLink =>
      'MyEmailVerificationSubjectByLinkType',   # min: 1, max: 140; OPTIONAL
    SmsMessage =>
      'MySmsVerificationMessageType',           # min: 6, max: 140; OPTIONAL
  },    # OPTIONAL
);

# Results:
my $UserPool = $CreateUserPoolResponse->UserPool;

# Returns a L<Paws::CognitoIdp::CreateUserPoolResponse> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/cognito-idp/CreateUserPool

ATTRIBUTES

AccountRecoverySetting => Paws::CognitoIdp::AccountRecoverySettingType

Use this setting to define which verified available method a user can use to recover their password when they call ForgotPassword. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.

AdminCreateUserConfig => Paws::CognitoIdp::AdminCreateUserConfigType

The configuration for AdminCreateUser requests.

AliasAttributes => ArrayRef[Str|Undef]

Attributes supported as an alias for this user pool. Possible values: phone_number, email, or preferred_username.

AutoVerifiedAttributes => ArrayRef[Str|Undef]

The attributes to be auto-verified. Possible values: email, phone_number.

DeviceConfiguration => Paws::CognitoIdp::DeviceConfigurationType

The device configuration.

EmailConfiguration => Paws::CognitoIdp::EmailConfigurationType

The email configuration.

EmailVerificationMessage => Str

A string representing the email verification message. EmailVerificationMessage is allowed only if EmailSendingAccount (https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER.

EmailVerificationSubject => Str

A string representing the email verification subject. EmailVerificationSubject is allowed only if EmailSendingAccount (https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER.

LambdaConfig => Paws::CognitoIdp::LambdaConfigType

The Lambda trigger configuration information for the new user pool.

In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a function. So you will need to make an extra call to add permission for these event sources to invoke your Lambda function.

For more information on using the Lambda API to add permission, see AddPermission (https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html).

For adding permission using the AWS CLI, see add-permission (https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html).

MfaConfiguration => Str

Specifies MFA configuration details.

Valid values are: "OFF", "ON", "OPTIONAL"

Policies => Paws::CognitoIdp::UserPoolPolicyType

The policies associated with the new user pool.

REQUIRED PoolName => Str

A string used to name the user pool.

Schema => ArrayRef[Paws::CognitoIdp::SchemaAttributeType]

An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.

SmsAuthenticationMessage => Str

A string representing the SMS authentication message.

SmsConfiguration => Paws::CognitoIdp::SmsConfigurationType

The SMS configuration.

SmsVerificationMessage => Str

A string representing the SMS verification message.

UsernameAttributes => ArrayRef[Str|Undef]

Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up.

UsernameConfiguration => Paws::CognitoIdp::UsernameConfigurationType

You can choose to set case sensitivity on the username input for the selected sign-in option. For example, when this is set to False, users will be able to sign in using either "username" or "Username". This configuration is immutable once it has been set. For more information, see UsernameConfigurationType (https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UsernameConfigurationType.html).

UserPoolAddOns => Paws::CognitoIdp::UserPoolAddOnsType

Used to enable advanced security risk detection. Set the key AdvancedSecurityMode to the value "AUDIT".

UserPoolTags => Paws::CognitoIdp::UserPoolTagsType

The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.

VerificationMessageTemplate => Paws::CognitoIdp::VerificationMessageTemplateType

The template for the verification message that the user sees when the app requests permission to access the user's information.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateUserPool in Paws::CognitoIdp

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues