main.tf (59 lines of code) (raw):

# required AVM resources interfaces resource "azurerm_management_lock" "this" { count = var.lock != null ? 1 : 0 lock_level = var.lock.kind name = coalesce(var.lock.name, "lock-${var.lock.kind}") scope = azurerm_network_interface.this.id notes = var.lock.kind == "CanNotDelete" ? "Cannot delete the resource or its child resources." : "Cannot delete or modify the resource or its child resources." } resource "azurerm_network_interface" "this" { location = var.location name = var.name resource_group_name = var.resource_group_name accelerated_networking_enabled = var.accelerated_networking_enabled #auxiliary_mode = var.auxiliary_mode ## Settings in preview are disabled for stability #auxiliary_sku = var.auxiliary_sku ## Settings in preview are disabled for stability dns_servers = var.dns_servers edge_zone = var.edge_zone internal_dns_name_label = var.internal_dns_name_label ip_forwarding_enabled = var.ip_forwarding_enabled tags = var.tags dynamic "ip_configuration" { for_each = var.ip_configurations content { name = ip_configuration.value.name private_ip_address_allocation = ip_configuration.value.private_ip_address_allocation gateway_load_balancer_frontend_ip_configuration_id = ip_configuration.value.gateway_load_balancer_frontend_ip_configuration_id primary = ip_configuration.value.primary private_ip_address = ip_configuration.value.private_ip_address_allocation == "Static" ? ip_configuration.value.private_ip_address : null private_ip_address_version = ip_configuration.value.private_ip_address_version public_ip_address_id = ip_configuration.value.public_ip_address_id subnet_id = ip_configuration.value.private_ip_address_version == "IPv4" ? ip_configuration.value.subnet_id : null } } } resource "azurerm_network_interface_backend_address_pool_association" "this" { for_each = var.load_balancer_backend_address_pool_association != null ? var.load_balancer_backend_address_pool_association : {} backend_address_pool_id = each.value.load_balancer_backend_address_pool_id ip_configuration_name = each.value.ip_configuration_name network_interface_id = azurerm_network_interface.this.id } resource "azurerm_network_interface_application_gateway_backend_address_pool_association" "this" { count = var.application_gateway_backend_address_pool_association != null ? 1 : 0 backend_address_pool_id = var.application_gateway_backend_address_pool_association.application_gateway_backend_address_pool_id ip_configuration_name = var.application_gateway_backend_address_pool_association.ip_configuration_name network_interface_id = azurerm_network_interface.this.id } resource "azurerm_network_interface_application_security_group_association" "this" { count = var.application_security_group_ids != null ? 1 : 0 application_security_group_id = var.application_security_group_ids[count.index] network_interface_id = azurerm_network_interface.this.id } resource "azurerm_network_interface_nat_rule_association" "this" { for_each = var.nat_rule_association != null ? var.nat_rule_association : {} ip_configuration_name = each.value.ip_configuration_name nat_rule_id = each.value.nat_rule_id network_interface_id = azurerm_network_interface.this.id } resource "azurerm_network_interface_security_group_association" "this" { count = var.network_security_group_ids != null ? 1 : 0 network_interface_id = azurerm_network_interface.this.id network_security_group_id = var.network_security_group_ids[count.index] }