demo_solution/modules/repo_terraform.azurerm.public_ip/main.tf (44 lines of code) (raw):
# Get resource group data
data "azurerm_resource_group" "rg" {
count = var.location == null ? 1 : 0
name = var.rg_name
}
# Create public IP
resource "azurerm_public_ip" "public_ip" {
name = var.name
location = var.location == null ? data.azurerm_resource_group.rg[0].location : var.location
resource_group_name = var.rg_name
allocation_method = var.allocation_method
sku = var.sku
ip_version = var.ip_version
domain_name_label = var.domain_name_label
idle_timeout_in_minutes = var.idle_timeout_in_minutes
reverse_fqdn = var.reverse_fqdn
zones = var.zones
tags = var.tags
}
# Manages a diagnostic setting for public IP
resource "azurerm_monitor_diagnostic_setting" "this" {
count = var.diagnostic_setting == null ? 0 : 1
name = var.diagnostic_setting.name
log_analytics_workspace_id = var.diagnostic_setting.log_analytics_workspace_id
target_resource_id = azurerm_public_ip.public_ip.id
storage_account_id = var.diagnostic_setting.storage_account_id
eventhub_name = var.diagnostic_setting.eventhub_name
eventhub_authorization_rule_id = var.diagnostic_setting.eventhub_authorization_rule_id
dynamic "enabled_log" {
for_each = var.diagnostic_setting.log_category != null ? toset(var.diagnostic_setting.log_category) : []
content {
category = enabled_log.key
}
}
dynamic "enabled_log" {
for_each = var.diagnostic_setting.log_category_group != null ? toset(var.diagnostic_setting.log_category_group) : []
content {
category_group = enabled_log.key
}
}
dynamic "metric" {
for_each = var.diagnostic_setting.metric != null ? toset(var.diagnostic_setting.metric) : []
content {
category = metric.key
}
}
}