variable "env" {
  type = string
}

variable "aws_region" {
  type = string
}

variable "logical_region_name" {
  type = string
}

variable "enable_falco" {
  type        = bool
  default     = true
  description = "Deploy Falco to the regional control-plane EKS cluster."
}

variable "availability_zones" {
  type = list(string)
}

variable "dataplane_zone_names" {
  type = list(string)
}

variable "dataplane_node_zones" {
  type = list(string)
}

variable "o11y_account_id" {
  type = string
}

variable "hosted_zone_name" {
  type = string
}

variable "hosted_zone_id" {
  type = string
}

variable "shoot_hosted_zone_name" {
  type = string
}

variable "shoot_hosted_zone_id" {
  type = string
}

variable "o11y_vpc_id" {
  type = string
}

variable "o11y_vpc_cidr" {
  type = string
}

variable "pca_arn" {
  type = string
}

variable "dataplane_account" {
  type = string
}

variable "vpc" {
  type = object({
    cidr = optional(string, "10.1.0.0/16")
  })
  default = {}
}

variable "eks" {
  type = object({
    k8s_version = optional(string, "1.36")
    node_groups = optional(map(object({
      name                           = string
      ami_type                       = optional(string, "BOTTLEROCKET_x86_64")
      use_name_prefix                = optional(bool, false)
      use_latest_ami_release_version = optional(bool, false)
      instance_types                 = optional(list(string), ["m6i.large"])
      desired_size                   = optional(number, 3)
      min_size                       = optional(number, 1)
      max_size                       = optional(number, 10)
      max_pods_per_node              = optional(number, 100)
      additional_tags                = optional(map(string), {})
      })), {
      worker = {
        name = "worker"
      }
    })
  })
  default = {}
}

variable "byoc_ecr" {
  type = string
}

variable "tenant_ids" {
  type        = list(string)
  default     = []
  description = "TiDB Cloud tenant (org) ids that will be whitelisted for this region via regionWhiteLists at registration time. The list is joined into a comma-separated string and passed through to the global_registration module."
}

variable "o11y_write_nlb" {
  type = string
}

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