Search

Please login in for more filter options


Kickstart your project with AVM templates.

vpn-gateways

report
Report Package vpn-gateways

If you believe that this package or its contents contain harmful information, please inform us.
Please be aware that we will never share your credentials.

Please let us know what this package contains.
Please enter a valid email address.

This Bicep AVM module deploys a VPN Gateway.

ipm add --package avm-bicep/vpn-gateways --version 0.3.0 

Published: 06-03-2026

Project URL: https://ipmhub.io/avm-bicep

Package Type: Bicep

License: MIT


VPN Gateways [Microsoft.Network/vpnGateways]

This module deploys a VPN Gateway.

You can reference the module as follows:

module vpnGateway './packages/vpn-gateways/main.bicep' = {
  params: { (...) }
}

For examples, please refer to the Usage Examples section.

Navigation

Resource Types

Resource Type API Version References
Microsoft.Authorization/locks 2020-05-01
Microsoft.Network/vpnGateways 2024-07-01
Microsoft.Network/vpnGateways/natRules 2024-07-01
Microsoft.Network/vpnGateways/vpnConnections 2024-07-01

Usage examples

The following section provides usage examples for the module, which were used to validate and deploy the module successfully. For a full reference, please review the module's test folder in its repository.

Note: Each example lists all the required parameters first, followed by the rest - each in alphabetical order.

Note: To reference the module, please use the following syntax ./packages/vpn-gateways/main.bicep.

Example 1: Using only defaults

This instance deploys the module with the minimum set of required parameters.

You can find the full example and the setup of its dependencies in the deployment test folder path [/tests/e2e/defaults]

via Bicep module
module vpnGateway './packages/vpn-gateways/main.bicep' = {
  params: {
    // Required parameters
    name: 'vpngmin001'
    virtualHubResourceId: '<virtualHubResourceId>'
  }
}

via JSON parameters file
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    // Required parameters
    "name": {
      "value": "vpngmin001"
    },
    "virtualHubResourceId": {
      "value": "<virtualHubResourceId>"
    }
  }
}

via Bicep parameters file
using './packages/vpn-gateways/main.bicep'

// Required parameters
param name = 'vpngmin001'
param virtualHubResourceId = '<virtualHubResourceId>'

Example 2: Using large parameter set

This instance deploys the module with most of its features enabled.

You can find the full example and the setup of its dependencies in the deployment test folder path [/tests/e2e/max]

via Bicep module
module vpnGateway './packages/vpn-gateways/main.bicep' = {
  params: {
    // Required parameters
    name: 'vpngmax001'
    virtualHubResourceId: '<virtualHubResourceId>'
    // Non-required parameters
    bgpSettings: {
      asn: 65515
      peerWeight: 0
    }
    location: '<location>'
    lock: {
      kind: 'CanNotDelete'
      name: 'myCustomLockName'
    }
    natRules: [
      {
        externalMappings: [
          {
            addressSpace: '192.168.21.0/24'
          }
        ]
        internalMappings: [
          {
            addressSpace: '10.4.0.0/24'
          }
        ]
        mode: 'EgressSnat'
        name: 'natRule1'
        type: 'Static'
      }
    ]
    tags: {
      Environment: 'Non-Prod'
      'hidden-title': 'This is visible in the resource name'
      Role: 'DeploymentValidation'
    }
    vpnConnections: [
      {
        enableBgp: false
        enableInternetSecurity: true
        enableRateLimiting: false
        name: '<name>'
        remoteVpnSiteResourceId: '<remoteVpnSiteResourceId>'
        routingWeight: 0
        useLocalAzureIpAddress: false
        usePolicyBasedTrafficSelectors: false
        vpnConnectionProtocolType: 'IKEv2'
      }
    ]
  }
}

via JSON parameters file
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    // Required parameters
    "name": {
      "value": "vpngmax001"
    },
    "virtualHubResourceId": {
      "value": "<virtualHubResourceId>"
    },
    // Non-required parameters
    "bgpSettings": {
      "value": {
        "asn": 65515,
        "peerWeight": 0
      }
    },
    "location": {
      "value": "<location>"
    },
    "lock": {
      "value": {
        "kind": "CanNotDelete",
        "name": "myCustomLockName"
      }
    },
    "natRules": {
      "value": [
        {
          "externalMappings": [
            {
              "addressSpace": "192.168.21.0/24"
            }
          ],
          "internalMappings": [
            {
              "addressSpace": "10.4.0.0/24"
            }
          ],
          "mode": "EgressSnat",
          "name": "natRule1",
          "type": "Static"
        }
      ]
    },
    "tags": {
      "value": {
        "Environment": "Non-Prod",
        "hidden-title": "This is visible in the resource name",
        "Role": "DeploymentValidation"
      }
    },
    "vpnConnections": {
      "value": [
        {
          "enableBgp": false,
          "enableInternetSecurity": true,
          "enableRateLimiting": false,
          "name": "<name>",
          "remoteVpnSiteResourceId": "<remoteVpnSiteResourceId>",
          "routingWeight": 0,
          "useLocalAzureIpAddress": false,
          "usePolicyBasedTrafficSelectors": false,
          "vpnConnectionProtocolType": "IKEv2"
        }
      ]
    }
  }
}

via Bicep parameters file
using './packages/vpn-gateways/main.bicep'

// Required parameters
param name = 'vpngmax001'
param virtualHubResourceId = '<virtualHubResourceId>'
// Non-required parameters
param bgpSettings = {
  asn: 65515
  peerWeight: 0
}
param location = '<location>'
param lock = {
  kind: 'CanNotDelete'
  name: 'myCustomLockName'
}
param natRules = [
  {
    externalMappings: [
      {
        addressSpace: '192.168.21.0/24'
      }
    ]
    internalMappings: [
      {
        addressSpace: '10.4.0.0/24'
      }
    ]
    mode: 'EgressSnat'
    name: 'natRule1'
    type: 'Static'
  }
]
param tags = {
  Environment: 'Non-Prod'
  'hidden-title': 'This is visible in the resource name'
  Role: 'DeploymentValidation'
}
param vpnConnections = [
  {
    enableBgp: false
    enableInternetSecurity: true
    enableRateLimiting: false
    name: '<name>'
    remoteVpnSiteResourceId: '<remoteVpnSiteResourceId>'
    routingWeight: 0
    useLocalAzureIpAddress: false
    usePolicyBasedTrafficSelectors: false
    vpnConnectionProtocolType: 'IKEv2'
  }
]

Example 3: Using NAT Rules

This instance deploys the module using NAT rule.

You can find the full example and the setup of its dependencies in the deployment test folder path [/tests/e2e/nat-rule]

via Bicep module
module vpnGateway './packages/vpn-gateways/main.bicep' = {
  params: {
    // Required parameters
    name: 'vpngnat001'
    virtualHubResourceId: '<virtualHubResourceId>'
    // Non-required parameters
    bgpSettings: {
      asn: 65515
      peerWeight: 0
    }
    enableTelemetry: true
    natRules: [
      {
        externalMappings: [
          {
            addressSpace: '10.52.18.0/28'
          }
        ]
        internalMappings: [
          {
            addressSpace: '10.33.5.64/28'
          }
        ]
        mode: 'EgressSnat'
        name: 'testnatrule'
        type: 'Static'
      }
      {
        externalMappings: [
          {
            addressSpace: '192.168.100.0/24'
          }
        ]
        internalMappings: [
          {
            addressSpace: '10.10.10.0/24'
          }
        ]
        mode: 'IngressSnat'
        name: 'ingress-nat-rule'
        type: 'Static'
      }
    ]
    vpnConnections: [
      {
        enableBgp: false
        enableInternetSecurity: true
        enableRateLimiting: false
        name: 'test-connection-with-nat'
        remoteVpnSiteResourceId: '<remoteVpnSiteResourceId>'
        useLocalAzureIpAddress: false
        usePolicyBasedTrafficSelectors: false
        vpnConnectionProtocolType: 'IKEv2'
        vpnLinkConnections: [
          {
            name: 'link-connection-with-egress-nat'
            properties: {
              connectionBandwidth: 100
              egressNatRules: [
                {
                  id: '<id>'
                }
              ]
              enableBgp: false
              enableRateLimiting: false
              ingressNatRules: [
                {
                  id: '<id>'
                }
              ]
              routingWeight: 10
              usePolicyBasedTrafficSelectors: false
              vpnConnectionProtocolType: 'IKEv2'
              vpnLinkConnectionMode: 'Default'
              vpnSiteLink: {
                id: '<id>'
              }
            }
          }
        ]
      }
    ]
    vpnGatewayScaleUnit: 2
  }
}

via JSON parameters file
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    // Required parameters
    "name": {
      "value": "vpngnat001"
    },
    "virtualHubResourceId": {
      "value": "<virtualHubResourceId>"
    },
    // Non-required parameters
    "bgpSettings": {
      "value": {
        "asn": 65515,
        "peerWeight": 0
      }
    },
    "enableTelemetry": {
      "value": true
    },
    "natRules": {
      "value": [
        {
          "externalMappings": [
            {
              "addressSpace": "10.52.18.0/28"
            }
          ],
          "internalMappings": [
            {
              "addressSpace": "10.33.5.64/28"
            }
          ],
          "mode": "EgressSnat",
          "name": "testnatrule",
          "type": "Static"
        },
        {
          "externalMappings": [
            {
              "addressSpace": "192.168.100.0/24"
            }
          ],
          "internalMappings": [
            {
              "addressSpace": "10.10.10.0/24"
            }
          ],
          "mode": "IngressSnat",
          "name": "ingress-nat-rule",
          "type": "Static"
        }
      ]
    },
    "vpnConnections": {
      "value": [
        {
          "enableBgp": false,
          "enableInternetSecurity": true,
          "enableRateLimiting": false,
          "name": "test-connection-with-nat",
          "remoteVpnSiteResourceId": "<remoteVpnSiteResourceId>",
          "useLocalAzureIpAddress": false,
          "usePolicyBasedTrafficSelectors": false,
          "vpnConnectionProtocolType": "IKEv2",
          "vpnLinkConnections": [
            {
              "name": "link-connection-with-egress-nat",
              "properties": {
                "connectionBandwidth": 100,
                "egressNatRules": [
                  {
                    "id": "<id>"
                  }
                ],
                "enableBgp": false,
                "enableRateLimiting": false,
                "ingressNatRules": [
                  {
                    "id": "<id>"
                  }
                ],
                "routingWeight": 10,
                "usePolicyBasedTrafficSelectors": false,
                "vpnConnectionProtocolType": "IKEv2",
                "vpnLinkConnectionMode": "Default",
                "vpnSiteLink": {
                  "id": "<id>"
                }
              }
            }
          ]
        }
      ]
    },
    "vpnGatewayScaleUnit": {
      "value": 2
    }
  }
}

via Bicep parameters file
using './packages/vpn-gateways/main.bicep'

// Required parameters
param name = 'vpngnat001'
param virtualHubResourceId = '<virtualHubResourceId>'
// Non-required parameters
param bgpSettings = {
  asn: 65515
  peerWeight: 0
}
param enableTelemetry = true
param natRules = [
  {
    externalMappings: [
      {
        addressSpace: '10.52.18.0/28'
      }
    ]
    internalMappings: [
      {
        addressSpace: '10.33.5.64/28'
      }
    ]
    mode: 'EgressSnat'
    name: 'testnatrule'
    type: 'Static'
  }
  {
    externalMappings: [
      {
        addressSpace: '192.168.100.0/24'
      }
    ]
    internalMappings: [
      {
        addressSpace: '10.10.10.0/24'
      }
    ]
    mode: 'IngressSnat'
    name: 'ingress-nat-rule'
    type: 'Static'
  }
]
param vpnConnections = [
  {
    enableBgp: false
    enableInternetSecurity: true
    enableRateLimiting: false
    name: 'test-connection-with-nat'
    remoteVpnSiteResourceId: '<remoteVpnSiteResourceId>'
    useLocalAzureIpAddress: false
    usePolicyBasedTrafficSelectors: false
    vpnConnectionProtocolType: 'IKEv2'
    vpnLinkConnections: [
      {
        name: 'link-connection-with-egress-nat'
        properties: {
          connectionBandwidth: 100
          egressNatRules: [
            {
              id: '<id>'
            }
          ]
          enableBgp: false
          enableRateLimiting: false
          ingressNatRules: [
            {
              id: '<id>'
            }
          ]
          routingWeight: 10
          usePolicyBasedTrafficSelectors: false
          vpnConnectionProtocolType: 'IKEv2'
          vpnLinkConnectionMode: 'Default'
          vpnSiteLink: {
            id: '<id>'
          }
        }
      }
    ]
  }
]
param vpnGatewayScaleUnit = 2

Example 4: WAF-aligned

This instance deploys the module in alignment with the best-practices of the Azure Well-Architected Framework.

You can find the full example and the setup of its dependencies in the deployment test folder path [/tests/e2e/waf-aligned]

via Bicep module
module vpnGateway './packages/vpn-gateways/main.bicep' = {
  params: {
    // Required parameters
    name: 'vpngwaf001'
    virtualHubResourceId: '<virtualHubResourceId>'
    // Non-required parameters
    bgpSettings: {
      asn: 65515
      peerWeight: 0
    }
    natRules: [
      {
        externalMappings: [
          {
            addressSpace: '192.168.21.0/24'
          }
        ]
        internalMappings: [
          {
            addressSpace: '10.4.0.0/24'
          }
        ]
        mode: 'EgressSnat'
        name: 'natRule1'
        type: 'Static'
      }
    ]
    tags: {
      Environment: 'Non-Prod'
      'hidden-title': 'This is visible in the resource name'
      Role: 'DeploymentValidation'
    }
    vpnConnections: [
      {
        enableBgp: false
        enableInternetSecurity: true
        enableRateLimiting: false
        name: '<name>'
        remoteVpnSiteResourceId: '<remoteVpnSiteResourceId>'
        routingWeight: 0
        useLocalAzureIpAddress: false
        usePolicyBasedTrafficSelectors: false
        vpnConnectionProtocolType: 'IKEv2'
      }
    ]
  }
}

via JSON parameters file
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    // Required parameters
    "name": {
      "value": "vpngwaf001"
    },
    "virtualHubResourceId": {
      "value": "<virtualHubResourceId>"
    },
    // Non-required parameters
    "bgpSettings": {
      "value": {
        "asn": 65515,
        "peerWeight": 0
      }
    },
    "natRules": {
      "value": [
        {
          "externalMappings": [
            {
              "addressSpace": "192.168.21.0/24"
            }
          ],
          "internalMappings": [
            {
              "addressSpace": "10.4.0.0/24"
            }
          ],
          "mode": "EgressSnat",
          "name": "natRule1",
          "type": "Static"
        }
      ]
    },
    "tags": {
      "value": {
        "Environment": "Non-Prod",
        "hidden-title": "This is visible in the resource name",
        "Role": "DeploymentValidation"
      }
    },
    "vpnConnections": {
      "value": [
        {
          "enableBgp": false,
          "enableInternetSecurity": true,
          "enableRateLimiting": false,
          "name": "<name>",
          "remoteVpnSiteResourceId": "<remoteVpnSiteResourceId>",
          "routingWeight": 0,
          "useLocalAzureIpAddress": false,
          "usePolicyBasedTrafficSelectors": false,
          "vpnConnectionProtocolType": "IKEv2"
        }
      ]
    }
  }
}

via Bicep parameters file
using './packages/vpn-gateways/main.bicep'

// Required parameters
param name = 'vpngwaf001'
param virtualHubResourceId = '<virtualHubResourceId>'
// Non-required parameters
param bgpSettings = {
  asn: 65515
  peerWeight: 0
}
param natRules = [
  {
    externalMappings: [
      {
        addressSpace: '192.168.21.0/24'
      }
    ]
    internalMappings: [
      {
        addressSpace: '10.4.0.0/24'
      }
    ]
    mode: 'EgressSnat'
    name: 'natRule1'
    type: 'Static'
  }
]
param tags = {
  Environment: 'Non-Prod'
  'hidden-title': 'This is visible in the resource name'
  Role: 'DeploymentValidation'
}
param vpnConnections = [
  {
    enableBgp: false
    enableInternetSecurity: true
    enableRateLimiting: false
    name: '<name>'
    remoteVpnSiteResourceId: '<remoteVpnSiteResourceId>'
    routingWeight: 0
    useLocalAzureIpAddress: false
    usePolicyBasedTrafficSelectors: false
    vpnConnectionProtocolType: 'IKEv2'
  }
]

Parameters

Required parameters

Parameter Type Description
name string Name of the VPN gateway.
virtualHubResourceId string The resource ID of a virtual Hub to connect to. Note: The virtual Hub and Gateway must be deployed into the same location.

Optional parameters

Parameter Type Description
bgpSettings object BGP settings details. You can specify either bgpPeeringAddress (for custom IPs outside APIPA ranges) OR bgpPeeringAddresses (for APIPA ranges 169.254.21./169.254.22.), but not both simultaneously.
enableBgpRouteTranslationForNat bool Enable BGP routes translation for NAT on this VPN gateway.
enableTelemetry bool Enable/Disable usage telemetry for module.
isRoutingPreferenceInternet bool Enable routing preference property for the public IP interface of the VPN gateway.
location string Location where all resources will be created.
lock object The lock settings of the service.
natRules array List of all the NAT Rules to associate with the gateway.
tags object Tags of the resource.
vpnConnections array The VPN connections to create in the VPN gateway.
vpnGatewayScaleUnit int The scale unit for this VPN gateway.

Parameter: name

Name of the VPN gateway.

  • Required: Yes
  • Type: string

Parameter: virtualHubResourceId

The resource ID of a virtual Hub to connect to. Note: The virtual Hub and Gateway must be deployed into the same location.

  • Required: Yes
  • Type: string

Parameter: bgpSettings

BGP settings details. You can specify either bgpPeeringAddress (for custom IPs outside APIPA ranges) OR bgpPeeringAddresses (for APIPA ranges 169.254.21./169.254.22.), but not both simultaneously.

  • Required: No
  • Type: object

Parameter: enableBgpRouteTranslationForNat

Enable BGP routes translation for NAT on this VPN gateway.

  • Required: No
  • Type: bool
  • Default: False

Parameter: enableTelemetry

Enable/Disable usage telemetry for module.

  • Required: No
  • Type: bool
  • Default: True

Parameter: isRoutingPreferenceInternet

Enable routing preference property for the public IP interface of the VPN gateway.

  • Required: No
  • Type: bool
  • Default: False

Parameter: location

Location where all resources will be created.

  • Required: No
  • Type: string
  • Default: [resourceGroup().location]

Parameter: lock

The lock settings of the service.

  • Required: No
  • Type: object

Optional parameters

Parameter Type Description
kind string Specify the type of lock.
name string Specify the name of lock.
notes string Specify the notes of the lock.

Parameter: lock.kind

Specify the type of lock.

  • Required: No
  • Type: string
  • Allowed:
    [
      'CanNotDelete'
      'None'
      'ReadOnly'
    ]
    

Parameter: lock.name

Specify the name of lock.

  • Required: No
  • Type: string

Parameter: lock.notes

Specify the notes of the lock.

  • Required: No
  • Type: string

Parameter: natRules

List of all the NAT Rules to associate with the gateway.

  • Required: No
  • Type: array

Required parameters

Parameter Type Description
name string The name of the NAT rule.

Optional parameters

Parameter Type Description
externalMappings array External mappings.
internalMappings array An address prefix range of source IPs on the inside network that will be mapped to a set of external IPs. In other words, your pre-NAT address prefix range.
ipConfigurationId string IP configuration ID.
mode string NAT rule mode.
type string NAT rule type.

Parameter: natRules.name

The name of the NAT rule.

  • Required: Yes
  • Type: string

Parameter: natRules.externalMappings

External mappings.

  • Required: No
  • Type: array

Parameter: natRules.internalMappings

An address prefix range of source IPs on the inside network that will be mapped to a set of external IPs. In other words, your pre-NAT address prefix range.

  • Required: No
  • Type: array

Parameter: natRules.ipConfigurationId

IP configuration ID.

  • Required: No
  • Type: string

Parameter: natRules.mode

NAT rule mode.

  • Required: No
  • Type: string
  • Allowed:
    [
      'EgressSnat'
      'IngressSnat'
    ]
    

Parameter: natRules.type

NAT rule type.

  • Required: No
  • Type: string
  • Allowed:
    [
      'Dynamic'
      'Static'
    ]
    

Parameter: tags

Tags of the resource.

  • Required: No
  • Type: object

Parameter: vpnConnections

The VPN connections to create in the VPN gateway.

  • Required: No
  • Type: array

Required parameters

Parameter Type Description
name string The name of the VPN connection.

Optional parameters

Parameter Type Description
connectionBandwidth int Connection bandwidth in MBPS.
enableBgp bool Enable BGP flag.
enableInternetSecurity bool Enable internet security.
enableRateLimiting bool Enable rate limiting.
ipsecPolicies array The IPSec policies to be considered by this connection.
remoteVpnSiteResourceId string Remote VPN site resource ID.
routingConfiguration object Routing configuration indicating the associated and propagated route tables for this connection.
routingWeight int Routing weight.
sharedKey securestring Shared key.
trafficSelectorPolicies array The traffic selector policies to be considered by this connection.
useLocalAzureIpAddress bool Use local Azure IP address.
usePolicyBasedTrafficSelectors bool Use policy-based traffic selectors.
vpnConnectionProtocolType string VPN connection protocol type.
vpnLinkConnections array List of all VPN site link connections to the gateway.

Parameter: vpnConnections.name

The name of the VPN connection.

  • Required: Yes
  • Type: string

Parameter: vpnConnections.connectionBandwidth

Connection bandwidth in MBPS.

  • Required: No
  • Type: int

Parameter: vpnConnections.enableBgp

Enable BGP flag.

  • Required: No
  • Type: bool

Parameter: vpnConnections.enableInternetSecurity

Enable internet security.

  • Required: No
  • Type: bool

Parameter: vpnConnections.enableRateLimiting

Enable rate limiting.

  • Required: No
  • Type: bool

Parameter: vpnConnections.ipsecPolicies

The IPSec policies to be considered by this connection.

  • Required: No
  • Type: array

Parameter: vpnConnections.remoteVpnSiteResourceId

Remote VPN site resource ID.

  • Required: No
  • Type: string

Parameter: vpnConnections.routingConfiguration

Routing configuration indicating the associated and propagated route tables for this connection.

  • Required: No
  • Type: object

Parameter: vpnConnections.routingWeight

Routing weight.

  • Required: No
  • Type: int

Parameter: vpnConnections.sharedKey

Shared key.

  • Required: No
  • Type: securestring

Parameter: vpnConnections.trafficSelectorPolicies

The traffic selector policies to be considered by this connection.

  • Required: No
  • Type: array

Parameter: vpnConnections.useLocalAzureIpAddress

Use local Azure IP address.

  • Required: No
  • Type: bool

Parameter: vpnConnections.usePolicyBasedTrafficSelectors

Use policy-based traffic selectors.

  • Required: No
  • Type: bool

Parameter: vpnConnections.vpnConnectionProtocolType

VPN connection protocol type.

  • Required: No
  • Type: string
  • Allowed:
    [
      'IKEv1'
      'IKEv2'
    ]
    

Parameter: vpnConnections.vpnLinkConnections

List of all VPN site link connections to the gateway.

  • Required: No
  • Type: array

Parameter: vpnGatewayScaleUnit

The scale unit for this VPN gateway.

  • Required: No
  • Type: int
  • Default: 2

Outputs

Output Type Description
location string The location the resource was deployed into.
name string The name of the VPN gateway.
natRuleResourceIds array The resource IDs of the NAT rules.
resourceGroupName string The name of the resource group the VPN gateway was deployed into.
resourceId string The resource ID of the VPN gateway.
vpnConnectionResourceIds array The resource IDs of the VPN connections.

Cross-referenced modules

This section gives you an overview of all local-referenced module files (i.e., other modules that are referenced in this module) and all remote-referenced files (i.e., Bicep modules that are referenced from a Bicep Registry or Template Specs).

Reference Type
./packages/utl-common-types/main.bicep Local Reference

Notes

Parameter Usage: bgpSettings

Parameter JSON format
"bgpSettings": {
    "asn": 65515,
    "peerWeight": 0,
    "bgpPeeringAddresses": [
        {
            "ipconfigurationId": "Instance0",
            "defaultBgpIpAddresses": [
                "10.0.0.12"
            ],
            "customBgpIpAddresses": [],
            "tunnelIpAddresses": [
                "20.84.35.53",
                "10.0.0.4"
            ]
        },
        {
            "ipconfigurationId": "Instance1",
            "defaultBgpIpAddresses": [
                "10.0.0.13"
            ],
            "customBgpIpAddresses": [],
            "tunnelIpAddresses": [
                "20.84.34.225",
                "10.0.0.5"
            ]
        }
    ]
}
Bicep format
bgpSettings: {
    asn: 65515
    peerWeight: 0
    bgpPeeringAddresses: [
        {
            ipconfigurationId: 'Instance0'
            defaultBgpIpAddresses: [
                '10.0.0.12'
            ]
            customBgpIpAddresses: []
            tunnelIpAddresses: [
                '20.84.35.53'
                '10.0.0.4'
            ]
        }
        {
            ipconfigurationId: 'Instance1'
            defaultBgpIpAddresses: [
                '10.0.0.13'
            ]
            customBgpIpAddresses: []
            tunnelIpAddresses: [
                '20.84.34.225'
                '10.0.0.5'
            ]
        }
    ]
}

Data Collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

Changelog

The latest version of the changelog can be found here.

0.3.0

Changes

  • Updated 'avm-common-types' references to 0.7.0
  • Added secure() to sharedKey references

Breaking Changes

  • Removed all user-defined types that represented the API in favor of resource-derived types

    • bgpSettingsType
    • nat-rule.vpnNatRuleMappingType
    • vpn-connection.ipsecPolicyType
    • vpn-connection.trafficSelectorPolicyType
    • vpn-connection.vpnSiteLinkConnectionType
    • vpn-connection.routingConfigurationType

    which only has an impact on which types are exported, not the way the parameters are used

0.2.2

Changes

  • Updated LockType to 'avm-common-types version' 0.6.1, enabling custom notes for locks.

Breaking Changes

  • None

0.2.1

Changes

  • Added bgpPeeringAddress property to bgpSettingsType
  • Updated ReadMe with AzAdvertizer reference

Breaking Changes

  • None

0.2.0

Changes

  • Initial version

Breaking Changes

  • None
 
 {
  "workingFolder": "packages",
  "packages": [
    // packages defined earlier
    {
      "name": "avm-bicep/vpn-gateways",
      "version": "0.3.0"
    }
  ]
}

Stats

Selected version:

0.3.0

Downloads this version:

0

Downloads all versions:

0

Latest version:

0.3.0

Latest update:

06-03-2026

avm-bicep

Ready to End Infrastructure Code Chaos?

Join infrastructure teams who've moved from scattered repositories to unified package management

Built by infrastructure experts
Who understand your challenges
Complete solutions
No scattered files
See what's deployed where
When it needs updates
Zero vendor lock-in
Packages work without us
No setup fees or contracts Free migration assistance Cancel anytime with no penalties
Direct founder access Zero security incidents in 2+ years Works with any cloud, any CI/CD platform