# locals ===================================================================== locals { # Module-level tags stamped on every OU, merged with per-OU tags. # Precedence: module defaults < per-OU tags module_tags = { ManagedBy = "terraform" Module = "governance/ou" } ou_tags = { for ou_key, ou in var.organizational_units : ou_key => merge(local.module_tags, ou.tags) } # OUs separated by level for hierarchical creation order. level1_ous = { for ou_key, ou in var.organizational_units : ou_key => ou if ou.parent_key == "root" } level2_ous = { for ou_key, ou in var.organizational_units : ou_key => ou if ou.parent_key != "root" && contains(keys(local.level1_ous), ou.parent_key) } level3_ous = { for ou_key, ou in var.organizational_units : ou_key => ou if ou.parent_key != "root" && !contains(keys(local.level1_ous), ou.parent_key) } }