local.locks.tf (23 lines of code) (raw):
locals {
account_lock = var.lock != null ? {
(local.account_scope_type) = {
lock = var.lock
scope_type = local.account_scope_type
}
} : {}
filtered_pe_locks = {
for k, v in local.pe_locks :
k => v
if try(v.lock.kind, local.none_lock_kind) != local.none_lock_kind
}
none_lock_kind = "None"
pe_locks = {
for pe_name, pe_params in var.private_endpoints :
"${local.private_endpoint_scope_type}|${pe_name}" => {
pe_name = pe_name
scope_type = local.private_endpoint_scope_type
lock = pe_params.lock != null ? pe_params.lock : var.lock
}
}
total_locks = merge(local.filtered_pe_locks, local.account_lock)
}