# Variables for VM Deployment

variable "vm_deployment_enabled" {
  description = "Enable VM deployment (alternative to AKS)"
  type        = bool
  default     = false
}

variable "vm_regions" {
  description = "Azure regions for VM deployment"
  type        = list(string)
  default     = ["eastus", "westus", "westeurope"]
}

variable "validator_vm_count" {
  description = "Number of validator VMs per region"
  type        = number
  default     = 2
}

variable "sentry_vm_count" {
  description = "Number of sentry VMs per region"
  type        = number
  default     = 2
}

variable "rpc_vm_count" {
  description = "Number of RPC VMs per region"
  type        = number
  default     = 2
}

variable "use_vmss" {
  description = "Use VM Scale Sets instead of individual VMs"
  type        = bool
  default     = false
}

variable "ssh_public_key" {
  description = "SSH public key for VM access"
  type        = string
  default     = ""
  sensitive   = true
}

variable "vm_size_validator" {
  description = "VM size for validators"
  type        = string
  default     = "Standard_D4s_v3"
}

variable "vm_size_sentry" {
  description = "VM size for sentries"
  type        = string
  default     = "Standard_D4s_v3"
}

variable "vm_size_rpc" {
  description = "VM size for RPC nodes"
  type        = string
  default     = "Standard_D8s_v3"
}

variable "vm_admin_username" {
  description = "Admin username for VMs"
  type        = string
  default     = "besuadmin"
}

variable "vm_disk_size_validator" {
  description = "Disk size for validator VMs (GB)"
  type        = number
  default     = 512
}

variable "vm_disk_size_sentry" {
  description = "Disk size for sentry VMs (GB)"
  type        = number
  default     = 256
}

variable "vm_disk_size_rpc" {
  description = "Disk size for RPC VMs (GB)"
  type        = number
  default     = 256
}

variable "vm_storage_account_type" {
  description = "Storage account type for VM disks"
  type        = string
  default     = "Premium_LRS"
}

variable "vm_enable_boot_diagnostics" {
  description = "Enable boot diagnostics for VMs"
  type        = bool
  default     = true
}

variable "vm_enable_managed_identity" {
  description = "Enable Managed Identity for VMs"
  type        = bool
  default     = true
}

