github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cognito/userPool.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package cognito
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Provides a Cognito User Pool resource.
    15  //
    16  // ## Example Usage
    17  //
    18  // ### Basic configuration
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito"
    27  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    28  //
    29  // )
    30  //
    31  //	func main() {
    32  //		pulumi.Run(func(ctx *pulumi.Context) error {
    33  //			_, err := cognito.NewUserPool(ctx, "pool", &cognito.UserPoolArgs{
    34  //				Name: pulumi.String("mypool"),
    35  //			})
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			return nil
    40  //		})
    41  //	}
    42  //
    43  // ```
    44  // <!--End PulumiCodeChooser -->
    45  //
    46  // ### Enabling SMS and Software Token Multi-Factor Authentication
    47  //
    48  // <!--Start PulumiCodeChooser -->
    49  // ```go
    50  // package main
    51  //
    52  // import (
    53  //
    54  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito"
    55  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    56  //
    57  // )
    58  //
    59  //	func main() {
    60  //		pulumi.Run(func(ctx *pulumi.Context) error {
    61  //			_, err := cognito.NewUserPool(ctx, "example", &cognito.UserPoolArgs{
    62  //				MfaConfiguration:         pulumi.String("ON"),
    63  //				SmsAuthenticationMessage: pulumi.String("Your code is {####}"),
    64  //				SmsConfiguration: &cognito.UserPoolSmsConfigurationArgs{
    65  //					ExternalId:   pulumi.String("example"),
    66  //					SnsCallerArn: pulumi.Any(exampleAwsIamRole.Arn),
    67  //					SnsRegion:    pulumi.String("us-east-1"),
    68  //				},
    69  //				SoftwareTokenMfaConfiguration: &cognito.UserPoolSoftwareTokenMfaConfigurationArgs{
    70  //					Enabled: pulumi.Bool(true),
    71  //				},
    72  //			})
    73  //			if err != nil {
    74  //				return err
    75  //			}
    76  //			return nil
    77  //		})
    78  //	}
    79  //
    80  // ```
    81  // <!--End PulumiCodeChooser -->
    82  //
    83  // ### Using Account Recovery Setting
    84  //
    85  // <!--Start PulumiCodeChooser -->
    86  // ```go
    87  // package main
    88  //
    89  // import (
    90  //
    91  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito"
    92  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    93  //
    94  // )
    95  //
    96  //	func main() {
    97  //		pulumi.Run(func(ctx *pulumi.Context) error {
    98  //			_, err := cognito.NewUserPool(ctx, "test", &cognito.UserPoolArgs{
    99  //				Name: pulumi.String("mypool"),
   100  //				AccountRecoverySetting: &cognito.UserPoolAccountRecoverySettingArgs{
   101  //					RecoveryMechanisms: cognito.UserPoolAccountRecoverySettingRecoveryMechanismArray{
   102  //						&cognito.UserPoolAccountRecoverySettingRecoveryMechanismArgs{
   103  //							Name:     pulumi.String("verified_email"),
   104  //							Priority: pulumi.Int(1),
   105  //						},
   106  //						&cognito.UserPoolAccountRecoverySettingRecoveryMechanismArgs{
   107  //							Name:     pulumi.String("verified_phone_number"),
   108  //							Priority: pulumi.Int(2),
   109  //						},
   110  //					},
   111  //				},
   112  //			})
   113  //			if err != nil {
   114  //				return err
   115  //			}
   116  //			return nil
   117  //		})
   118  //	}
   119  //
   120  // ```
   121  // <!--End PulumiCodeChooser -->
   122  //
   123  // ## Import
   124  //
   125  // Using `pulumi import`, import Cognito User Pools using the `id`. For example:
   126  //
   127  // ```sh
   128  // $ pulumi import aws:cognito/userPool:UserPool pool us-west-2_abc123
   129  // ```
   130  type UserPool struct {
   131  	pulumi.CustomResourceState
   132  
   133  	// Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.
   134  	AccountRecoverySetting UserPoolAccountRecoverySettingPtrOutput `pulumi:"accountRecoverySetting"`
   135  	// Configuration block for creating a new user profile. Detailed below.
   136  	AdminCreateUserConfig UserPoolAdminCreateUserConfigOutput `pulumi:"adminCreateUserConfig"`
   137  	// Attributes supported as an alias for this user pool. Valid values: `phoneNumber`, `email`, or `preferredUsername`. Conflicts with `usernameAttributes`.
   138  	AliasAttributes pulumi.StringArrayOutput `pulumi:"aliasAttributes"`
   139  	// ARN of the user pool.
   140  	Arn pulumi.StringOutput `pulumi:"arn"`
   141  	// Attributes to be auto-verified. Valid values: `email`, `phoneNumber`.
   142  	AutoVerifiedAttributes pulumi.StringArrayOutput `pulumi:"autoVerifiedAttributes"`
   143  	// Date the user pool was created.
   144  	CreationDate pulumi.StringOutput `pulumi:"creationDate"`
   145  	// A custom domain name that you provide to Amazon Cognito. This parameter applies only if you use a custom domain to host the sign-up and sign-in pages for your application. For example: `auth.example.com`.
   146  	CustomDomain pulumi.StringOutput `pulumi:"customDomain"`
   147  	// When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature. Valid values are `ACTIVE` and `INACTIVE`, Default value is `INACTIVE`.
   148  	DeletionProtection pulumi.StringPtrOutput `pulumi:"deletionProtection"`
   149  	// Configuration block for the user pool's device tracking. Detailed below.
   150  	DeviceConfiguration UserPoolDeviceConfigurationPtrOutput `pulumi:"deviceConfiguration"`
   151  	// Holds the domain prefix if the user pool has a domain associated with it.
   152  	Domain pulumi.StringOutput `pulumi:"domain"`
   153  	// Configuration block for configuring email. Detailed below.
   154  	EmailConfiguration UserPoolEmailConfigurationPtrOutput `pulumi:"emailConfiguration"`
   155  	// String representing the email verification message. Conflicts with `verificationMessageTemplate` configuration block `emailMessage` argument.
   156  	EmailVerificationMessage pulumi.StringOutput `pulumi:"emailVerificationMessage"`
   157  	// String representing the email verification subject. Conflicts with `verificationMessageTemplate` configuration block `emailSubject` argument.
   158  	EmailVerificationSubject pulumi.StringOutput `pulumi:"emailVerificationSubject"`
   159  	// Endpoint name of the user pool. Example format: `cognito-idp.REGION.amazonaws.com/xxxx_yyyyy`
   160  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
   161  	// A number estimating the size of the user pool.
   162  	EstimatedNumberOfUsers pulumi.IntOutput `pulumi:"estimatedNumberOfUsers"`
   163  	// Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.
   164  	LambdaConfig UserPoolLambdaConfigPtrOutput `pulumi:"lambdaConfig"`
   165  	// Date the user pool was last modified.
   166  	LastModifiedDate pulumi.StringOutput `pulumi:"lastModifiedDate"`
   167  	// Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured).
   168  	MfaConfiguration pulumi.StringPtrOutput `pulumi:"mfaConfiguration"`
   169  	// Name of the user pool.
   170  	//
   171  	// The following arguments are optional:
   172  	Name pulumi.StringOutput `pulumi:"name"`
   173  	// Configuration block for information about the user pool password policy. Detailed below.
   174  	PasswordPolicy UserPoolPasswordPolicyOutput `pulumi:"passwordPolicy"`
   175  	// Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.
   176  	Schemas UserPoolSchemaArrayOutput `pulumi:"schemas"`
   177  	// String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.
   178  	SmsAuthenticationMessage pulumi.StringPtrOutput `pulumi:"smsAuthenticationMessage"`
   179  	// Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection. To force resource recreation after this configuration has been applied, see the `taint` command.
   180  	SmsConfiguration UserPoolSmsConfigurationOutput `pulumi:"smsConfiguration"`
   181  	// String representing the SMS verification message. Conflicts with `verificationMessageTemplate` configuration block `smsMessage` argument.
   182  	SmsVerificationMessage pulumi.StringOutput `pulumi:"smsVerificationMessage"`
   183  	// Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.
   184  	SoftwareTokenMfaConfiguration UserPoolSoftwareTokenMfaConfigurationPtrOutput `pulumi:"softwareTokenMfaConfiguration"`
   185  	// Map of tags to assign to the User Pool. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   186  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   187  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   188  	//
   189  	// Deprecated: Please use `tags` instead.
   190  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   191  	// Configuration block for user attribute update settings. Detailed below.
   192  	UserAttributeUpdateSettings UserPoolUserAttributeUpdateSettingsPtrOutput `pulumi:"userAttributeUpdateSettings"`
   193  	// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
   194  	UserPoolAddOns UserPoolUserPoolAddOnsPtrOutput `pulumi:"userPoolAddOns"`
   195  	// Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `aliasAttributes`.
   196  	UsernameAttributes pulumi.StringArrayOutput `pulumi:"usernameAttributes"`
   197  	// Configuration block for username configuration. Detailed below.
   198  	UsernameConfiguration UserPoolUsernameConfigurationPtrOutput `pulumi:"usernameConfiguration"`
   199  	// Configuration block for verification message templates. Detailed below.
   200  	VerificationMessageTemplate UserPoolVerificationMessageTemplateOutput `pulumi:"verificationMessageTemplate"`
   201  }
   202  
   203  // NewUserPool registers a new resource with the given unique name, arguments, and options.
   204  func NewUserPool(ctx *pulumi.Context,
   205  	name string, args *UserPoolArgs, opts ...pulumi.ResourceOption) (*UserPool, error) {
   206  	if args == nil {
   207  		args = &UserPoolArgs{}
   208  	}
   209  
   210  	opts = internal.PkgResourceDefaultOpts(opts)
   211  	var resource UserPool
   212  	err := ctx.RegisterResource("aws:cognito/userPool:UserPool", name, args, &resource, opts...)
   213  	if err != nil {
   214  		return nil, err
   215  	}
   216  	return &resource, nil
   217  }
   218  
   219  // GetUserPool gets an existing UserPool resource's state with the given name, ID, and optional
   220  // state properties that are used to uniquely qualify the lookup (nil if not required).
   221  func GetUserPool(ctx *pulumi.Context,
   222  	name string, id pulumi.IDInput, state *UserPoolState, opts ...pulumi.ResourceOption) (*UserPool, error) {
   223  	var resource UserPool
   224  	err := ctx.ReadResource("aws:cognito/userPool:UserPool", name, id, state, &resource, opts...)
   225  	if err != nil {
   226  		return nil, err
   227  	}
   228  	return &resource, nil
   229  }
   230  
   231  // Input properties used for looking up and filtering UserPool resources.
   232  type userPoolState struct {
   233  	// Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.
   234  	AccountRecoverySetting *UserPoolAccountRecoverySetting `pulumi:"accountRecoverySetting"`
   235  	// Configuration block for creating a new user profile. Detailed below.
   236  	AdminCreateUserConfig *UserPoolAdminCreateUserConfig `pulumi:"adminCreateUserConfig"`
   237  	// Attributes supported as an alias for this user pool. Valid values: `phoneNumber`, `email`, or `preferredUsername`. Conflicts with `usernameAttributes`.
   238  	AliasAttributes []string `pulumi:"aliasAttributes"`
   239  	// ARN of the user pool.
   240  	Arn *string `pulumi:"arn"`
   241  	// Attributes to be auto-verified. Valid values: `email`, `phoneNumber`.
   242  	AutoVerifiedAttributes []string `pulumi:"autoVerifiedAttributes"`
   243  	// Date the user pool was created.
   244  	CreationDate *string `pulumi:"creationDate"`
   245  	// A custom domain name that you provide to Amazon Cognito. This parameter applies only if you use a custom domain to host the sign-up and sign-in pages for your application. For example: `auth.example.com`.
   246  	CustomDomain *string `pulumi:"customDomain"`
   247  	// When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature. Valid values are `ACTIVE` and `INACTIVE`, Default value is `INACTIVE`.
   248  	DeletionProtection *string `pulumi:"deletionProtection"`
   249  	// Configuration block for the user pool's device tracking. Detailed below.
   250  	DeviceConfiguration *UserPoolDeviceConfiguration `pulumi:"deviceConfiguration"`
   251  	// Holds the domain prefix if the user pool has a domain associated with it.
   252  	Domain *string `pulumi:"domain"`
   253  	// Configuration block for configuring email. Detailed below.
   254  	EmailConfiguration *UserPoolEmailConfiguration `pulumi:"emailConfiguration"`
   255  	// String representing the email verification message. Conflicts with `verificationMessageTemplate` configuration block `emailMessage` argument.
   256  	EmailVerificationMessage *string `pulumi:"emailVerificationMessage"`
   257  	// String representing the email verification subject. Conflicts with `verificationMessageTemplate` configuration block `emailSubject` argument.
   258  	EmailVerificationSubject *string `pulumi:"emailVerificationSubject"`
   259  	// Endpoint name of the user pool. Example format: `cognito-idp.REGION.amazonaws.com/xxxx_yyyyy`
   260  	Endpoint *string `pulumi:"endpoint"`
   261  	// A number estimating the size of the user pool.
   262  	EstimatedNumberOfUsers *int `pulumi:"estimatedNumberOfUsers"`
   263  	// Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.
   264  	LambdaConfig *UserPoolLambdaConfig `pulumi:"lambdaConfig"`
   265  	// Date the user pool was last modified.
   266  	LastModifiedDate *string `pulumi:"lastModifiedDate"`
   267  	// Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured).
   268  	MfaConfiguration *string `pulumi:"mfaConfiguration"`
   269  	// Name of the user pool.
   270  	//
   271  	// The following arguments are optional:
   272  	Name *string `pulumi:"name"`
   273  	// Configuration block for information about the user pool password policy. Detailed below.
   274  	PasswordPolicy *UserPoolPasswordPolicy `pulumi:"passwordPolicy"`
   275  	// Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.
   276  	Schemas []UserPoolSchema `pulumi:"schemas"`
   277  	// String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.
   278  	SmsAuthenticationMessage *string `pulumi:"smsAuthenticationMessage"`
   279  	// Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection. To force resource recreation after this configuration has been applied, see the `taint` command.
   280  	SmsConfiguration *UserPoolSmsConfiguration `pulumi:"smsConfiguration"`
   281  	// String representing the SMS verification message. Conflicts with `verificationMessageTemplate` configuration block `smsMessage` argument.
   282  	SmsVerificationMessage *string `pulumi:"smsVerificationMessage"`
   283  	// Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.
   284  	SoftwareTokenMfaConfiguration *UserPoolSoftwareTokenMfaConfiguration `pulumi:"softwareTokenMfaConfiguration"`
   285  	// Map of tags to assign to the User Pool. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   286  	Tags map[string]string `pulumi:"tags"`
   287  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   288  	//
   289  	// Deprecated: Please use `tags` instead.
   290  	TagsAll map[string]string `pulumi:"tagsAll"`
   291  	// Configuration block for user attribute update settings. Detailed below.
   292  	UserAttributeUpdateSettings *UserPoolUserAttributeUpdateSettings `pulumi:"userAttributeUpdateSettings"`
   293  	// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
   294  	UserPoolAddOns *UserPoolUserPoolAddOns `pulumi:"userPoolAddOns"`
   295  	// Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `aliasAttributes`.
   296  	UsernameAttributes []string `pulumi:"usernameAttributes"`
   297  	// Configuration block for username configuration. Detailed below.
   298  	UsernameConfiguration *UserPoolUsernameConfiguration `pulumi:"usernameConfiguration"`
   299  	// Configuration block for verification message templates. Detailed below.
   300  	VerificationMessageTemplate *UserPoolVerificationMessageTemplate `pulumi:"verificationMessageTemplate"`
   301  }
   302  
   303  type UserPoolState struct {
   304  	// Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.
   305  	AccountRecoverySetting UserPoolAccountRecoverySettingPtrInput
   306  	// Configuration block for creating a new user profile. Detailed below.
   307  	AdminCreateUserConfig UserPoolAdminCreateUserConfigPtrInput
   308  	// Attributes supported as an alias for this user pool. Valid values: `phoneNumber`, `email`, or `preferredUsername`. Conflicts with `usernameAttributes`.
   309  	AliasAttributes pulumi.StringArrayInput
   310  	// ARN of the user pool.
   311  	Arn pulumi.StringPtrInput
   312  	// Attributes to be auto-verified. Valid values: `email`, `phoneNumber`.
   313  	AutoVerifiedAttributes pulumi.StringArrayInput
   314  	// Date the user pool was created.
   315  	CreationDate pulumi.StringPtrInput
   316  	// A custom domain name that you provide to Amazon Cognito. This parameter applies only if you use a custom domain to host the sign-up and sign-in pages for your application. For example: `auth.example.com`.
   317  	CustomDomain pulumi.StringPtrInput
   318  	// When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature. Valid values are `ACTIVE` and `INACTIVE`, Default value is `INACTIVE`.
   319  	DeletionProtection pulumi.StringPtrInput
   320  	// Configuration block for the user pool's device tracking. Detailed below.
   321  	DeviceConfiguration UserPoolDeviceConfigurationPtrInput
   322  	// Holds the domain prefix if the user pool has a domain associated with it.
   323  	Domain pulumi.StringPtrInput
   324  	// Configuration block for configuring email. Detailed below.
   325  	EmailConfiguration UserPoolEmailConfigurationPtrInput
   326  	// String representing the email verification message. Conflicts with `verificationMessageTemplate` configuration block `emailMessage` argument.
   327  	EmailVerificationMessage pulumi.StringPtrInput
   328  	// String representing the email verification subject. Conflicts with `verificationMessageTemplate` configuration block `emailSubject` argument.
   329  	EmailVerificationSubject pulumi.StringPtrInput
   330  	// Endpoint name of the user pool. Example format: `cognito-idp.REGION.amazonaws.com/xxxx_yyyyy`
   331  	Endpoint pulumi.StringPtrInput
   332  	// A number estimating the size of the user pool.
   333  	EstimatedNumberOfUsers pulumi.IntPtrInput
   334  	// Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.
   335  	LambdaConfig UserPoolLambdaConfigPtrInput
   336  	// Date the user pool was last modified.
   337  	LastModifiedDate pulumi.StringPtrInput
   338  	// Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured).
   339  	MfaConfiguration pulumi.StringPtrInput
   340  	// Name of the user pool.
   341  	//
   342  	// The following arguments are optional:
   343  	Name pulumi.StringPtrInput
   344  	// Configuration block for information about the user pool password policy. Detailed below.
   345  	PasswordPolicy UserPoolPasswordPolicyPtrInput
   346  	// Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.
   347  	Schemas UserPoolSchemaArrayInput
   348  	// String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.
   349  	SmsAuthenticationMessage pulumi.StringPtrInput
   350  	// Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection. To force resource recreation after this configuration has been applied, see the `taint` command.
   351  	SmsConfiguration UserPoolSmsConfigurationPtrInput
   352  	// String representing the SMS verification message. Conflicts with `verificationMessageTemplate` configuration block `smsMessage` argument.
   353  	SmsVerificationMessage pulumi.StringPtrInput
   354  	// Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.
   355  	SoftwareTokenMfaConfiguration UserPoolSoftwareTokenMfaConfigurationPtrInput
   356  	// Map of tags to assign to the User Pool. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   357  	Tags pulumi.StringMapInput
   358  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   359  	//
   360  	// Deprecated: Please use `tags` instead.
   361  	TagsAll pulumi.StringMapInput
   362  	// Configuration block for user attribute update settings. Detailed below.
   363  	UserAttributeUpdateSettings UserPoolUserAttributeUpdateSettingsPtrInput
   364  	// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
   365  	UserPoolAddOns UserPoolUserPoolAddOnsPtrInput
   366  	// Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `aliasAttributes`.
   367  	UsernameAttributes pulumi.StringArrayInput
   368  	// Configuration block for username configuration. Detailed below.
   369  	UsernameConfiguration UserPoolUsernameConfigurationPtrInput
   370  	// Configuration block for verification message templates. Detailed below.
   371  	VerificationMessageTemplate UserPoolVerificationMessageTemplatePtrInput
   372  }
   373  
   374  func (UserPoolState) ElementType() reflect.Type {
   375  	return reflect.TypeOf((*userPoolState)(nil)).Elem()
   376  }
   377  
   378  type userPoolArgs struct {
   379  	// Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.
   380  	AccountRecoverySetting *UserPoolAccountRecoverySetting `pulumi:"accountRecoverySetting"`
   381  	// Configuration block for creating a new user profile. Detailed below.
   382  	AdminCreateUserConfig *UserPoolAdminCreateUserConfig `pulumi:"adminCreateUserConfig"`
   383  	// Attributes supported as an alias for this user pool. Valid values: `phoneNumber`, `email`, or `preferredUsername`. Conflicts with `usernameAttributes`.
   384  	AliasAttributes []string `pulumi:"aliasAttributes"`
   385  	// Attributes to be auto-verified. Valid values: `email`, `phoneNumber`.
   386  	AutoVerifiedAttributes []string `pulumi:"autoVerifiedAttributes"`
   387  	// When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature. Valid values are `ACTIVE` and `INACTIVE`, Default value is `INACTIVE`.
   388  	DeletionProtection *string `pulumi:"deletionProtection"`
   389  	// Configuration block for the user pool's device tracking. Detailed below.
   390  	DeviceConfiguration *UserPoolDeviceConfiguration `pulumi:"deviceConfiguration"`
   391  	// Configuration block for configuring email. Detailed below.
   392  	EmailConfiguration *UserPoolEmailConfiguration `pulumi:"emailConfiguration"`
   393  	// String representing the email verification message. Conflicts with `verificationMessageTemplate` configuration block `emailMessage` argument.
   394  	EmailVerificationMessage *string `pulumi:"emailVerificationMessage"`
   395  	// String representing the email verification subject. Conflicts with `verificationMessageTemplate` configuration block `emailSubject` argument.
   396  	EmailVerificationSubject *string `pulumi:"emailVerificationSubject"`
   397  	// Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.
   398  	LambdaConfig *UserPoolLambdaConfig `pulumi:"lambdaConfig"`
   399  	// Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured).
   400  	MfaConfiguration *string `pulumi:"mfaConfiguration"`
   401  	// Name of the user pool.
   402  	//
   403  	// The following arguments are optional:
   404  	Name *string `pulumi:"name"`
   405  	// Configuration block for information about the user pool password policy. Detailed below.
   406  	PasswordPolicy *UserPoolPasswordPolicy `pulumi:"passwordPolicy"`
   407  	// Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.
   408  	Schemas []UserPoolSchema `pulumi:"schemas"`
   409  	// String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.
   410  	SmsAuthenticationMessage *string `pulumi:"smsAuthenticationMessage"`
   411  	// Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection. To force resource recreation after this configuration has been applied, see the `taint` command.
   412  	SmsConfiguration *UserPoolSmsConfiguration `pulumi:"smsConfiguration"`
   413  	// String representing the SMS verification message. Conflicts with `verificationMessageTemplate` configuration block `smsMessage` argument.
   414  	SmsVerificationMessage *string `pulumi:"smsVerificationMessage"`
   415  	// Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.
   416  	SoftwareTokenMfaConfiguration *UserPoolSoftwareTokenMfaConfiguration `pulumi:"softwareTokenMfaConfiguration"`
   417  	// Map of tags to assign to the User Pool. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   418  	Tags map[string]string `pulumi:"tags"`
   419  	// Configuration block for user attribute update settings. Detailed below.
   420  	UserAttributeUpdateSettings *UserPoolUserAttributeUpdateSettings `pulumi:"userAttributeUpdateSettings"`
   421  	// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
   422  	UserPoolAddOns *UserPoolUserPoolAddOns `pulumi:"userPoolAddOns"`
   423  	// Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `aliasAttributes`.
   424  	UsernameAttributes []string `pulumi:"usernameAttributes"`
   425  	// Configuration block for username configuration. Detailed below.
   426  	UsernameConfiguration *UserPoolUsernameConfiguration `pulumi:"usernameConfiguration"`
   427  	// Configuration block for verification message templates. Detailed below.
   428  	VerificationMessageTemplate *UserPoolVerificationMessageTemplate `pulumi:"verificationMessageTemplate"`
   429  }
   430  
   431  // The set of arguments for constructing a UserPool resource.
   432  type UserPoolArgs struct {
   433  	// Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.
   434  	AccountRecoverySetting UserPoolAccountRecoverySettingPtrInput
   435  	// Configuration block for creating a new user profile. Detailed below.
   436  	AdminCreateUserConfig UserPoolAdminCreateUserConfigPtrInput
   437  	// Attributes supported as an alias for this user pool. Valid values: `phoneNumber`, `email`, or `preferredUsername`. Conflicts with `usernameAttributes`.
   438  	AliasAttributes pulumi.StringArrayInput
   439  	// Attributes to be auto-verified. Valid values: `email`, `phoneNumber`.
   440  	AutoVerifiedAttributes pulumi.StringArrayInput
   441  	// When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature. Valid values are `ACTIVE` and `INACTIVE`, Default value is `INACTIVE`.
   442  	DeletionProtection pulumi.StringPtrInput
   443  	// Configuration block for the user pool's device tracking. Detailed below.
   444  	DeviceConfiguration UserPoolDeviceConfigurationPtrInput
   445  	// Configuration block for configuring email. Detailed below.
   446  	EmailConfiguration UserPoolEmailConfigurationPtrInput
   447  	// String representing the email verification message. Conflicts with `verificationMessageTemplate` configuration block `emailMessage` argument.
   448  	EmailVerificationMessage pulumi.StringPtrInput
   449  	// String representing the email verification subject. Conflicts with `verificationMessageTemplate` configuration block `emailSubject` argument.
   450  	EmailVerificationSubject pulumi.StringPtrInput
   451  	// Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.
   452  	LambdaConfig UserPoolLambdaConfigPtrInput
   453  	// Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured).
   454  	MfaConfiguration pulumi.StringPtrInput
   455  	// Name of the user pool.
   456  	//
   457  	// The following arguments are optional:
   458  	Name pulumi.StringPtrInput
   459  	// Configuration block for information about the user pool password policy. Detailed below.
   460  	PasswordPolicy UserPoolPasswordPolicyPtrInput
   461  	// Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.
   462  	Schemas UserPoolSchemaArrayInput
   463  	// String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.
   464  	SmsAuthenticationMessage pulumi.StringPtrInput
   465  	// Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection. To force resource recreation after this configuration has been applied, see the `taint` command.
   466  	SmsConfiguration UserPoolSmsConfigurationPtrInput
   467  	// String representing the SMS verification message. Conflicts with `verificationMessageTemplate` configuration block `smsMessage` argument.
   468  	SmsVerificationMessage pulumi.StringPtrInput
   469  	// Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.
   470  	SoftwareTokenMfaConfiguration UserPoolSoftwareTokenMfaConfigurationPtrInput
   471  	// Map of tags to assign to the User Pool. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   472  	Tags pulumi.StringMapInput
   473  	// Configuration block for user attribute update settings. Detailed below.
   474  	UserAttributeUpdateSettings UserPoolUserAttributeUpdateSettingsPtrInput
   475  	// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
   476  	UserPoolAddOns UserPoolUserPoolAddOnsPtrInput
   477  	// Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `aliasAttributes`.
   478  	UsernameAttributes pulumi.StringArrayInput
   479  	// Configuration block for username configuration. Detailed below.
   480  	UsernameConfiguration UserPoolUsernameConfigurationPtrInput
   481  	// Configuration block for verification message templates. Detailed below.
   482  	VerificationMessageTemplate UserPoolVerificationMessageTemplatePtrInput
   483  }
   484  
   485  func (UserPoolArgs) ElementType() reflect.Type {
   486  	return reflect.TypeOf((*userPoolArgs)(nil)).Elem()
   487  }
   488  
   489  type UserPoolInput interface {
   490  	pulumi.Input
   491  
   492  	ToUserPoolOutput() UserPoolOutput
   493  	ToUserPoolOutputWithContext(ctx context.Context) UserPoolOutput
   494  }
   495  
   496  func (*UserPool) ElementType() reflect.Type {
   497  	return reflect.TypeOf((**UserPool)(nil)).Elem()
   498  }
   499  
   500  func (i *UserPool) ToUserPoolOutput() UserPoolOutput {
   501  	return i.ToUserPoolOutputWithContext(context.Background())
   502  }
   503  
   504  func (i *UserPool) ToUserPoolOutputWithContext(ctx context.Context) UserPoolOutput {
   505  	return pulumi.ToOutputWithContext(ctx, i).(UserPoolOutput)
   506  }
   507  
   508  // UserPoolArrayInput is an input type that accepts UserPoolArray and UserPoolArrayOutput values.
   509  // You can construct a concrete instance of `UserPoolArrayInput` via:
   510  //
   511  //	UserPoolArray{ UserPoolArgs{...} }
   512  type UserPoolArrayInput interface {
   513  	pulumi.Input
   514  
   515  	ToUserPoolArrayOutput() UserPoolArrayOutput
   516  	ToUserPoolArrayOutputWithContext(context.Context) UserPoolArrayOutput
   517  }
   518  
   519  type UserPoolArray []UserPoolInput
   520  
   521  func (UserPoolArray) ElementType() reflect.Type {
   522  	return reflect.TypeOf((*[]*UserPool)(nil)).Elem()
   523  }
   524  
   525  func (i UserPoolArray) ToUserPoolArrayOutput() UserPoolArrayOutput {
   526  	return i.ToUserPoolArrayOutputWithContext(context.Background())
   527  }
   528  
   529  func (i UserPoolArray) ToUserPoolArrayOutputWithContext(ctx context.Context) UserPoolArrayOutput {
   530  	return pulumi.ToOutputWithContext(ctx, i).(UserPoolArrayOutput)
   531  }
   532  
   533  // UserPoolMapInput is an input type that accepts UserPoolMap and UserPoolMapOutput values.
   534  // You can construct a concrete instance of `UserPoolMapInput` via:
   535  //
   536  //	UserPoolMap{ "key": UserPoolArgs{...} }
   537  type UserPoolMapInput interface {
   538  	pulumi.Input
   539  
   540  	ToUserPoolMapOutput() UserPoolMapOutput
   541  	ToUserPoolMapOutputWithContext(context.Context) UserPoolMapOutput
   542  }
   543  
   544  type UserPoolMap map[string]UserPoolInput
   545  
   546  func (UserPoolMap) ElementType() reflect.Type {
   547  	return reflect.TypeOf((*map[string]*UserPool)(nil)).Elem()
   548  }
   549  
   550  func (i UserPoolMap) ToUserPoolMapOutput() UserPoolMapOutput {
   551  	return i.ToUserPoolMapOutputWithContext(context.Background())
   552  }
   553  
   554  func (i UserPoolMap) ToUserPoolMapOutputWithContext(ctx context.Context) UserPoolMapOutput {
   555  	return pulumi.ToOutputWithContext(ctx, i).(UserPoolMapOutput)
   556  }
   557  
   558  type UserPoolOutput struct{ *pulumi.OutputState }
   559  
   560  func (UserPoolOutput) ElementType() reflect.Type {
   561  	return reflect.TypeOf((**UserPool)(nil)).Elem()
   562  }
   563  
   564  func (o UserPoolOutput) ToUserPoolOutput() UserPoolOutput {
   565  	return o
   566  }
   567  
   568  func (o UserPoolOutput) ToUserPoolOutputWithContext(ctx context.Context) UserPoolOutput {
   569  	return o
   570  }
   571  
   572  // Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.
   573  func (o UserPoolOutput) AccountRecoverySetting() UserPoolAccountRecoverySettingPtrOutput {
   574  	return o.ApplyT(func(v *UserPool) UserPoolAccountRecoverySettingPtrOutput { return v.AccountRecoverySetting }).(UserPoolAccountRecoverySettingPtrOutput)
   575  }
   576  
   577  // Configuration block for creating a new user profile. Detailed below.
   578  func (o UserPoolOutput) AdminCreateUserConfig() UserPoolAdminCreateUserConfigOutput {
   579  	return o.ApplyT(func(v *UserPool) UserPoolAdminCreateUserConfigOutput { return v.AdminCreateUserConfig }).(UserPoolAdminCreateUserConfigOutput)
   580  }
   581  
   582  // Attributes supported as an alias for this user pool. Valid values: `phoneNumber`, `email`, or `preferredUsername`. Conflicts with `usernameAttributes`.
   583  func (o UserPoolOutput) AliasAttributes() pulumi.StringArrayOutput {
   584  	return o.ApplyT(func(v *UserPool) pulumi.StringArrayOutput { return v.AliasAttributes }).(pulumi.StringArrayOutput)
   585  }
   586  
   587  // ARN of the user pool.
   588  func (o UserPoolOutput) Arn() pulumi.StringOutput {
   589  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   590  }
   591  
   592  // Attributes to be auto-verified. Valid values: `email`, `phoneNumber`.
   593  func (o UserPoolOutput) AutoVerifiedAttributes() pulumi.StringArrayOutput {
   594  	return o.ApplyT(func(v *UserPool) pulumi.StringArrayOutput { return v.AutoVerifiedAttributes }).(pulumi.StringArrayOutput)
   595  }
   596  
   597  // Date the user pool was created.
   598  func (o UserPoolOutput) CreationDate() pulumi.StringOutput {
   599  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.CreationDate }).(pulumi.StringOutput)
   600  }
   601  
   602  // A custom domain name that you provide to Amazon Cognito. This parameter applies only if you use a custom domain to host the sign-up and sign-in pages for your application. For example: `auth.example.com`.
   603  func (o UserPoolOutput) CustomDomain() pulumi.StringOutput {
   604  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.CustomDomain }).(pulumi.StringOutput)
   605  }
   606  
   607  // When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature. Valid values are `ACTIVE` and `INACTIVE`, Default value is `INACTIVE`.
   608  func (o UserPoolOutput) DeletionProtection() pulumi.StringPtrOutput {
   609  	return o.ApplyT(func(v *UserPool) pulumi.StringPtrOutput { return v.DeletionProtection }).(pulumi.StringPtrOutput)
   610  }
   611  
   612  // Configuration block for the user pool's device tracking. Detailed below.
   613  func (o UserPoolOutput) DeviceConfiguration() UserPoolDeviceConfigurationPtrOutput {
   614  	return o.ApplyT(func(v *UserPool) UserPoolDeviceConfigurationPtrOutput { return v.DeviceConfiguration }).(UserPoolDeviceConfigurationPtrOutput)
   615  }
   616  
   617  // Holds the domain prefix if the user pool has a domain associated with it.
   618  func (o UserPoolOutput) Domain() pulumi.StringOutput {
   619  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.Domain }).(pulumi.StringOutput)
   620  }
   621  
   622  // Configuration block for configuring email. Detailed below.
   623  func (o UserPoolOutput) EmailConfiguration() UserPoolEmailConfigurationPtrOutput {
   624  	return o.ApplyT(func(v *UserPool) UserPoolEmailConfigurationPtrOutput { return v.EmailConfiguration }).(UserPoolEmailConfigurationPtrOutput)
   625  }
   626  
   627  // String representing the email verification message. Conflicts with `verificationMessageTemplate` configuration block `emailMessage` argument.
   628  func (o UserPoolOutput) EmailVerificationMessage() pulumi.StringOutput {
   629  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.EmailVerificationMessage }).(pulumi.StringOutput)
   630  }
   631  
   632  // String representing the email verification subject. Conflicts with `verificationMessageTemplate` configuration block `emailSubject` argument.
   633  func (o UserPoolOutput) EmailVerificationSubject() pulumi.StringOutput {
   634  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.EmailVerificationSubject }).(pulumi.StringOutput)
   635  }
   636  
   637  // Endpoint name of the user pool. Example format: `cognito-idp.REGION.amazonaws.com/xxxx_yyyyy`
   638  func (o UserPoolOutput) Endpoint() pulumi.StringOutput {
   639  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
   640  }
   641  
   642  // A number estimating the size of the user pool.
   643  func (o UserPoolOutput) EstimatedNumberOfUsers() pulumi.IntOutput {
   644  	return o.ApplyT(func(v *UserPool) pulumi.IntOutput { return v.EstimatedNumberOfUsers }).(pulumi.IntOutput)
   645  }
   646  
   647  // Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.
   648  func (o UserPoolOutput) LambdaConfig() UserPoolLambdaConfigPtrOutput {
   649  	return o.ApplyT(func(v *UserPool) UserPoolLambdaConfigPtrOutput { return v.LambdaConfig }).(UserPoolLambdaConfigPtrOutput)
   650  }
   651  
   652  // Date the user pool was last modified.
   653  func (o UserPoolOutput) LastModifiedDate() pulumi.StringOutput {
   654  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.LastModifiedDate }).(pulumi.StringOutput)
   655  }
   656  
   657  // Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `smsConfiguration` or `softwareTokenMfaConfiguration` to be configured).
   658  func (o UserPoolOutput) MfaConfiguration() pulumi.StringPtrOutput {
   659  	return o.ApplyT(func(v *UserPool) pulumi.StringPtrOutput { return v.MfaConfiguration }).(pulumi.StringPtrOutput)
   660  }
   661  
   662  // Name of the user pool.
   663  //
   664  // The following arguments are optional:
   665  func (o UserPoolOutput) Name() pulumi.StringOutput {
   666  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   667  }
   668  
   669  // Configuration block for information about the user pool password policy. Detailed below.
   670  func (o UserPoolOutput) PasswordPolicy() UserPoolPasswordPolicyOutput {
   671  	return o.ApplyT(func(v *UserPool) UserPoolPasswordPolicyOutput { return v.PasswordPolicy }).(UserPoolPasswordPolicyOutput)
   672  }
   673  
   674  // Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.
   675  func (o UserPoolOutput) Schemas() UserPoolSchemaArrayOutput {
   676  	return o.ApplyT(func(v *UserPool) UserPoolSchemaArrayOutput { return v.Schemas }).(UserPoolSchemaArrayOutput)
   677  }
   678  
   679  // String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.
   680  func (o UserPoolOutput) SmsAuthenticationMessage() pulumi.StringPtrOutput {
   681  	return o.ApplyT(func(v *UserPool) pulumi.StringPtrOutput { return v.SmsAuthenticationMessage }).(pulumi.StringPtrOutput)
   682  }
   683  
   684  // Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection. To force resource recreation after this configuration has been applied, see the `taint` command.
   685  func (o UserPoolOutput) SmsConfiguration() UserPoolSmsConfigurationOutput {
   686  	return o.ApplyT(func(v *UserPool) UserPoolSmsConfigurationOutput { return v.SmsConfiguration }).(UserPoolSmsConfigurationOutput)
   687  }
   688  
   689  // String representing the SMS verification message. Conflicts with `verificationMessageTemplate` configuration block `smsMessage` argument.
   690  func (o UserPoolOutput) SmsVerificationMessage() pulumi.StringOutput {
   691  	return o.ApplyT(func(v *UserPool) pulumi.StringOutput { return v.SmsVerificationMessage }).(pulumi.StringOutput)
   692  }
   693  
   694  // Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.
   695  func (o UserPoolOutput) SoftwareTokenMfaConfiguration() UserPoolSoftwareTokenMfaConfigurationPtrOutput {
   696  	return o.ApplyT(func(v *UserPool) UserPoolSoftwareTokenMfaConfigurationPtrOutput {
   697  		return v.SoftwareTokenMfaConfiguration
   698  	}).(UserPoolSoftwareTokenMfaConfigurationPtrOutput)
   699  }
   700  
   701  // Map of tags to assign to the User Pool. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   702  func (o UserPoolOutput) Tags() pulumi.StringMapOutput {
   703  	return o.ApplyT(func(v *UserPool) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   704  }
   705  
   706  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   707  //
   708  // Deprecated: Please use `tags` instead.
   709  func (o UserPoolOutput) TagsAll() pulumi.StringMapOutput {
   710  	return o.ApplyT(func(v *UserPool) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   711  }
   712  
   713  // Configuration block for user attribute update settings. Detailed below.
   714  func (o UserPoolOutput) UserAttributeUpdateSettings() UserPoolUserAttributeUpdateSettingsPtrOutput {
   715  	return o.ApplyT(func(v *UserPool) UserPoolUserAttributeUpdateSettingsPtrOutput { return v.UserAttributeUpdateSettings }).(UserPoolUserAttributeUpdateSettingsPtrOutput)
   716  }
   717  
   718  // Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
   719  func (o UserPoolOutput) UserPoolAddOns() UserPoolUserPoolAddOnsPtrOutput {
   720  	return o.ApplyT(func(v *UserPool) UserPoolUserPoolAddOnsPtrOutput { return v.UserPoolAddOns }).(UserPoolUserPoolAddOnsPtrOutput)
   721  }
   722  
   723  // Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `aliasAttributes`.
   724  func (o UserPoolOutput) UsernameAttributes() pulumi.StringArrayOutput {
   725  	return o.ApplyT(func(v *UserPool) pulumi.StringArrayOutput { return v.UsernameAttributes }).(pulumi.StringArrayOutput)
   726  }
   727  
   728  // Configuration block for username configuration. Detailed below.
   729  func (o UserPoolOutput) UsernameConfiguration() UserPoolUsernameConfigurationPtrOutput {
   730  	return o.ApplyT(func(v *UserPool) UserPoolUsernameConfigurationPtrOutput { return v.UsernameConfiguration }).(UserPoolUsernameConfigurationPtrOutput)
   731  }
   732  
   733  // Configuration block for verification message templates. Detailed below.
   734  func (o UserPoolOutput) VerificationMessageTemplate() UserPoolVerificationMessageTemplateOutput {
   735  	return o.ApplyT(func(v *UserPool) UserPoolVerificationMessageTemplateOutput { return v.VerificationMessageTemplate }).(UserPoolVerificationMessageTemplateOutput)
   736  }
   737  
   738  type UserPoolArrayOutput struct{ *pulumi.OutputState }
   739  
   740  func (UserPoolArrayOutput) ElementType() reflect.Type {
   741  	return reflect.TypeOf((*[]*UserPool)(nil)).Elem()
   742  }
   743  
   744  func (o UserPoolArrayOutput) ToUserPoolArrayOutput() UserPoolArrayOutput {
   745  	return o
   746  }
   747  
   748  func (o UserPoolArrayOutput) ToUserPoolArrayOutputWithContext(ctx context.Context) UserPoolArrayOutput {
   749  	return o
   750  }
   751  
   752  func (o UserPoolArrayOutput) Index(i pulumi.IntInput) UserPoolOutput {
   753  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserPool {
   754  		return vs[0].([]*UserPool)[vs[1].(int)]
   755  	}).(UserPoolOutput)
   756  }
   757  
   758  type UserPoolMapOutput struct{ *pulumi.OutputState }
   759  
   760  func (UserPoolMapOutput) ElementType() reflect.Type {
   761  	return reflect.TypeOf((*map[string]*UserPool)(nil)).Elem()
   762  }
   763  
   764  func (o UserPoolMapOutput) ToUserPoolMapOutput() UserPoolMapOutput {
   765  	return o
   766  }
   767  
   768  func (o UserPoolMapOutput) ToUserPoolMapOutputWithContext(ctx context.Context) UserPoolMapOutput {
   769  	return o
   770  }
   771  
   772  func (o UserPoolMapOutput) MapIndex(k pulumi.StringInput) UserPoolOutput {
   773  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserPool {
   774  		return vs[0].(map[string]*UserPool)[vs[1].(string)]
   775  	}).(UserPoolOutput)
   776  }
   777  
   778  func init() {
   779  	pulumi.RegisterInputType(reflect.TypeOf((*UserPoolInput)(nil)).Elem(), &UserPool{})
   780  	pulumi.RegisterInputType(reflect.TypeOf((*UserPoolArrayInput)(nil)).Elem(), UserPoolArray{})
   781  	pulumi.RegisterInputType(reflect.TypeOf((*UserPoolMapInput)(nil)).Elem(), UserPoolMap{})
   782  	pulumi.RegisterOutputType(UserPoolOutput{})
   783  	pulumi.RegisterOutputType(UserPoolArrayOutput{})
   784  	pulumi.RegisterOutputType(UserPoolMapOutput{})
   785  }