variable "environment" {
  default = "dev"
}

variable "service_name" {
  default = "terraform-chef-bootstrap"
}

variable "ssh_keypair_name" {
  description = "Name of existing AWS SSH keypair"
  default     = "dev_orchard_admin"
}

variable "ssh_ingress_cidr_blocks" {
  description = "CIDR blocks from which to allow SSH"
  type        = list(string)

  default = [
    "192.168.32.0/24",
  ]
}

variable "platforms_to_test" {
  description = "Map of platforms to test"
  type = map(object({
    ami = object({
      owner        = string
      name         = optional(string)
      product-code = optional(string)
    })
    instance_type = string
  }))
  default = {
    debian12-amd64 = {
      ami = {
        owner = "086679231553"
        name  = "debian-12-amd64-*"
      }
      instance_type = "t3a.micro"
    }
    debian13-amd64 = {
      ami = {
        owner = "086679231553"
        name  = "debian-13-amd64-*"
      }
      instance_type = "t3a.micro"
    }
    debian13-arm64 = {
      ami = {
        owner = "086679231553"
        name  = "debian-13-arm64-*"
      }
      instance_type = "t4g.micro"
    }
  }
}

variable "block_device_tests_enabled" {
  description = "Enable block device configuration tests (uses larger instance types)"
  type        = bool
  default     = true
}

variable "block_device_test_platforms" {
  description = "Map of platforms for block device testing (requires instance store capable types)"
  type = map(object({
    ami = object({
      owner = string
      name  = string
    })
    instance_type_ebs_only       = string
    instance_type_instance_store = string
  }))
  default = {
    debian13-amd64 = {
      ami = {
        owner = "086679231553"
        name  = "debian-13-amd64-*"
      }
      instance_type_ebs_only       = "t3a.small"
      instance_type_instance_store = "m5d.large" # Has NVMe instance store
    }
    debian13-arm64 = {
      ami = {
        owner = "086679231553"
        name  = "debian-13-arm64-*"
      }
      instance_type_ebs_only       = "t4g.small"
      instance_type_instance_store = "m6gd.large" # Has NVMe instance store (ARM)
    }
  }
}

variable "application_family" {
  description = "The application family of the resource. E.g. data-platform, identity, etc."
  type        = string
  default     = "devops"
}

variable "team_name" {
  description = "The name of the Datadog team responsible for the resource."
  type        = string
  default     = "devops"
}
