Resources/mgmt-plane/L3N1YnNjcmlwdGlvbnMve30vcmVzb3VyY2Vncm91cHMve30vcHJvdmlkZXJzL21pY3Jvc29mdC5uZXR3b3JrL3ZwbmdhdGV3YXlzL3t9/2022-05-01.xml (2,492 lines of code) (raw):
<?xml version='1.0' encoding='utf-8'?>
<CodeGen plane="mgmt-plane">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/vpngateways/{}" version="2022-05-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92cG5HYXRld2F5cy97Z2F0ZXdheU5hbWV9/V/MjAyMi0wNS0wMQ=="/>
<commandGroup name="network vpn-gateway">
<command name="show" version="2022-05-01">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/vpngateways/{}" version="2022-05-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92cG5HYXRld2F5cy97Z2F0ZXdheU5hbWV9/V/MjAyMi0wNS0wMQ=="/>
<argGroup name="">
<arg type="string" var="$Path.gatewayName" options="name n" required="True" idPart="name">
<help short="Name of the VPN gateway."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<operation operationId="VpnGateways_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}">
<request method="get">
<path>
<param type="string" name="gatewayName" arg="$Path.gatewayName" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-05-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" required="True"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="bgpSettings">
<prop type="integer64" name="asn">
<format maximum="4294967295" minimum="0"/>
</prop>
<prop type="string" name="bgpPeeringAddress"/>
<prop type="array<object>" name="bgpPeeringAddresses">
<item type="object">
<prop type="array<string>" name="customBgpIpAddresses">
<item type="string"/>
</prop>
<prop readOnly="True" type="array<string>" name="defaultBgpIpAddresses">
<item readOnly="True" type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item readOnly="True" type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="array<object>" name="connections">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth"/>
<prop readOnly="True" type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<prop readOnly="True" type="integer64" name="egressBytesTransferred"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableInternetSecurity"/>
<prop type="boolean" name="enableRateLimiting"/>
<prop readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop type="array<object>" name="ipsecPolicies">
<item type="object" cls="IpsecPolicy_read">
<prop type="string" name="dhGroup" required="True">
<enum>
<item value=""DHGroup1""/>
<item value=""DHGroup14""/>
<item value=""DHGroup2""/>
<item value=""DHGroup2048""/>
<item value=""DHGroup24""/>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ikeEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
</enum>
</prop>
<prop type="string" name="ikeIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
<item value=""SHA384""/>
</enum>
</prop>
<prop type="string" name="ipsecEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ipsecIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
</enum>
</prop>
<prop type="string" name="pfsGroup" required="True">
<enum>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
<item value=""PFS1""/>
<item value=""PFS14""/>
<item value=""PFS2""/>
<item value=""PFS2048""/>
<item value=""PFS24""/>
<item value=""PFSMM""/>
</enum>
</prop>
<prop type="integer32" name="saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" required="True"/>
</item>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="object" name="remoteVpnSite" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
<prop type="object" name="routingConfiguration">
<prop type="@SubResource_read" name="associatedRouteTable"/>
<prop type="@SubResource_read" name="inboundRouteMap"/>
<prop type="@SubResource_read" name="outboundRouteMap"/>
<prop type="object" name="propagatedRouteTables">
<prop type="array<@SubResource_read>" name="ids">
<item type="@SubResource_read"/>
</prop>
<prop type="array<string>" name="labels">
<item type="string"/>
</prop>
</prop>
<prop type="object" name="vnetRoutes">
<prop readOnly="True" type="array<@SubResource_read>" name="bgpConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<object>" name="staticRoutes">
<item type="object">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
<prop type="string" name="name"/>
<prop type="string" name="nextHopIpAddress"/>
</item>
</prop>
<prop type="object" name="staticRoutesConfig">
<prop readOnly="True" type="boolean" name="propagateStaticRoutes"/>
<prop type="string" name="vnetLocalRouteOverrideCriteria">
<enum>
<item value=""Contains""/>
<item value=""Equal""/>
</enum>
</prop>
</prop>
</prop>
</prop>
<prop type="integer32" name="routingWeight"/>
<prop type="string" name="sharedKey"/>
<prop type="array<object>" name="trafficSelectorPolicies">
<item type="object">
<prop type="array<string>" name="localAddressRanges" required="True">
<item type="string"/>
</prop>
<prop type="array<string>" name="remoteAddressRanges" required="True">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnLinkConnections">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}/vpnLinkConnections/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth"/>
<prop readOnly="True" type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop readOnly="True" type="integer64" name="egressBytesTransferred"/>
<prop type="array<@SubResource_read>" name="egressNatRules">
<item type="@SubResource_read"/>
</prop>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableRateLimiting"/>
<prop readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop type="array<@SubResource_read>" name="ingressNatRules">
<item type="@SubResource_read"/>
</prop>
<prop type="array<@IpsecPolicy_read>" name="ipsecPolicies">
<item type="@IpsecPolicy_read"/>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="integer32" name="routingWeight"/>
<prop type="string" name="sharedKey"/>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnGatewayCustomBgpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<prop type="string" name="vpnLinkConnectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="@SubResource_read" name="vpnSiteLink"/>
</prop>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
</prop>
</item>
</prop>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop readOnly="True" type="array<object>" name="ipConfigurations">
<item readOnly="True" type="object">
<prop readOnly="True" type="string" name="id"/>
<prop readOnly="True" type="string" name="privateIpAddress"/>
<prop readOnly="True" type="string" name="publicIpAddress"/>
</item>
</prop>
<prop type="boolean" name="isRoutingPreferenceInternet"/>
<prop type="array<object>" name="natRules">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="array<@SubResource_read>" name="egressVpnSiteLinkConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_read"/>
</prop>
<prop readOnly="True" type="array<@SubResource_read>" name="ingressVpnSiteLinkConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<object>" name="internalMappings">
<item type="object" cls="VpnNatRuleMapping_read">
<prop type="string" name="addressSpace"/>
<prop type="string" name="portRange"/>
</item>
</prop>
<prop type="string" name="ipConfigurationId"/>
<prop type="string" name="mode">
<enum>
<item value=""EgressSnat""/>
<item value=""IngressSnat""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="string" name="type">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="object" name="virtualHub">
<prop type="string" name="id"/>
</prop>
<prop type="integer32" name="vpnGatewayScaleUnit"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="delete" version="2022-05-01" confirmation="Are you sure you want to perform this operation?">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/vpngateways/{}" version="2022-05-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92cG5HYXRld2F5cy97Z2F0ZXdheU5hbWV9/V/MjAyMi0wNS0wMQ=="/>
<argGroup name="">
<arg type="string" var="$Path.gatewayName" options="name n" required="True" idPart="name">
<help short="Name of the VPN gateway."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<operation operationId="VpnGateways_Delete">
<longRunning finalStateVia="location"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}">
<request method="delete">
<path>
<param type="string" name="gatewayName" arg="$Path.gatewayName" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-05-01""/>
</const>
</query>
</request>
<response statusCode="200"/>
<response statusCode="202"/>
<response statusCode="204"/>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
</command>
<command name="create" version="2022-05-01">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/vpngateways/{}" version="2022-05-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92cG5HYXRld2F5cy97Z2F0ZXdheU5hbWV9/V/MjAyMi0wNS0wMQ=="/>
<argGroup name="">
<arg type="string" var="$Path.gatewayName" options="name n" required="True" idPart="name">
<help short="Name of the VPN gateway."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
<arg type="ResourceLocation" var="$vpnGatewayParameters.location" options="location l" required="True">
<help short="Location. Values from: `az account list-locations`. You can configure the default location using `az configure --defaults location=<location>`."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.virtualHub.id" options="vhub">
<help short="Name or ID of a virtual hub."/>
</arg>
<arg type="integer32" var="$vpnGatewayParameters.properties.vpnGatewayScaleUnit" options="scale-unit">
<help short="The scale unit for this VPN gateway."/>
</arg>
<arg type="object" var="$vpnGatewayParameters.tags" options="tags">
<help short="Space-separated tags: key[=value] [key[=value] ...]."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="BGP Peering">
<arg type="integer64" var="$vpnGatewayParameters.properties.bgpSettings.asn" options="asn" group="BGP Peering">
<help short="BGP speaker's ASN."/>
<format maximum="4294967295" minimum="0"/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddress" options="bgp-peering-address" group="BGP Peering">
<help short="Peering address and BGP identifier of this BGP speaker."/>
</arg>
<arg type="integer32" var="$vpnGatewayParameters.properties.bgpSettings.peerWeight" options="peer-weight" group="BGP Peering">
<help short="Weight added to routes learned from this BGP speaker."/>
</arg>
</argGroup>
<argGroup name="BgpSettings">
<arg type="array<object>" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses" options="bgp-peering-addresses" hide="True" group="BgpSettings">
<help short="BGP peering address with IP configuration ID for virtual network gateway."/>
<item type="object">
<arg type="array<string>" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].customBgpIpAddresses" options="custom-bgp-ip-addresses">
<help short="The list of custom BGP peering addresses which belong to IP configuration."/>
<item type="string"/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].ipconfigurationId" options="ipconfiguration-id">
<help short="The ID of IP configuration which belongs to gateway."/>
</arg>
</item>
</arg>
</argGroup>
<argGroup name="Properties">
<arg type="array<object>" var="$vpnGatewayParameters.properties.connections" options="connections" hide="True" group="Properties">
<help short="List of all vpn connections to the gateway."/>
<item type="object">
<arg type="ResourceId" var="$vpnGatewayParameters.properties.connections[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}"/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].name" options="name">
<help short="The name of the resource that is unique within a resource group. This name can be used to access the resource."/>
</arg>
<arg type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.connectionBandwidth" options="connection-bandwidth" group="Properties">
<help short="Expected bandwidth in MBPS."/>
</arg>
<arg type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.dpdTimeoutSeconds" options="dpd-timeout-seconds" group="Properties">
<help short="DPD timeout in seconds for vpn connection."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.enableBgp" options="enable-bgp" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.enableInternetSecurity" options="enable-internet-security" group="Properties">
<help short="Enable internet security."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.enableRateLimiting" options="enable-rate-limiting" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.ipsecPolicies" options="ipsec-policies" group="Properties">
<help short="The IPSec Policies to be considered by this connection."/>
<item type="object" cls="IpsecPolicy_create">
<arg type="string" var="@IpsecPolicy_create.dhGroup" options="dh-group" required="True">
<help short="The DH Group used in IKE Phase 1 for initial SA."/>
<enum>
<item name="DHGroup1" value=""DHGroup1""/>
<item name="DHGroup14" value=""DHGroup14""/>
<item name="DHGroup2" value=""DHGroup2""/>
<item name="DHGroup2048" value=""DHGroup2048""/>
<item name="DHGroup24" value=""DHGroup24""/>
<item name="ECP256" value=""ECP256""/>
<item name="ECP384" value=""ECP384""/>
<item name="None" value=""None""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_create.ikeEncryption" options="ike-encryption" required="True">
<help short="The IKE encryption algorithm (IKE phase 2)."/>
<enum>
<item name="AES128" value=""AES128""/>
<item name="AES192" value=""AES192""/>
<item name="AES256" value=""AES256""/>
<item name="DES" value=""DES""/>
<item name="DES3" value=""DES3""/>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES256" value=""GCMAES256""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_create.ikeIntegrity" options="ike-integrity" required="True">
<help short="The IKE integrity algorithm (IKE phase 2)."/>
<enum>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES256" value=""GCMAES256""/>
<item name="MD5" value=""MD5""/>
<item name="SHA1" value=""SHA1""/>
<item name="SHA256" value=""SHA256""/>
<item name="SHA384" value=""SHA384""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_create.ipsecEncryption" options="ipsec-encryption" required="True">
<help short="The IPSec encryption algorithm (IKE phase 1)."/>
<enum>
<item name="AES128" value=""AES128""/>
<item name="AES192" value=""AES192""/>
<item name="AES256" value=""AES256""/>
<item name="DES" value=""DES""/>
<item name="DES3" value=""DES3""/>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES192" value=""GCMAES192""/>
<item name="GCMAES256" value=""GCMAES256""/>
<item name="None" value=""None""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_create.ipsecIntegrity" options="ipsec-integrity" required="True">
<help short="The IPSec integrity algorithm (IKE phase 1)."/>
<enum>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES192" value=""GCMAES192""/>
<item name="GCMAES256" value=""GCMAES256""/>
<item name="MD5" value=""MD5""/>
<item name="SHA1" value=""SHA1""/>
<item name="SHA256" value=""SHA256""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_create.pfsGroup" options="pfs-group" required="True">
<help short="The Pfs Group used in IKE Phase 2 for new child SA."/>
<enum>
<item name="ECP256" value=""ECP256""/>
<item name="ECP384" value=""ECP384""/>
<item name="None" value=""None""/>
<item name="PFS1" value=""PFS1""/>
<item name="PFS14" value=""PFS14""/>
<item name="PFS2" value=""PFS2""/>
<item name="PFS2048" value=""PFS2048""/>
<item name="PFS24" value=""PFS24""/>
<item name="PFSMM" value=""PFSMM""/>
</enum>
</arg>
<arg type="integer32" var="@IpsecPolicy_create.saDataSizeKilobytes" options="sa-data-size-kilobytes" required="True">
<help short="The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel."/>
</arg>
<arg type="integer32" var="@IpsecPolicy_create.saLifeTimeSeconds" options="sa-life-time-seconds" required="True">
<help short="The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel."/>
</arg>
</item>
</arg>
<arg type="object" var="$vpnGatewayParameters.properties.connections[].properties.remoteVpnSite" options="remote-vpn-site" group="Properties" cls="SubResource_create">
<help short="Id of the connected vpn site."/>
<arg type="string" var="@SubResource_create.id" options="id">
<help short="Resource ID."/>
</arg>
</arg>
<arg type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration" options="routing-configuration" group="Properties">
<help short="The Routing Configuration indicating the associated and propagated route tables on this connection."/>
<arg type="@SubResource_create" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.associatedRouteTable" options="associated-route-table">
<help short="The resource id RouteTable associated with this RoutingConfiguration."/>
</arg>
<arg type="@SubResource_create" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.inboundRouteMap" options="inbound-route-map">
<help short="The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes."/>
</arg>
<arg type="@SubResource_create" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.outboundRouteMap" options="outbound-route-map">
<help short="The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes."/>
</arg>
<arg type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables" options="propagated-route-tables">
<help short="The list of RouteTables to advertise the routes to."/>
<arg type="array<@SubResource_create>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.ids" options="ids">
<help short="The list of resource ids of all the RouteTables."/>
<item type="@SubResource_create"/>
</arg>
<arg type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.labels" options="labels">
<help short="The list of labels."/>
<item type="string"/>
</arg>
</arg>
<arg type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes" options="vnet-routes">
<help short="List of routes that control routing from VirtualHub into a virtual network connection."/>
<arg type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes" options="static-routes">
<help short="List of all Static Routes."/>
<item type="object">
<arg type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].addressPrefixes" options="address-prefixes">
<help short="List of all address prefixes."/>
<item type="string"/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].name" options="name">
<help short="The name of the StaticRoute that is unique within a VnetRoute."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].nextHopIpAddress" options="next-hop-ip-address">
<help short="The ip address of the next hop."/>
</arg>
</item>
</arg>
<arg type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig" options="static-routes-config">
<help short="Configuration for static routes on this HubVnetConnection."/>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig.vnetLocalRouteOverrideCriteria" options="vnet-local-route-override-criteria">
<help short="Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke."/>
<enum>
<item name="Contains" value=""Contains""/>
<item name="Equal" value=""Equal""/>
</enum>
</arg>
</arg>
</arg>
</arg>
<arg type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.routingWeight" options="routing-weight" group="Properties">
<help short="Routing weight for vpn connection."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.sharedKey" options="shared-key" group="Properties">
<help short="SharedKey for the vpn connection."/>
</arg>
<arg type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies" options="traffic-selector-policies" group="Properties">
<help short="The Traffic Selector Policies to be considered by this connection."/>
<item type="object">
<arg type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].localAddressRanges" options="local-address-ranges" required="True">
<help short="A collection of local address spaces in CIDR format."/>
<item type="string"/>
</arg>
<arg type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].remoteAddressRanges" options="remote-address-ranges" required="True">
<help short="A collection of remote address spaces in CIDR format."/>
<item type="string"/>
</arg>
</item>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.useLocalAzureIpAddress" options="use-local-azure-ip-address" group="Properties">
<help short="Use local azure ip to initiate connection."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.usePolicyBasedTrafficSelectors" options="use-policy-based-traffic-selectors" group="Properties">
<help short="Enable policy-based traffic selectors."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnConnectionProtocolType" options="vpn-connection-protocol-type" group="Properties">
<help short="Connection protocol used for this connection."/>
<enum>
<item name="IKEv1" value=""IKEv1""/>
<item name="IKEv2" value=""IKEv2""/>
</enum>
</arg>
<arg type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections" options="vpn-link-connections" group="Properties">
<help short="List of all vpn site link connections to the gateway."/>
<item type="object">
<arg type="ResourceId" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}/vpnLinkConnections/{}"/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].name" options="name">
<help short="The name of the resource that is unique within a resource group. This name can be used to access the resource."/>
</arg>
<arg type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.connectionBandwidth" options="connection-bandwidth" group="Properties">
<help short="Expected bandwidth in MBPS."/>
</arg>
<arg type="array<@SubResource_create>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.egressNatRules" options="egress-nat-rules" group="Properties">
<help short="List of egress NatRules."/>
<item type="@SubResource_create"/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableBgp" options="enable-bgp" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableRateLimiting" options="enable-rate-limiting" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg type="array<@SubResource_create>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ingressNatRules" options="ingress-nat-rules" group="Properties">
<help short="List of ingress NatRules."/>
<item type="@SubResource_create"/>
</arg>
<arg type="array<@IpsecPolicy_create>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ipsecPolicies" options="ipsec-policies" group="Properties">
<help short="The IPSec Policies to be considered by this connection."/>
<item type="@IpsecPolicy_create"/>
</arg>
<arg type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.routingWeight" options="routing-weight" group="Properties">
<help short="Routing weight for vpn connection."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.sharedKey" options="shared-key" group="Properties">
<help short="SharedKey for the vpn connection."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.useLocalAzureIpAddress" options="use-local-azure-ip-address" group="Properties">
<help short="Use local azure ip to initiate connection."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.usePolicyBasedTrafficSelectors" options="use-policy-based-traffic-selectors" group="Properties">
<help short="Enable policy-based traffic selectors."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnConnectionProtocolType" options="vpn-connection-protocol-type" group="Properties">
<help short="Connection protocol used for this connection."/>
<enum>
<item name="IKEv1" value=""IKEv1""/>
<item name="IKEv2" value=""IKEv2""/>
</enum>
</arg>
<arg type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses" options="vpn-gateway-custom-bgp-addresses" group="Properties">
<help short="vpnGatewayCustomBgpAddresses used by this connection."/>
<item type="object">
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].customBgpIpAddress" options="custom-bgp-ip-address" required="True">
<help short="The custom BgpPeeringAddress which belongs to IpconfigurationId."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].ipConfigurationId" options="ip-configuration-id" required="True">
<help short="The IpconfigurationId of ipconfiguration which belongs to gateway."/>
</arg>
</item>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnLinkConnectionMode" options="vpn-link-connection-mode" group="Properties">
<help short="Vpn link connection mode."/>
<enum>
<item name="Default" value=""Default""/>
<item name="InitiatorOnly" value=""InitiatorOnly""/>
<item name="ResponderOnly" value=""ResponderOnly""/>
</enum>
</arg>
<arg type="@SubResource_create" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnSiteLink" options="vpn-site-link" group="Properties">
<help short="Id of the connected vpn site link."/>
</arg>
</item>
</arg>
</item>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.enableBgpRouteTranslationForNat" options="enable-bgp-route-translation-for-nat" hide="True" group="Properties">
<help short="Enable BGP routes translation for NAT on this VpnGateway."/>
</arg>
<arg type="boolean" var="$vpnGatewayParameters.properties.isRoutingPreferenceInternet" options="is-routing-preference-internet" hide="True" group="Properties">
<help short="Enable Routing Preference property for the Public IP Interface of the VpnGateway."/>
</arg>
<arg type="array<object>" var="$vpnGatewayParameters.properties.natRules" options="nat-rules" hide="True" group="Properties">
<help short="List of all the nat Rules associated with the gateway."/>
<item type="object">
<arg type="ResourceId" var="$vpnGatewayParameters.properties.natRules[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/natRules/{}"/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.natRules[].name" options="name">
<help short="The name of the resource that is unique within a resource group. This name can be used to access the resource."/>
</arg>
<arg type="array<@VpnNatRuleMapping_create>" var="$vpnGatewayParameters.properties.natRules[].properties.externalMappings" options="external-mappings" group="Properties">
<help short="The private IP address external mapping for NAT."/>
<item type="@VpnNatRuleMapping_create"/>
</arg>
<arg type="array<object>" var="$vpnGatewayParameters.properties.natRules[].properties.internalMappings" options="internal-mappings" group="Properties">
<help short="The private IP address internal mapping for NAT."/>
<item type="object" cls="VpnNatRuleMapping_create">
<arg type="string" var="@VpnNatRuleMapping_create.addressSpace" options="address-space">
<help short="Address space for Vpn NatRule mapping."/>
</arg>
<arg type="string" var="@VpnNatRuleMapping_create.portRange" options="port-range">
<help short="Port range for Vpn NatRule mapping."/>
</arg>
</item>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.natRules[].properties.ipConfigurationId" options="ip-configuration-id" group="Properties">
<help short="The IP Configuration ID this NAT rule applies to."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.natRules[].properties.mode" options="mode" group="Properties">
<help short="The Source NAT direction of a VPN NAT."/>
<enum>
<item name="EgressSnat" value=""EgressSnat""/>
<item name="IngressSnat" value=""IngressSnat""/>
</enum>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.natRules[].properties.type" options="type" group="Properties">
<help short="The type of NAT rule for VPN NAT."/>
<enum>
<item name="Dynamic" value=""Dynamic""/>
<item name="Static" value=""Static""/>
</enum>
</arg>
</item>
</arg>
</argGroup>
<argGroup name="VpnGatewayParameters">
<arg type="ResourceId" var="$vpnGatewayParameters.id" options="id" hide="True" group="VpnGatewayParameters">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}"/>
</arg>
</argGroup>
<operation operationId="VpnGateways_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}">
<request method="put">
<path>
<param type="string" name="gatewayName" arg="$Path.gatewayName" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-05-01""/>
</const>
</query>
<body>
<json>
<schema type="object" name="vpnGatewayParameters" required="True" clientFlatten="True">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="$vpnGatewayParameters.location" required="True"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="bgpSettings">
<prop type="integer64" name="asn" arg="$vpnGatewayParameters.properties.bgpSettings.asn">
<format maximum="4294967295" minimum="0"/>
</prop>
<prop type="string" name="bgpPeeringAddress" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddress"/>
<prop type="array<object>" name="bgpPeeringAddresses" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses">
<item type="object">
<prop type="array<string>" name="customBgpIpAddresses" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].customBgpIpAddresses">
<item type="string"/>
</prop>
<prop type="string" name="ipconfigurationId" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].ipconfigurationId"/>
</item>
</prop>
<prop type="integer32" name="peerWeight" arg="$vpnGatewayParameters.properties.bgpSettings.peerWeight"/>
</prop>
<prop type="array<object>" name="connections" arg="$vpnGatewayParameters.properties.connections">
<item type="object">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.properties.connections[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.connections[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth" arg="$vpnGatewayParameters.properties.connections[].properties.connectionBandwidth"/>
<prop type="integer32" name="dpdTimeoutSeconds" arg="$vpnGatewayParameters.properties.connections[].properties.dpdTimeoutSeconds"/>
<prop type="boolean" name="enableBgp" arg="$vpnGatewayParameters.properties.connections[].properties.enableBgp"/>
<prop type="boolean" name="enableInternetSecurity" arg="$vpnGatewayParameters.properties.connections[].properties.enableInternetSecurity"/>
<prop type="boolean" name="enableRateLimiting" arg="$vpnGatewayParameters.properties.connections[].properties.enableRateLimiting"/>
<prop type="array<object>" name="ipsecPolicies" arg="$vpnGatewayParameters.properties.connections[].properties.ipsecPolicies">
<item type="object" cls="IpsecPolicy_create">
<prop type="string" name="dhGroup" arg="@IpsecPolicy_create.dhGroup" required="True">
<enum>
<item value=""DHGroup1""/>
<item value=""DHGroup14""/>
<item value=""DHGroup2""/>
<item value=""DHGroup2048""/>
<item value=""DHGroup24""/>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ikeEncryption" arg="@IpsecPolicy_create.ikeEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
</enum>
</prop>
<prop type="string" name="ikeIntegrity" arg="@IpsecPolicy_create.ikeIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
<item value=""SHA384""/>
</enum>
</prop>
<prop type="string" name="ipsecEncryption" arg="@IpsecPolicy_create.ipsecEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ipsecIntegrity" arg="@IpsecPolicy_create.ipsecIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
</enum>
</prop>
<prop type="string" name="pfsGroup" arg="@IpsecPolicy_create.pfsGroup" required="True">
<enum>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
<item value=""PFS1""/>
<item value=""PFS14""/>
<item value=""PFS2""/>
<item value=""PFS2048""/>
<item value=""PFS24""/>
<item value=""PFSMM""/>
</enum>
</prop>
<prop type="integer32" name="saDataSizeKilobytes" arg="@IpsecPolicy_create.saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" arg="@IpsecPolicy_create.saLifeTimeSeconds" required="True"/>
</item>
</prop>
<prop type="object" name="remoteVpnSite" arg="$vpnGatewayParameters.properties.connections[].properties.remoteVpnSite" cls="SubResource_create">
<prop type="string" name="id" arg="@SubResource_create.id"/>
</prop>
<prop type="object" name="routingConfiguration" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration">
<prop type="@SubResource_create" name="associatedRouteTable" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.associatedRouteTable"/>
<prop type="@SubResource_create" name="inboundRouteMap" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.inboundRouteMap"/>
<prop type="@SubResource_create" name="outboundRouteMap" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.outboundRouteMap"/>
<prop type="object" name="propagatedRouteTables" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables">
<prop type="array<@SubResource_create>" name="ids" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.ids">
<item type="@SubResource_create"/>
</prop>
<prop type="array<string>" name="labels" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.labels">
<item type="string"/>
</prop>
</prop>
<prop type="object" name="vnetRoutes" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes">
<prop type="array<object>" name="staticRoutes" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes">
<item type="object">
<prop type="array<string>" name="addressPrefixes" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].addressPrefixes">
<item type="string"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].name"/>
<prop type="string" name="nextHopIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].nextHopIpAddress"/>
</item>
</prop>
<prop type="object" name="staticRoutesConfig" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig">
<prop type="string" name="vnetLocalRouteOverrideCriteria" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig.vnetLocalRouteOverrideCriteria">
<enum>
<item value=""Contains""/>
<item value=""Equal""/>
</enum>
</prop>
</prop>
</prop>
</prop>
<prop type="integer32" name="routingWeight" arg="$vpnGatewayParameters.properties.connections[].properties.routingWeight"/>
<prop type="string" name="sharedKey" arg="$vpnGatewayParameters.properties.connections[].properties.sharedKey"/>
<prop type="array<object>" name="trafficSelectorPolicies" arg="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies">
<item type="object">
<prop type="array<string>" name="localAddressRanges" arg="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].localAddressRanges" required="True">
<item type="string"/>
</prop>
<prop type="array<string>" name="remoteAddressRanges" arg="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].remoteAddressRanges" required="True">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors" arg="$vpnGatewayParameters.properties.connections[].properties.usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType" arg="$vpnGatewayParameters.properties.connections[].properties.vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnLinkConnections" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections">
<item type="object">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}/vpnLinkConnections/{}"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.connectionBandwidth"/>
<prop type="array<@SubResource_create>" name="egressNatRules" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.egressNatRules">
<item type="@SubResource_create"/>
</prop>
<prop type="boolean" name="enableBgp" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableBgp"/>
<prop type="boolean" name="enableRateLimiting" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableRateLimiting"/>
<prop type="array<@SubResource_create>" name="ingressNatRules" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ingressNatRules">
<item type="@SubResource_create"/>
</prop>
<prop type="array<@IpsecPolicy_create>" name="ipsecPolicies" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ipsecPolicies">
<item type="@IpsecPolicy_create"/>
</prop>
<prop type="integer32" name="routingWeight" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.routingWeight"/>
<prop type="string" name="sharedKey" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.sharedKey"/>
<prop type="boolean" name="useLocalAzureIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnGatewayCustomBgpAddresses" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].ipConfigurationId" required="True"/>
</item>
</prop>
<prop type="string" name="vpnLinkConnectionMode" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnLinkConnectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="@SubResource_create" name="vpnSiteLink" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnSiteLink"/>
</prop>
</item>
</prop>
</prop>
</item>
</prop>
<prop type="boolean" name="enableBgpRouteTranslationForNat" arg="$vpnGatewayParameters.properties.enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="isRoutingPreferenceInternet" arg="$vpnGatewayParameters.properties.isRoutingPreferenceInternet"/>
<prop type="array<object>" name="natRules" arg="$vpnGatewayParameters.properties.natRules">
<item type="object">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.properties.natRules[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.natRules[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_create>" name="externalMappings" arg="$vpnGatewayParameters.properties.natRules[].properties.externalMappings">
<item type="@VpnNatRuleMapping_create"/>
</prop>
<prop type="array<object>" name="internalMappings" arg="$vpnGatewayParameters.properties.natRules[].properties.internalMappings">
<item type="object" cls="VpnNatRuleMapping_create">
<prop type="string" name="addressSpace" arg="@VpnNatRuleMapping_create.addressSpace"/>
<prop type="string" name="portRange" arg="@VpnNatRuleMapping_create.portRange"/>
</item>
</prop>
<prop type="string" name="ipConfigurationId" arg="$vpnGatewayParameters.properties.natRules[].properties.ipConfigurationId"/>
<prop type="string" name="mode" arg="$vpnGatewayParameters.properties.natRules[].properties.mode">
<enum>
<item value=""EgressSnat""/>
<item value=""IngressSnat""/>
</enum>
</prop>
<prop type="string" name="type" arg="$vpnGatewayParameters.properties.natRules[].properties.type">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
</prop>
</item>
</prop>
<prop type="object" name="virtualHub">
<prop type="string" name="id" arg="$vpnGatewayParameters.properties.virtualHub.id"/>
</prop>
<prop type="integer32" name="vpnGatewayScaleUnit" arg="$vpnGatewayParameters.properties.vpnGatewayScaleUnit"/>
</prop>
<prop type="object" name="tags" arg="$vpnGatewayParameters.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</schema>
</json>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" required="True"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="bgpSettings">
<prop type="integer64" name="asn">
<format maximum="4294967295" minimum="0"/>
</prop>
<prop type="string" name="bgpPeeringAddress"/>
<prop type="array<object>" name="bgpPeeringAddresses">
<item type="object">
<prop type="array<string>" name="customBgpIpAddresses">
<item type="string"/>
</prop>
<prop readOnly="True" type="array<string>" name="defaultBgpIpAddresses">
<item readOnly="True" type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item readOnly="True" type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="array<object>" name="connections">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth"/>
<prop readOnly="True" type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<prop readOnly="True" type="integer64" name="egressBytesTransferred"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableInternetSecurity"/>
<prop type="boolean" name="enableRateLimiting"/>
<prop readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop type="array<object>" name="ipsecPolicies">
<item type="object" cls="IpsecPolicy_read">
<prop type="string" name="dhGroup" required="True">
<enum>
<item value=""DHGroup1""/>
<item value=""DHGroup14""/>
<item value=""DHGroup2""/>
<item value=""DHGroup2048""/>
<item value=""DHGroup24""/>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ikeEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
</enum>
</prop>
<prop type="string" name="ikeIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
<item value=""SHA384""/>
</enum>
</prop>
<prop type="string" name="ipsecEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ipsecIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
</enum>
</prop>
<prop type="string" name="pfsGroup" required="True">
<enum>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
<item value=""PFS1""/>
<item value=""PFS14""/>
<item value=""PFS2""/>
<item value=""PFS2048""/>
<item value=""PFS24""/>
<item value=""PFSMM""/>
</enum>
</prop>
<prop type="integer32" name="saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" required="True"/>
</item>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="object" name="remoteVpnSite" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
<prop type="object" name="routingConfiguration">
<prop type="@SubResource_read" name="associatedRouteTable"/>
<prop type="@SubResource_read" name="inboundRouteMap"/>
<prop type="@SubResource_read" name="outboundRouteMap"/>
<prop type="object" name="propagatedRouteTables">
<prop type="array<@SubResource_read>" name="ids">
<item type="@SubResource_read"/>
</prop>
<prop type="array<string>" name="labels">
<item type="string"/>
</prop>
</prop>
<prop type="object" name="vnetRoutes">
<prop readOnly="True" type="array<@SubResource_read>" name="bgpConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<object>" name="staticRoutes">
<item type="object">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
<prop type="string" name="name"/>
<prop type="string" name="nextHopIpAddress"/>
</item>
</prop>
<prop type="object" name="staticRoutesConfig">
<prop readOnly="True" type="boolean" name="propagateStaticRoutes"/>
<prop type="string" name="vnetLocalRouteOverrideCriteria">
<enum>
<item value=""Contains""/>
<item value=""Equal""/>
</enum>
</prop>
</prop>
</prop>
</prop>
<prop type="integer32" name="routingWeight"/>
<prop type="string" name="sharedKey"/>
<prop type="array<object>" name="trafficSelectorPolicies">
<item type="object">
<prop type="array<string>" name="localAddressRanges" required="True">
<item type="string"/>
</prop>
<prop type="array<string>" name="remoteAddressRanges" required="True">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnLinkConnections">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}/vpnLinkConnections/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth"/>
<prop readOnly="True" type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop readOnly="True" type="integer64" name="egressBytesTransferred"/>
<prop type="array<@SubResource_read>" name="egressNatRules">
<item type="@SubResource_read"/>
</prop>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableRateLimiting"/>
<prop readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop type="array<@SubResource_read>" name="ingressNatRules">
<item type="@SubResource_read"/>
</prop>
<prop type="array<@IpsecPolicy_read>" name="ipsecPolicies">
<item type="@IpsecPolicy_read"/>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="integer32" name="routingWeight"/>
<prop type="string" name="sharedKey"/>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnGatewayCustomBgpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<prop type="string" name="vpnLinkConnectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="@SubResource_read" name="vpnSiteLink"/>
</prop>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
</prop>
</item>
</prop>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop readOnly="True" type="array<object>" name="ipConfigurations">
<item readOnly="True" type="object">
<prop readOnly="True" type="string" name="id"/>
<prop readOnly="True" type="string" name="privateIpAddress"/>
<prop readOnly="True" type="string" name="publicIpAddress"/>
</item>
</prop>
<prop type="boolean" name="isRoutingPreferenceInternet"/>
<prop type="array<object>" name="natRules">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="array<@SubResource_read>" name="egressVpnSiteLinkConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_read"/>
</prop>
<prop readOnly="True" type="array<@SubResource_read>" name="ingressVpnSiteLinkConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<object>" name="internalMappings">
<item type="object" cls="VpnNatRuleMapping_read">
<prop type="string" name="addressSpace"/>
<prop type="string" name="portRange"/>
</item>
</prop>
<prop type="string" name="ipConfigurationId"/>
<prop type="string" name="mode">
<enum>
<item value=""EgressSnat""/>
<item value=""IngressSnat""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="string" name="type">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="object" name="virtualHub">
<prop type="string" name="id"/>
</prop>
<prop type="integer32" name="vpnGatewayScaleUnit"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="update" version="2022-05-01">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/vpngateways/{}" version="2022-05-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92cG5HYXRld2F5cy97Z2F0ZXdheU5hbWV9/V/MjAyMi0wNS0wMQ=="/>
<argGroup name="">
<arg type="string" var="$Path.gatewayName" options="name n" required="True" idPart="name">
<help short="Name of the VPN gateway."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.virtualHub.id" options="vhub">
<help short="Name or ID of a virtual hub."/>
</arg>
<arg nullable="True" type="integer32" var="$vpnGatewayParameters.properties.vpnGatewayScaleUnit" options="scale-unit">
<help short="The scale unit for this VPN gateway."/>
</arg>
<arg nullable="True" type="object" var="$vpnGatewayParameters.tags" options="tags">
<help short="Space-separated tags: key[=value] [key[=value] ...]."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="BGP Peering">
<arg nullable="True" type="integer64" var="$vpnGatewayParameters.properties.bgpSettings.asn" options="asn" group="BGP Peering">
<help short="BGP speaker's ASN."/>
<format maximum="4294967295" minimum="0"/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddress" options="bgp-peering-address" group="BGP Peering">
<help short="Peering address and BGP identifier of this BGP speaker."/>
</arg>
<arg nullable="True" type="integer32" var="$vpnGatewayParameters.properties.bgpSettings.peerWeight" options="peer-weight" group="BGP Peering">
<help short="Weight added to routes learned from this BGP speaker."/>
</arg>
</argGroup>
<argGroup name="BgpSettings">
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses" options="bgp-peering-addresses" hide="True" group="BgpSettings">
<help short="BGP peering address with IP configuration ID for virtual network gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="array<string>" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].customBgpIpAddresses" options="custom-bgp-ip-addresses">
<help short="The list of custom BGP peering addresses which belong to IP configuration."/>
<item nullable="True" type="string"/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].ipconfigurationId" options="ipconfiguration-id">
<help short="The ID of IP configuration which belongs to gateway."/>
</arg>
</item>
</arg>
</argGroup>
<argGroup name="Properties">
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.connections" options="connections" hide="True" group="Properties">
<help short="List of all vpn connections to the gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="ResourceId" var="$vpnGatewayParameters.properties.connections[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}"/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].name" options="name">
<help short="The name of the resource that is unique within a resource group. This name can be used to access the resource."/>
</arg>
<arg nullable="True" type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.connectionBandwidth" options="connection-bandwidth" group="Properties">
<help short="Expected bandwidth in MBPS."/>
</arg>
<arg nullable="True" type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.dpdTimeoutSeconds" options="dpd-timeout-seconds" group="Properties">
<help short="DPD timeout in seconds for vpn connection."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.enableBgp" options="enable-bgp" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.enableInternetSecurity" options="enable-internet-security" group="Properties">
<help short="Enable internet security."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.enableRateLimiting" options="enable-rate-limiting" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.ipsecPolicies" options="ipsec-policies" group="Properties">
<help short="The IPSec Policies to be considered by this connection."/>
<item nullable="True" type="object" cls="IpsecPolicy_update">
<arg type="string" var="@IpsecPolicy_update.dhGroup" options="dh-group">
<help short="The DH Group used in IKE Phase 1 for initial SA."/>
<enum>
<item name="DHGroup1" value=""DHGroup1""/>
<item name="DHGroup14" value=""DHGroup14""/>
<item name="DHGroup2" value=""DHGroup2""/>
<item name="DHGroup2048" value=""DHGroup2048""/>
<item name="DHGroup24" value=""DHGroup24""/>
<item name="ECP256" value=""ECP256""/>
<item name="ECP384" value=""ECP384""/>
<item name="None" value=""None""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_update.ikeEncryption" options="ike-encryption">
<help short="The IKE encryption algorithm (IKE phase 2)."/>
<enum>
<item name="AES128" value=""AES128""/>
<item name="AES192" value=""AES192""/>
<item name="AES256" value=""AES256""/>
<item name="DES" value=""DES""/>
<item name="DES3" value=""DES3""/>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES256" value=""GCMAES256""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_update.ikeIntegrity" options="ike-integrity">
<help short="The IKE integrity algorithm (IKE phase 2)."/>
<enum>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES256" value=""GCMAES256""/>
<item name="MD5" value=""MD5""/>
<item name="SHA1" value=""SHA1""/>
<item name="SHA256" value=""SHA256""/>
<item name="SHA384" value=""SHA384""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_update.ipsecEncryption" options="ipsec-encryption">
<help short="The IPSec encryption algorithm (IKE phase 1)."/>
<enum>
<item name="AES128" value=""AES128""/>
<item name="AES192" value=""AES192""/>
<item name="AES256" value=""AES256""/>
<item name="DES" value=""DES""/>
<item name="DES3" value=""DES3""/>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES192" value=""GCMAES192""/>
<item name="GCMAES256" value=""GCMAES256""/>
<item name="None" value=""None""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_update.ipsecIntegrity" options="ipsec-integrity">
<help short="The IPSec integrity algorithm (IKE phase 1)."/>
<enum>
<item name="GCMAES128" value=""GCMAES128""/>
<item name="GCMAES192" value=""GCMAES192""/>
<item name="GCMAES256" value=""GCMAES256""/>
<item name="MD5" value=""MD5""/>
<item name="SHA1" value=""SHA1""/>
<item name="SHA256" value=""SHA256""/>
</enum>
</arg>
<arg type="string" var="@IpsecPolicy_update.pfsGroup" options="pfs-group">
<help short="The Pfs Group used in IKE Phase 2 for new child SA."/>
<enum>
<item name="ECP256" value=""ECP256""/>
<item name="ECP384" value=""ECP384""/>
<item name="None" value=""None""/>
<item name="PFS1" value=""PFS1""/>
<item name="PFS14" value=""PFS14""/>
<item name="PFS2" value=""PFS2""/>
<item name="PFS2048" value=""PFS2048""/>
<item name="PFS24" value=""PFS24""/>
<item name="PFSMM" value=""PFSMM""/>
</enum>
</arg>
<arg type="integer32" var="@IpsecPolicy_update.saDataSizeKilobytes" options="sa-data-size-kilobytes">
<help short="The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for a site to site VPN tunnel."/>
</arg>
<arg type="integer32" var="@IpsecPolicy_update.saLifeTimeSeconds" options="sa-life-time-seconds">
<help short="The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for a site to site VPN tunnel."/>
</arg>
</item>
</arg>
<arg nullable="True" type="object" var="$vpnGatewayParameters.properties.connections[].properties.remoteVpnSite" options="remote-vpn-site" group="Properties" cls="SubResource_update">
<help short="Id of the connected vpn site."/>
<arg nullable="True" type="string" var="@SubResource_update.id" options="id">
<help short="Resource ID."/>
</arg>
</arg>
<arg nullable="True" type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration" options="routing-configuration" group="Properties">
<help short="The Routing Configuration indicating the associated and propagated route tables on this connection."/>
<arg nullable="True" type="@SubResource_update" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.associatedRouteTable" options="associated-route-table">
<help short="The resource id RouteTable associated with this RoutingConfiguration."/>
</arg>
<arg nullable="True" type="@SubResource_update" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.inboundRouteMap" options="inbound-route-map">
<help short="The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes."/>
</arg>
<arg nullable="True" type="@SubResource_update" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.outboundRouteMap" options="outbound-route-map">
<help short="The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes."/>
</arg>
<arg nullable="True" type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables" options="propagated-route-tables">
<help short="The list of RouteTables to advertise the routes to."/>
<arg nullable="True" type="array<@SubResource_update>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.ids" options="ids">
<help short="The list of resource ids of all the RouteTables."/>
<item nullable="True" type="@SubResource_update"/>
</arg>
<arg nullable="True" type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.labels" options="labels">
<help short="The list of labels."/>
<item nullable="True" type="string"/>
</arg>
</arg>
<arg nullable="True" type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes" options="vnet-routes">
<help short="List of routes that control routing from VirtualHub into a virtual network connection."/>
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes" options="static-routes">
<help short="List of all Static Routes."/>
<item nullable="True" type="object">
<arg nullable="True" type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].addressPrefixes" options="address-prefixes">
<help short="List of all address prefixes."/>
<item nullable="True" type="string"/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].name" options="name">
<help short="The name of the StaticRoute that is unique within a VnetRoute."/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].nextHopIpAddress" options="next-hop-ip-address">
<help short="The ip address of the next hop."/>
</arg>
</item>
</arg>
<arg nullable="True" type="object" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig" options="static-routes-config">
<help short="Configuration for static routes on this HubVnetConnection."/>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig.vnetLocalRouteOverrideCriteria" options="vnet-local-route-override-criteria">
<help short="Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke."/>
<enum>
<item name="Contains" value=""Contains""/>
<item name="Equal" value=""Equal""/>
</enum>
</arg>
</arg>
</arg>
</arg>
<arg nullable="True" type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.routingWeight" options="routing-weight" group="Properties">
<help short="Routing weight for vpn connection."/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.sharedKey" options="shared-key" group="Properties">
<help short="SharedKey for the vpn connection."/>
</arg>
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies" options="traffic-selector-policies" group="Properties">
<help short="The Traffic Selector Policies to be considered by this connection."/>
<item nullable="True" type="object">
<arg type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].localAddressRanges" options="local-address-ranges">
<help short="A collection of local address spaces in CIDR format."/>
<item nullable="True" type="string"/>
</arg>
<arg type="array<string>" var="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].remoteAddressRanges" options="remote-address-ranges">
<help short="A collection of remote address spaces in CIDR format."/>
<item nullable="True" type="string"/>
</arg>
</item>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.useLocalAzureIpAddress" options="use-local-azure-ip-address" group="Properties">
<help short="Use local azure ip to initiate connection."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.usePolicyBasedTrafficSelectors" options="use-policy-based-traffic-selectors" group="Properties">
<help short="Enable policy-based traffic selectors."/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnConnectionProtocolType" options="vpn-connection-protocol-type" group="Properties">
<help short="Connection protocol used for this connection."/>
<enum>
<item name="IKEv1" value=""IKEv1""/>
<item name="IKEv2" value=""IKEv2""/>
</enum>
</arg>
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections" options="vpn-link-connections" group="Properties">
<help short="List of all vpn site link connections to the gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="ResourceId" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}/vpnLinkConnections/{}"/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].name" options="name">
<help short="The name of the resource that is unique within a resource group. This name can be used to access the resource."/>
</arg>
<arg nullable="True" type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.connectionBandwidth" options="connection-bandwidth" group="Properties">
<help short="Expected bandwidth in MBPS."/>
</arg>
<arg nullable="True" type="array<@SubResource_update>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.egressNatRules" options="egress-nat-rules" group="Properties">
<help short="List of egress NatRules."/>
<item nullable="True" type="@SubResource_update"/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableBgp" options="enable-bgp" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableRateLimiting" options="enable-rate-limiting" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg nullable="True" type="array<@SubResource_update>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ingressNatRules" options="ingress-nat-rules" group="Properties">
<help short="List of ingress NatRules."/>
<item nullable="True" type="@SubResource_update"/>
</arg>
<arg nullable="True" type="array<@IpsecPolicy_update>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ipsecPolicies" options="ipsec-policies" group="Properties">
<help short="The IPSec Policies to be considered by this connection."/>
<item nullable="True" type="@IpsecPolicy_update"/>
</arg>
<arg nullable="True" type="integer32" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.routingWeight" options="routing-weight" group="Properties">
<help short="Routing weight for vpn connection."/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.sharedKey" options="shared-key" group="Properties">
<help short="SharedKey for the vpn connection."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.useLocalAzureIpAddress" options="use-local-azure-ip-address" group="Properties">
<help short="Use local azure ip to initiate connection."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.usePolicyBasedTrafficSelectors" options="use-policy-based-traffic-selectors" group="Properties">
<help short="Enable policy-based traffic selectors."/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnConnectionProtocolType" options="vpn-connection-protocol-type" group="Properties">
<help short="Connection protocol used for this connection."/>
<enum>
<item name="IKEv1" value=""IKEv1""/>
<item name="IKEv2" value=""IKEv2""/>
</enum>
</arg>
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses" options="vpn-gateway-custom-bgp-addresses" group="Properties">
<help short="vpnGatewayCustomBgpAddresses used by this connection."/>
<item nullable="True" type="object">
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].customBgpIpAddress" options="custom-bgp-ip-address">
<help short="The custom BgpPeeringAddress which belongs to IpconfigurationId."/>
</arg>
<arg type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].ipConfigurationId" options="ip-configuration-id">
<help short="The IpconfigurationId of ipconfiguration which belongs to gateway."/>
</arg>
</item>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnLinkConnectionMode" options="vpn-link-connection-mode" group="Properties">
<help short="Vpn link connection mode."/>
<enum>
<item name="Default" value=""Default""/>
<item name="InitiatorOnly" value=""InitiatorOnly""/>
<item name="ResponderOnly" value=""ResponderOnly""/>
</enum>
</arg>
<arg nullable="True" type="@SubResource_update" var="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnSiteLink" options="vpn-site-link" group="Properties">
<help short="Id of the connected vpn site link."/>
</arg>
</item>
</arg>
</item>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.enableBgpRouteTranslationForNat" options="enable-bgp-route-translation-for-nat" hide="True" group="Properties">
<help short="Enable BGP routes translation for NAT on this VpnGateway."/>
</arg>
<arg nullable="True" type="boolean" var="$vpnGatewayParameters.properties.isRoutingPreferenceInternet" options="is-routing-preference-internet" hide="True" group="Properties">
<help short="Enable Routing Preference property for the Public IP Interface of the VpnGateway."/>
</arg>
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.natRules" options="nat-rules" hide="True" group="Properties">
<help short="List of all the nat Rules associated with the gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="ResourceId" var="$vpnGatewayParameters.properties.natRules[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/natRules/{}"/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.natRules[].name" options="name">
<help short="The name of the resource that is unique within a resource group. This name can be used to access the resource."/>
</arg>
<arg nullable="True" type="array<@VpnNatRuleMapping_update>" var="$vpnGatewayParameters.properties.natRules[].properties.externalMappings" options="external-mappings" group="Properties">
<help short="The private IP address external mapping for NAT."/>
<item nullable="True" type="@VpnNatRuleMapping_update"/>
</arg>
<arg nullable="True" type="array<object>" var="$vpnGatewayParameters.properties.natRules[].properties.internalMappings" options="internal-mappings" group="Properties">
<help short="The private IP address internal mapping for NAT."/>
<item nullable="True" type="object" cls="VpnNatRuleMapping_update">
<arg nullable="True" type="string" var="@VpnNatRuleMapping_update.addressSpace" options="address-space">
<help short="Address space for Vpn NatRule mapping."/>
</arg>
<arg nullable="True" type="string" var="@VpnNatRuleMapping_update.portRange" options="port-range">
<help short="Port range for Vpn NatRule mapping."/>
</arg>
</item>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.natRules[].properties.ipConfigurationId" options="ip-configuration-id" group="Properties">
<help short="The IP Configuration ID this NAT rule applies to."/>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.natRules[].properties.mode" options="mode" group="Properties">
<help short="The Source NAT direction of a VPN NAT."/>
<enum>
<item name="EgressSnat" value=""EgressSnat""/>
<item name="IngressSnat" value=""IngressSnat""/>
</enum>
</arg>
<arg nullable="True" type="string" var="$vpnGatewayParameters.properties.natRules[].properties.type" options="type" group="Properties">
<help short="The type of NAT rule for VPN NAT."/>
<enum>
<item name="Dynamic" value=""Dynamic""/>
<item name="Static" value=""Static""/>
</enum>
</arg>
</item>
</arg>
</argGroup>
<argGroup name="VpnGatewayParameters">
<arg nullable="True" type="ResourceId" var="$vpnGatewayParameters.id" options="id" hide="True" group="VpnGatewayParameters">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}"/>
</arg>
<arg type="ResourceLocation" var="$vpnGatewayParameters.location" options="location l" hide="True" group="VpnGatewayParameters">
<help short="Resource location."/>
</arg>
</argGroup>
<operation operationId="VpnGateways_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}">
<request method="get">
<path>
<param type="string" name="gatewayName" arg="$Path.gatewayName" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-05-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VpnGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" required="True"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="bgpSettings">
<prop type="integer64" name="asn">
<format maximum="4294967295" minimum="0"/>
</prop>
<prop type="string" name="bgpPeeringAddress"/>
<prop type="array<object>" name="bgpPeeringAddresses">
<item type="object">
<prop type="array<string>" name="customBgpIpAddresses">
<item type="string"/>
</prop>
<prop readOnly="True" type="array<string>" name="defaultBgpIpAddresses">
<item readOnly="True" type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item readOnly="True" type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="array<object>" name="connections">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth"/>
<prop readOnly="True" type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<prop readOnly="True" type="integer64" name="egressBytesTransferred"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableInternetSecurity"/>
<prop type="boolean" name="enableRateLimiting"/>
<prop readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop type="array<object>" name="ipsecPolicies">
<item type="object" cls="IpsecPolicy_read">
<prop type="string" name="dhGroup" required="True">
<enum>
<item value=""DHGroup1""/>
<item value=""DHGroup14""/>
<item value=""DHGroup2""/>
<item value=""DHGroup2048""/>
<item value=""DHGroup24""/>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ikeEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
</enum>
</prop>
<prop type="string" name="ikeIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
<item value=""SHA384""/>
</enum>
</prop>
<prop type="string" name="ipsecEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ipsecIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
</enum>
</prop>
<prop type="string" name="pfsGroup" required="True">
<enum>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
<item value=""PFS1""/>
<item value=""PFS14""/>
<item value=""PFS2""/>
<item value=""PFS2048""/>
<item value=""PFS24""/>
<item value=""PFSMM""/>
</enum>
</prop>
<prop type="integer32" name="saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" required="True"/>
</item>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="object" name="remoteVpnSite" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
<prop type="object" name="routingConfiguration">
<prop type="@SubResource_read" name="associatedRouteTable"/>
<prop type="@SubResource_read" name="inboundRouteMap"/>
<prop type="@SubResource_read" name="outboundRouteMap"/>
<prop type="object" name="propagatedRouteTables">
<prop type="array<@SubResource_read>" name="ids">
<item type="@SubResource_read"/>
</prop>
<prop type="array<string>" name="labels">
<item type="string"/>
</prop>
</prop>
<prop type="object" name="vnetRoutes">
<prop readOnly="True" type="array<@SubResource_read>" name="bgpConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<object>" name="staticRoutes">
<item type="object">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
<prop type="string" name="name"/>
<prop type="string" name="nextHopIpAddress"/>
</item>
</prop>
<prop type="object" name="staticRoutesConfig">
<prop readOnly="True" type="boolean" name="propagateStaticRoutes"/>
<prop type="string" name="vnetLocalRouteOverrideCriteria">
<enum>
<item value=""Contains""/>
<item value=""Equal""/>
</enum>
</prop>
</prop>
</prop>
</prop>
<prop type="integer32" name="routingWeight"/>
<prop type="string" name="sharedKey"/>
<prop type="array<object>" name="trafficSelectorPolicies">
<item type="object">
<prop type="array<string>" name="localAddressRanges" required="True">
<item type="string"/>
</prop>
<prop type="array<string>" name="remoteAddressRanges" required="True">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnLinkConnections">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}/vpnLinkConnections/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth"/>
<prop readOnly="True" type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop readOnly="True" type="integer64" name="egressBytesTransferred"/>
<prop type="array<@SubResource_read>" name="egressNatRules">
<item type="@SubResource_read"/>
</prop>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableRateLimiting"/>
<prop readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop type="array<@SubResource_read>" name="ingressNatRules">
<item type="@SubResource_read"/>
</prop>
<prop type="array<@IpsecPolicy_read>" name="ipsecPolicies">
<item type="@IpsecPolicy_read"/>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="integer32" name="routingWeight"/>
<prop type="string" name="sharedKey"/>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnGatewayCustomBgpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<prop type="string" name="vpnLinkConnectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="@SubResource_read" name="vpnSiteLink"/>
</prop>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
</prop>
</item>
</prop>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop readOnly="True" type="array<object>" name="ipConfigurations">
<item readOnly="True" type="object">
<prop readOnly="True" type="string" name="id"/>
<prop readOnly="True" type="string" name="privateIpAddress"/>
<prop readOnly="True" type="string" name="publicIpAddress"/>
</item>
</prop>
<prop type="boolean" name="isRoutingPreferenceInternet"/>
<prop type="array<object>" name="natRules">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="array<@SubResource_read>" name="egressVpnSiteLinkConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_read"/>
</prop>
<prop readOnly="True" type="array<@SubResource_read>" name="ingressVpnSiteLinkConnections">
<item readOnly="True" type="@SubResource_read"/>
</prop>
<prop type="array<object>" name="internalMappings">
<item type="object" cls="VpnNatRuleMapping_read">
<prop type="string" name="addressSpace"/>
<prop type="string" name="portRange"/>
</item>
</prop>
<prop type="string" name="ipConfigurationId"/>
<prop type="string" name="mode">
<enum>
<item value=""EgressSnat""/>
<item value=""IngressSnat""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="string" name="type">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="object" name="virtualHub">
<prop type="string" name="id"/>
</prop>
<prop type="integer32" name="vpnGatewayScaleUnit"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<operation>
<instanceUpdate instance="$Instance">
<json>
<schema type="object" name="vpnGatewayParameters" required="True" clientFlatten="True">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="$vpnGatewayParameters.location" required="True"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="bgpSettings">
<prop type="integer64" name="asn" arg="$vpnGatewayParameters.properties.bgpSettings.asn">
<format maximum="4294967295" minimum="0"/>
</prop>
<prop type="string" name="bgpPeeringAddress" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddress"/>
<prop type="array<object>" name="bgpPeeringAddresses" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses">
<item type="object">
<prop type="array<string>" name="customBgpIpAddresses" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].customBgpIpAddresses">
<item type="string"/>
</prop>
<prop type="string" name="ipconfigurationId" arg="$vpnGatewayParameters.properties.bgpSettings.bgpPeeringAddresses[].ipconfigurationId"/>
</item>
</prop>
<prop type="integer32" name="peerWeight" arg="$vpnGatewayParameters.properties.bgpSettings.peerWeight"/>
</prop>
<prop type="array<object>" name="connections" arg="$vpnGatewayParameters.properties.connections">
<item type="object">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.properties.connections[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.connections[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth" arg="$vpnGatewayParameters.properties.connections[].properties.connectionBandwidth"/>
<prop type="integer32" name="dpdTimeoutSeconds" arg="$vpnGatewayParameters.properties.connections[].properties.dpdTimeoutSeconds"/>
<prop type="boolean" name="enableBgp" arg="$vpnGatewayParameters.properties.connections[].properties.enableBgp"/>
<prop type="boolean" name="enableInternetSecurity" arg="$vpnGatewayParameters.properties.connections[].properties.enableInternetSecurity"/>
<prop type="boolean" name="enableRateLimiting" arg="$vpnGatewayParameters.properties.connections[].properties.enableRateLimiting"/>
<prop type="array<object>" name="ipsecPolicies" arg="$vpnGatewayParameters.properties.connections[].properties.ipsecPolicies">
<item type="object" cls="IpsecPolicy_update">
<prop type="string" name="dhGroup" arg="@IpsecPolicy_update.dhGroup" required="True">
<enum>
<item value=""DHGroup1""/>
<item value=""DHGroup14""/>
<item value=""DHGroup2""/>
<item value=""DHGroup2048""/>
<item value=""DHGroup24""/>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ikeEncryption" arg="@IpsecPolicy_update.ikeEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
</enum>
</prop>
<prop type="string" name="ikeIntegrity" arg="@IpsecPolicy_update.ikeIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
<item value=""SHA384""/>
</enum>
</prop>
<prop type="string" name="ipsecEncryption" arg="@IpsecPolicy_update.ipsecEncryption" required="True">
<enum>
<item value=""AES128""/>
<item value=""AES192""/>
<item value=""AES256""/>
<item value=""DES""/>
<item value=""DES3""/>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="ipsecIntegrity" arg="@IpsecPolicy_update.ipsecIntegrity" required="True">
<enum>
<item value=""GCMAES128""/>
<item value=""GCMAES192""/>
<item value=""GCMAES256""/>
<item value=""MD5""/>
<item value=""SHA1""/>
<item value=""SHA256""/>
</enum>
</prop>
<prop type="string" name="pfsGroup" arg="@IpsecPolicy_update.pfsGroup" required="True">
<enum>
<item value=""ECP256""/>
<item value=""ECP384""/>
<item value=""None""/>
<item value=""PFS1""/>
<item value=""PFS14""/>
<item value=""PFS2""/>
<item value=""PFS2048""/>
<item value=""PFS24""/>
<item value=""PFSMM""/>
</enum>
</prop>
<prop type="integer32" name="saDataSizeKilobytes" arg="@IpsecPolicy_update.saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" arg="@IpsecPolicy_update.saLifeTimeSeconds" required="True"/>
</item>
</prop>
<prop type="object" name="remoteVpnSite" arg="$vpnGatewayParameters.properties.connections[].properties.remoteVpnSite" cls="SubResource_update">
<prop type="string" name="id" arg="@SubResource_update.id"/>
</prop>
<prop type="object" name="routingConfiguration" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration">
<prop type="@SubResource_update" name="associatedRouteTable" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.associatedRouteTable"/>
<prop type="@SubResource_update" name="inboundRouteMap" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.inboundRouteMap"/>
<prop type="@SubResource_update" name="outboundRouteMap" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.outboundRouteMap"/>
<prop type="object" name="propagatedRouteTables" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables">
<prop type="array<@SubResource_update>" name="ids" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.ids">
<item type="@SubResource_update"/>
</prop>
<prop type="array<string>" name="labels" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.propagatedRouteTables.labels">
<item type="string"/>
</prop>
</prop>
<prop type="object" name="vnetRoutes" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes">
<prop type="array<object>" name="staticRoutes" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes">
<item type="object">
<prop type="array<string>" name="addressPrefixes" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].addressPrefixes">
<item type="string"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].name"/>
<prop type="string" name="nextHopIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutes[].nextHopIpAddress"/>
</item>
</prop>
<prop type="object" name="staticRoutesConfig" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig">
<prop type="string" name="vnetLocalRouteOverrideCriteria" arg="$vpnGatewayParameters.properties.connections[].properties.routingConfiguration.vnetRoutes.staticRoutesConfig.vnetLocalRouteOverrideCriteria">
<enum>
<item value=""Contains""/>
<item value=""Equal""/>
</enum>
</prop>
</prop>
</prop>
</prop>
<prop type="integer32" name="routingWeight" arg="$vpnGatewayParameters.properties.connections[].properties.routingWeight"/>
<prop type="string" name="sharedKey" arg="$vpnGatewayParameters.properties.connections[].properties.sharedKey"/>
<prop type="array<object>" name="trafficSelectorPolicies" arg="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies">
<item type="object">
<prop type="array<string>" name="localAddressRanges" arg="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].localAddressRanges" required="True">
<item type="string"/>
</prop>
<prop type="array<string>" name="remoteAddressRanges" arg="$vpnGatewayParameters.properties.connections[].properties.trafficSelectorPolicies[].remoteAddressRanges" required="True">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors" arg="$vpnGatewayParameters.properties.connections[].properties.usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType" arg="$vpnGatewayParameters.properties.connections[].properties.vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnLinkConnections" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections">
<item type="object">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/vpnConnections/{}/vpnLinkConnections/{}"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="integer32" name="connectionBandwidth" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.connectionBandwidth"/>
<prop type="array<@SubResource_update>" name="egressNatRules" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.egressNatRules">
<item type="@SubResource_update"/>
</prop>
<prop type="boolean" name="enableBgp" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableBgp"/>
<prop type="boolean" name="enableRateLimiting" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.enableRateLimiting"/>
<prop type="array<@SubResource_update>" name="ingressNatRules" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ingressNatRules">
<item type="@SubResource_update"/>
</prop>
<prop type="array<@IpsecPolicy_update>" name="ipsecPolicies" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.ipsecPolicies">
<item type="@IpsecPolicy_update"/>
</prop>
<prop type="integer32" name="routingWeight" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.routingWeight"/>
<prop type="string" name="sharedKey" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.sharedKey"/>
<prop type="boolean" name="useLocalAzureIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.usePolicyBasedTrafficSelectors"/>
<prop type="string" name="vpnConnectionProtocolType" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnConnectionProtocolType">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="array<object>" name="vpnGatewayCustomBgpAddresses" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnGatewayCustomBgpAddresses[].ipConfigurationId" required="True"/>
</item>
</prop>
<prop type="string" name="vpnLinkConnectionMode" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnLinkConnectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="@SubResource_update" name="vpnSiteLink" arg="$vpnGatewayParameters.properties.connections[].properties.vpnLinkConnections[].properties.vpnSiteLink"/>
</prop>
</item>
</prop>
</prop>
</item>
</prop>
<prop type="boolean" name="enableBgpRouteTranslationForNat" arg="$vpnGatewayParameters.properties.enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="isRoutingPreferenceInternet" arg="$vpnGatewayParameters.properties.isRoutingPreferenceInternet"/>
<prop type="array<object>" name="natRules" arg="$vpnGatewayParameters.properties.natRules">
<item type="object">
<prop type="ResourceId" name="id" arg="$vpnGatewayParameters.properties.natRules[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/vpnGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name" arg="$vpnGatewayParameters.properties.natRules[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_update>" name="externalMappings" arg="$vpnGatewayParameters.properties.natRules[].properties.externalMappings">
<item type="@VpnNatRuleMapping_update"/>
</prop>
<prop type="array<object>" name="internalMappings" arg="$vpnGatewayParameters.properties.natRules[].properties.internalMappings">
<item type="object" cls="VpnNatRuleMapping_update">
<prop type="string" name="addressSpace" arg="@VpnNatRuleMapping_update.addressSpace"/>
<prop type="string" name="portRange" arg="@VpnNatRuleMapping_update.portRange"/>
</item>
</prop>
<prop type="string" name="ipConfigurationId" arg="$vpnGatewayParameters.properties.natRules[].properties.ipConfigurationId"/>
<prop type="string" name="mode" arg="$vpnGatewayParameters.properties.natRules[].properties.mode">
<enum>
<item value=""EgressSnat""/>
<item value=""IngressSnat""/>
</enum>
</prop>
<prop type="string" name="type" arg="$vpnGatewayParameters.properties.natRules[].properties.type">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
</prop>
</item>
</prop>
<prop type="object" name="virtualHub">
<prop type="string" name="id" arg="$vpnGatewayParameters.properties.virtualHub.id"/>
</prop>
<prop type="integer32" name="vpnGatewayScaleUnit" arg="$vpnGatewayParameters.properties.vpnGatewayScaleUnit"/>
</prop>
<prop type="object" name="tags" arg="$vpnGatewayParameters.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</schema>
</json>
</instanceUpdate>
</operation>
<operation operationId="VpnGateways_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}">
<request method="put">
<path>
<param type="string" name="gatewayName" arg="$Path.gatewayName" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-05-01""/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@VpnGateway_read"/>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
</commandGroup>
</CodeGen>