# Variables for VM Deployment Module

variable "resource_group_name" {
  description = "Name of the resource group"
  type        = string
}

variable "location" {
  description = "Azure region"
  type        = string
}

variable "cluster_name" {
  description = "Name of the Besu network cluster"
  type        = string
}

variable "node_type" {
  description = "Type of node (validator, sentry, rpc)"
  type        = string
}

variable "node_count" {
  description = "Number of nodes"
  type        = number
  default     = 1
}

variable "vm_size" {
  description = "VM size"
  type        = string
  default     = "Standard_D4s_v3"
}

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

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

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

variable "subnet_id" {
  description = "Subnet ID for VMs"
  type        = string
}

variable "storage_account_name" {
  description = "Storage account name for boot diagnostics"
  type        = string
}

variable "key_vault_id" {
  description = "Key Vault ID for secrets"
  type        = string
}

variable "genesis_file_path" {
  description = "Path to genesis file in storage"
  type        = string
}

variable "network_security_group_id" {
  description = "Network Security Group ID"
  type        = string
}

variable "tags" {
  description = "Tags for resources"
  type        = map(string)
  default     = {}
}

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

variable "disk_size_gb" {
  description = "Disk size in GB"
  type        = number
  default     = 256
}

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
}

variable "use_phase1_cloud_init" {
  description = "Use Phase 1 cloud-init (includes NVM, Node 22 LTS, JDK 17)"
  type        = bool
  default     = false
}

