main.tf (124 lines of code) (raw):

resource "azurerm_dns_zone" "zone" { name = var.name resource_group_name = var.resource_group_name tags = var.tags } resource "azurerm_dns_a_record" "record" { for_each = var.a_records name = each.value.name resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name records = each.value.records tags = lookup(each.value, "tags", null) target_resource_id = each.value.target_resource_id depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_aaaa_record" "record" { for_each = var.aaaa_records name = each.value.name resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name records = each.value.records tags = lookup(each.value, "tags", null) target_resource_id = each.value.target_resource_id depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_caa_record" "record" { for_each = var.caa_records name = each.value.name resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name tags = lookup(each.value, "tags", null) dynamic "record" { for_each = each.value.record content { flags = record.value.flags tag = record.value.tag value = record.value.value } } depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_cname_record" "record" { for_each = var.cname_records name = each.value.name resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name record = each.value.record tags = lookup(each.value, "tags", null) target_resource_id = each.value.target_resource_id depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_mx_record" "record" { for_each = var.mx_records resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name name = each.value.name tags = lookup(each.value, "tags", null) dynamic "record" { for_each = each.value.records content { exchange = record.value.exchange preference = record.value.preference } } depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_ns_record" "record" { for_each = var.ns_records name = each.value.name records = each.value.records resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name tags = lookup(each.value, "tags", null) depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_ptr_record" "record" { for_each = var.ptr_records name = each.value.name records = each.value.records resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name tags = lookup(each.value, "tags", null) depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_srv_record" "record" { for_each = var.srv_records name = each.value.name resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name tags = lookup(each.value, "tags", null) dynamic "record" { for_each = each.value.records content { port = record.value.port priority = record.value.priority target = record.value.target weight = record.value.weight } } depends_on = [azurerm_dns_zone.zone] } resource "azurerm_dns_txt_record" "record" { for_each = var.txt_records name = each.value.name resource_group_name = each.value.resource_group_name ttl = each.value.ttl zone_name = each.value.zone_name tags = lookup(each.value, "tags", null) dynamic "record" { for_each = each.value.records content { value = record.value.value } } depends_on = [azurerm_dns_zone.zone] }