modules/rule_collection_groups/main.tf (94 lines of code) (raw):

resource "azurerm_firewall_policy_rule_collection_group" "this" { firewall_policy_id = var.firewall_policy_rule_collection_group_firewall_policy_id name = var.firewall_policy_rule_collection_group_name priority = var.firewall_policy_rule_collection_group_priority dynamic "application_rule_collection" { for_each = var.firewall_policy_rule_collection_group_application_rule_collection == null ? [] : var.firewall_policy_rule_collection_group_application_rule_collection content { action = application_rule_collection.value.action name = application_rule_collection.value.name priority = application_rule_collection.value.priority dynamic "rule" { for_each = application_rule_collection.value.rule content { name = rule.value.name description = rule.value.description destination_addresses = rule.value.destination_addresses destination_fqdn_tags = rule.value.destination_fqdn_tags destination_fqdns = rule.value.destination_fqdns destination_urls = rule.value.destination_urls source_addresses = rule.value.source_addresses source_ip_groups = rule.value.source_ip_groups terminate_tls = rule.value.terminate_tls web_categories = rule.value.web_categories dynamic "http_headers" { for_each = rule.value.http_headers == null ? [] : rule.value.http_headers content { name = http_headers.value.name value = http_headers.value.value } } dynamic "protocols" { for_each = rule.value.protocols == null ? [] : rule.value.protocols content { port = protocols.value.port type = protocols.value.type } } } } } } dynamic "nat_rule_collection" { for_each = var.firewall_policy_rule_collection_group_nat_rule_collection == null ? [] : var.firewall_policy_rule_collection_group_nat_rule_collection content { action = nat_rule_collection.value.action name = nat_rule_collection.value.name priority = nat_rule_collection.value.priority dynamic "rule" { for_each = nat_rule_collection.value.rule content { name = rule.value.name protocols = rule.value.protocols translated_port = rule.value.translated_port destination_address = rule.value.destination_address destination_ports = rule.value.destination_ports source_addresses = rule.value.source_addresses source_ip_groups = rule.value.source_ip_groups translated_address = rule.value.translated_address translated_fqdn = rule.value.translated_fqdn } } } } dynamic "network_rule_collection" { for_each = var.firewall_policy_rule_collection_group_network_rule_collection == null ? [] : var.firewall_policy_rule_collection_group_network_rule_collection content { action = network_rule_collection.value.action name = network_rule_collection.value.name priority = network_rule_collection.value.priority dynamic "rule" { for_each = network_rule_collection.value.rule content { destination_ports = rule.value.destination_ports name = rule.value.name protocols = rule.value.protocols destination_addresses = rule.value.destination_addresses destination_fqdns = rule.value.destination_fqdns destination_ip_groups = rule.value.destination_ip_groups source_addresses = rule.value.source_addresses source_ip_groups = rule.value.source_ip_groups } } } } dynamic "timeouts" { for_each = var.firewall_policy_rule_collection_group_timeouts == null ? [] : [var.firewall_policy_rule_collection_group_timeouts] content { create = timeouts.value.create delete = timeouts.value.delete read = timeouts.value.read update = timeouts.value.update } } }