# Variables for Networking-VM 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 cluster"
  type        = string
}

variable "environment" {
  description = "Environment (prod, dev, test, staging)"
  type        = string
}

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

variable "allowed_ssh_ips" {
  description = "List of IP addresses/CIDR blocks allowed for SSH access. If empty, allows from anywhere (not recommended for production)."
  type        = list(string)
  default     = []
}

variable "allowed_rpc_ips" {
  description = "List of IP addresses/CIDR blocks allowed for RPC access (Nginx proxy subnet or Cloudflare Tunnel IPs). If empty, allows from anywhere (not recommended for production)."
  type        = list(string)
  default     = []
}

variable "allowed_p2p_ips" {
  description = "List of IP addresses/CIDR blocks allowed for P2P access. If empty, allows from anywhere (not recommended for production)."
  type        = list(string)
  default     = []
}

variable "allowed_metrics_ips" {
  description = "List of IP addresses/CIDR blocks allowed for metrics access. If empty, allows from anywhere (not recommended for production)."
  type        = list(string)
  default     = []
}

variable "subnet_nsg_enabled" {
  description = "Whether to attach NSG to subnet. Set to false for Nginx proxy subnet (uses NIC-level NSG instead)."
  type        = bool
  default     = true
}

variable "enable_besu_rules" {
  description = "Whether to enable Besu-specific rules (P2P/RPC/Metrics). Set to false for Nginx proxy subnet."
  type        = bool
  default     = true
}

variable "vnet_address_space" {
  description = "Address space for the Virtual Network (e.g., 10.0.0.0/16). Use region-specific ranges if VPN/ExpressRoute will connect regions."
  type        = string
  default     = "10.0.0.0/16"
}

variable "subnet_address_prefix" {
  description = "Address prefix for the VM subnet (e.g., 10.0.1.0/24)"
  type        = string
  default     = "10.0.1.0/24"
}

