azVirtualNetworkGateway

Use the resource azVirtualNetworkGateway to deploy an Azure Virtual Network to the relevant subscription.

Attributes

Attribute Type Mandatory Values Default Notes
Name String
ResourceGroupName String
Location String
VNetName String
PublicIP Object
GatewayType String ExpressRoute, VPN, LocalGateway
GatewaySku String
VpnGatewayGeneration String
VpnType String PolicyBased, RouteBased
NatRule Object
Diagnostic Object
Tag Object
Lock Object

Public IP

Attribute Type Mandatory Values Default Notes
Name String Yes
ResourceGroupName String No

NAT Rule

Attribute Type Mandatory Values Default Notes
Name String Yes
Type String No
Mode String No
InternalMapping Array No
ExternalMapping Array No
InternalPortRange Array No
ExternalPortRange Array No

Diagnostic

Attribute Type Mandatory Values Default Notes
Name String
Log Object
Metric Object
Target Object

Diagnostic Log

Attribute Type Mandatory Values Default Notes
Enabled Boolean Defaults to true if Category is not null
Category Array GatewayDiagnosticLog
TunnelDiagnosticLog
RouteDiagnosticLog
IKEDiagnosticLog
P2SDiagnosticLog

Diagnostic Metric

Attribute Type Mandatory Values Default Notes
Enabled Boolean True, False Defaults to true if Category is not null
Category Array AllMetrics

Input by YAML

Object model for YAML deployment:

---
azVirtualNetworkGateway:
    # Mandatory
  - Name: 'string'
    ResourceGroupName: 'string'
    Location: 'string'
    VNetName: 'string'
    PublicIPName: 'string'
    GatewayType: 'string'                           # ExpressRoute, VPN
    GatewaySku: 'string'
    VpnGatewayGeneration: 'string'
    VpnType: 'string'                               # PolicyBased, RouteBased
    # Optional
    NatRule:
      - Name: 'string'
        Type: 'string'                              # Static, Dynamic
        Mode: 'string'                              # EgressSnat, IngressSnat
        InternalMapping: [array]
        ExternalMapping: [array]
        ExternalPortRange: [array]
        InternalPortRange: [array]
    Diagnostic:
      - Name: 'string'
        Log:
          Enabled: 'string'                         # True (D if Category not null), False
          Category: [array]                         # Defaults to all if enabled
        Metric:
          Enabled: 'string'                         # True (D if MetricCategory not null), False
          Category: [array]                         # Defaults to all if enabled
        Target:
          Blob:
            StorageAccount: 'string' 
            ResourceGroupName: 'string'             # Defaults to RG of resource
            Subscription: 'string'                  # Defaults to Sub of resource
            StorageKeyType: 'string'                # Primary, Secondary
            RetentionInDays: 'string'
          EventHub:
            Name: 'string'
            Namespace: 'string'
            ResourceGroupName: 'string'             # Defaults to RG of resource
            Subscription: 'string'                  # Defaults to Sub of resource
            SharedAccessPolicy: 'string'            # RootManageSharedAccessKey (D)
          LogAnalytics:
            Workspace: 'string'
            ResourceGroupName: 'string'             # Defaults to RG of resource
            Subscription: 'string'                  # Defaults to Sub of resource
    Tag: 
      'keyvalue-pairs'
    Lock:
      - Name: 'string'
        Level: 'string'                             # CanNotDelete, ReadOnly
        Notes: 'string'

Input by JSON

Object model for JSON deployment:

{
  "azVirtualNetworkGateway": [
    {
      "Name": "string",
      "ResourceGroupName": "string",
      "Location": "string",
      "VNetName": "string",
      "PublicIPName": "string",
      "GatewayType": "string",
      "GatewaySku": "string",
      "VpnGatewayGeneration": "string",
      "VpnType": "string",
      "Tag": {
        "key": "value"
      },
      "Lock": [
        {
          "Name": "string",
          "Level": "string",
          "Notes": "string"
        }
      ],
      "NatRule": [
        {
          "Name": "string",
          "Type": "string",
          "Mode": "string",
          "InternalMapping": [array],
          "ExternalMapping": [array],
          "ExternalPortRange": [array],
          "InternalPortRange": [array]
        }
      ],
      "Diagnostic": [
        {
          "Name": "string",
          "Log": {
            "Enabled": "string",
            "Category": [array]
          },
          "Metric": {
            "Enabled": "string",
            "Category": [array]
          },
          "Target": {
            "Blob": {
              "StorageAccount": "string",
              "ResourceGroupName": "string",
              "Subscription": "string",
              "StorageKeyType": "string",
              "RetentionInDays": number
            },
            "EventHub": {
              "Name": "string",
              "Namespace": "string",
              "ResourceGroupName": "string",
              "Subscription": "string",
              "SharedAccessPolicy": "string"
            },
            "LogAnalytics": {
              "Workspace": "string",
              "ResourceGroupName": "string",
              "Subscription": "string"
            }
          }
        }
      ]
    }
  ]
}