variable "aws_region" {
  type        = string
  default     = ""
  description = "AWS Region"
}

variable "client_name" {
  type        = string
  default     = ""
  description = "Client name used as a resource name prefix"
}

variable "stage" {
  type        = string
  default     = ""
  description = "Environment stage (e.g. poc, staging, prod)"
}

variable "security_contact_info" {
  type = object({
    name  = string
    title = string
    email = string
    phone = string
    type  = string
  })
  description = "AWS account security contact"
}

variable "operations_contact_info" {
  type = object({
    name  = string
    title = string
    email = string
    phone = string
    type  = string
  })
  description = "AWS account operations contact"
}

variable "billing_contact_info" {
  type = object({
    name  = string
    title = string
    email = string
    phone = string
    type  = string
  })
  description = "AWS account billing contact"
}

variable "monthly_budget_limit_amount" {
  type        = string
  default     = ""
  description = "Monthly budget limit in USD"
}

variable "budget_alerts_subscriber_emails" {
  type        = list(string)
  default     = []
  description = "Email addresses for budget threshold alerts"
}

variable "budgets_escalations_emails" {
  type        = list(string)
  default     = []
  description = "Email addresses for budget escalation alerts"
}

variable "budgets_monitor_emails" {
  type        = list(string)
  default     = []
  description = "Email addresses for budget monitoring alerts"
}

variable "sns_technical_alerts_emails" {
  type        = string
  default     = ""
  description = "Email address for SNS technical alerts (RDS, cache events)"
}

variable "vpc_name" {
  type    = string
  default = ""
}

variable "cidr" {
  type    = string
  default = ""
}

variable "azs" {
  type    = list(string)
  default = []
}

variable "public_subnets" {
  type    = list(string)
  default = []
}

variable "private_subnets" {
  type    = list(string)
  default = []
}

variable "database_subnets" {
  type    = list(string)
  default = []
}

variable "enable_nat_gateway" {
  type    = bool
  default = true
}

variable "single_nat_gateway" {
  type    = bool
  default = true
}

variable "enable_dns_hostname" {
  type    = bool
  default = true
}

variable "enable_dns_support" {
  type    = bool
  default = true
}

variable "create_database_subnet_group" {
  type    = bool
  default = false
}

variable "peer_owner_id" {
  type    = string
  default = ""
}

variable "peer_vpc_id" {
  type    = string
  default = ""
}

variable "alb_internal_name" {
  type    = string
  default = ""
}

variable "alb_internal" {
  type    = bool
  default = true
}

variable "alb_internal_preserve_host_header" {
  type    = bool
  default = true
}

variable "public_aliases" {
  type    = list(string)
  default = []
}

variable "private_dns" {
  type    = string
  default = "local"
}

variable "public_dns" {
  type    = string
  default = ""
}

# variable "github_actions_thumbprint_list" {
#   type        = list(string)
#   description = "GitHub Actions OIDC provider server certificate thumbprints"
# }
