113 lines
3.5 KiB
HCL

variable "resource_group_location" {
type = string
default = "East US"
description = "The location where the resource group should be created."
}
variable "prefix" {
type = string
default = "demo"
description = "A prefix for naming resources."
}
variable "vnet_address_space" {
type = list(string)
default = ["10.0.0.0/16"]
description = "Address space for the virtual network."
}
variable "subnet_address_prefixes" {
type = list(string)
default = ["10.0.1.0/24"]
description = "Address prefixes for the subnet."
}
variable "public_ip_allocation_method" {
type = string
default = "Dynamic"
description = "Allocation method for the public IP."
validation {
condition = contains(["Static", "Dynamic"], var.public_ip_allocation_method)
error_message = "The public IP allocation method must be either 'Static' or 'Dynamic'."
}
}
variable "vm_size" {
type = string
default = "Standard_DS1_v2"
description = "Size of the virtual machine."
validation {
condition = contains(["Standard_DS1_v2", "Standard_DS2_v2", "Standard_DS3_v2", "Standard_DS4_v2", "Standard_DS5_v2"], var.vm_size)
error_message = "The VM size must be one of the following: Standard_DS1_v2, Standard_DS2_v2, Standard_DS3_v2, Standard_DS4_v2, Standard_DS5_v2."
}
}
variable "vm_image" {
type = object({
publisher = string
offer = string
sku = string
version = string
})
default = {
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
sku = "2022-datacenter-azure-edition"
version = "latest"
}
description = "Source image reference for the virtual machine."
}
variable "storage_account_tier" {
type = string
default = "Standard"
description = "Performance tier of the storage account."
validation {
condition = contains(["Standard", "Premium", "Standard_GRS", "Standard_RAGRS", "Premium_LRS", "Premium_ZRS"], var.storage_account_tier)
error_message = "The storage account tier must be one of the following: Standard, Premium, Standard_GRS, Standard_RAGRS, Premium_LRS, Premium_ZRS."
}
}
variable "storage_account_replication_type" {
type = string
default = "LRS"
description = "Replication type for the storage account."
validation {
condition = contains(["LRS", "GRS", "RAGRS", "ZRS"], var.storage_account_replication_type)
error_message = "The storage account replication type must be one of the following: LRS, GRS, RAGRS, ZRS."
}
}
variable "automation_account_sku_name" {
type = string
default = "Basic"
description = "SKU name for the Azure Automation Account."
validation {
condition = contains(["Free", "Basic", "Standard"], var.automation_account_sku_name)
error_message = "The automation account SKU name must be one of the following: Free, Basic, Standard."
}
}
variable "runbook_type" {
type = string
default = "PowerShell"
description = "Type of the runbook."
}
variable "runbook_uri" {
type = string
default = "https://example.com/script.ps1"
description = "URI for the runbook content."
}
variable "one_time_schedule_start_time" {
type = string
default = "2023-09-23T00:00:00Z"
description = "Start time for the one-time runbook schedule."
}
variable "hourly_schedule_start_time" {
type = string
default = "2023-09-23T01:00:00Z"
description = "Start time for the hourly runbook schedule."
}