main.tf (12 lines of code) (raw):
resource "azurerm_resource_group" "rg" {
for_each = local.resource_groups
location = each.value.location
name = each.value.name
tags = each.value.tags
}
resource "azurerm_management_lock" "rg_lock" {
for_each = { for k, v in local.resource_groups : k => v if v.lock }
lock_level = "CanNotDelete"
name = coalesce(each.value.lock_name, substr("lock-${each.value.name}", 0, 90))
scope = azurerm_resource_group.rg[each.key].id
}