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." }