variable "name" {
  type        = string
  description = "The name of the user pool."
}

variable "client_name" {
  type        = string
  description = "The name of the client user pool."
}

variable "alias_attributes" {
  type        = set(string)
  description = "Attributes supported as an alias for this user pool. Possible values: 'phone_number', 'email', or 'preferred_username'. Conflicts with username_attributes."
  default     = null
}

variable "domain" {
  description = "Type a domain prefix to use for the sign-up and sign-in pages that are hosted by Amazon Cognito, e.g. 'https://{YOUR_PREFIX}.auth.eu-west-1.amazoncognito.com'. The prefix must be unique across the selected AWS Region. Domain names can only contain lower-case letters, numbers, and hyphens."
  type        = string
  default     = null
}

variable "redirect_url" {
  description = "Redirect URL."
  type        = string
  default     = null
}

variable "account_recovery_mechanisms" {
  type        = any
  description = "A list of recovery_mechanisms which are defined by a `name` and its `priority`. Valid values for `name` are veri  fied_email, verified_phone_number, and admin_only."
  default     = []
}

variable "enable_username_case_sensitivity" {
  type        = bool
  description = "Specifies whether username case sensitivity will be applied for all users in the user pool through Cognito APIs."
  default     = false
}

variable "password_minimum_length" {
  type        = number
  description = "The minimum length of the password policy that you have set."
  default     = 20
}

variable "password_require_lowercase" {
  type        = bool
  description = "Whether you have required users to use at least one lowercase letter in their password."
  default     = true
}

variable "password_require_numbers" {
  type        = bool
  description = "Whether you have required users to use at least one number in their password."
  default     = true
}

variable "password_require_symbols" {
  type        = bool
  description = "Whether you have required users to use at least one symbol in their password."
  default     = true
}

variable "password_require_uppercase" {
  type        = bool
  description = "Whether you have required users to use at least one uppercase letter in their password."
  default     = true
}

variable "temporary_password_validity_days" {
  type        = number
  description = "In the password policy you have set, refers to the number of days a temporary password is valid. If the user does not sign-in during this time, their password will need to be reset by an administrator."
  default     = 1
}

variable "schema_attributes" {
  description = "A list of schema attributes of a user pool. You can add a maximum of 25 custom attributes."
  type        = any
  default     = []
}

variable "tags" {
  type        = map(string)
  description = "A mapping of tags to assign to the resource."
  default     = {}
}

variable "auto_verified_attributes" {
  type        = set(string)
  description = "The attributes to be auto-verified. Possible values: 'email', 'phone_number'."
  default = [
    "email"
  ]
}

variable "lambda_pre_sign_up" {
  type        = string
  description = "The ARN of a pre-registration AWS Lambda trigger."
}

variable "lambda_function_name" {
  description = "Lambda name"
  type        = string
}