For reasons I cannot figure out (I’ve been at this for quite some time), if I try to pass that list to compact(), I get an error:
╷
│ Error: Invalid function argument
│
│ on ../../../infra-as-code/modules/access-member-accounts/aws/output.tf line 16, in output "debug":
│ 16: policies_for_this_account = compact(local.policies_for_this_account)
│ ├────────────────
│ │ while calling compact(list)
│ │ local.policies_for_this_account is tuple with 2 elements
│
│ Invalid value for "list" parameter: element 1: string required.
╵
I’ve even tried putting a tolist() in front of it compact(tolist(local…)).
I’m running 1.9. You are correct in the value of local.policies.
This probably won’t mean much but here’s the local definition…
permission_sets_for_this_account = distinct(compact(flatten([for g in keys(var.permission_assignments) : [for ps in keys(coalesce(var.permission_assignments[g].custom, {})) : contains(var.permission_assignments[g].custom[ps], var.account_name) ? ps : null]])))
policies_for_this_account0 = flatten([for ps in local.permission_sets_for_this_account : var.custom_permission_sets[ps].custom_policy_templates])
# I've no idea why I cannot use the compact() function here, but evidently I can't
policies_for_this_account = [for i in local.policies_for_this_account0 : i if i != null]