locals.roleassignments.tf (25 lines of code) (raw):

locals { account_role_assignments = { for role_key, role_params in var.role_assignments : "${local.account_scope_type}|${role_key}" => { role_params = role_params scope_type = local.account_scope_type } } flatten_pe_role_assignments = flatten([ for pe_name, pe_params in var.private_endpoints : [ for role_key, role_params in pe_params.role_assignments : { role_key = role_key pe_name = pe_name role_params = role_params scope_type = local.private_endpoint_scope_type } ] ]) pe_role_assignments = { for pe_role in local.flatten_pe_role_assignments : "${pe_role.scope_type}|${pe_role.role_key}" => pe_role } role_definition_resource_substring = "providers/Microsoft.Authorization/roleDefinitions" total_role_assignments = merge(local.account_role_assignments, local.pe_role_assignments) }