# Variables for Budget Module

variable "subscription_id" {
  description = "Azure subscription ID"
  type        = string
}

variable "budget_name" {
  description = "Name of the budget"
  type        = string
}

variable "amount" {
  description = "Budget amount"
  type        = number
}

variable "time_grain" {
  description = "Time grain (Monthly, Quarterly, Annually)"
  type        = string
  default     = "Monthly"
  validation {
    condition     = contains(["Monthly", "Quarterly", "Annually"], var.time_grain)
    error_message = "Time grain must be one of: Monthly, Quarterly, Annually"
  }
}

variable "start_date" {
  description = "Budget start date (ISO 8601 format)"
  type        = string
}

variable "end_date" {
  description = "Budget end date (ISO 8601 format)"
  type        = string
}

variable "notification_thresholds" {
  description = "List of notification thresholds (0-100)"
  type        = list(number)
  default     = [50, 80, 100]
  validation {
    condition     = alltrue([for t in var.notification_thresholds : t >= 0 && t <= 100])
    error_message = "Notification thresholds must be between 0 and 100"
  }
}

variable "contact_emails" {
  description = "List of email addresses for notifications"
  type        = list(string)
  default     = []
}

variable "contact_roles" {
  description = "List of contact roles for notifications"
  type        = list(string)
  default     = ["Owner", "Contributor"]
}

