variables.tf (194 lines of code) (raw):
variable "domain_name" {
type = string
description = "The name of the private dns zone."
}
# This assumes resource group is already created and its name passed to this module
variable "resource_group_name" {
type = string
description = "The resource group where the resources will be deployed."
}
variable "a_records" {
type = map(object({
name = string
resource_group_name = string
zone_name = string
ttl = number
records = list(string)
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a A record."
}
variable "aaaa_records" {
type = map(object({
name = string
resource_group_name = string
zone_name = string
ttl = number
records = list(string)
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a AAAA record."
}
variable "cname_records" {
type = map(object({
name = string
resource_group_name = string
zone_name = string
ttl = number
record = string
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a CNAME record."
}
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/telemetryinfo.
If it is set to false, then no telemetry will be collected.
DESCRIPTION
}
variable "mx_records" {
type = map(object({
name = optional(string, "@")
resource_group_name = string
zone_name = string
ttl = number
records = map(object({
preference = number
exchange = string
}))
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a MX record."
}
variable "ptr_records" {
type = map(object({
name = string
resource_group_name = string
zone_name = string
ttl = number
records = list(string)
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a PTR record."
}
variable "role_assignments" {
type = map(object({
role_definition_id_or_name = string
principal_id = string
description = optional(string, null)
skip_service_principal_aad_check = optional(bool, false)
condition = optional(string, null)
condition_version = optional(string, null)
delegated_managed_identity_resource_id = optional(string, null)
principal_type = optional(string, null)
}))
default = {}
description = <<DESCRIPTION
A map of role assignments to create on the <RESOURCE>. The map key is deliberately arbitrary to avoid issues where map keys maybe unknown at plan time.
- `role_definition_id_or_name` - The ID or name of the role definition to assign to the principal.
- `principal_id` - The ID of the principal to assign the role to.
- `description` - (Optional) The description of the role assignment.
- `skip_service_principal_aad_check` - (Optional) If set to true, skips the Azure Active Directory check for the service principal in the tenant. Defaults to false.
- `condition` - (Optional) The condition which will be used to scope the role assignment.
- `condition_version` - (Optional) The version of the condition syntax. Leave as `null` if you are not using a condition, if you are then valid values are '2.0'.
- `delegated_managed_identity_resource_id` - (Optional) The delegated Azure Resource Id which contains a Managed Identity. Changing this forces a new resource to be created. This field is only used in cross-tenant scenario.
- `principal_type` - (Optional) The type of the `principal_id`. Possible values are `User`, `Group` and `ServicePrincipal`. It is necessary to explicitly set this attribute when creating role assignments if the principal creating the assignment is constrained by ABAC rules that filters on the PrincipalType attribute.
> Note: only set `skip_service_principal_aad_check` to true if you are assigning a role to a service principal.
DESCRIPTION
nullable = false
}
variable "soa_record" {
type = object({
email = string
expire_time = optional(number, 2419200)
minimum_ttl = optional(number, 10)
refresh_time = optional(number, 3600)
retry_time = optional(number, 300)
ttl = optional(number, 3600)
tags = optional(map(string), null)
})
default = null
description = "optional soa_record variable, if included only email is required, rest are optional. Email must use username.corp.com and not username@corp.com"
}
variable "srv_records" {
type = map(object({
name = string
resource_group_name = string
zone_name = string
ttl = number
records = map(object({
priority = number
weight = number
port = number
target = string
}))
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a SRV record."
}
variable "tags" {
type = map(string)
default = null
description = "(Optional) Tags of the resource."
}
variable "timeouts" {
type = object({
dns_zones = optional(object({
create = optional(string, "30m")
delete = optional(string, "30m")
update = optional(string, "30m")
read = optional(string, "5m")
}), {}
)
vnet_links = optional(object({
create = optional(string, "30m")
delete = optional(string, "30m")
update = optional(string, "30m")
read = optional(string, "5m")
}), {}
)
})
default = {}
description = <<DESCRIPTION
A map of timeouts objects, per resource type, to apply to the creation and destruction of resources the following resources:
- `dns_zones` - (Optional) The timeouts for DNS Zones.
- `vnet_links` - (Optional) The timeouts for DNS Zones Virtual Network Links.
Each timeout object has the following optional attributes:
- `create` - (Optional) The timeout for creating the resource. Defaults to `5m` apart from policy assignments, where this is set to `15m`.
- `delete` - (Optional) The timeout for deleting the resource. Defaults to `5m`.
- `update` - (Optional) The timeout for updating the resource. Defaults to `5m`.
- `read` - (Optional) The timeout for reading the resource. Defaults to `5m`.
DESCRIPTION
}
variable "txt_records" {
type = map(object({
name = string
resource_group_name = string
zone_name = string
ttl = number
records = map(object({
value = string
}))
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a TXT record."
}
variable "virtual_network_links" {
type = map(object({
vnetlinkname = string
vnetid = string
autoregistration = optional(bool, false)
tags = optional(map(string), null)
}))
default = {}
description = "A map of objects where each object contains information to create a virtual network link."
}