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
|
# locals =====================================================================
data "aws_availability_zones" "available" { state = "available" }
locals {
region_abbr = split("-", data.aws_availability_zones.available.zone_ids[0])[0]
module_tags = {
managed-by = "terraform"
module-name = "networking:nacl"
}
# Flatten all ingress rules across all NACLs into a list of {nacl_key, rule}
ingress_rules = flatten([
for nacl_key, nacl in var.network_acls : [
for rule in nacl.ingress_rules : {
nacl_key = nacl_key
rule = rule
}
]
])
# Keyed by "nacl_key-rule_number" — unique and stable across applies
ingress_map = {
for item in local.ingress_rules :
"${item.nacl_key}-${item.rule.rule_number}" => item
}
# Flatten all egress rules across all NACLs into a list of {nacl_key, rule}
egress_rules = flatten([
for nacl_key, nacl in var.network_acls : [
for rule in nacl.egress_rules : {
nacl_key = nacl_key
rule = rule
}
]
])
# Keyed by "nacl_key-rule_number" — unique and stable across applies
egress_map = {
for item in local.egress_rules :
"${item.nacl_key}-${item.rule.rule_number}" => item
}
}
|