main.lock.tf (17 lines of code) (raw):
resource "azurerm_management_lock" "this" {
for_each = local.total_locks
lock_level = each.value.lock.kind
name = coalesce(each.value.lock.name, "lock-${each.value.lock.kind}")
scope = (
each.value.scope_type == local.private_endpoint_scope_type && var.private_endpoints_manage_dns_zone_group ? azurerm_private_endpoint.this_managed_dns_zone_groups[each.value.pe_name].id :
each.value.scope_type == local.private_endpoint_scope_type && var.private_endpoints_manage_dns_zone_group == false ? azurerm_private_endpoint.this_unmanaged_dns_zone_groups[each.value.pe_name].id :
azurerm_cosmosdb_account.this.id
)
notes = each.value.lock.kind == "CanNotDelete" ? "Cannot delete the resource or its child resources." : "Cannot delete or modify the resource or its child resources."
depends_on = [
azurerm_cosmosdb_account.this,
azurerm_monitor_diagnostic_setting.this, azurerm_role_assignment.this,
azurerm_private_endpoint_application_security_group_association.this,
azurerm_private_endpoint.this_managed_dns_zone_groups, azurerm_private_endpoint.this_unmanaged_dns_zone_groups
]
}