###############################################################################
# Networking Module — Outputs
###############################################################################

# --- Resource Groups ---

output "rg_network_name" {
  value = azurerm_resource_group.network.name
}

output "rg_network_id" {
  value = azurerm_resource_group.network.id
}

output "rg_databricks_name" {
  value = azurerm_resource_group.databricks.name
}

output "rg_databricks_id" {
  value = azurerm_resource_group.databricks.id
}

output "rg_storage_name" {
  value = azurerm_resource_group.storage.name
}

output "rg_storage_id" {
  value = azurerm_resource_group.storage.id
}

output "rg_governance_name" {
  value = azurerm_resource_group.governance.name
}

output "rg_governance_id" {
  value = azurerm_resource_group.governance.id
}

output "rg_keyvault_name" {
  value = azurerm_resource_group.keyvault.name
}

output "rg_keyvault_id" {
  value = azurerm_resource_group.keyvault.id
}

output "rg_monitoring_name" {
  value = azurerm_resource_group.monitoring.name
}

output "rg_monitoring_id" {
  value = azurerm_resource_group.monitoring.id
}

# --- VNets ---

output "vnet_main_id" {
  value = azurerm_virtual_network.main.id
}

output "vnet_main_name" {
  value = azurerm_virtual_network.main.name
}

output "vnet_transit_id" {
  value = azurerm_virtual_network.transit.id
}

output "vnet_transit_name" {
  value = azurerm_virtual_network.transit.name
}

# --- Subnets ---

output "subnet_dbx_host_id" {
  value = azurerm_subnet.dbx_host.id
}

output "subnet_dbx_host_name" {
  value = azurerm_subnet.dbx_host.name
}

output "subnet_dbx_container_id" {
  value = azurerm_subnet.dbx_container.id
}

output "subnet_dbx_container_name" {
  value = azurerm_subnet.dbx_container.name
}

output "subnet_private_endpoints_id" {
  value = azurerm_subnet.private_endpoints.id
}

output "subnet_private_endpoints_name" {
  value = azurerm_subnet.private_endpoints.name
}

output "subnet_transit_id" {
  value = azurerm_subnet.transit.id
}

# --- NAT Gateway ---

output "nat_gateway_id" {
  value = azurerm_nat_gateway.main.id
}

output "nat_public_ip" {
  value = azurerm_public_ip.nat.ip_address
}

# --- NSG ---

output "nsg_dbx_id" {
  value = azurerm_network_security_group.dbx.id
}

# --- Private DNS Zones ---

output "dns_zone_databricks_id" {
  value = azurerm_private_dns_zone.databricks.id
}

output "dns_zone_databricks_name" {
  value = azurerm_private_dns_zone.databricks.name
}

output "dns_zone_dfs_id" {
  value = azurerm_private_dns_zone.dfs.id
}

output "dns_zone_dfs_name" {
  value = azurerm_private_dns_zone.dfs.name
}

output "dns_zone_vault_id" {
  value = azurerm_private_dns_zone.vault.id
}

output "dns_zone_vault_name" {
  value = azurerm_private_dns_zone.vault.name
}

output "dns_zone_purview_id" {
  value = azurerm_private_dns_zone.purview.id
}

output "dns_zone_purview_name" {
  value = azurerm_private_dns_zone.purview.name
}
