Bicep resource definition
The expressRouteGateways resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Usage Examples
Bicep Samples
A basic example of deploying ExpressRoute gateway.
param resourceName string = 'acctest0001'
param location string = 'westeurope'
resource virtualWan 'Microsoft.Network/virtualWans@2022-07-01' = {
name: resourceName
location: location
properties: {
allowBranchToBranchTraffic: true
disableVpnEncryption: false
office365LocalBreakoutCategory: 'None'
type: 'Standard'
}
}
resource expressRouteGateway 'Microsoft.Network/expressRouteGateways@2022-07-01' = {
name: resourceName
location: location
properties: {
allowNonVirtualWanTraffic: false
autoScaleConfiguration: {
bounds: {
min: 1
}
}
virtualHub: {
id: virtualHub.id
}
}
}
resource virtualHub 'Microsoft.Network/virtualHubs@2022-07-01' = {
name: resourceName
location: location
properties: {
addressPrefix: '10.0.1.0/24'
hubRoutingPreference: 'ExpressRoute'
virtualRouterAutoScaleConfiguration: {
minCapacity: 2
}
virtualWan: {
id: virtualWan.id
}
}
}
Azure Verified Modules
The following Azure Verified Modules can be used to deploy this resource type.
To create a Microsoft.Network/expressRouteGateways resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.Network/expressRouteGateways@2025-07-01' = {
location: 'string'
name: 'string'
properties: {
allowNonVirtualWanTraffic: bool
autoScaleConfiguration: {
bounds: {
max: int
min: int
}
}
expressRouteConnections: [
{
id: 'string'
name: 'string'
properties: {
authorizationKey: 'string'
enableInternetSecurity: bool
enablePrivateLinkFastPath: bool
expressRouteCircuitPeering: {
id: 'string'
}
expressRouteGatewayBypass: bool
routingConfiguration: {
associatedRouteTable: {
id: 'string'
}
inboundRouteMap: {
id: 'string'
}
outboundRouteMap: {
id: 'string'
}
propagatedRouteTables: {
ids: [
{
id: 'string'
}
]
labels: [
'string'
]
}
vnetRoutes: {
staticRoutes: [
{
addressPrefixes: [
'string'
]
name: 'string'
nextHopIpAddress: 'string'
}
]
staticRoutesConfig: {
propagateStaticRoutes: bool
vnetLocalRouteOverrideCriteria: 'string'
}
}
}
routingWeight: int
}
}
]
virtualHub: {
id: 'string'
}
}
tags: {
{customized property}: 'string'
}
}
Property Values
Microsoft.Network/expressRouteGateways
| Name |
Description |
Value |
| location |
Resource location. |
string |
| name |
The resource name |
string (required) |
| properties |
Properties of the express route gateway. |
ExpressRouteGatewayProperties |
| tags |
Resource tags |
Dictionary of tag names and values. See Tags in templates |
CommonSubResource
| Name |
Description |
Value |
| id |
Resource ID. |
string |
ExpressRouteCircuitPeeringId
| Name |
Description |
Value |
| id |
The ID of the ExpressRoute circuit peering. |
string |
ExpressRouteConnection
| Name |
Description |
Value |
| id |
Resource ID. |
string |
| name |
The name of the resource. |
string (required) |
| properties |
Properties of the express route connection. |
ExpressRouteConnectionProperties |
ExpressRouteConnectionProperties
| Name |
Description |
Value |
| authorizationKey |
Authorization key to establish the connection. |
string |
| enableInternetSecurity |
Enable internet security. |
bool |
| enablePrivateLinkFastPath |
Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. |
bool |
| expressRouteCircuitPeering |
The ExpressRoute circuit peering. |
ExpressRouteCircuitPeeringId (required) |
| expressRouteGatewayBypass |
Enable FastPath to vWan Firewall hub. |
bool |
| routingConfiguration |
The Routing Configuration indicating the associated and propagated route tables on this connection. |
RoutingConfiguration |
| routingWeight |
The routing weight associated to the connection. |
int |
ExpressRouteGatewayProperties
| Name |
Description |
Value |
| allowNonVirtualWanTraffic |
Configures this gateway to accept traffic from non Virtual WAN networks. |
bool |
| autoScaleConfiguration |
Configuration for auto scaling. |
ExpressRouteGatewayPropertiesAutoScaleConfiguration |
| expressRouteConnections |
List of ExpressRoute connections to the ExpressRoute gateway. |
ExpressRouteConnection[] |
| virtualHub |
The Virtual Hub where the ExpressRoute gateway is or will be deployed. |
VirtualHubId (required) |
ExpressRouteGatewayPropertiesAutoScaleConfiguration
ExpressRouteGatewayPropertiesAutoScaleConfigurationBounds
| Name |
Description |
Value |
| max |
Maximum number of scale units deployed for ExpressRoute gateway. |
int |
| min |
Minimum number of scale units deployed for ExpressRoute gateway. |
int |
PropagatedRouteTable
| Name |
Description |
Value |
| ids |
The list of resource ids of all the RouteTables. |
CommonSubResource[] |
| labels |
The list of labels. |
string[] |
RoutingConfiguration
| Name |
Description |
Value |
| associatedRouteTable |
The resource id RouteTable associated with this RoutingConfiguration. |
CommonSubResource |
| inboundRouteMap |
The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. |
CommonSubResource |
| outboundRouteMap |
The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. |
CommonSubResource |
| propagatedRouteTables |
The list of RouteTables to advertise the routes to. |
PropagatedRouteTable |
| vnetRoutes |
List of routes that control routing from VirtualHub into a virtual network connection. |
VnetRoute |
StaticRoute
| Name |
Description |
Value |
| addressPrefixes |
List of all address prefixes. |
string[] |
| name |
The name of the StaticRoute that is unique within a VnetRoute. |
string |
| nextHopIpAddress |
The ip address of the next hop. |
string |
StaticRoutesConfig
| Name |
Description |
Value |
| propagateStaticRoutes |
Boolean indicating whether static routes on this connection are automatically propagate to route tables which this connection propagates to. |
bool |
| vnetLocalRouteOverrideCriteria |
Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. |
'Contains' 'Equal' |
VirtualHubId
| Name |
Description |
Value |
| id |
The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. |
string |
VnetRoute
| Name |
Description |
Value |
| staticRoutes |
List of all Static Routes. |
StaticRoute[] |
| staticRoutesConfig |
Configuration for static routes on this HubVnetConnection. |
StaticRoutesConfig |
ARM template resource definition
The expressRouteGateways resource type can be deployed with operations that target:
Usage Examples
Azure Quickstart Templates
The following Azure Quickstart templates deploy this resource type.
To create a Microsoft.Network/expressRouteGateways resource, add the following JSON to your template.
{
"type": "Microsoft.Network/expressRouteGateways",
"apiVersion": "2025-07-01",
"name": "string",
"location": "string",
"properties": {
"allowNonVirtualWanTraffic": "bool",
"autoScaleConfiguration": {
"bounds": {
"max": "int",
"min": "int"
}
},
"expressRouteConnections": [
{
"id": "string",
"name": "string",
"properties": {
"authorizationKey": "string",
"enableInternetSecurity": "bool",
"enablePrivateLinkFastPath": "bool",
"expressRouteCircuitPeering": {
"id": "string"
},
"expressRouteGatewayBypass": "bool",
"routingConfiguration": {
"associatedRouteTable": {
"id": "string"
},
"inboundRouteMap": {
"id": "string"
},
"outboundRouteMap": {
"id": "string"
},
"propagatedRouteTables": {
"ids": [
{
"id": "string"
}
],
"labels": [ "string" ]
},
"vnetRoutes": {
"staticRoutes": [
{
"addressPrefixes": [ "string" ],
"name": "string",
"nextHopIpAddress": "string"
}
],
"staticRoutesConfig": {
"propagateStaticRoutes": "bool",
"vnetLocalRouteOverrideCriteria": "string"
}
}
},
"routingWeight": "int"
}
}
],
"virtualHub": {
"id": "string"
}
},
"tags": {
"{customized property}": "string"
}
}
Property Values
Microsoft.Network/expressRouteGateways
| Name |
Description |
Value |
| apiVersion |
The api version |
'2025-07-01' |
| location |
Resource location. |
string |
| name |
The resource name |
string (required) |
| properties |
Properties of the express route gateway. |
ExpressRouteGatewayProperties |
| tags |
Resource tags |
Dictionary of tag names and values. See Tags in templates |
| type |
The resource type |
'Microsoft.Network/expressRouteGateways' |
CommonSubResource
| Name |
Description |
Value |
| id |
Resource ID. |
string |
ExpressRouteCircuitPeeringId
| Name |
Description |
Value |
| id |
The ID of the ExpressRoute circuit peering. |
string |
ExpressRouteConnection
| Name |
Description |
Value |
| id |
Resource ID. |
string |
| name |
The name of the resource. |
string (required) |
| properties |
Properties of the express route connection. |
ExpressRouteConnectionProperties |
ExpressRouteConnectionProperties
| Name |
Description |
Value |
| authorizationKey |
Authorization key to establish the connection. |
string |
| enableInternetSecurity |
Enable internet security. |
bool |
| enablePrivateLinkFastPath |
Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. |
bool |
| expressRouteCircuitPeering |
The ExpressRoute circuit peering. |
ExpressRouteCircuitPeeringId (required) |
| expressRouteGatewayBypass |
Enable FastPath to vWan Firewall hub. |
bool |
| routingConfiguration |
The Routing Configuration indicating the associated and propagated route tables on this connection. |
RoutingConfiguration |
| routingWeight |
The routing weight associated to the connection. |
int |
ExpressRouteGatewayProperties
| Name |
Description |
Value |
| allowNonVirtualWanTraffic |
Configures this gateway to accept traffic from non Virtual WAN networks. |
bool |
| autoScaleConfiguration |
Configuration for auto scaling. |
ExpressRouteGatewayPropertiesAutoScaleConfiguration |
| expressRouteConnections |
List of ExpressRoute connections to the ExpressRoute gateway. |
ExpressRouteConnection[] |
| virtualHub |
The Virtual Hub where the ExpressRoute gateway is or will be deployed. |
VirtualHubId (required) |
ExpressRouteGatewayPropertiesAutoScaleConfiguration
ExpressRouteGatewayPropertiesAutoScaleConfigurationBounds
| Name |
Description |
Value |
| max |
Maximum number of scale units deployed for ExpressRoute gateway. |
int |
| min |
Minimum number of scale units deployed for ExpressRoute gateway. |
int |
PropagatedRouteTable
| Name |
Description |
Value |
| ids |
The list of resource ids of all the RouteTables. |
CommonSubResource[] |
| labels |
The list of labels. |
string[] |
RoutingConfiguration
| Name |
Description |
Value |
| associatedRouteTable |
The resource id RouteTable associated with this RoutingConfiguration. |
CommonSubResource |
| inboundRouteMap |
The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. |
CommonSubResource |
| outboundRouteMap |
The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. |
CommonSubResource |
| propagatedRouteTables |
The list of RouteTables to advertise the routes to. |
PropagatedRouteTable |
| vnetRoutes |
List of routes that control routing from VirtualHub into a virtual network connection. |
VnetRoute |
StaticRoute
| Name |
Description |
Value |
| addressPrefixes |
List of all address prefixes. |
string[] |
| name |
The name of the StaticRoute that is unique within a VnetRoute. |
string |
| nextHopIpAddress |
The ip address of the next hop. |
string |
StaticRoutesConfig
| Name |
Description |
Value |
| propagateStaticRoutes |
Boolean indicating whether static routes on this connection are automatically propagate to route tables which this connection propagates to. |
bool |
| vnetLocalRouteOverrideCriteria |
Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. |
'Contains' 'Equal' |
VirtualHubId
| Name |
Description |
Value |
| id |
The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. |
string |
VnetRoute
| Name |
Description |
Value |
| staticRoutes |
List of all Static Routes. |
StaticRoute[] |
| staticRoutesConfig |
Configuration for static routes on this HubVnetConnection. |
StaticRoutesConfig |
The expressRouteGateways resource type can be deployed with operations that target:
- Resource groups
For a list of changed properties in each API version, see change log.
Usage Examples
A basic example of deploying ExpressRoute gateway.
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" "virtualWan" {
type = "Microsoft.Network/virtualWans@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
allowBranchToBranchTraffic = true
disableVpnEncryption = false
office365LocalBreakoutCategory = "None"
type = "Standard"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "virtualHub" {
type = "Microsoft.Network/virtualHubs@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
addressPrefix = "10.0.1.0/24"
hubRoutingPreference = "ExpressRoute"
virtualRouterAutoScaleConfiguration = {
minCapacity = 2
}
virtualWan = {
id = azapi_resource.virtualWan.id
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "expressRouteGateway" {
type = "Microsoft.Network/expressRouteGateways@2022-07-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
allowNonVirtualWanTraffic = false
autoScaleConfiguration = {
bounds = {
min = 1
}
}
virtualHub = {
id = azapi_resource.virtualHub.id
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
To create a Microsoft.Network/expressRouteGateways resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/expressRouteGateways@2025-07-01"
name = "string"
parent_id = "string"
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
allowNonVirtualWanTraffic = bool
autoScaleConfiguration = {
bounds = {
max = int
min = int
}
}
expressRouteConnections = [
{
id = "string"
name = "string"
properties = {
authorizationKey = "string"
enableInternetSecurity = bool
enablePrivateLinkFastPath = bool
expressRouteCircuitPeering = {
id = "string"
}
expressRouteGatewayBypass = bool
routingConfiguration = {
associatedRouteTable = {
id = "string"
}
inboundRouteMap = {
id = "string"
}
outboundRouteMap = {
id = "string"
}
propagatedRouteTables = {
ids = [
{
id = "string"
}
]
labels = [
"string"
]
}
vnetRoutes = {
staticRoutes = [
{
addressPrefixes = [
"string"
]
name = "string"
nextHopIpAddress = "string"
}
]
staticRoutesConfig = {
propagateStaticRoutes = bool
vnetLocalRouteOverrideCriteria = "string"
}
}
}
routingWeight = int
}
}
]
virtualHub = {
id = "string"
}
}
}
}
Property Values
Microsoft.Network/expressRouteGateways
| Name |
Description |
Value |
| location |
Resource location. |
string |
| name |
The resource name |
string (required) |
| properties |
Properties of the express route gateway. |
ExpressRouteGatewayProperties |
| tags |
Resource tags |
Dictionary of tag names and values. |
| type |
The resource type |
"Microsoft.Network/expressRouteGateways@2025-07-01" |
CommonSubResource
| Name |
Description |
Value |
| id |
Resource ID. |
string |
ExpressRouteCircuitPeeringId
| Name |
Description |
Value |
| id |
The ID of the ExpressRoute circuit peering. |
string |
ExpressRouteConnection
| Name |
Description |
Value |
| id |
Resource ID. |
string |
| name |
The name of the resource. |
string (required) |
| properties |
Properties of the express route connection. |
ExpressRouteConnectionProperties |
ExpressRouteConnectionProperties
| Name |
Description |
Value |
| authorizationKey |
Authorization key to establish the connection. |
string |
| enableInternetSecurity |
Enable internet security. |
bool |
| enablePrivateLinkFastPath |
Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. |
bool |
| expressRouteCircuitPeering |
The ExpressRoute circuit peering. |
ExpressRouteCircuitPeeringId (required) |
| expressRouteGatewayBypass |
Enable FastPath to vWan Firewall hub. |
bool |
| routingConfiguration |
The Routing Configuration indicating the associated and propagated route tables on this connection. |
RoutingConfiguration |
| routingWeight |
The routing weight associated to the connection. |
int |
ExpressRouteGatewayProperties
| Name |
Description |
Value |
| allowNonVirtualWanTraffic |
Configures this gateway to accept traffic from non Virtual WAN networks. |
bool |
| autoScaleConfiguration |
Configuration for auto scaling. |
ExpressRouteGatewayPropertiesAutoScaleConfiguration |
| expressRouteConnections |
List of ExpressRoute connections to the ExpressRoute gateway. |
ExpressRouteConnection[] |
| virtualHub |
The Virtual Hub where the ExpressRoute gateway is or will be deployed. |
VirtualHubId (required) |
ExpressRouteGatewayPropertiesAutoScaleConfiguration
ExpressRouteGatewayPropertiesAutoScaleConfigurationBounds
| Name |
Description |
Value |
| max |
Maximum number of scale units deployed for ExpressRoute gateway. |
int |
| min |
Minimum number of scale units deployed for ExpressRoute gateway. |
int |
PropagatedRouteTable
| Name |
Description |
Value |
| ids |
The list of resource ids of all the RouteTables. |
CommonSubResource[] |
| labels |
The list of labels. |
string[] |
RoutingConfiguration
| Name |
Description |
Value |
| associatedRouteTable |
The resource id RouteTable associated with this RoutingConfiguration. |
CommonSubResource |
| inboundRouteMap |
The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. |
CommonSubResource |
| outboundRouteMap |
The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. |
CommonSubResource |
| propagatedRouteTables |
The list of RouteTables to advertise the routes to. |
PropagatedRouteTable |
| vnetRoutes |
List of routes that control routing from VirtualHub into a virtual network connection. |
VnetRoute |
StaticRoute
| Name |
Description |
Value |
| addressPrefixes |
List of all address prefixes. |
string[] |
| name |
The name of the StaticRoute that is unique within a VnetRoute. |
string |
| nextHopIpAddress |
The ip address of the next hop. |
string |
StaticRoutesConfig
| Name |
Description |
Value |
| propagateStaticRoutes |
Boolean indicating whether static routes on this connection are automatically propagate to route tables which this connection propagates to. |
bool |
| vnetLocalRouteOverrideCriteria |
Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. |
'Contains' 'Equal' |
VirtualHubId
| Name |
Description |
Value |
| id |
The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. |
string |
VnetRoute
| Name |
Description |
Value |
| staticRoutes |
List of all Static Routes. |
StaticRoute[] |
| staticRoutesConfig |
Configuration for static routes on this HubVnetConnection. |
StaticRoutesConfig |