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 } } }