main.public_ip.tf (20 lines of code) (raw):
resource "azurerm_public_ip" "this" {
for_each = { for frontend, frontend_values in var.frontend_ip_configurations : frontend => frontend_values if frontend_values.create_public_ip_address }
allocation_method = var.public_ip_address_configuration.allocation_method
location = coalesce(each.value.new_public_ip_location, var.location)
name = coalesce(each.value.public_ip_address_resource_name, "pip-${var.name}")
resource_group_name = coalesce(each.value.new_public_ip_resource_group_name, var.public_ip_address_configuration.resource_group_name, var.resource_group_name)
ddos_protection_mode = var.public_ip_address_configuration.ddos_protection_mode
ddos_protection_plan_id = var.public_ip_address_configuration.ddos_protection_plan_resource_id
domain_name_label = var.public_ip_address_configuration.domain_name_label
edge_zone = each.value.edge_zone
idle_timeout_in_minutes = var.public_ip_address_configuration.idle_timeout_in_minutes
ip_tags = var.public_ip_address_configuration.ip_tags
ip_version = var.public_ip_address_configuration.ip_version
public_ip_prefix_id = var.public_ip_address_configuration.public_ip_prefix_resource_id
reverse_fqdn = var.public_ip_address_configuration.reverse_fqdn
sku = var.public_ip_address_configuration.sku
sku_tier = var.public_ip_address_configuration.sku_tier
tags = each.value.inherit_tags ? merge(var.public_ip_address_configuration.tags, each.value.tags, var.tags) : merge(var.public_ip_address_configuration.tags, each.value.tags)
zones = contains(each.value.zones, "None") ? null : each.value.zones
}