dependency/azapi_examples/Microsoft.Network_applicationGateways@2022-07-01/main.tf (253 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" "publicIPAddress" {
type = "Microsoft.Network/publicIPAddresses@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
ddosSettings = {
protectionMode = "VirtualNetworkInherited"
}
idleTimeoutInMinutes = 4
publicIPAddressVersion = "IPv4"
publicIPAllocationMethod = "Static"
}
sku = {
name = "Standard"
tier = "Regional"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
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" "subnet" {
type = "Microsoft.Network/virtualNetworks/subnets@2022-07-01"
parent_id = azapi_resource.virtualNetwork.id
name = "subnet-230630033653837171"
body = {
properties = {
addressPrefix = "10.0.0.0/24"
delegations = [
]
privateEndpointNetworkPolicies = "Enabled"
privateLinkServiceNetworkPolicies = "Disabled"
serviceEndpointPolicies = [
]
serviceEndpoints = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
data "azapi_resource_id" "applicationGateway" {
type = "Microsoft.Network/applicationGateways@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
}
data "azapi_resource_id" "frontendIPConfiguration" {
type = "Microsoft.Network/applicationGateways/frontendIPConfigurations@2022-07-01"
parent_id = data.azapi_resource_id.applicationGateway.id
name = "${azapi_resource.virtualNetwork.name}-feip"
}
data "azapi_resource_id" "frontendPort" {
type = "Microsoft.Network/applicationGateways/frontendPorts@2022-07-01"
parent_id = data.azapi_resource_id.applicationGateway.id
name = "${azapi_resource.virtualNetwork.name}-feport"
}
data "azapi_resource_id" "backendAddressPool" {
type = "Microsoft.Network/applicationGateways/backendAddressPools@2022-07-01"
parent_id = data.azapi_resource_id.applicationGateway.id
name = "${azapi_resource.virtualNetwork.name}-beap"
}
data "azapi_resource_id" "backendHttpSettingsCollection" {
type = "Microsoft.Network/applicationGateways/backendHttpSettingsCollection@2022-07-01"
parent_id = data.azapi_resource_id.applicationGateway.id
name = "${azapi_resource.virtualNetwork.name}-be-htst"
}
data "azapi_resource_id" "httpListener" {
type = "Microsoft.Network/applicationGateways/httpListeners@2022-07-01"
parent_id = data.azapi_resource_id.applicationGateway.id
name = "${azapi_resource.virtualNetwork.name}-httplstn"
}
resource "azapi_resource" "applicationGateway" {
type = "Microsoft.Network/applicationGateways@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
authenticationCertificates = [
]
backendAddressPools = [
{
name = data.azapi_resource_id.backendAddressPool.name
properties = {
backendAddresses = [
]
}
},
]
backendHttpSettingsCollection = [
{
name = data.azapi_resource_id.backendHttpSettingsCollection.name
properties = {
authenticationCertificates = [
]
cookieBasedAffinity = "Disabled"
path = ""
pickHostNameFromBackendAddress = false
port = 80
protocol = "Http"
requestTimeout = 1
trustedRootCertificates = [
]
}
},
]
customErrorConfigurations = [
]
enableHttp2 = false
frontendIPConfigurations = [
{
name = data.azapi_resource_id.frontendIPConfiguration.name
properties = {
privateIPAllocationMethod = "Dynamic"
publicIPAddress = {
id = azapi_resource.publicIPAddress.id
}
}
},
]
frontendPorts = [
{
name = data.azapi_resource_id.frontendPort.name
properties = {
port = 80
}
},
]
gatewayIPConfigurations = [
{
name = "my-gateway-ip-configuration"
properties = {
subnet = {
id = azapi_resource.subnet.id
}
}
},
]
httpListeners = [
{
name = data.azapi_resource_id.httpListener.name
properties = {
customErrorConfigurations = [
]
frontendIPConfiguration = {
id = data.azapi_resource_id.frontendIPConfiguration.id
}
frontendPort = {
id = data.azapi_resource_id.frontendPort.id
}
protocol = "Http"
requireServerNameIndication = false
}
},
]
privateLinkConfigurations = [
]
probes = [
]
redirectConfigurations = [
]
requestRoutingRules = [
{
name = "${azapi_resource.virtualNetwork.name}-rqrt"
properties = {
backendAddressPool = {
id = data.azapi_resource_id.backendAddressPool.id
}
backendHttpSettings = {
id = data.azapi_resource_id.backendHttpSettingsCollection.id
}
httpListener = {
id = data.azapi_resource_id.httpListener.id
}
ruleType = "Basic"
priority = 10
}
},
]
rewriteRuleSets = [
]
sku = {
capacity = 2
name = "Standard_v2"
tier = "Standard_v2"
}
sslCertificates = [
]
sslPolicy = {
}
sslProfiles = [
]
trustedClientCertificates = [
]
trustedRootCertificates = [
]
urlPathMaps = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}