Bicep resource definition
The virtualHubs/hubVirtualNetworkConnections 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 Connection for a Virtual Hub.
param resourceName string = 'acctest0001'
param location string = 'westeurope'
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-07-01' = {
name: resourceName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.5.0.0/16'
]
}
dhcpOptions: {
dnsServers: []
}
subnets: []
}
}
resource virtualWan 'Microsoft.Network/virtualWans@2022-07-01' = {
name: resourceName
location: location
properties: {
allowBranchToBranchTraffic: true
disableVpnEncryption: false
office365LocalBreakoutCategory: 'None'
type: 'Standard'
}
}
resource virtualHub 'Microsoft.Network/virtualHubs@2022-07-01' = {
name: resourceName
location: location
properties: {
addressPrefix: '10.0.2.0/24'
hubRoutingPreference: 'ExpressRoute'
virtualRouterAutoScaleConfiguration: {
minCapacity: 2
}
virtualWan: {
id: virtualWan.id
}
}
}
resource hubVirtualNetworkConnection 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections@2022-07-01' = {
name: resourceName
parent: virtualHub
properties: {
enableInternetSecurity: false
remoteVirtualNetwork: {
id: virtualNetwork.id
}
}
}
Azure Verified Modules
The following Azure Verified Modules can be used to deploy this resource type.
Azure Quickstart Samples
The following Azure Quickstart templates contain Bicep samples for deploying this resource type.
| Bicep File |
Description |
| Secured virtual hubs |
This template creates a secured virtual hub using Azure Firewall to secure your cloud network traffic destined to the Internet. |
To create a Microsoft.Network/virtualHubs/hubVirtualNetworkConnections resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections@2026-03-01' = {
parent: resourceSymbolicName
name: 'string'
properties: {
allowHubToRemoteVnetTransit: bool
allowRemoteVnetToUseHubVnetGateways: bool
connectionPolicy: {
id: 'string'
}
enableInternetSecurity: bool
enableOnlyIPv6Peering: bool
remoteVirtualNetwork: {
id: 'string'
}
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'
}
}
}
}
}
Property Values
Microsoft.Network/virtualHubs/hubVirtualNetworkConnections
| Name |
Description |
Value |
| name |
The resource name |
string (required) |
| parent |
In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.
For more information, see Child resource outside parent resource. |
Symbolic name for resource of type: virtualHubs |
| properties |
Properties of the hub virtual network connection. |
HubVirtualNetworkConnectionProperties |
HubVirtualNetworkConnectionProperties
| Name |
Description |
Value |
| allowHubToRemoteVnetTransit |
Deprecated: VirtualHub to RemoteVnet transit to enabled or not. |
bool |
| allowRemoteVnetToUseHubVnetGateways |
Deprecated: Allow RemoteVnet to use Virtual Hub's gateways. |
bool |
| connectionPolicy |
The resource id of the ConnectionPolicy associated with this HubVirtualNetworkConnection. |
SubResource |
| enableInternetSecurity |
Enable internet security. |
bool |
| enableOnlyIPv6Peering |
Enable Only IPv6 Peering for this connection. |
bool |
| remoteVirtualNetwork |
Reference to the remote virtual network. |
SubResource |
| routingConfiguration |
The Routing Configuration indicating the associated and propagated route tables on this connection. |
RoutingConfiguration |
PropagatedRouteTable
| Name |
Description |
Value |
| ids |
The list of resource ids of all the RouteTables. |
SubResource[] |
| labels |
The list of labels. |
string[] |
RoutingConfiguration
| Name |
Description |
Value |
| associatedRouteTable |
The resource id RouteTable associated with this RoutingConfiguration. |
SubResource |
| inboundRouteMap |
The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. |
SubResource |
| outboundRouteMap |
The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. |
SubResource |
| 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' |
SubResource
| Name |
Description |
Value |
| id |
Resource ID. |
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 virtualHubs/hubVirtualNetworkConnections 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/virtualHubs/hubVirtualNetworkConnections resource, add the following JSON to your template.
{
"type": "Microsoft.Network/virtualHubs/hubVirtualNetworkConnections",
"apiVersion": "2026-03-01",
"name": "string",
"properties": {
"allowHubToRemoteVnetTransit": "bool",
"allowRemoteVnetToUseHubVnetGateways": "bool",
"connectionPolicy": {
"id": "string"
},
"enableInternetSecurity": "bool",
"enableOnlyIPv6Peering": "bool",
"remoteVirtualNetwork": {
"id": "string"
},
"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"
}
}
}
}
}
Property Values
Microsoft.Network/virtualHubs/hubVirtualNetworkConnections
| Name |
Description |
Value |
| apiVersion |
The api version |
'2026-03-01' |
| name |
The resource name |
string (required) |
| properties |
Properties of the hub virtual network connection. |
HubVirtualNetworkConnectionProperties |
| type |
The resource type |
'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections' |
HubVirtualNetworkConnectionProperties
| Name |
Description |
Value |
| allowHubToRemoteVnetTransit |
Deprecated: VirtualHub to RemoteVnet transit to enabled or not. |
bool |
| allowRemoteVnetToUseHubVnetGateways |
Deprecated: Allow RemoteVnet to use Virtual Hub's gateways. |
bool |
| connectionPolicy |
The resource id of the ConnectionPolicy associated with this HubVirtualNetworkConnection. |
SubResource |
| enableInternetSecurity |
Enable internet security. |
bool |
| enableOnlyIPv6Peering |
Enable Only IPv6 Peering for this connection. |
bool |
| remoteVirtualNetwork |
Reference to the remote virtual network. |
SubResource |
| routingConfiguration |
The Routing Configuration indicating the associated and propagated route tables on this connection. |
RoutingConfiguration |
PropagatedRouteTable
| Name |
Description |
Value |
| ids |
The list of resource ids of all the RouteTables. |
SubResource[] |
| labels |
The list of labels. |
string[] |
RoutingConfiguration
| Name |
Description |
Value |
| associatedRouteTable |
The resource id RouteTable associated with this RoutingConfiguration. |
SubResource |
| inboundRouteMap |
The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. |
SubResource |
| outboundRouteMap |
The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. |
SubResource |
| 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' |
SubResource
| Name |
Description |
Value |
| id |
Resource ID. |
string |
VnetRoute
| Name |
Description |
Value |
| staticRoutes |
List of all Static Routes. |
StaticRoute[] |
| staticRoutesConfig |
Configuration for static routes on this HubVnetConnection. |
StaticRoutesConfig |
The virtualHubs/hubVirtualNetworkConnections 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 Connection for a Virtual Hub.
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" "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.5.0.0/16",
]
}
dhcpOptions = {
dnsServers = [
]
}
subnets = [
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
lifecycle {
ignore_changes = [body.properties.subnets]
}
}
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.2.0/24"
hubRoutingPreference = "ExpressRoute"
virtualRouterAutoScaleConfiguration = {
minCapacity = 2
}
virtualWan = {
id = azapi_resource.virtualWan.id
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "hubVirtualNetworkConnection" {
type = "Microsoft.Network/virtualHubs/hubVirtualNetworkConnections@2022-07-01"
parent_id = azapi_resource.virtualHub.id
name = var.resource_name
body = {
properties = {
enableInternetSecurity = false
remoteVirtualNetwork = {
id = azapi_resource.virtualNetwork.id
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
To create a Microsoft.Network/virtualHubs/hubVirtualNetworkConnections resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/virtualHubs/hubVirtualNetworkConnections@2026-03-01"
name = "string"
parent_id = "string"
body = {
properties = {
allowHubToRemoteVnetTransit = bool
allowRemoteVnetToUseHubVnetGateways = bool
connectionPolicy = {
id = "string"
}
enableInternetSecurity = bool
enableOnlyIPv6Peering = bool
remoteVirtualNetwork = {
id = "string"
}
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"
}
}
}
}
}
}
Property Values
Microsoft.Network/virtualHubs/hubVirtualNetworkConnections
| Name |
Description |
Value |
| name |
The resource name |
string (required) |
| parent_id |
The ID of the resource that is the parent for this resource. |
ID for resource of type: virtualHubs |
| properties |
Properties of the hub virtual network connection. |
HubVirtualNetworkConnectionProperties |
| type |
The resource type |
"Microsoft.Network/virtualHubs/hubVirtualNetworkConnections@2026-03-01" |
HubVirtualNetworkConnectionProperties
| Name |
Description |
Value |
| allowHubToRemoteVnetTransit |
Deprecated: VirtualHub to RemoteVnet transit to enabled or not. |
bool |
| allowRemoteVnetToUseHubVnetGateways |
Deprecated: Allow RemoteVnet to use Virtual Hub's gateways. |
bool |
| connectionPolicy |
The resource id of the ConnectionPolicy associated with this HubVirtualNetworkConnection. |
SubResource |
| enableInternetSecurity |
Enable internet security. |
bool |
| enableOnlyIPv6Peering |
Enable Only IPv6 Peering for this connection. |
bool |
| remoteVirtualNetwork |
Reference to the remote virtual network. |
SubResource |
| routingConfiguration |
The Routing Configuration indicating the associated and propagated route tables on this connection. |
RoutingConfiguration |
PropagatedRouteTable
| Name |
Description |
Value |
| ids |
The list of resource ids of all the RouteTables. |
SubResource[] |
| labels |
The list of labels. |
string[] |
RoutingConfiguration
| Name |
Description |
Value |
| associatedRouteTable |
The resource id RouteTable associated with this RoutingConfiguration. |
SubResource |
| inboundRouteMap |
The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. |
SubResource |
| outboundRouteMap |
The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. |
SubResource |
| 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' |
SubResource
| Name |
Description |
Value |
| id |
Resource ID. |
string |
VnetRoute
| Name |
Description |
Value |
| staticRoutes |
List of all Static Routes. |
StaticRoute[] |
| staticRoutesConfig |
Configuration for static routes on this HubVnetConnection. |
StaticRoutesConfig |