dependency/azapi_examples/Microsoft.Network_dnsForwardingRulesets_forwardingRules@2022-07-01/main.tf (142 lines of code) (raw):
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "virtualNetwork" {
type = "Microsoft.Network/virtualNetworks@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
addressSpace = {
addressPrefixes = [
"10.0.0.0/16",
]
}
dhcpOptions = {
dnsServers = [
]
}
subnets = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
lifecycle {
ignore_changes = [body.properties.subnets]
}
}
resource "azapi_resource" "dnsResolver" {
type = "Microsoft.Network/dnsResolvers@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
virtualNetwork = {
id = azapi_resource.virtualNetwork.id
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "subnet" {
type = "Microsoft.Network/virtualNetworks/subnets@2022-07-01"
parent_id = azapi_resource.virtualNetwork.id
name = "outbounddns"
body = {
properties = {
addressPrefix = "10.0.0.64/28"
delegations = [
{
name = "Microsoft.Network.dnsResolvers"
properties = {
serviceName = "Microsoft.Network/dnsResolvers"
}
},
]
privateEndpointNetworkPolicies = "Enabled"
privateLinkServiceNetworkPolicies = "Enabled"
serviceEndpointPolicies = [
]
serviceEndpoints = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "outboundEndpoint" {
type = "Microsoft.Network/dnsResolvers/outboundEndpoints@2022-07-01"
parent_id = azapi_resource.dnsResolver.id
name = var.resource_name
location = var.location
body = {
properties = {
subnet = {
id = azapi_resource.subnet.id
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "dnsForwardingRuleset" {
type = "Microsoft.Network/dnsForwardingRulesets@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
dnsResolverOutboundEndpoints = [
{
id = azapi_resource.outboundEndpoint.id
},
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "forwardingRule" {
type = "Microsoft.Network/dnsForwardingRulesets/forwardingRules@2022-07-01"
parent_id = azapi_resource.dnsForwardingRuleset.id
name = var.resource_name
body = {
properties = {
domainName = "onprem.local."
forwardingRuleState = "Enabled"
metadata = null
targetDnsServers = [
{
ipAddress = "10.10.0.1"
port = 53
},
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}