Forum Discussion
Ganesh1903
Oct 21, 2023Copper Contributor
How to write variables.tf file for nested dynamic blocks with for_each terraform module
resource "azurerm_web_application_firewall_policy" "waf_policy" {
name = var.waf_policy_name
resource_group_name = var.waf_policy_rgname
location = var.waf_policy_location
tags = var.tags
dynamic "custom_rules" {
for_each = var.custom_rules
content {
name = custom_rules.value.name
priority = custom_rules.value.priority
rule_type = custom_rules.value.rule_type
action = custom_rules.value.action
dynamic "match_conditions" {
for_each = custom_rules.value.match_conditions
content {
operator = match_conditions.value.operator
negation_condition = match_conditions.value.negation_condition
match_values = match_conditions.value.match_values
dynamic "match_variables" {
for_each = match_conditions.value.match_variables
content {
variable_name = match_variables.value.variable_name
}
}
}
}
}
}
dynamic "policy_settings" {
for_each = var.policy_settings
content {
enabled = policy_settings.value.enabled
mode = policy_settings.value.mode
request_body_check = policy_settings.value.request_body_check
file_upload_limit_in_mb = policy_settings.value.file_upload_limit_in_mb
max_request_body_size_in_kb = policy_settings.value.max_request_body_size_in_kb
}
}
dynamic "managed_rules" {
for_each = var.managed_rules
content {
dynamic "exclusion" {
for_each = managed_rules.value.exclusion
content {
match_variable = exclusion.value.match_variable
selector = exclusion.value.selector
selector_match_operator = exclusion.value.selector_match_operator
}
}
dynamic "managed_rule_set" {
for_each = managed_rules.value.managed_rule_set
content {
type = managed_rule_set.value.type
version = managed_rule_set.value.version
dynamic "rule_group_override" {
for_each = managed_rule_set.value.rule_group_override
content {
rule_group_name = rule_group_override.value.rule_group_name
dynamic "rule" {
for_each = rule_group_override.value.rule
content {
id = rule.value.id
enabled = rule.value.enabled
action = rule.value.action
}
}
}
}
}
}
}
}
}
No RepliesBe the first to reply