variable "aws_region" {
  type        = string
  description = "AWS region used for Aether lab resources."
  default     = "us-east-1"
}

variable "aws_profile" {
  type        = string
  description = "Optional AWS CLI profile name for the target account."
  default     = null
}

variable "allowed_account_ids" {
  type        = list(string)
  description = "Optional allow-list for the AWS account IDs Terraform may touch."
  default     = []
}

variable "name_prefix" {
  type        = string
  description = "Short name used as the prefix for Aether resources."
  default     = "aether"

  validation {
    condition     = can(regex("^[a-z][a-z0-9-]{1,30}[a-z0-9]$", var.name_prefix))
    error_message = "name_prefix must be lowercase kebab-case and start/end with an alphanumeric character."
  }
}

variable "environment" {
  type        = string
  description = "Aether environment name."
  default     = "lab"

  validation {
    condition     = contains(["lab", "sandbox", "test"], var.environment)
    error_message = "environment must be one of: lab, sandbox, test."
  }
}

variable "enable_budget" {
  type        = bool
  description = "Create a small AWS Budget for the account."
  default     = false
}

variable "monthly_budget_usd" {
  type        = number
  description = "Monthly budget amount when enable_budget is true."
  default     = 1

  validation {
    condition     = var.monthly_budget_usd >= 1 && var.monthly_budget_usd <= 25
    error_message = "monthly_budget_usd must stay between 1 and 25 for the Aether lab."
  }
}

variable "budget_alert_email" {
  type        = string
  description = "Optional email subscriber for AWS Budget notifications."
  default     = null
}

variable "permit_paid_resources" {
  type        = bool
  description = "Set true before enabling any resource that can create AWS spend."
  default     = false
}

variable "enable_external_backup_bucket" {
  type        = bool
  description = "Create a versioned S3 bucket for small Atlas offsite backup tests."
  default     = false
}
