demo_solution/modules/repo_terraform.azurerm.private_endpoint/main.tf (38 lines of code) (raw):
locals {
private_connection_resource_name = try(split("/", var.private_service_connection.private_connection_resource_id)[length(split("/", var.private_service_connection.private_connection_resource_id)) - 1], var.private_service_connection.private_connection_resource_alias)
}
data "azurerm_resource_group" "rg" {
count = var.location == null ? 1 : 0
name = var.resource_group_name
}
resource "azurerm_private_endpoint" "endpoint" {
name = var.name
resource_group_name = var.resource_group_name
location = var.location == null ? data.azurerm_resource_group.rg[0].location : var.location
subnet_id = var.subnet_id
private_service_connection {
name = format("%s-connection", local.private_connection_resource_name)
is_manual_connection = var.private_service_connection.is_manual_connection
private_connection_resource_id = var.private_service_connection.private_connection_resource_id
private_connection_resource_alias = var.private_service_connection.private_connection_resource_alias
subresource_names = var.private_service_connection.subresource_names
request_message = var.private_service_connection.request_message
}
dynamic "private_dns_zone_group" {
for_each = var.private_dns_zone_group != null ? [1] : []
content {
name = var.private_dns_zone_group.name
private_dns_zone_ids = var.private_dns_zone_group.private_dns_zone_ids
}
}
dynamic "ip_configuration" {
for_each = var.ip_configuration != null ? [1] : []
content {
name = format("%s-ip-configuration", local.private_connection_resource_name)
private_ip_address = var.ip_configuration.private_ip_address
subresource_name = var.ip_configuration.subresource_name != null ? var.ip_configuration.subresource_name : var.private_service_connection.subresource_names[0]
member_name = var.ip_configuration.member_name
}
}
tags = var.tags
}