variable "pm_api_url" {
  description = "Proxmox API URL"
  type        = string
  default     = "https://192.168.7.33:8006/api2/json"
}

variable "pm_api_token_id" {
  description = "Proxmox API token ID"
  type        = string
  default     = "root@pam!terraform"
}

variable "pm_api_token_secret" {
  description = "Proxmox API token secret"
  type        = string
  sensitive   = true
}

variable "node" {
  description = "Target PVE node"
  type        = string
  default     = "mk33"
}

variable "vmid_base" {
  description = "Starting VMID for the first VM"
  type        = number
  default     = 3034
}

variable "vm_count" {
  description = "Number of VMs to create"
  type        = number
  default     = 3
}

variable "name_prefix" {
  description = "Hostname prefix for VMs"
  type        = string
  default     = "vm"
}

variable "name_suffixes" {
  description = "Per-VM name suffixes (artemis, jarvis, friday)"
  type        = list(string)
  default     = ["artemis", "jarvis", "friday"]
}

variable "subnet_prefix" {
  description = "First two octets of IPv4"
  type        = string
  default     = "192.168"
}

variable "cores" {
  description = "CPU cores per VM"
  type        = number
  default     = 2
}

variable "memory" {
  description = "RAM in MB per VM"
  type        = number
  default     = 4096
}

variable "disk_size" {
  description = "Disk size in GB"
  type        = number
  default     = 64
}

variable "storage" {
  description = "Storage pool for VM disk"
  type        = string
  default     = "local"
}

variable "bridge" {
  description = "Network bridge"
  type        = string
  default     = "vmbr0"
}

variable "gateway" {
  description = "IPv4 gateway"
  type        = string
  default     = "192.168.18.1"
}

variable "dns_servers" {
  description = "DNS servers"
  type        = list(string)
  default     = ["192.168.7.7", "1.1.1.1"]
}

variable "ssh_key_path" {
  description = "Path to SSH public key for jarvis user"
  type        = string
  default     = "artemis_key.pub"
}

variable "cloud_image_id" {
  description = "Cloud-init image file ID on storage (storage:path)"
  type        = string
  default     = "local:iso/noble-server-cloudimg-amd64.img"
}

variable "cloudinit_storage" {
  description = "Storage pool for cloud-init drive"
  type        = string
  default     = "local"
}

variable "tags" {
  description = "Base tags for all VMs"
  type        = list(string)
  default     = ["terraform", "cloudinit-vm"]
}
