Resources/mgmt-plane/L3N1YnNjcmlwdGlvbnMve30vcmVzb3VyY2Vncm91cHMve30vcHJvdmlkZXJzL21pY3Jvc29mdC5uZXR3b3JrL2Nvbm5lY3Rpb25zL3t9/2022-01-01.xml (6,711 lines of code) (raw):
<?xml version='1.0' encoding='utf-8'?>
<CodeGen plane="mgmt-plane">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<commandGroup name="network vpn-connection">
<command name="show" version="2022-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="name n" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
</argGroup>
<operation operationId="VirtualNetworkGatewayConnections_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="get">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-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/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="name n" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
</argGroup>
<operation operationId="VirtualNetworkGatewayConnections_Delete">
<longRunning finalStateVia="location"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="delete">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-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-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="name n" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
</argGroup>
<argGroup name="Parameters">
<arg type="ResourceId" var="$parameters.id" options="id" hide="True" group="Parameters">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</arg>
<arg type="ResourceLocation" var="$parameters.location" options="location l" group="Parameters">
<help short="Resource location."/>
</arg>
<arg type="object" var="$parameters.tags" options="tags" group="Parameters">
<help short="Resource tags."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="Properties">
<arg type="string" var="$parameters.properties.authorizationKey" options="authorization-key" group="Properties">
<help short="The authorizationKey."/>
</arg>
<arg type="string" var="$parameters.properties.connectionMode" options="connection-mode" group="Properties">
<help short="The connection mode for this connection."/>
<enum>
<item name="Default" value=""Default""/>
<item name="InitiatorOnly" value=""InitiatorOnly""/>
<item name="ResponderOnly" value=""ResponderOnly""/>
</enum>
</arg>
<arg type="string" var="$parameters.properties.connectionProtocol" options="connection-protocol" 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="string" var="$parameters.properties.connectionType" options="connection-type" required="True" group="Properties">
<help short="Gateway connection type."/>
<enum>
<item name="ExpressRoute" value=""ExpressRoute""/>
<item name="IPsec" value=""IPsec""/>
<item name="VPNClient" value=""VPNClient""/>
<item name="Vnet2Vnet" value=""Vnet2Vnet""/>
</enum>
</arg>
<arg type="integer32" var="$parameters.properties.dpdTimeoutSeconds" options="dpd-timeout-seconds" group="Properties">
<help short="The dead peer detection timeout of this connection in seconds."/>
</arg>
<arg type="array<@SubResource_create>" var="$parameters.properties.egressNatRules" options="egress-nat-rules" group="Properties">
<help short="List of egress NatRules."/>
<item type="@SubResource_create"/>
</arg>
<arg type="boolean" var="$parameters.properties.enableBgp" options="enable-bgp" group="Properties">
<help short="EnableBgp flag."/>
</arg>
<arg type="boolean" var="$parameters.properties.expressRouteGatewayBypass" options="express-route-gateway-bypass" group="Properties">
<help short="Bypass ExpressRoute Gateway for data forwarding."/>
</arg>
<arg type="array<object>" var="$parameters.properties.gatewayCustomBgpIpAddresses" options="gateway-custom-bgp-ip-addresses" group="Properties">
<help short="GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection."/>
<item type="object">
<arg type="string" var="$parameters.properties.gatewayCustomBgpIpAddresses[].customBgpIpAddress" options="custom-bgp-ip-address" required="True">
<help short="The custom BgpPeeringAddress which belongs to IpconfigurationId."/>
</arg>
<arg type="string" var="$parameters.properties.gatewayCustomBgpIpAddresses[].ipConfigurationId" options="ip-configuration-id" required="True">
<help short="The IpconfigurationId of ipconfiguration which belongs to gateway."/>
</arg>
</item>
</arg>
<arg type="array<@SubResource_create>" var="$parameters.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="$parameters.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="object" var="$parameters.properties.localNetworkGateway2" options="local-network-gateway2" group="Properties">
<help short="The reference to local network gateway resource."/>
<arg type="ResourceId" var="$parameters.properties.localNetworkGateway2.id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</arg>
<arg type="ResourceLocation" var="$parameters.properties.localNetworkGateway2.location" options="location l">
<help short="Resource location."/>
</arg>
<arg type="@BgpSettings_create" var="$parameters.properties.localNetworkGateway2.properties.bgpSettings" options="bgp-settings" group="Properties">
<help short="Local network gateway's BGP speaker settings."/>
</arg>
<arg type="string" var="$parameters.properties.localNetworkGateway2.properties.fqdn" options="fqdn" group="Properties">
<help short="FQDN of local network gateway."/>
</arg>
<arg type="string" var="$parameters.properties.localNetworkGateway2.properties.gatewayIpAddress" options="gateway-ip-address" group="Properties">
<help short="IP address of local network gateway."/>
</arg>
<arg type="@AddressSpace_create" var="$parameters.properties.localNetworkGateway2.properties.localNetworkAddressSpace" options="local-network-address-space" group="Properties">
<help short="Local network site address space."/>
</arg>
<arg type="object" var="$parameters.properties.localNetworkGateway2.tags" options="tags">
<help short="Resource tags."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</arg>
<arg type="@SubResource_create" var="$parameters.properties.peer" options="peer" group="Properties">
<help short="The reference to peerings resource."/>
</arg>
<arg type="integer32" var="$parameters.properties.routingWeight" options="routing-weight" group="Properties">
<help short="The routing weight."/>
</arg>
<arg type="string" var="$parameters.properties.sharedKey" options="shared-key" group="Properties">
<help short="The IPSec shared key."/>
</arg>
<arg type="array<object>" var="$parameters.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="$parameters.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="$parameters.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="$parameters.properties.useLocalAzureIpAddress" options="use-local-azure-ip-address" group="Properties">
<help short="Use private local Azure IP for the connection."/>
</arg>
<arg type="boolean" var="$parameters.properties.usePolicyBasedTrafficSelectors" options="use-policy-based-traffic-selectors" group="Properties">
<help short="Enable policy-based traffic selectors."/>
</arg>
<arg type="object" var="$parameters.properties.virtualNetworkGateway1" options="virtual-network-gateway1" required="True" group="Properties" cls="VirtualNetworkGateway_create">
<help short="The reference to virtual network gateway resource."/>
<arg type="object" var="@VirtualNetworkGateway_create.extendedLocation" options="extended-location">
<help short="The extended location of type local virtual network gateway."/>
<arg type="string" var="@VirtualNetworkGateway_create.extendedLocation.name" options="name">
<help short="The name of the extended location."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.extendedLocation.type" options="type">
<help short="The type of the extended location."/>
<enum>
<item name="EdgeZone" value=""EdgeZone""/>
</enum>
</arg>
</arg>
<arg type="ResourceId" var="@VirtualNetworkGateway_create.id" options="id" hide="True">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</arg>
<arg type="ResourceLocation" var="@VirtualNetworkGateway_create.location" options="location l">
<help short="Resource location."/>
</arg>
<arg type="boolean" var="@VirtualNetworkGateway_create.properties.activeActive" options="active-active" group="Properties">
<help short="ActiveActive flag."/>
</arg>
<arg type="object" var="@VirtualNetworkGateway_create.properties.bgpSettings" options="bgp-settings" group="Properties" cls="BgpSettings_create">
<help short="Virtual network gateway's BGP speaker settings."/>
<arg type="integer64" var="@BgpSettings_create.asn" options="asn">
<help short="The BGP speaker's ASN."/>
<format maximum="4294967295" minimum="0"/>
</arg>
<arg type="string" var="@BgpSettings_create.bgpPeeringAddress" options="bgp-peering-address">
<help short="The BGP peering address and BGP identifier of this BGP speaker."/>
</arg>
<arg type="array<object>" var="@BgpSettings_create.bgpPeeringAddresses" options="bgp-peering-addresses">
<help short="BGP peering address with IP configuration ID for virtual network gateway."/>
<item type="object">
<arg type="array<string>" var="@BgpSettings_create.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="@BgpSettings_create.bgpPeeringAddresses[].ipconfigurationId" options="ipconfiguration-id">
<help short="The ID of IP configuration which belongs to gateway."/>
</arg>
</item>
</arg>
<arg type="integer32" var="@BgpSettings_create.peerWeight" options="peer-weight">
<help short="The weight added to routes learned from this BGP speaker."/>
</arg>
</arg>
<arg type="@AddressSpace_create" var="@VirtualNetworkGateway_create.properties.customRoutes" options="custom-routes" group="Properties">
<help short="The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient."/>
</arg>
<arg type="boolean" var="@VirtualNetworkGateway_create.properties.disableIPSecReplayProtection" options="disable-ip-sec-replay-protection" group="Properties">
<help short="disableIPSecReplayProtection flag."/>
</arg>
<arg type="boolean" var="@VirtualNetworkGateway_create.properties.enableBgp" options="enable-bgp" group="Properties">
<help short="Whether BGP is enabled for this virtual network gateway or not."/>
</arg>
<arg type="boolean" var="@VirtualNetworkGateway_create.properties.enableBgpRouteTranslationForNat" options="enable-bgp-route-translation-for-nat" group="Properties">
<help short="EnableBgpRouteTranslationForNat flag."/>
</arg>
<arg type="boolean" var="@VirtualNetworkGateway_create.properties.enableDnsForwarding" options="enable-dns-forwarding" group="Properties">
<help short="Whether dns forwarding is enabled or not."/>
</arg>
<arg type="boolean" var="@VirtualNetworkGateway_create.properties.enablePrivateIpAddress" options="enable-private-ip-address" group="Properties">
<help short="Whether private IP needs to be enabled on this gateway for connections or not."/>
</arg>
<arg type="@SubResource_create" var="@VirtualNetworkGateway_create.properties.gatewayDefaultSite" options="gateway-default-site" group="Properties">
<help short="The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.gatewayType" options="gateway-type" group="Properties">
<help short="The type of this virtual network gateway."/>
<enum>
<item name="ExpressRoute" value=""ExpressRoute""/>
<item name="LocalGateway" value=""LocalGateway""/>
<item name="Vpn" value=""Vpn""/>
</enum>
</arg>
<arg type="array<object>" var="@VirtualNetworkGateway_create.properties.ipConfigurations" options="ip-configurations" group="Properties">
<help short="IP configurations for virtual network gateway."/>
<item type="object">
<arg type="string" var="@VirtualNetworkGateway_create.properties.ipConfigurations[].id" options="id">
<help short="Resource ID."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.ipConfigurations[].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="string" var="@VirtualNetworkGateway_create.properties.ipConfigurations[].properties.privateIPAllocationMethod" options="private-ip-allocation-method" group="Properties">
<help short="The private IP address allocation method."/>
<enum>
<item name="Dynamic" value=""Dynamic""/>
<item name="Static" value=""Static""/>
</enum>
</arg>
<arg type="@SubResource_create" var="@VirtualNetworkGateway_create.properties.ipConfigurations[].properties.publicIPAddress" options="public-ip-address" group="Properties">
<help short="The reference to the public IP resource."/>
</arg>
<arg type="object" var="@VirtualNetworkGateway_create.properties.ipConfigurations[].properties.subnet" options="subnet" group="Properties" cls="SubResource_create">
<help short="The reference to the subnet resource."/>
<arg type="string" var="@SubResource_create.id" options="id">
<help short="Resource ID."/>
</arg>
</arg>
</item>
</arg>
<arg type="array<object>" var="@VirtualNetworkGateway_create.properties.natRules" options="nat-rules" group="Properties">
<help short="NatRules for virtual network gateway."/>
<item type="object">
<arg type="ResourceId" var="@VirtualNetworkGateway_create.properties.natRules[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}/natRules/{}"/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.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="@VirtualNetworkGateway_create.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="@VirtualNetworkGateway_create.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="@VirtualNetworkGateway_create.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="@VirtualNetworkGateway_create.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="@VirtualNetworkGateway_create.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>
<arg type="object" var="@VirtualNetworkGateway_create.properties.sku" options="sku" group="Properties">
<help short="The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway."/>
<arg type="string" var="@VirtualNetworkGateway_create.properties.sku.name" options="name">
<help short="Gateway SKU name."/>
<enum>
<item name="Basic" value=""Basic""/>
<item name="ErGw1AZ" value=""ErGw1AZ""/>
<item name="ErGw2AZ" value=""ErGw2AZ""/>
<item name="ErGw3AZ" value=""ErGw3AZ""/>
<item name="HighPerformance" value=""HighPerformance""/>
<item name="Standard" value=""Standard""/>
<item name="UltraPerformance" value=""UltraPerformance""/>
<item name="VpnGw1" value=""VpnGw1""/>
<item name="VpnGw1AZ" value=""VpnGw1AZ""/>
<item name="VpnGw2" value=""VpnGw2""/>
<item name="VpnGw2AZ" value=""VpnGw2AZ""/>
<item name="VpnGw3" value=""VpnGw3""/>
<item name="VpnGw3AZ" value=""VpnGw3AZ""/>
<item name="VpnGw4" value=""VpnGw4""/>
<item name="VpnGw4AZ" value=""VpnGw4AZ""/>
<item name="VpnGw5" value=""VpnGw5""/>
<item name="VpnGw5AZ" value=""VpnGw5AZ""/>
</enum>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.sku.tier" options="tier">
<help short="Gateway SKU tier."/>
<enum>
<item name="Basic" value=""Basic""/>
<item name="ErGw1AZ" value=""ErGw1AZ""/>
<item name="ErGw2AZ" value=""ErGw2AZ""/>
<item name="ErGw3AZ" value=""ErGw3AZ""/>
<item name="HighPerformance" value=""HighPerformance""/>
<item name="Standard" value=""Standard""/>
<item name="UltraPerformance" value=""UltraPerformance""/>
<item name="VpnGw1" value=""VpnGw1""/>
<item name="VpnGw1AZ" value=""VpnGw1AZ""/>
<item name="VpnGw2" value=""VpnGw2""/>
<item name="VpnGw2AZ" value=""VpnGw2AZ""/>
<item name="VpnGw3" value=""VpnGw3""/>
<item name="VpnGw3AZ" value=""VpnGw3AZ""/>
<item name="VpnGw4" value=""VpnGw4""/>
<item name="VpnGw4AZ" value=""VpnGw4AZ""/>
<item name="VpnGw5" value=""VpnGw5""/>
<item name="VpnGw5AZ" value=""VpnGw5AZ""/>
</enum>
</arg>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vNetExtendedLocationResourceId" options="v-net-extended-location-resource-id" group="Properties">
<help short="Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet."/>
</arg>
<arg type="object" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration" options="vpn-client-configuration" group="Properties">
<help short="The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations."/>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.aadAudience" options="aad-audience">
<help short="The AADAudience property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.aadIssuer" options="aad-issuer">
<help short="The AADIssuer property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.aadTenant" options="aad-tenant">
<help short="The AADTenant property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServerAddress" options="radius-server-address">
<help short="The radius server address property of the VirtualNetworkGateway resource for vpn client connection."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServerSecret" options="radius-server-secret">
<help short="The radius secret property of the VirtualNetworkGateway resource for vpn client connection."/>
</arg>
<arg type="array<object>" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers" options="radius-servers">
<help short="The radiusServers property for multiple radius server configuration."/>
<item type="object">
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers[].radiusServerAddress" options="radius-server-address" required="True">
<help short="The address of this radius server."/>
</arg>
<arg type="integer64" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers[].radiusServerScore" options="radius-server-score">
<help short="The initial score assigned to this radius server."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers[].radiusServerSecret" options="radius-server-secret">
<help short="The secret used for this radius server."/>
</arg>
</item>
</arg>
<arg type="array<string>" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnAuthenticationTypes" options="vpn-authentication-types">
<help short="VPN authentication types for the virtual network gateway.."/>
<item type="string">
<enum>
<item name="AAD" value=""AAD""/>
<item name="Certificate" value=""Certificate""/>
<item name="Radius" value=""Radius""/>
</enum>
</item>
</arg>
<arg type="object" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientAddressPool" options="vpn-client-address-pool" cls="AddressSpace_create">
<help short="The reference to the address space resource which represents Address space for P2S VpnClient."/>
<arg type="array<string>" var="@AddressSpace_create.addressPrefixes" options="address-prefixes">
<help short="A list of address blocks reserved for this virtual network in CIDR notation."/>
<item type="string"/>
</arg>
</arg>
<arg type="array<object>" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientIpsecPolicies" options="vpn-client-ipsec-policies">
<help short="VpnClientIpsecPolicies for virtual network gateway P2S client."/>
<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="array<string>" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientProtocols" options="vpn-client-protocols">
<help short="VpnClientProtocols for Virtual network gateway."/>
<item type="string">
<enum>
<item name="IkeV2" value=""IkeV2""/>
<item name="OpenVPN" value=""OpenVPN""/>
<item name="SSTP" value=""SSTP""/>
</enum>
</item>
</arg>
<arg type="array<object>" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates" options="vpn-client-revoked-certificates">
<help short="VpnClientRevokedCertificate for Virtual network gateway."/>
<item type="object">
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].id" options="id">
<help short="Resource ID."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].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="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].properties.thumbprint" options="thumbprint" group="Properties">
<help short="The revoked VPN client certificate thumbprint."/>
</arg>
</item>
</arg>
<arg type="array<object>" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates" options="vpn-client-root-certificates">
<help short="VpnClientRootCertificate for virtual network gateway."/>
<item type="object">
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates[].id" options="id">
<help short="Resource ID."/>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates[].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="string" var="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates[].properties.publicCertData" options="public-cert-data" required="True" group="Properties">
<help short="The certificate public data."/>
</arg>
</item>
</arg>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnGatewayGeneration" options="vpn-gateway-generation" group="Properties">
<help short="The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN."/>
<enum>
<item name="Generation1" value=""Generation1""/>
<item name="Generation2" value=""Generation2""/>
<item name="None" value=""None""/>
</enum>
</arg>
<arg type="string" var="@VirtualNetworkGateway_create.properties.vpnType" options="vpn-type" group="Properties">
<help short="The type of this virtual network gateway."/>
<enum>
<item name="PolicyBased" value=""PolicyBased""/>
<item name="RouteBased" value=""RouteBased""/>
</enum>
</arg>
<arg type="object" var="@VirtualNetworkGateway_create.tags" options="tags">
<help short="Resource tags."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</arg>
<arg type="@VirtualNetworkGateway_create" var="$parameters.properties.virtualNetworkGateway2" options="virtual-network-gateway2" group="Properties">
<help short="The reference to virtual network gateway resource."/>
</arg>
</argGroup>
<operation operationId="VirtualNetworkGatewayConnections_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="put">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
<body>
<json>
<schema type="object" name="parameters" required="True" clientFlatten="True">
<prop type="ResourceId" name="id" arg="$parameters.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="$parameters.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey" arg="$parameters.properties.authorizationKey"/>
<prop type="string" name="connectionMode" arg="$parameters.properties.connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol" arg="$parameters.properties.connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionType" arg="$parameters.properties.connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds" arg="$parameters.properties.dpdTimeoutSeconds"/>
<prop type="array<@SubResource_create>" name="egressNatRules" arg="$parameters.properties.egressNatRules">
<item type="@SubResource_create"/>
</prop>
<prop type="boolean" name="enableBgp" arg="$parameters.properties.enableBgp"/>
<prop type="boolean" name="expressRouteGatewayBypass" arg="$parameters.properties.expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses" arg="$parameters.properties.gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" arg="$parameters.properties.gatewayCustomBgpIpAddresses[].customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" arg="$parameters.properties.gatewayCustomBgpIpAddresses[].ipConfigurationId" required="True"/>
</item>
</prop>
<prop type="array<@SubResource_create>" name="ingressNatRules" arg="$parameters.properties.ingressNatRules">
<item type="@SubResource_create"/>
</prop>
<prop type="array<@IpsecPolicy_create>" name="ipsecPolicies" arg="$parameters.properties.ipsecPolicies">
<item type="@IpsecPolicy_create"/>
</prop>
<prop type="object" name="localNetworkGateway2" arg="$parameters.properties.localNetworkGateway2">
<prop type="ResourceId" name="id" arg="$parameters.properties.localNetworkGateway2.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="$parameters.properties.localNetworkGateway2.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_create" name="bgpSettings" arg="$parameters.properties.localNetworkGateway2.properties.bgpSettings"/>
<prop type="string" name="fqdn" arg="$parameters.properties.localNetworkGateway2.properties.fqdn"/>
<prop type="string" name="gatewayIpAddress" arg="$parameters.properties.localNetworkGateway2.properties.gatewayIpAddress"/>
<prop type="@AddressSpace_create" name="localNetworkAddressSpace" arg="$parameters.properties.localNetworkGateway2.properties.localNetworkAddressSpace"/>
</prop>
<prop type="object" name="tags" arg="$parameters.properties.localNetworkGateway2.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="@SubResource_create" name="peer" arg="$parameters.properties.peer"/>
<prop type="integer32" name="routingWeight" arg="$parameters.properties.routingWeight"/>
<prop type="string" name="sharedKey" arg="$parameters.properties.sharedKey"/>
<prop type="array<object>" name="trafficSelectorPolicies" arg="$parameters.properties.trafficSelectorPolicies">
<item type="object">
<prop type="array<string>" name="localAddressRanges" arg="$parameters.properties.trafficSelectorPolicies[].localAddressRanges" required="True">
<item type="string"/>
</prop>
<prop type="array<string>" name="remoteAddressRanges" arg="$parameters.properties.trafficSelectorPolicies[].remoteAddressRanges" required="True">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress" arg="$parameters.properties.useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors" arg="$parameters.properties.usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" arg="$parameters.properties.virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_create">
<prop type="object" name="extendedLocation" arg="@VirtualNetworkGateway_create.extendedLocation">
<prop type="string" name="name" arg="@VirtualNetworkGateway_create.extendedLocation.name"/>
<prop type="string" name="type" arg="@VirtualNetworkGateway_create.extendedLocation.type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id" arg="@VirtualNetworkGateway_create.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="@VirtualNetworkGateway_create.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive" arg="@VirtualNetworkGateway_create.properties.activeActive"/>
<prop type="object" name="bgpSettings" arg="@VirtualNetworkGateway_create.properties.bgpSettings" cls="BgpSettings_create">
<prop type="integer64" name="asn" arg="@BgpSettings_create.asn">
<format maximum="4294967295" minimum="0"/>
</prop>
<prop type="string" name="bgpPeeringAddress" arg="@BgpSettings_create.bgpPeeringAddress"/>
<prop type="array<object>" name="bgpPeeringAddresses" arg="@BgpSettings_create.bgpPeeringAddresses">
<item type="object">
<prop type="array<string>" name="customBgpIpAddresses" arg="@BgpSettings_create.bgpPeeringAddresses[].customBgpIpAddresses">
<item type="string"/>
</prop>
<prop type="string" name="ipconfigurationId" arg="@BgpSettings_create.bgpPeeringAddresses[].ipconfigurationId"/>
</item>
</prop>
<prop type="integer32" name="peerWeight" arg="@BgpSettings_create.peerWeight"/>
</prop>
<prop type="@AddressSpace_create" name="customRoutes" arg="@VirtualNetworkGateway_create.properties.customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection" arg="@VirtualNetworkGateway_create.properties.disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp" arg="@VirtualNetworkGateway_create.properties.enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat" arg="@VirtualNetworkGateway_create.properties.enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding" arg="@VirtualNetworkGateway_create.properties.enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress" arg="@VirtualNetworkGateway_create.properties.enablePrivateIpAddress"/>
<prop type="@SubResource_create" name="gatewayDefaultSite" arg="@VirtualNetworkGateway_create.properties.gatewayDefaultSite"/>
<prop type="string" name="gatewayType" arg="@VirtualNetworkGateway_create.properties.gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop type="array<object>" name="ipConfigurations" arg="@VirtualNetworkGateway_create.properties.ipConfigurations">
<item type="object">
<prop type="string" name="id" arg="@VirtualNetworkGateway_create.properties.ipConfigurations[].id"/>
<prop type="string" name="name" arg="@VirtualNetworkGateway_create.properties.ipConfigurations[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="string" name="privateIPAllocationMethod" arg="@VirtualNetworkGateway_create.properties.ipConfigurations[].properties.privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
<prop type="@SubResource_create" name="publicIPAddress" arg="@VirtualNetworkGateway_create.properties.ipConfigurations[].properties.publicIPAddress"/>
<prop type="object" name="subnet" arg="@VirtualNetworkGateway_create.properties.ipConfigurations[].properties.subnet" cls="SubResource_create">
<prop type="string" name="id" arg="@SubResource_create.id"/>
</prop>
</prop>
</item>
</prop>
<prop type="array<object>" name="natRules" arg="@VirtualNetworkGateway_create.properties.natRules">
<item type="object">
<prop type="ResourceId" name="id" arg="@VirtualNetworkGateway_create.properties.natRules[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name" arg="@VirtualNetworkGateway_create.properties.natRules[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_create>" name="externalMappings" arg="@VirtualNetworkGateway_create.properties.natRules[].properties.externalMappings">
<item type="@VpnNatRuleMapping_create"/>
</prop>
<prop type="array<object>" name="internalMappings" arg="@VirtualNetworkGateway_create.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="@VirtualNetworkGateway_create.properties.natRules[].properties.ipConfigurationId"/>
<prop type="string" name="mode" arg="@VirtualNetworkGateway_create.properties.natRules[].properties.mode">
<enum>
<item value=""EgressSnat""/>
<item value=""IngressSnat""/>
</enum>
</prop>
<prop type="string" name="type" arg="@VirtualNetworkGateway_create.properties.natRules[].properties.type">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
</prop>
</item>
</prop>
<prop type="object" name="sku" arg="@VirtualNetworkGateway_create.properties.sku">
<prop type="string" name="name" arg="@VirtualNetworkGateway_create.properties.sku.name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier" arg="@VirtualNetworkGateway_create.properties.sku.tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId" arg="@VirtualNetworkGateway_create.properties.vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration">
<prop type="string" name="aadAudience" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.aadAudience"/>
<prop type="string" name="aadIssuer" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.aadIssuer"/>
<prop type="string" name="aadTenant" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.aadTenant"/>
<prop type="string" name="radiusServerAddress" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServerAddress"/>
<prop type="string" name="radiusServerSecret" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServerSecret"/>
<prop type="array<object>" name="radiusServers" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers[].radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers[].radiusServerScore"/>
<prop type="string" name="radiusServerSecret" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.radiusServers[].radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientAddressPool" cls="AddressSpace_create">
<prop type="array<string>" name="addressPrefixes" arg="@AddressSpace_create.addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientIpsecPolicies">
<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="array<string>" name="vpnClientProtocols" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates">
<item type="object">
<prop type="string" name="id" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].id"/>
<prop type="string" name="name" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="string" name="thumbprint" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].properties.thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates">
<item type="object">
<prop type="string" name="id" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates[].id"/>
<prop type="string" name="name" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates[].name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="publicCertData" arg="@VirtualNetworkGateway_create.properties.vpnClientConfiguration.vpnClientRootCertificates[].properties.publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration" arg="@VirtualNetworkGateway_create.properties.vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType" arg="@VirtualNetworkGateway_create.properties.vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags" arg="@VirtualNetworkGateway_create.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="@VirtualNetworkGateway_create" name="virtualNetworkGateway2" arg="$parameters.properties.virtualNetworkGateway2"/>
</prop>
<prop type="object" name="tags" arg="$parameters.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/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="name n" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
<arg nullable="True" type="boolean" var="$parameters.properties.enableBgp" options="enable-bgp" group="">
<help short="Enable BGP (Border Gateway Protocol)."/>
</arg>
<arg nullable="True" type="boolean" var="$parameters.properties.expressRouteGatewayBypass" options="express-route-gateway-bypass" group="">
<help short="Bypass ExpressRoute gateway for data forwarding."/>
</arg>
<arg nullable="True" type="integer32" var="$parameters.properties.routingWeight" options="routing-weight" group="">
<help short="Connection routing weight."/>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.sharedKey" options="shared-key" group="">
<help short="Shared IPSec key."/>
</arg>
<arg nullable="True" type="boolean" var="$parameters.properties.usePolicyBasedTrafficSelectors" options="use-policy-based-traffic-selectors" group="">
<help short="Enable policy-based traffic selectors."/>
</arg>
<arg nullable="True" type="object" var="$parameters.tags" options="tags" group="">
<help short="Space-separated tags: key[=value] [key[=value] ...]. Use "" to clear existing tags."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="Parameters">
<arg nullable="True" type="ResourceId" var="$parameters.id" options="id" hide="True" group="Parameters">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</arg>
<arg nullable="True" type="ResourceLocation" var="$parameters.location" options="location l" hide="True" group="Parameters">
<help short="Resource location."/>
</arg>
</argGroup>
<argGroup name="Properties">
<arg nullable="True" type="string" var="$parameters.properties.authorizationKey" options="authorization-key" hide="True" group="Properties">
<help short="The authorizationKey."/>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.connectionMode" options="connection-mode" hide="True" group="Properties">
<help short="The connection mode for this connection."/>
<enum>
<item name="Default" value=""Default""/>
<item name="InitiatorOnly" value=""InitiatorOnly""/>
<item name="ResponderOnly" value=""ResponderOnly""/>
</enum>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.connectionProtocol" options="connection-protocol" hide="True" 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="string" var="$parameters.properties.connectionType" options="connection-type" hide="True" group="Properties">
<help short="Gateway connection type."/>
<enum>
<item name="ExpressRoute" value=""ExpressRoute""/>
<item name="IPsec" value=""IPsec""/>
<item name="VPNClient" value=""VPNClient""/>
<item name="Vnet2Vnet" value=""Vnet2Vnet""/>
</enum>
</arg>
<arg nullable="True" type="integer32" var="$parameters.properties.dpdTimeoutSeconds" options="dpd-timeout-seconds" hide="True" group="Properties">
<help short="The dead peer detection timeout of this connection in seconds."/>
</arg>
<arg nullable="True" type="array<@SubResource_update>" var="$parameters.properties.egressNatRules" options="egress-nat-rules" hide="True" group="Properties">
<help short="List of egress NatRules."/>
<item nullable="True" type="@SubResource_update"/>
</arg>
<arg nullable="True" type="array<object>" var="$parameters.properties.gatewayCustomBgpIpAddresses" options="gateway-custom-bgp-ip-addresses" hide="True" group="Properties">
<help short="GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection."/>
<item nullable="True" type="object">
<arg type="string" var="$parameters.properties.gatewayCustomBgpIpAddresses[].customBgpIpAddress" options="custom-bgp-ip-address">
<help short="The custom BgpPeeringAddress which belongs to IpconfigurationId."/>
</arg>
<arg type="string" var="$parameters.properties.gatewayCustomBgpIpAddresses[].ipConfigurationId" options="ip-configuration-id">
<help short="The IpconfigurationId of ipconfiguration which belongs to gateway."/>
</arg>
</item>
</arg>
<arg nullable="True" type="array<@SubResource_update>" var="$parameters.properties.ingressNatRules" options="ingress-nat-rules" hide="True" group="Properties">
<help short="List of ingress NatRules."/>
<item nullable="True" type="@SubResource_update"/>
</arg>
<arg nullable="True" type="array<object>" var="$parameters.properties.ipsecPolicies" options="ipsec-policies" group="Properties">
<help short="The IPSec Policies to be considered by this connection."/>
<item nullable="True" type="object">
<arg type="string" var="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.localNetworkGateway2" options="local-network-gateway2" hide="True" group="Properties">
<help short="The reference to local network gateway resource."/>
<arg nullable="True" type="ResourceId" var="$parameters.properties.localNetworkGateway2.id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</arg>
<arg nullable="True" type="ResourceLocation" var="$parameters.properties.localNetworkGateway2.location" options="location l">
<help short="Resource location."/>
</arg>
<arg nullable="True" type="@BgpSettings_update" var="$parameters.properties.localNetworkGateway2.properties.bgpSettings" options="bgp-settings" group="Properties">
<help short="Local network gateway's BGP speaker settings."/>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.localNetworkGateway2.properties.fqdn" options="fqdn" group="Properties">
<help short="FQDN of local network gateway."/>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.localNetworkGateway2.properties.gatewayIpAddress" options="gateway-ip-address" group="Properties">
<help short="IP address of local network gateway."/>
</arg>
<arg nullable="True" type="@AddressSpace_update" var="$parameters.properties.localNetworkGateway2.properties.localNetworkAddressSpace" options="local-network-address-space" group="Properties">
<help short="Local network site address space."/>
</arg>
<arg nullable="True" type="object" var="$parameters.properties.localNetworkGateway2.tags" options="tags">
<help short="Resource tags."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</arg>
<arg nullable="True" type="@SubResource_update" var="$parameters.properties.peer" options="peer" hide="True" group="Properties">
<help short="The reference to peerings resource."/>
</arg>
<arg nullable="True" type="array<object>" var="$parameters.properties.trafficSelectorPolicies" options="traffic-selector-policies" hide="True" group="Properties">
<help short="The Traffic Selector Policies to be considered by this connection."/>
<item nullable="True" type="object">
<arg type="array<string>" var="$parameters.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="$parameters.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="$parameters.properties.useLocalAzureIpAddress" options="use-local-azure-ip-address" hide="True" group="Properties">
<help short="Use private local Azure IP for the connection."/>
</arg>
<arg type="object" var="$parameters.properties.virtualNetworkGateway1" options="virtual-network-gateway1" hide="True" group="Properties" cls="VirtualNetworkGateway_update">
<help short="The reference to virtual network gateway resource."/>
<arg nullable="True" type="object" var="@VirtualNetworkGateway_update.extendedLocation" options="extended-location">
<help short="The extended location of type local virtual network gateway."/>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.extendedLocation.name" options="name">
<help short="The name of the extended location."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.extendedLocation.type" options="type">
<help short="The type of the extended location."/>
<enum>
<item name="EdgeZone" value=""EdgeZone""/>
</enum>
</arg>
</arg>
<arg nullable="True" type="ResourceId" var="@VirtualNetworkGateway_update.id" options="id" hide="True">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</arg>
<arg nullable="True" type="ResourceLocation" var="@VirtualNetworkGateway_update.location" options="location l">
<help short="Resource location."/>
</arg>
<arg nullable="True" type="boolean" var="@VirtualNetworkGateway_update.properties.activeActive" options="active-active" group="Properties">
<help short="ActiveActive flag."/>
</arg>
<arg nullable="True" type="object" var="@VirtualNetworkGateway_update.properties.bgpSettings" options="bgp-settings" group="Properties" cls="BgpSettings_update">
<help short="Virtual network gateway's BGP speaker settings."/>
<arg nullable="True" type="integer64" var="@BgpSettings_update.asn" options="asn">
<help short="The BGP speaker's ASN."/>
<format maximum="4294967295" minimum="0"/>
</arg>
<arg nullable="True" type="string" var="@BgpSettings_update.bgpPeeringAddress" options="bgp-peering-address">
<help short="The BGP peering address and BGP identifier of this BGP speaker."/>
</arg>
<arg nullable="True" type="array<object>" var="@BgpSettings_update.bgpPeeringAddresses" options="bgp-peering-addresses">
<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="@BgpSettings_update.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="@BgpSettings_update.bgpPeeringAddresses[].ipconfigurationId" options="ipconfiguration-id">
<help short="The ID of IP configuration which belongs to gateway."/>
</arg>
</item>
</arg>
<arg nullable="True" type="integer32" var="@BgpSettings_update.peerWeight" options="peer-weight">
<help short="The weight added to routes learned from this BGP speaker."/>
</arg>
</arg>
<arg nullable="True" type="@AddressSpace_update" var="@VirtualNetworkGateway_update.properties.customRoutes" options="custom-routes" group="Properties">
<help short="The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient."/>
</arg>
<arg nullable="True" type="boolean" var="@VirtualNetworkGateway_update.properties.disableIPSecReplayProtection" options="disable-ip-sec-replay-protection" group="Properties">
<help short="disableIPSecReplayProtection flag."/>
</arg>
<arg nullable="True" type="boolean" var="@VirtualNetworkGateway_update.properties.enableBgp" options="enable-bgp" group="Properties">
<help short="Whether BGP is enabled for this virtual network gateway or not."/>
</arg>
<arg nullable="True" type="boolean" var="@VirtualNetworkGateway_update.properties.enableBgpRouteTranslationForNat" options="enable-bgp-route-translation-for-nat" group="Properties">
<help short="EnableBgpRouteTranslationForNat flag."/>
</arg>
<arg nullable="True" type="boolean" var="@VirtualNetworkGateway_update.properties.enableDnsForwarding" options="enable-dns-forwarding" group="Properties">
<help short="Whether dns forwarding is enabled or not."/>
</arg>
<arg nullable="True" type="boolean" var="@VirtualNetworkGateway_update.properties.enablePrivateIpAddress" options="enable-private-ip-address" group="Properties">
<help short="Whether private IP needs to be enabled on this gateway for connections or not."/>
</arg>
<arg nullable="True" type="@SubResource_update" var="@VirtualNetworkGateway_update.properties.gatewayDefaultSite" options="gateway-default-site" group="Properties">
<help short="The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.gatewayType" options="gateway-type" group="Properties">
<help short="The type of this virtual network gateway."/>
<enum>
<item name="ExpressRoute" value=""ExpressRoute""/>
<item name="LocalGateway" value=""LocalGateway""/>
<item name="Vpn" value=""Vpn""/>
</enum>
</arg>
<arg nullable="True" type="array<object>" var="@VirtualNetworkGateway_update.properties.ipConfigurations" options="ip-configurations" group="Properties">
<help short="IP configurations for virtual network gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.ipConfigurations[].id" options="id">
<help short="Resource ID."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.ipConfigurations[].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="string" var="@VirtualNetworkGateway_update.properties.ipConfigurations[].properties.privateIPAllocationMethod" options="private-ip-allocation-method" group="Properties">
<help short="The private IP address allocation method."/>
<enum>
<item name="Dynamic" value=""Dynamic""/>
<item name="Static" value=""Static""/>
</enum>
</arg>
<arg nullable="True" type="@SubResource_update" var="@VirtualNetworkGateway_update.properties.ipConfigurations[].properties.publicIPAddress" options="public-ip-address" group="Properties">
<help short="The reference to the public IP resource."/>
</arg>
<arg nullable="True" type="object" var="@VirtualNetworkGateway_update.properties.ipConfigurations[].properties.subnet" options="subnet" group="Properties" cls="SubResource_update">
<help short="The reference to the subnet resource."/>
<arg nullable="True" type="string" var="@SubResource_update.id" options="id">
<help short="Resource ID."/>
</arg>
</arg>
</item>
</arg>
<arg nullable="True" type="array<object>" var="@VirtualNetworkGateway_update.properties.natRules" options="nat-rules" group="Properties">
<help short="NatRules for virtual network gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="ResourceId" var="@VirtualNetworkGateway_update.properties.natRules[].id" options="id">
<help short="Resource ID."/>
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}/natRules/{}"/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.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="@VirtualNetworkGateway_update.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="@VirtualNetworkGateway_update.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="@VirtualNetworkGateway_update.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="@VirtualNetworkGateway_update.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="@VirtualNetworkGateway_update.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>
<arg nullable="True" type="object" var="@VirtualNetworkGateway_update.properties.sku" options="sku" group="Properties">
<help short="The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway."/>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.sku.name" options="name">
<help short="Gateway SKU name."/>
<enum>
<item name="Basic" value=""Basic""/>
<item name="ErGw1AZ" value=""ErGw1AZ""/>
<item name="ErGw2AZ" value=""ErGw2AZ""/>
<item name="ErGw3AZ" value=""ErGw3AZ""/>
<item name="HighPerformance" value=""HighPerformance""/>
<item name="Standard" value=""Standard""/>
<item name="UltraPerformance" value=""UltraPerformance""/>
<item name="VpnGw1" value=""VpnGw1""/>
<item name="VpnGw1AZ" value=""VpnGw1AZ""/>
<item name="VpnGw2" value=""VpnGw2""/>
<item name="VpnGw2AZ" value=""VpnGw2AZ""/>
<item name="VpnGw3" value=""VpnGw3""/>
<item name="VpnGw3AZ" value=""VpnGw3AZ""/>
<item name="VpnGw4" value=""VpnGw4""/>
<item name="VpnGw4AZ" value=""VpnGw4AZ""/>
<item name="VpnGw5" value=""VpnGw5""/>
<item name="VpnGw5AZ" value=""VpnGw5AZ""/>
</enum>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.sku.tier" options="tier">
<help short="Gateway SKU tier."/>
<enum>
<item name="Basic" value=""Basic""/>
<item name="ErGw1AZ" value=""ErGw1AZ""/>
<item name="ErGw2AZ" value=""ErGw2AZ""/>
<item name="ErGw3AZ" value=""ErGw3AZ""/>
<item name="HighPerformance" value=""HighPerformance""/>
<item name="Standard" value=""Standard""/>
<item name="UltraPerformance" value=""UltraPerformance""/>
<item name="VpnGw1" value=""VpnGw1""/>
<item name="VpnGw1AZ" value=""VpnGw1AZ""/>
<item name="VpnGw2" value=""VpnGw2""/>
<item name="VpnGw2AZ" value=""VpnGw2AZ""/>
<item name="VpnGw3" value=""VpnGw3""/>
<item name="VpnGw3AZ" value=""VpnGw3AZ""/>
<item name="VpnGw4" value=""VpnGw4""/>
<item name="VpnGw4AZ" value=""VpnGw4AZ""/>
<item name="VpnGw5" value=""VpnGw5""/>
<item name="VpnGw5AZ" value=""VpnGw5AZ""/>
</enum>
</arg>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vNetExtendedLocationResourceId" options="v-net-extended-location-resource-id" group="Properties">
<help short="Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet."/>
</arg>
<arg nullable="True" type="object" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration" options="vpn-client-configuration" group="Properties">
<help short="The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations."/>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.aadAudience" options="aad-audience">
<help short="The AADAudience property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.aadIssuer" options="aad-issuer">
<help short="The AADIssuer property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.aadTenant" options="aad-tenant">
<help short="The AADTenant property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServerAddress" options="radius-server-address">
<help short="The radius server address property of the VirtualNetworkGateway resource for vpn client connection."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServerSecret" options="radius-server-secret">
<help short="The radius secret property of the VirtualNetworkGateway resource for vpn client connection."/>
</arg>
<arg nullable="True" type="array<object>" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers" options="radius-servers">
<help short="The radiusServers property for multiple radius server configuration."/>
<item nullable="True" type="object">
<arg type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers[].radiusServerAddress" options="radius-server-address">
<help short="The address of this radius server."/>
</arg>
<arg nullable="True" type="integer64" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers[].radiusServerScore" options="radius-server-score">
<help short="The initial score assigned to this radius server."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers[].radiusServerSecret" options="radius-server-secret">
<help short="The secret used for this radius server."/>
</arg>
</item>
</arg>
<arg nullable="True" type="array<string>" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnAuthenticationTypes" options="vpn-authentication-types">
<help short="VPN authentication types for the virtual network gateway.."/>
<item nullable="True" type="string">
<enum>
<item name="AAD" value=""AAD""/>
<item name="Certificate" value=""Certificate""/>
<item name="Radius" value=""Radius""/>
</enum>
</item>
</arg>
<arg nullable="True" type="object" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientAddressPool" options="vpn-client-address-pool" cls="AddressSpace_update">
<help short="The reference to the address space resource which represents Address space for P2S VpnClient."/>
<arg nullable="True" type="array<string>" var="@AddressSpace_update.addressPrefixes" options="address-prefixes">
<help short="A list of address blocks reserved for this virtual network in CIDR notation."/>
<item nullable="True" type="string"/>
</arg>
</arg>
<arg nullable="True" type="array<object>" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientIpsecPolicies" options="vpn-client-ipsec-policies">
<help short="VpnClientIpsecPolicies for virtual network gateway P2S client."/>
<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="array<string>" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientProtocols" options="vpn-client-protocols">
<help short="VpnClientProtocols for Virtual network gateway."/>
<item nullable="True" type="string">
<enum>
<item name="IkeV2" value=""IkeV2""/>
<item name="OpenVPN" value=""OpenVPN""/>
<item name="SSTP" value=""SSTP""/>
</enum>
</item>
</arg>
<arg nullable="True" type="array<object>" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates" options="vpn-client-revoked-certificates">
<help short="VpnClientRevokedCertificate for Virtual network gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].id" options="id">
<help short="Resource ID."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].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="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].properties.thumbprint" options="thumbprint" group="Properties">
<help short="The revoked VPN client certificate thumbprint."/>
</arg>
</item>
</arg>
<arg nullable="True" type="array<object>" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates" options="vpn-client-root-certificates">
<help short="VpnClientRootCertificate for virtual network gateway."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates[].id" options="id">
<help short="Resource ID."/>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates[].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="string" var="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates[].properties.publicCertData" options="public-cert-data" group="Properties">
<help short="The certificate public data."/>
</arg>
</item>
</arg>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnGatewayGeneration" options="vpn-gateway-generation" group="Properties">
<help short="The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN."/>
<enum>
<item name="Generation1" value=""Generation1""/>
<item name="Generation2" value=""Generation2""/>
<item name="None" value=""None""/>
</enum>
</arg>
<arg nullable="True" type="string" var="@VirtualNetworkGateway_update.properties.vpnType" options="vpn-type" group="Properties">
<help short="The type of this virtual network gateway."/>
<enum>
<item name="PolicyBased" value=""PolicyBased""/>
<item name="RouteBased" value=""RouteBased""/>
</enum>
</arg>
<arg nullable="True" type="object" var="@VirtualNetworkGateway_update.tags" options="tags">
<help short="Resource tags."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</arg>
<arg nullable="True" type="@VirtualNetworkGateway_update" var="$parameters.properties.virtualNetworkGateway2" options="virtual-network-gateway2" hide="True" group="Properties">
<help short="The reference to virtual network gateway resource."/>
</arg>
</argGroup>
<operation operationId="VirtualNetworkGatewayConnections_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="get">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VirtualNetworkGatewayConnection_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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 ref="$Instance">
<json>
<schema type="object" name="parameters" required="True" clientFlatten="True">
<prop type="ResourceId" name="id" arg="$parameters.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="$parameters.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey" arg="$parameters.properties.authorizationKey"/>
<prop type="string" name="connectionMode" arg="$parameters.properties.connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol" arg="$parameters.properties.connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionType" arg="$parameters.properties.connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds" arg="$parameters.properties.dpdTimeoutSeconds"/>
<prop type="array<@SubResource_update>" name="egressNatRules" arg="$parameters.properties.egressNatRules">
<item type="@SubResource_update"/>
</prop>
<prop type="boolean" name="enableBgp" arg="$parameters.properties.enableBgp"/>
<prop type="boolean" name="expressRouteGatewayBypass" arg="$parameters.properties.expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses" arg="$parameters.properties.gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" arg="$parameters.properties.gatewayCustomBgpIpAddresses[].customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" arg="$parameters.properties.gatewayCustomBgpIpAddresses[].ipConfigurationId" required="True"/>
</item>
</prop>
<prop type="array<@SubResource_update>" name="ingressNatRules" arg="$parameters.properties.ingressNatRules">
<item type="@SubResource_update"/>
</prop>
<prop type="array<object>" name="ipsecPolicies" arg="$parameters.properties.ipsecPolicies">
<item type="object">
<prop type="string" name="dhGroup" arg="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" arg="$parameters.properties.ipsecPolicies[].saLifeTimeSeconds" required="True"/>
</item>
</prop>
<prop type="object" name="localNetworkGateway2" arg="$parameters.properties.localNetworkGateway2">
<prop type="ResourceId" name="id" arg="$parameters.properties.localNetworkGateway2.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="$parameters.properties.localNetworkGateway2.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_update" name="bgpSettings" arg="$parameters.properties.localNetworkGateway2.properties.bgpSettings"/>
<prop type="string" name="fqdn" arg="$parameters.properties.localNetworkGateway2.properties.fqdn"/>
<prop type="string" name="gatewayIpAddress" arg="$parameters.properties.localNetworkGateway2.properties.gatewayIpAddress"/>
<prop type="@AddressSpace_update" name="localNetworkAddressSpace" arg="$parameters.properties.localNetworkGateway2.properties.localNetworkAddressSpace"/>
</prop>
<prop type="object" name="tags" arg="$parameters.properties.localNetworkGateway2.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="@SubResource_update" name="peer" arg="$parameters.properties.peer"/>
<prop type="integer32" name="routingWeight" arg="$parameters.properties.routingWeight"/>
<prop type="string" name="sharedKey" arg="$parameters.properties.sharedKey"/>
<prop type="array<object>" name="trafficSelectorPolicies" arg="$parameters.properties.trafficSelectorPolicies">
<item type="object">
<prop type="array<string>" name="localAddressRanges" arg="$parameters.properties.trafficSelectorPolicies[].localAddressRanges" required="True">
<item type="string"/>
</prop>
<prop type="array<string>" name="remoteAddressRanges" arg="$parameters.properties.trafficSelectorPolicies[].remoteAddressRanges" required="True">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress" arg="$parameters.properties.useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors" arg="$parameters.properties.usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" arg="$parameters.properties.virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_update">
<prop type="object" name="extendedLocation" arg="@VirtualNetworkGateway_update.extendedLocation">
<prop type="string" name="name" arg="@VirtualNetworkGateway_update.extendedLocation.name"/>
<prop type="string" name="type" arg="@VirtualNetworkGateway_update.extendedLocation.type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id" arg="@VirtualNetworkGateway_update.id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location" arg="@VirtualNetworkGateway_update.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive" arg="@VirtualNetworkGateway_update.properties.activeActive"/>
<prop type="object" name="bgpSettings" arg="@VirtualNetworkGateway_update.properties.bgpSettings" cls="BgpSettings_update">
<prop type="integer64" name="asn" arg="@BgpSettings_update.asn">
<format maximum="4294967295" minimum="0"/>
</prop>
<prop type="string" name="bgpPeeringAddress" arg="@BgpSettings_update.bgpPeeringAddress"/>
<prop type="array<object>" name="bgpPeeringAddresses" arg="@BgpSettings_update.bgpPeeringAddresses">
<item type="object">
<prop type="array<string>" name="customBgpIpAddresses" arg="@BgpSettings_update.bgpPeeringAddresses[].customBgpIpAddresses">
<item type="string"/>
</prop>
<prop type="string" name="ipconfigurationId" arg="@BgpSettings_update.bgpPeeringAddresses[].ipconfigurationId"/>
</item>
</prop>
<prop type="integer32" name="peerWeight" arg="@BgpSettings_update.peerWeight"/>
</prop>
<prop type="@AddressSpace_update" name="customRoutes" arg="@VirtualNetworkGateway_update.properties.customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection" arg="@VirtualNetworkGateway_update.properties.disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp" arg="@VirtualNetworkGateway_update.properties.enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat" arg="@VirtualNetworkGateway_update.properties.enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding" arg="@VirtualNetworkGateway_update.properties.enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress" arg="@VirtualNetworkGateway_update.properties.enablePrivateIpAddress"/>
<prop type="@SubResource_update" name="gatewayDefaultSite" arg="@VirtualNetworkGateway_update.properties.gatewayDefaultSite"/>
<prop type="string" name="gatewayType" arg="@VirtualNetworkGateway_update.properties.gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop type="array<object>" name="ipConfigurations" arg="@VirtualNetworkGateway_update.properties.ipConfigurations">
<item type="object">
<prop type="string" name="id" arg="@VirtualNetworkGateway_update.properties.ipConfigurations[].id"/>
<prop type="string" name="name" arg="@VirtualNetworkGateway_update.properties.ipConfigurations[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="string" name="privateIPAllocationMethod" arg="@VirtualNetworkGateway_update.properties.ipConfigurations[].properties.privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
<prop type="@SubResource_update" name="publicIPAddress" arg="@VirtualNetworkGateway_update.properties.ipConfigurations[].properties.publicIPAddress"/>
<prop type="object" name="subnet" arg="@VirtualNetworkGateway_update.properties.ipConfigurations[].properties.subnet" cls="SubResource_update">
<prop type="string" name="id" arg="@SubResource_update.id"/>
</prop>
</prop>
</item>
</prop>
<prop type="array<object>" name="natRules" arg="@VirtualNetworkGateway_update.properties.natRules">
<item type="object">
<prop type="ResourceId" name="id" arg="@VirtualNetworkGateway_update.properties.natRules[].id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name" arg="@VirtualNetworkGateway_update.properties.natRules[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_update>" name="externalMappings" arg="@VirtualNetworkGateway_update.properties.natRules[].properties.externalMappings">
<item type="@VpnNatRuleMapping_update"/>
</prop>
<prop type="array<object>" name="internalMappings" arg="@VirtualNetworkGateway_update.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="@VirtualNetworkGateway_update.properties.natRules[].properties.ipConfigurationId"/>
<prop type="string" name="mode" arg="@VirtualNetworkGateway_update.properties.natRules[].properties.mode">
<enum>
<item value=""EgressSnat""/>
<item value=""IngressSnat""/>
</enum>
</prop>
<prop type="string" name="type" arg="@VirtualNetworkGateway_update.properties.natRules[].properties.type">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</enum>
</prop>
</prop>
</item>
</prop>
<prop type="object" name="sku" arg="@VirtualNetworkGateway_update.properties.sku">
<prop type="string" name="name" arg="@VirtualNetworkGateway_update.properties.sku.name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier" arg="@VirtualNetworkGateway_update.properties.sku.tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId" arg="@VirtualNetworkGateway_update.properties.vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration">
<prop type="string" name="aadAudience" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.aadAudience"/>
<prop type="string" name="aadIssuer" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.aadIssuer"/>
<prop type="string" name="aadTenant" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.aadTenant"/>
<prop type="string" name="radiusServerAddress" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServerAddress"/>
<prop type="string" name="radiusServerSecret" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServerSecret"/>
<prop type="array<object>" name="radiusServers" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers[].radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers[].radiusServerScore"/>
<prop type="string" name="radiusServerSecret" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.radiusServers[].radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientAddressPool" cls="AddressSpace_update">
<prop type="array<string>" name="addressPrefixes" arg="@AddressSpace_update.addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientIpsecPolicies">
<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="array<string>" name="vpnClientProtocols" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates">
<item type="object">
<prop type="string" name="id" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].id"/>
<prop type="string" name="name" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="string" name="thumbprint" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRevokedCertificates[].properties.thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates">
<item type="object">
<prop type="string" name="id" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates[].id"/>
<prop type="string" name="name" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates[].name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="publicCertData" arg="@VirtualNetworkGateway_update.properties.vpnClientConfiguration.vpnClientRootCertificates[].properties.publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration" arg="@VirtualNetworkGateway_update.properties.vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType" arg="@VirtualNetworkGateway_update.properties.vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags" arg="@VirtualNetworkGateway_update.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="@VirtualNetworkGateway_update" name="virtualNetworkGateway2" arg="$parameters.properties.virtualNetworkGateway2"/>
</prop>
<prop type="object" name="tags" arg="$parameters.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</schema>
</json>
</instanceUpdate>
</operation>
<operation operationId="VirtualNetworkGatewayConnections_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="put">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@VirtualNetworkGatewayConnection_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 name="ipsec-policy">
<command name="list" version="2022-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" subresource="properties.ipsecPolicies" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="connection-name" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
</argGroup>
<subresourceSelector var="$Subresource" ref="$Instance">
<json type="object" name="parameters">
<prop type="array" name="properties.ipsecPolicies"/>
</json>
</subresourceSelector>
<operation operationId="VirtualNetworkGatewayConnections_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="get">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VirtualNetworkGatewayConnection_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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="array" ref="$Subresource" clientFlatten="True"/>
</command>
<command name="add" version="2022-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" subresource="properties.ipsecPolicies[]" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="connection-name" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
<arg type="integer" var="$parameters.properties.ipsecPolicies[Index]" options="ipsec-policy-index"/>
</argGroup>
<argGroup name="IKE Phase 1">
<arg type="string" var="$parameters.properties.ipsecPolicies[].dhGroup" options="dh-group" required="True" group="IKE Phase 1">
<help short="The DH Groups used 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="$parameters.properties.ipsecPolicies[].ipsecEncryption" options="ipsec-encryption" required="True" group="IKE Phase 1">
<help short="The IPSec encryption algorithm."/>
<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="$parameters.properties.ipsecPolicies[].ipsecIntegrity" options="ipsec-integrity" required="True" group="IKE Phase 1">
<help short="The IPSec integrity algorithm."/>
<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>
</argGroup>
<argGroup name="IKE Phase 2">
<arg type="string" var="$parameters.properties.ipsecPolicies[].ikeEncryption" options="ike-encryption" required="True" group="IKE Phase 2">
<help short="The IKE encryption algorithm."/>
<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="$parameters.properties.ipsecPolicies[].ikeIntegrity" options="ike-integrity" required="True" group="IKE Phase 2">
<help short="The IKE integrity algorithm."/>
<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="$parameters.properties.ipsecPolicies[].pfsGroup" options="pfs-group" required="True" group="IKE Phase 2">
<help short="The Pfs Groups used 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>
</argGroup>
<argGroup name="Security Association">
<arg type="integer32" var="$parameters.properties.ipsecPolicies[].saDataSizeKilobytes" options="sa-max-size" required="True" group="Security Association">
<help short="The payload size in KB for P2S client."/>
</arg>
<arg type="integer32" var="$parameters.properties.ipsecPolicies[].saLifeTimeSeconds" options="sa-lifetime" required="True" group="Security Association">
<help short="The lifetime in seconds for P2S client."/>
</arg>
</argGroup>
<subresourceSelector var="$Subresource" ref="$Instance">
<json type="object" name="parameters">
<prop type="array" name="properties.ipsecPolicies">
<item type="object"/>
<identifier type="integer" name="[Index]" arg="$parameters.properties.ipsecPolicies[Index]"/>
</prop>
</json>
</subresourceSelector>
<operation operationId="VirtualNetworkGatewayConnections_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="get">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VirtualNetworkGatewayConnection_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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>
<instanceCreate ref="$Subresource">
<json>
<schema type="object" name="parameters.properties.ipsecPolicies[]" required="True">
<prop type="string" name="dhGroup" arg="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" arg="$parameters.properties.ipsecPolicies[].saLifeTimeSeconds" required="True"/>
</schema>
</json>
</instanceCreate>
</operation>
<operation operationId="VirtualNetworkGatewayConnections_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="put">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@VirtualNetworkGatewayConnection_read"/>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Subresource" clientFlatten="True"/>
</command>
<command name="update" version="2022-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" subresource="properties.ipsecPolicies[]" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="connection-name" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
<arg type="integer" var="$parameters.properties.ipsecPolicies[Index]" options="ipsec-policy-index" required="True"/>
</argGroup>
<argGroup name="Parameters.properties.ipsecPolicies[]">
<arg type="string" var="$parameters.properties.ipsecPolicies[].dhGroup" options="dh-group" group="Parameters.properties.ipsecPolicies[]">
<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="$parameters.properties.ipsecPolicies[].ikeEncryption" options="ike-encryption" group="Parameters.properties.ipsecPolicies[]">
<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="$parameters.properties.ipsecPolicies[].ikeIntegrity" options="ike-integrity" group="Parameters.properties.ipsecPolicies[]">
<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="$parameters.properties.ipsecPolicies[].ipsecEncryption" options="ipsec-encryption" group="Parameters.properties.ipsecPolicies[]">
<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="$parameters.properties.ipsecPolicies[].ipsecIntegrity" options="ipsec-integrity" group="Parameters.properties.ipsecPolicies[]">
<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="$parameters.properties.ipsecPolicies[].pfsGroup" options="pfs-group" group="Parameters.properties.ipsecPolicies[]">
<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="$parameters.properties.ipsecPolicies[].saDataSizeKilobytes" options="sa-data-size-kilobytes" group="Parameters.properties.ipsecPolicies[]">
<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="$parameters.properties.ipsecPolicies[].saLifeTimeSeconds" options="sa-life-time-seconds" group="Parameters.properties.ipsecPolicies[]">
<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>
</argGroup>
<subresourceSelector var="$Subresource" ref="$Instance">
<json type="object" name="parameters">
<prop type="array" name="properties.ipsecPolicies">
<item type="object"/>
<identifier type="integer" name="[Index]" arg="$parameters.properties.ipsecPolicies[Index]" required="True"/>
</prop>
</json>
</subresourceSelector>
<operation operationId="VirtualNetworkGatewayConnections_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="get">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VirtualNetworkGatewayConnection_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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 ref="$Subresource">
<json>
<schema type="object" name="parameters.properties.ipsecPolicies[]" required="True">
<prop type="string" name="dhGroup" arg="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].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="$parameters.properties.ipsecPolicies[].saDataSizeKilobytes" required="True"/>
<prop type="integer32" name="saLifeTimeSeconds" arg="$parameters.properties.ipsecPolicies[].saLifeTimeSeconds" required="True"/>
</schema>
</json>
</instanceUpdate>
</operation>
<operation operationId="VirtualNetworkGatewayConnections_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="put">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@VirtualNetworkGatewayConnection_read"/>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Subresource" clientFlatten="True"/>
</command>
<command name="delete" version="2022-01-01" confirmation="Are you sure you want to perform this operation?">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" subresource="properties.ipsecPolicies[]" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="connection-name" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
<arg type="integer" var="$parameters.properties.ipsecPolicies[Index]" options="ipsec-policy-index" required="True"/>
</argGroup>
<subresourceSelector var="$Subresource" ref="$Instance">
<json type="object" name="parameters">
<prop type="array" name="properties.ipsecPolicies">
<item type="object"/>
<identifier type="integer" name="[Index]" arg="$parameters.properties.ipsecPolicies[Index]" required="True"/>
</prop>
</json>
</subresourceSelector>
<operation operationId="VirtualNetworkGatewayConnections_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="get">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VirtualNetworkGatewayConnection_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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>
<instanceDelete ref="$Subresource">
<json/>
</instanceDelete>
</operation>
<operation operationId="VirtualNetworkGatewayConnections_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="put">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@VirtualNetworkGatewayConnection_read"/>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
</command>
<command name="show" version="2022-01-01" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/connections/{}" version="2022-01-01" subresource="properties.ipsecPolicies[]" swagger="mgmt-plane/network/ResourceProviders/Microsoft.Network/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9jb25uZWN0aW9ucy97dmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbk5hbWV9/V/MjAyMi0wMS0wMQ=="/>
<argGroup name="">
<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="string" var="$Path.virtualNetworkGatewayConnectionName" options="connection-name" required="True" group="" idPart="name">
<help short="Connection name."/>
</arg>
<arg type="integer" var="$parameters.properties.ipsecPolicies[Index]" options="ipsec-policy-index" required="True"/>
</argGroup>
<subresourceSelector var="$Subresource" ref="$Instance">
<json type="object" name="parameters">
<prop type="array" name="properties.ipsecPolicies">
<item type="object"/>
<identifier type="integer" name="[Index]" arg="$parameters.properties.ipsecPolicies[Index]" required="True"/>
</prop>
</json>
</subresourceSelector>
<operation operationId="VirtualNetworkGatewayConnections_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}">
<request method="get">
<path>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
<param type="string" name="virtualNetworkGatewayConnectionName" arg="$Path.virtualNetworkGatewayConnectionName" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2022-01-01""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VirtualNetworkGatewayConnection_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/connections/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="authorizationKey"/>
<prop type="string" name="connectionMode">
<enum>
<item value=""Default""/>
<item value=""InitiatorOnly""/>
<item value=""ResponderOnly""/>
</enum>
</prop>
<prop type="string" name="connectionProtocol">
<enum>
<item value=""IKEv1""/>
<item value=""IKEv2""/>
</enum>
</prop>
<prop type="string" name="connectionStatus">
<enum>
<item value=""Connected""/>
<item value=""Connecting""/>
<item value=""NotConnected""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="connectionType" required="True">
<enum>
<item value=""ExpressRoute""/>
<item value=""IPsec""/>
<item value=""VPNClient""/>
<item value=""Vnet2Vnet""/>
</enum>
</prop>
<prop type="integer32" name="dpdTimeoutSeconds"/>
<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="expressRouteGatewayBypass"/>
<prop type="array<object>" name="gatewayCustomBgpIpAddresses">
<item type="object">
<prop type="string" name="customBgpIpAddress" required="True"/>
<prop type="string" name="ipConfigurationId" required="True"/>
</item>
</prop>
<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 type="object" name="localNetworkGateway2">
<prop readOnly="True" type="string" name="etag"/>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/localNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="@BgpSettings_read" name="bgpSettings"/>
<prop type="string" name="fqdn"/>
<prop type="string" name="gatewayIpAddress"/>
<prop type="@AddressSpace_read" name="localNetworkAddressSpace"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@SubResource_read" name="peer"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="resourceGuid"/>
<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 readOnly="True" type="array<object>" name="tunnelConnectionStatus">
<item type="object">
<prop 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 readOnly="True" type="integer64" name="ingressBytesTransferred"/>
<prop readOnly="True" type="string" name="lastConnectionEstablishedUtcTime"/>
<prop readOnly="True" type="string" name="tunnel"/>
</item>
</prop>
<prop type="boolean" name="useLocalAzureIpAddress"/>
<prop type="boolean" name="usePolicyBasedTrafficSelectors"/>
<prop type="object" name="virtualNetworkGateway1" required="True" cls="VirtualNetworkGateway_read">
<prop readOnly="True" type="string" name="etag"/>
<prop type="object" name="extendedLocation">
<prop type="string" name="name"/>
<prop type="string" name="type">
<enum>
<item value=""EdgeZone""/>
</enum>
</prop>
</prop>
<prop type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/virtualNetworkGateways/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="boolean" name="activeActive"/>
<prop type="object" name="bgpSettings" cls="BgpSettings_read">
<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 type="string"/>
</prop>
<prop type="string" name="ipconfigurationId"/>
<prop readOnly="True" type="array<string>" name="tunnelIpAddresses">
<item type="string"/>
</prop>
</item>
</prop>
<prop type="integer32" name="peerWeight"/>
</prop>
<prop type="@AddressSpace_read" name="customRoutes"/>
<prop type="boolean" name="disableIPSecReplayProtection"/>
<prop type="boolean" name="enableBgp"/>
<prop type="boolean" name="enableBgpRouteTranslationForNat"/>
<prop type="boolean" name="enableDnsForwarding"/>
<prop type="boolean" name="enablePrivateIpAddress"/>
<prop type="@SubResource_read" name="gatewayDefaultSite"/>
<prop type="string" name="gatewayType">
<enum>
<item value=""ExpressRoute""/>
<item value=""LocalGateway""/>
<item value=""Vpn""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="inboundDnsForwardingEndpoint"/>
<prop type="array<object>" name="ipConfigurations">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop readOnly="True" type="string" name="privateIPAddress"/>
<prop type="string" name="privateIPAllocationMethod">
<enum>
<item value=""Dynamic""/>
<item value=""Static""/>
</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="@SubResource_read" name="publicIPAddress"/>
<prop type="object" name="subnet" cls="SubResource_read">
<prop type="string" name="id"/>
</prop>
</prop>
</item>
</prop>
<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/virtualNetworkGateways/{}/natRules/{}"/>
</prop>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="array<@VpnNatRuleMapping_read>" name="externalMappings">
<item type="@VpnNatRuleMapping_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 readOnly="True" type="string" name="resourceGuid"/>
<prop type="object" name="sku">
<prop readOnly="True" type="integer32" name="capacity"/>
<prop type="string" name="name">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
<prop type="string" name="tier">
<enum>
<item value=""Basic""/>
<item value=""ErGw1AZ""/>
<item value=""ErGw2AZ""/>
<item value=""ErGw3AZ""/>
<item value=""HighPerformance""/>
<item value=""Standard""/>
<item value=""UltraPerformance""/>
<item value=""VpnGw1""/>
<item value=""VpnGw1AZ""/>
<item value=""VpnGw2""/>
<item value=""VpnGw2AZ""/>
<item value=""VpnGw3""/>
<item value=""VpnGw3AZ""/>
<item value=""VpnGw4""/>
<item value=""VpnGw4AZ""/>
<item value=""VpnGw5""/>
<item value=""VpnGw5AZ""/>
</enum>
</prop>
</prop>
<prop type="string" name="vNetExtendedLocationResourceId"/>
<prop type="object" name="vpnClientConfiguration">
<prop type="string" name="aadAudience"/>
<prop type="string" name="aadIssuer"/>
<prop type="string" name="aadTenant"/>
<prop type="string" name="radiusServerAddress"/>
<prop type="string" name="radiusServerSecret"/>
<prop type="array<object>" name="radiusServers">
<item type="object">
<prop type="string" name="radiusServerAddress" required="True"/>
<prop type="integer64" name="radiusServerScore"/>
<prop type="string" name="radiusServerSecret"/>
</item>
</prop>
<prop type="array<string>" name="vpnAuthenticationTypes">
<item type="string">
<enum>
<item value=""AAD""/>
<item value=""Certificate""/>
<item value=""Radius""/>
</enum>
</item>
</prop>
<prop type="object" name="vpnClientAddressPool" cls="AddressSpace_read">
<prop type="array<string>" name="addressPrefixes">
<item type="string"/>
</prop>
</prop>
<prop type="array<object>" name="vpnClientIpsecPolicies">
<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 type="array<string>" name="vpnClientProtocols">
<item type="string">
<enum>
<item value=""IkeV2""/>
<item value=""OpenVPN""/>
<item value=""SSTP""/>
</enum>
</item>
</prop>
<prop type="array<object>" name="vpnClientRevokedCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<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="thumbprint"/>
</prop>
</item>
</prop>
<prop type="array<object>" name="vpnClientRootCertificates">
<item type="object">
<prop readOnly="True" type="string" name="etag"/>
<prop type="string" name="id"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<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="publicCertData" required="True"/>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="vpnGatewayGeneration">
<enum>
<item value=""Generation1""/>
<item value=""Generation2""/>
<item value=""None""/>
</enum>
</prop>
<prop type="string" name="vpnType">
<enum>
<item value=""PolicyBased""/>
<item value=""RouteBased""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</prop>
<prop type="@VirtualNetworkGateway_read" name="virtualNetworkGateway2"/>
</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="$Subresource" clientFlatten="True"/>
</command>
</commandGroup>
</commandGroup>
</CodeGen>