variables.tf (133 lines of code) (raw):

variable "virtual_desktop_workspace_location" { type = string description = "(Required) The location/region where the Virtual Desktop Workspace is located. Changing the location/region forces a new resource to be created." nullable = false } variable "virtual_desktop_workspace_name" { type = string description = "(Required) The name of the Virtual Desktop Workspace. Changing this forces a new resource to be created." nullable = false } variable "virtual_desktop_workspace_resource_group_name" { type = string description = "(Required) The name of the resource group in which to create the Virtual Desktop Workspace. Changing this forces a new resource to be created." nullable = false } variable "diagnostic_settings" { type = map(object({ name = optional(string, null) log_categories = optional(set(string), []) log_groups = optional(set(string), ["allLogs"]) metric_categories = optional(set(string), ["AllMetrics"]) log_analytics_destination_type = optional(string, "Dedicated") workspace_resource_id = optional(string, null) storage_account_resource_id = optional(string, null) event_hub_authorization_rule_resource_id = optional(string, null) event_hub_name = optional(string, null) marketplace_partner_resource_id = optional(string, null) })) default = {} description = <<DESCRIPTION A map of diagnostic settings to create on the Key Vault. The map key is deliberately arbitrary to avoid issues where map keys maybe unknown at plan time. - `name` - (Optional) The name of the diagnostic setting. One will be generated if not set, however this will not be unique if you want to create multiple diagnostic setting resources. - `log_categories` - (Optional) A set of log categories to send to the log analytics workspace. Defaults to `[]`. - `log_groups` - (Optional) A set of log groups to send to the log analytics workspace. Defaults to `["allLogs"]`. - `metric_categories` - (Optional) A set of metric categories to send to the log analytics workspace. Defaults to `["AllMetrics"]`. - `log_analytics_destination_type` - (Optional) The destination type for the diagnostic setting. Possible values are `Dedicated` and `AzureDiagnostics`. Defaults to `Dedicated`. - `workspace_resource_id` - (Optional) The resource ID of the log analytics workspace to send logs and metrics to. - `storage_account_resource_id` - (Optional) The resource ID of the storage account to send logs and metrics to. - `event_hub_authorization_rule_resource_id` - (Optional) The resource ID of the event hub authorization rule to send logs and metrics to. - `event_hub_name` - (Optional) The name of the event hub. If none is specified, the default event hub will be selected. - `marketplace_partner_resource_id` - (Optional) The full ARM resource ID of the Marketplace resource to which you would like to send Diagnostic LogsLogs. DESCRIPTION nullable = false validation { condition = alltrue([for _, v in var.diagnostic_settings : contains(["Dedicated", "AzureDiagnostics"], v.log_analytics_destination_type)]) error_message = "Log analytics destination type must be one of: 'Dedicated', 'AzureDiagnostics'." } validation { condition = alltrue( [ for _, v in var.diagnostic_settings : v.workspace_resource_id != null || v.storage_account_resource_id != null || v.event_hub_authorization_rule_resource_id != null || v.marketplace_partner_resource_id != null ] ) error_message = "At least one of `workspace_resource_id`, `storage_account_resource_id`, `marketplace_partner_resource_id`, or `event_hub_authorization_rule_resource_id`, must be set." } } variable "enable_telemetry" { type = bool default = true description = <<DESCRIPTION This variable controls whether or not telemetry is enabled for the module. For more information see https://aka.ms/avm/telemetry. If it is set to false, then no telemetry will be collected. DESCRIPTION } # tflint-ignore: terraform_unused_declarations variable "lock" { type = object({ kind = string name = optional(string, null) }) default = null description = <<DESCRIPTION Controls the Resource Lock configuration for this resource. The following properties can be specified: - `kind` - (Required) The type of lock. Possible values are `\"CanNotDelete\"` and `\"ReadOnly\"`. - `name` - (Optional) The name of the lock. If not specified, a name will be generated based on the `kind` value. Changing this forces the creation of a new resource. DESCRIPTION validation { condition = var.lock != null ? contains(["CanNotDelete", "ReadOnly"], var.lock.kind) : true error_message = "Lock kind must be either `\"CanNotDelete\"` or `\"ReadOnly\"`." } } variable "public_network_access_enabled" { type = bool default = true description = "(Optional) Whether public network access is allowed for this Virtual Desktop Workspace. Defaults to `true`." } # tflint-ignore: terraform_unused_declarations variable "tracing_tags_enabled" { type = bool default = false description = "Whether enable tracing tags that generated by BridgeCrew Yor." nullable = false } # tflint-ignore: terraform_unused_declarations variable "tracing_tags_prefix" { type = string default = "avm_" description = "Default prefix for generated tracing tags" nullable = false } variable "virtual_desktop_workspace_description" { type = string default = null description = "(Optional) A description for the Virtual Desktop Workspace." } variable "virtual_desktop_workspace_friendly_name" { type = string default = null description = "(Optional) A friendly name for the Virtual Desktop Workspace. It can be null or a string between 1 and 64 characters long." validation { condition = var.virtual_desktop_workspace_friendly_name == null || can(regex("^.{1,64}$", var.virtual_desktop_workspace_friendly_name)) error_message = "The friendly name must be null or a string between 1 and 64 characters long." } } variable "virtual_desktop_workspace_tags" { type = map(string) default = null description = "(Optional) A mapping of tags to assign to the resource." } variable "virtual_desktop_workspace_timeouts" { type = object({ create = optional(string) delete = optional(string) read = optional(string) update = optional(string) }) default = null description = <<-EOT - `create` - (Defaults to 60 minutes) Used when creating the Virtual Desktop Workspace. - `delete` - (Defaults to 60 minutes) Used when deleting the Virtual Desktop Workspace. - `read` - (Defaults to 5 minutes) Used when retrieving the Virtual Desktop Workspace. - `update` - (Defaults to 60 minutes) Used when updating the Virtual Desktop Workspace. EOT }