modules/networksecuritygroup/main.tf (33 lines of code) (raw):
resource "azapi_resource" "network_security_group" {
type = "Microsoft.Network/networkSecurityGroups@2024-05-01"
name = var.name
parent_id = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group_name}"
location = var.location
tags = var.tags
body = {
properties = {
securityRules = [
for rule in var.security_rules : {
name = rule.name
properties = {
access = rule.access
description = rule.description
destinationAddressPrefix = rule.destination_address_prefix
destinationAddressPrefixes = rule.destination_address_prefixes
destinationApplicationSecurityGroups = rule.destination_application_security_group_ids != null ? [for asg in rule.destination_application_security_group_ids : { id = asg }] : null
destinationPortRange = rule.destination_port_range
destinationPortRanges = rule.destination_port_ranges
direction = rule.direction
priority = rule.priority
protocol = rule.protocol
sourceAddressPrefix = rule.source_address_prefix
sourceAddressPrefixes = rule.source_address_prefixes
sourceApplicationSecurityGroups = rule.source_application_security_group_ids != null ? [for asg in rule.source_application_security_group_ids : { id = asg }] : null
sourcePortRange = rule.source_port_range
sourcePortRanges = rule.source_port_ranges
}
}
]
}
}
}