import * as core from "@terrascript/core"; export interface SmsConfigurationArgs extends core.SchemaArgs { externalId: string | core.StringOut; snsCallerArn: string | core.StringOut; } export class SmsConfiguration extends core.Schema { @core.attr(String) public externalId!: string | core.StringOut; @core.attr(String) public snsCallerArn!: string | core.StringOut; } export interface NumberAttributeConstraintsArgs extends core.SchemaArgs { maxValue?: string | core.StringOut; minValue?: string | core.StringOut; } export class NumberAttributeConstraints extends core.Schema { @core.attr(String) public maxValue?: string | core.StringOut; @core.attr(String) public minValue?: string | core.StringOut; } export interface StringAttributeConstraintsArgs extends core.SchemaArgs { maxLength?: string | core.StringOut; minLength?: string | core.StringOut; } export class StringAttributeConstraints extends core.Schema { @core.attr(String) public maxLength?: string | core.StringOut; @core.attr(String) public minLength?: string | core.StringOut; } export interface SchemaArgs extends core.SchemaArgs { attributeDataType: string | core.StringOut; developerOnlyAttribute?: boolean | core.BooleanOut; mutable?: boolean | core.BooleanOut; name: string | core.StringOut; numberAttributeConstraints?: NumberAttributeConstraints; required?: boolean | core.BooleanOut; stringAttributeConstraints?: StringAttributeConstraints; } export class Schema extends core.Schema { @core.attr(String) public attributeDataType!: string | core.StringOut; @core.attr(Boolean) public developerOnlyAttribute?: boolean | core.BooleanOut; @core.attr(Boolean) public mutable?: boolean | core.BooleanOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(NumberAttributeConstraints) public numberAttributeConstraints?: NumberAttributeConstraints; @core.attr(Boolean) public required?: boolean | core.BooleanOut; @core.attr(StringAttributeConstraints) public stringAttributeConstraints?: StringAttributeConstraints; } export interface PasswordPolicyArgs extends core.SchemaArgs { minimumLength?: number | core.NumberOut; requireLowercase?: boolean | core.BooleanOut; requireNumbers?: boolean | core.BooleanOut; requireSymbols?: boolean | core.BooleanOut; requireUppercase?: boolean | core.BooleanOut; temporaryPasswordValidityDays?: number | core.NumberOut; } export class PasswordPolicy extends core.Schema { @core.attr(Number) public minimumLength?: number | core.NumberOut; @core.attr(Boolean) public requireLowercase?: boolean | core.BooleanOut; @core.attr(Boolean) public requireNumbers?: boolean | core.BooleanOut; @core.attr(Boolean) public requireSymbols?: boolean | core.BooleanOut; @core.attr(Boolean) public requireUppercase?: boolean | core.BooleanOut; @core.attr(Number) public temporaryPasswordValidityDays?: number | core.NumberOut; } export interface EmailConfigurationArgs extends core.SchemaArgs { configurationSet?: string | core.StringOut; emailSendingAccount?: string | core.StringOut; fromEmailAddress?: string | core.StringOut; replyToEmailAddress?: string | core.StringOut; sourceArn?: string | core.StringOut; } export class EmailConfiguration extends core.Schema { @core.attr(String) public configurationSet?: string | core.StringOut; @core.attr(String) public emailSendingAccount?: string | core.StringOut; @core.attr(String) public fromEmailAddress?: string | core.StringOut; @core.attr(String) public replyToEmailAddress?: string | core.StringOut; @core.attr(String) public sourceArn?: string | core.StringOut; } export interface DeviceConfigurationArgs extends core.SchemaArgs { challengeRequiredOnNewDevice?: boolean | core.BooleanOut; deviceOnlyRememberedOnUserPrompt?: boolean | core.BooleanOut; } export class DeviceConfiguration extends core.Schema { @core.attr(Boolean) public challengeRequiredOnNewDevice?: boolean | core.BooleanOut; @core.attr(Boolean) public deviceOnlyRememberedOnUserPrompt?: boolean | core.BooleanOut; } export interface UserPoolAddOnsArgs extends core.SchemaArgs { advancedSecurityMode: string | core.StringOut; } export class UserPoolAddOns extends core.Schema { @core.attr(String) public advancedSecurityMode!: string | core.StringOut; } export interface InviteMessageTemplateArgs extends core.SchemaArgs { emailMessage?: string | core.StringOut; emailSubject?: string | core.StringOut; smsMessage?: string | core.StringOut; } export class InviteMessageTemplate extends core.Schema { @core.attr(String) public emailMessage?: string | core.StringOut; @core.attr(String) public emailSubject?: string | core.StringOut; @core.attr(String) public smsMessage?: string | core.StringOut; } export interface AdminCreateUserConfigArgs extends core.SchemaArgs { allowAdminCreateUserOnly?: boolean | core.BooleanOut; inviteMessageTemplate?: InviteMessageTemplate; } export class AdminCreateUserConfig extends core.Schema { @core.attr(Boolean) public allowAdminCreateUserOnly?: boolean | core.BooleanOut; @core.attr(InviteMessageTemplate) public inviteMessageTemplate?: InviteMessageTemplate; } export interface UsernameConfigurationArgs extends core.SchemaArgs { caseSensitive: boolean | core.BooleanOut; } export class UsernameConfiguration extends core.Schema { @core.attr(Boolean) public caseSensitive!: boolean | core.BooleanOut; } export interface CustomSmsSenderArgs extends core.SchemaArgs { lambdaArn: string | core.StringOut; lambdaVersion: string | core.StringOut; } export class CustomSmsSender extends core.Schema { @core.attr(String) public lambdaArn!: string | core.StringOut; @core.attr(String) public lambdaVersion!: string | core.StringOut; } export interface CustomEmailSenderArgs extends core.SchemaArgs { lambdaArn: string | core.StringOut; lambdaVersion: string | core.StringOut; } export class CustomEmailSender extends core.Schema { @core.attr(String) public lambdaArn!: string | core.StringOut; @core.attr(String) public lambdaVersion!: string | core.StringOut; } export interface LambdaConfigArgs extends core.SchemaArgs { createAuthChallenge?: string | core.StringOut; customEmailSender?: CustomEmailSender; customMessage?: string | core.StringOut; customSmsSender?: CustomSmsSender; defineAuthChallenge?: string | core.StringOut; kmsKeyId?: string | core.StringOut; postAuthentication?: string | core.StringOut; postConfirmation?: string | core.StringOut; preAuthentication?: string | core.StringOut; preSignUp?: string | core.StringOut; preTokenGeneration?: string | core.StringOut; userMigration?: string | core.StringOut; verifyAuthChallengeResponse?: string | core.StringOut; } export class LambdaConfig extends core.Schema { @core.attr(String) public createAuthChallenge?: string | core.StringOut; @core.attr(CustomEmailSender, { computed: true }) public customEmailSender?: CustomEmailSender; @core.attr(String) public customMessage?: string | core.StringOut; @core.attr(CustomSmsSender, { computed: true }) public customSmsSender?: CustomSmsSender; @core.attr(String) public defineAuthChallenge?: string | core.StringOut; @core.attr(String) public kmsKeyId?: string | core.StringOut; @core.attr(String) public postAuthentication?: string | core.StringOut; @core.attr(String) public postConfirmation?: string | core.StringOut; @core.attr(String) public preAuthentication?: string | core.StringOut; @core.attr(String) public preSignUp?: string | core.StringOut; @core.attr(String) public preTokenGeneration?: string | core.StringOut; @core.attr(String) public userMigration?: string | core.StringOut; @core.attr(String) public verifyAuthChallengeResponse?: string | core.StringOut; } export interface VerificationMessageTemplateArgs extends core.SchemaArgs { defaultEmailOption?: string | core.StringOut; emailMessage?: string | core.StringOut; emailMessageByLink?: string | core.StringOut; emailSubject?: string | core.StringOut; emailSubjectByLink?: string | core.StringOut; smsMessage?: string | core.StringOut; } export class VerificationMessageTemplate extends core.Schema { @core.attr(String) public defaultEmailOption?: string | core.StringOut; @core.attr(String, { computed: true }) public emailMessage?: string | core.StringOut; @core.attr(String, { computed: true }) public emailMessageByLink?: string | core.StringOut; @core.attr(String, { computed: true }) public emailSubject?: string | core.StringOut; @core.attr(String, { computed: true }) public emailSubjectByLink?: string | core.StringOut; @core.attr(String, { computed: true }) public smsMessage?: string | core.StringOut; } export interface SoftwareTokenMfaConfigurationArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; } export class SoftwareTokenMfaConfiguration extends core.Schema { @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; } export interface RecoveryMechanismArgs extends core.SchemaArgs { name: string | core.StringOut; priority: number | core.NumberOut; } export class RecoveryMechanism extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(Number) public priority!: number | core.NumberOut; } export interface AccountRecoverySettingArgs extends core.SchemaArgs { recoveryMechanism: | core.Array | core.ArrayOut; } export class AccountRecoverySetting extends core.Schema { @core.attr(RecoveryMechanism, { kind: "array" }) public recoveryMechanism!: | core.Array | core.ArrayOut; } export interface UserPoolArgs extends core.ResourceArgs { accountRecoverySetting?: AccountRecoverySetting; adminCreateUserConfig?: AdminCreateUserConfig; aliasAttributes?: core.Array | core.ArrayOut; autoVerifiedAttributes?: core.Array | core.ArrayOut; deviceConfiguration?: DeviceConfiguration; emailConfiguration?: EmailConfiguration; emailVerificationMessage?: string | core.StringOut; emailVerificationSubject?: string | core.StringOut; lambdaConfig?: LambdaConfig; mfaConfiguration?: string | core.StringOut; name: string | core.StringOut; passwordPolicy?: PasswordPolicy; schema?: core.Array | core.ArrayOut; smsAuthenticationMessage?: string | core.StringOut; smsConfiguration?: SmsConfiguration; smsVerificationMessage?: string | core.StringOut; softwareTokenMfaConfiguration?: SoftwareTokenMfaConfiguration; tags?: core.Map | core.MapOut; tagsAll?: core.Map | core.MapOut; userPoolAddOns?: UserPoolAddOns; usernameAttributes?: core.Array | core.ArrayOut; usernameConfiguration?: UsernameConfiguration; verificationMessageTemplate?: VerificationMessageTemplate; } export class UserPool extends core.Resource { @core.attr(AccountRecoverySetting) public accountRecoverySetting?: AccountRecoverySetting; @core.attr(AdminCreateUserConfig, { computed: true }) public adminCreateUserConfig?: AdminCreateUserConfig; @core.attr(String, { kind: "array" }) public aliasAttributes?: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { kind: "array" }) public autoVerifiedAttributes?: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public creationDate!: string | core.StringOut; @core.attr(String, { computed: true }) public customDomain!: string | core.StringOut; @core.attr(DeviceConfiguration) public deviceConfiguration?: DeviceConfiguration; @core.attr(String, { computed: true }) public domain!: string | core.StringOut; @core.attr(EmailConfiguration) public emailConfiguration?: EmailConfiguration; @core.attr(String, { computed: true }) public emailVerificationMessage?: string | core.StringOut; @core.attr(String, { computed: true }) public emailVerificationSubject?: string | core.StringOut; @core.attr(String, { computed: true }) public endpoint!: string | core.StringOut; @core.attr(Number, { computed: true }) public estimatedNumberOfUsers!: number | core.NumberOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(LambdaConfig) public lambdaConfig?: LambdaConfig; @core.attr(String, { computed: true }) public lastModifiedDate!: string | core.StringOut; @core.attr(String) public mfaConfiguration?: string | core.StringOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(PasswordPolicy, { computed: true }) public passwordPolicy?: PasswordPolicy; @core.attr(Schema, { kind: "array" }) public schema?: core.Array | core.ArrayOut; @core.attr(String) public smsAuthenticationMessage?: string | core.StringOut; @core.attr(SmsConfiguration, { computed: true }) public smsConfiguration?: SmsConfiguration; @core.attr(String, { computed: true }) public smsVerificationMessage?: string | core.StringOut; @core.attr(SoftwareTokenMfaConfiguration) public softwareTokenMfaConfiguration?: SoftwareTokenMfaConfiguration; @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; @core.attr(UserPoolAddOns) public userPoolAddOns?: UserPoolAddOns; @core.attr(String, { kind: "array" }) public usernameAttributes?: | core.Array | core.ArrayOut; @core.attr(UsernameConfiguration) public usernameConfiguration?: UsernameConfiguration; @core.attr(VerificationMessageTemplate, { computed: true }) public verificationMessageTemplate?: VerificationMessageTemplate; constructor(name: string, args?: UserPoolArgs) { super(name, "aws_cognito_user_pool", args); } public override getNamespace(): string { return "aws_cognito"; } }