locals.roleassignments.tf (53 lines of code) (raw):
locals {
flatten_pe_role_assignments = flatten([
for pe_name, pe_params in local.normalized_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
}
]
])
flatten_queue_role_assignments = flatten([
for queue_name, queue_params in var.queues : [
for role_key, role_params in queue_params.role_assignments : {
role_key = role_key
queue_name = queue_name
role_params = role_params
scope_type = local.queue_scope_type
}
]
])
flatten_topic_role_assignments = flatten([
for topic_name, topic_params in local.normalized_topics : [
for role_key, role_params in topic_params.role_assignments : {
role_key = role_key
topic_name = topic_name
role_params = role_params
scope_type = local.topic_scope_type
}
]
])
namespace_role_assignments = {
for role_key, role_params in var.role_assignments :
"${local.namespace_scope_type}|${role_key}" => {
role_params = role_params
scope_type = local.namespace_scope_type
}
}
pe_role_assignments = {
for pe_role in local.flatten_pe_role_assignments :
"${pe_role.scope_type}|${pe_role.role_key}" => pe_role
}
queue_role_assignments = {
for queue_role in local.flatten_queue_role_assignments :
"${queue_role.scope_type}|${queue_role.role_key}|${queue_role.queue_name}" => queue_role
}
role_definition_resource_substring = "providers/Microsoft.Authorization/roleDefinitions"
topic_role_assignments = {
for topic_role in local.flatten_topic_role_assignments :
"${topic_role.scope_type}|${topic_role.role_key}|${topic_role.topic_name}" => topic_role
}
total_role_assignments = merge(local.namespace_role_assignments, local.queue_role_assignments, local.topic_role_assignments, local.pe_role_assignments)
}