1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# Organizational Units (supports upto 3 levels nested OUs) ---------------------
# Level 1 OUs ------------------------------------------------------------------
# Directly under Root. parent_key must be 'root' in the OU definition.
resource "aws_organizations_organizational_unit" "level1" {
for_each = local.level1_ous
name = each.value.name
parent_id = var.root_id
tags = local.ou_tags[each.key]
lifecycle {
prevent_destroy = true
}
}
# Level 2 OUs ------------------------------------------------------------------
# One level below level 1 OUs. parent_key references a key in local.level1_ous.
resource "aws_organizations_organizational_unit" "level2" {
for_each = local.level2_ous
name = each.value.name
parent_id = aws_organizations_organizational_unit.level1[each.value.parent_key].id
tags = local.ou_tags[each.key]
depends_on = [aws_organizations_organizational_unit.level1]
lifecycle {
prevent_destroy = true
}
}
# Level 3 OUs ------------------------------------------------------------------
# One level below level 2 OUs. parent_key references a key in local.level2_ous.
resource "aws_organizations_organizational_unit" "level3" {
for_each = local.level3_ous
name = each.value.name
parent_id = aws_organizations_organizational_unit.level2[each.value.parent_key].id
tags = local.ou_tags[each.key]
depends_on = [aws_organizations_organizational_unit.level2]
lifecycle {
prevent_destroy = true
}
}
|