From df62eff7a3af69ae8b214444fa0b913fca006ef9 Mon Sep 17 00:00:00 2001 From: Nilambari Date: Wed, 2 Dec 2020 00:49:20 -0800 Subject: [PATCH] VPN NAT for Virtual WAN feature changes (#11815) * VPN NAT for Virtual WAN feature changes * PrettierCheck fixes * Incorporate review comments and update examples --- .../2020-08-01/examples/NatRuleDelete.json | 14 + .../2020-08-01/examples/NatRuleGet.json | 31 ++ .../2020-08-01/examples/NatRuleList.json | 76 ++++ .../2020-08-01/examples/NatRulePut.json | 94 +++++ .../2020-08-01/examples/VpnGatewayGet.json | 64 ++- .../2020-08-01/examples/VpnGatewayList.json | 65 ++- .../VpnGatewayListByResourceGroup.json | 41 +- .../2020-08-01/examples/VpnGatewayPut.json | 93 ++++- .../2020-08-01/examples/VpnGatewayReset.json | 1 + .../examples/VpnGatewayUpdateTags.json | 1 + .../stable/2020-08-01/virtualWan.json | 377 ++++++++++++++++++ 11 files changed, 848 insertions(+), 9 deletions(-) create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleDelete.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleGet.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleList.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRulePut.json diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleDelete.json new file mode 100644 index 000000000000..b3eac15776bd --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleDelete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "natRuleName": "natRule1", + "gatewayName": "gateway1", + "resourceGroupName": "rg1", + "api-version": "2020-08-01", + "subscriptionId": "subid" + }, + "responses": { + "200": {}, + "202": {}, + "204": {} + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleGet.json new file mode 100644 index 000000000000..3a331a5bd25a --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleGet.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "gatewayName": "gateway1", + "natRuleName": "natRule1", + "resourceGroupName": "rg1", + "api-version": "2020-08-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "name": "natRule1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/natRule1", + "etag": "w/\\00000000-0000-0000-0000-000000000000\\", + "properties": { + "provisioningState": "Succeeded", + "type": "Static", + "mode": "EgressSnat", + "internalMappings": [ + { + "addressSpace": "10.4.0.0/24" + } + ], + "externalMappings": [], + "egressVpnSiteLinkConnections": [], + "ingressVpnSiteLinkConnections": [] + } + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleList.json new file mode 100644 index 000000000000..6eb438298030 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRuleList.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "gatewayName": "gateway1", + "api-version": "2020-08-01", + "resourceGroupName": "rg1", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": [ + { + "name": "natRule1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/natRule1", + "etag": "w/\\00000000-0000-0000-0000-000000000000\\", + "properties": { + "provisioningState": "Succeeded", + "type": "Static", + "mode": "EgressSnat", + "ipConfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/cloudnet1-VNG/ipConfigurations/default", + "internalMappings": [ + { + "addressSpace": "10.4.0.0/24" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.21.0/24" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection1" + } + ], + "ingressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection2" + } + ] + } + }, + { + "name": "natRule2", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/natRule2", + "etag": "w/\\00000000-0000-0000-0000-000000000000\\", + "properties": { + "provisioningState": "Succeeded", + "type": "Static", + "mode": "EgressSnat", + "ipConfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/cloudnet1-VNG1/ipConfigurations/default", + "internalMappings": [ + { + "addressSpace": "10.4.0.0/24" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.21.0/24" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection1" + } + ], + "ingressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection2" + } + ] + } + } + ] + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRulePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRulePut.json new file mode 100644 index 000000000000..fd08317b647d --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/NatRulePut.json @@ -0,0 +1,94 @@ +{ + "parameters": { + "natRuleName": "natRule1", + "gatewayName": "gateway1", + "resourceGroupName": "rg1", + "api-version": "2020-08-01", + "subscriptionId": "subid", + "NatRuleParameters": { + "properties": { + "type": "Static", + "mode": "EgressSnat", + "ipConfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/cloudnet1-VNG/ipConfigurations/default", + "internalMappings": [ + { + "addressSpace": "10.4.0.0/24" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.21.0/24" + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "name": "natRule1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/natRule1", + "etag": "w/\\00000000-0000-0000-0000-000000000000\\", + "properties": { + "provisioningState": "Succeeded", + "type": "Static", + "mode": "EgressSnat", + "ipConfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/cloudnet1-VNG/ipConfigurations/default", + "internalMappings": [ + { + "addressSpace": "10.4.0.0/24" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.21.0/24" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection1" + } + ], + "ingressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection2" + } + ] + } + } + }, + "201": { + "body": { + "name": "natRule1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/natRule1", + "etag": "w/\\00000000-0000-0000-0000-000000000000\\", + "properties": { + "provisioningState": "Succeeded", + "type": "Static", + "mode": "EgressSnat", + "ipConfigurationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworkGateways/cloudnet1-VNG/ipConfigurations/default", + "internalMappings": [ + { + "addressSpace": "10.4.0.0/24" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.21.0/24" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection1" + } + ], + "ingressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/vpnLinkConnection2" + } + ] + } + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayGet.json index b3981921c5ca..fc8524aa023a 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayGet.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayGet.json @@ -52,7 +52,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "ingressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03" + } + ] } }, { @@ -75,7 +80,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "egressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat04" + } + ] } } ], @@ -138,6 +148,56 @@ } ] }, + "natRules": [ + { + "name": "nat03", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03", + "properties": { + "type": "Dynamic", + "mode": "IgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "ingressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/Connection-Link1" + } + ] + }, + "type": "Microsoft.Network/vpnGateways/natRules" + }, + { + "name": "nat04", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat04", + "properties": { + "type": "Static", + "mode": "EgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/Connection-Link2" + } + ] + }, + "type": "Microsoft.Network/vpnGateways/natRules" + } + ], "isRoutingPreferenceInternet": false } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayList.json index 6bbd94adc64f..895f934594e6 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayList.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayList.json @@ -53,7 +53,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "ingressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03" + } + ] } }, { @@ -76,7 +81,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "egressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat04" + } + ] } } ], @@ -139,6 +149,56 @@ } ] }, + "natRules": [ + { + "name": "nat03", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03", + "properties": { + "type": "Dynamic", + "mode": "IgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "ingressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/Connection-Link1" + } + ] + }, + "type": "Microsoft.Network/vpnGateways/natRules" + }, + { + "name": "nat04", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat04", + "properties": { + "type": "Static", + "mode": "EgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/Connection-Link2" + } + ] + }, + "type": "Microsoft.Network/vpnGateways/natRules" + } + ], "isRoutingPreferenceInternet": false } }, @@ -231,6 +291,7 @@ } ] }, + "natRules": [], "isRoutingPreferenceInternet": false } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayListByResourceGroup.json index 6bbd94adc64f..42d1394d999c 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayListByResourceGroup.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayListByResourceGroup.json @@ -53,7 +53,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "egressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03" + } + ] } }, { @@ -76,7 +81,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "egressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03" + } + ] } } ], @@ -139,6 +149,32 @@ } ] }, + "natRules": [ + { + "name": "nat03", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03", + "properties": { + "type": "Static", + "mode": "EgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/Connection-Link1" + } + ] + }, + "type": "Microsoft.Network/vpnGateways/natRules" + } + ], "isRoutingPreferenceInternet": false } }, @@ -231,6 +267,7 @@ } ] }, + "natRules": [], "isRoutingPreferenceInternet": false } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayPut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayPut.json index 4f619ce43e94..56e5ef4f10f1 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayPut.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayPut.json @@ -29,7 +29,12 @@ }, "connectionBandwidth": 200, "vpnConnectionProtocolType": "IKEv2", - "sharedKey": "key" + "sharedKey": "key", + "egressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03" + } + ] } } ] @@ -54,6 +59,26 @@ } ] }, + "natRules": [ + { + "name": "nat03", + "properties": { + "type": "Static", + "mode": "EgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "ipConfigurationId": "" + } + } + ], "isRoutingPreferenceInternet": false } } @@ -105,7 +130,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "egressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03" + } + ] } } ], @@ -168,6 +198,32 @@ } ] }, + "natRules": [ + { + "name": "nat03", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03", + "etag": "w/\\00000000-0000-0000-0000-000000000000\\", + "properties": { + "type": "Static", + "mode": "EgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/Connection-Link1" + } + ] + } + } + ], "isRoutingPreferenceInternet": false } } @@ -218,7 +274,12 @@ "enableRateLimiting": false, "useLocalAzureIpAddress": false, "usePolicyBasedTrafficSelectors": false, - "routingWeight": 0 + "routingWeight": 0, + "egressNatRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03" + } + ] } } ], @@ -281,6 +342,32 @@ } ] }, + "natRules": [ + { + "name": "nat03", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/natRules/nat03", + "etag": "w/\\00000000-0000-0000-0000-000000000000\\", + "properties": { + "type": "Static", + "mode": "EgressSnat", + "internalMappings": [ + { + "addressSpace": "0.0.0.0/26" + } + ], + "externalMappings": [ + { + "addressSpace": "192.168.0.0/26" + } + ], + "egressVpnSiteLinkConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/vpnConnection1/vpnLinkConnections/Connection-Link1" + } + ] + } + } + ], "isRoutingPreferenceInternet": false } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayReset.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayReset.json index d153b892ed34..40e863979905 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayReset.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayReset.json @@ -97,6 +97,7 @@ } ] }, + "natRules": [], "isRoutingPreferenceInternet": false } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayUpdateTags.json index dd7a2ac50122..7b351c0b27cc 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayUpdateTags.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/examples/VpnGatewayUpdateTags.json @@ -105,6 +105,7 @@ } ] }, + "natRules": [], "isRoutingPreferenceInternet": false } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/virtualWan.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/virtualWan.json index f408b2357bd5..b4bebab277dd 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/virtualWan.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-08-01/virtualWan.json @@ -2668,6 +2668,240 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/natRules/{natRuleName}": { + "get": { + "operationId": "NatRules_Get", + "x-ms-examples": { + "NatRuleGet": { + "$ref": "./examples/NatRuleGet.json" + } + }, + "description": "Retrieves the details of a nat ruleGet.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the VpnGateway." + }, + { + "name": "gatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "name": "natRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the nat rule." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. Returns the details of the nat rule.", + "schema": { + "$ref": "#/definitions/VpnGatewayNatRule" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + } + }, + "put": { + "operationId": "NatRules_CreateOrUpdate", + "x-ms-examples": { + "NatRulePut": { + "$ref": "./examples/NatRulePut.json" + } + }, + "description": "Creates a nat rule to a scalable vpn gateway if it doesn't exist else updates the existing nat rules.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the VpnGateway." + }, + { + "name": "gatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "name": "natRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the nat rule." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "name": "NatRuleParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VpnGatewayNatRule" + }, + "description": "Parameters supplied to create or Update a Nat Rule." + } + ], + "responses": { + "200": { + "description": "Request successful. Returns the details of the nat rule created or updated.", + "schema": { + "$ref": "#/definitions/VpnGatewayNatRule" + } + }, + "201": { + "description": "Request successful. Returns the details of the nat rule created or updated.", + "schema": { + "$ref": "#/definitions/VpnGatewayNatRule" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } + }, + "delete": { + "operationId": "NatRules_Delete", + "x-ms-examples": { + "NatRuleDelete": { + "$ref": "./examples/NatRuleDelete.json" + } + }, + "description": "Deletes a nat rule.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the VpnGateway." + }, + { + "name": "gatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "name": "natRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the nat rule." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. Nat Rule deleted." + }, + "202": { + "description": "Request received successfully. Nat Rule deletion is in progress; follow the Location header to poll for final outcome." + }, + "204": { + "description": "No nat rules exist by the name provided." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/natRules": { + "get": { + "operationId": "NatRules_ListByVpnGateway", + "x-ms-examples": { + "NatRuleList": { + "$ref": "./examples/NatRuleList.json" + } + }, + "description": "Retrieves all nat rules for a particular virtual wan vpn gateway.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the VpnGateway." + }, + { + "name": "gatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. Returns all Nat rules for a virtual wan vpn gateway.", + "schema": { + "$ref": "#/definitions/ListVpnGatewayNatRulesResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/p2svpnGateways/{gatewayName}": { "get": { "operationId": "P2sVpnGateways_Get", @@ -5741,6 +5975,13 @@ "isRoutingPreferenceInternet": { "type": "boolean", "description": "Enable Routing Preference property for the Public IP Interface of the VpnGateway." + }, + "natRules": { + "type": "array", + "description": "List of all the nat Rules associated with the gateway.", + "items": { + "$ref": "#/definitions/VpnGatewayNatRule" + } } }, "description": "Parameters for VpnGateway." @@ -5801,6 +6042,128 @@ } } }, + "VpnNatRuleMapping": { + "properties": { + "addressSpace": { + "type": "string", + "description": "Address space for Vpn NatRule mapping." + } + }, + "description": "Vpn NatRule mapping." + }, + "VpnGatewayNatRuleProperties": { + "properties": { + "provisioningState": { + "readOnly": true, + "$ref": "./network.json#/definitions/ProvisioningState", + "description": "The provisioning state of the NAT Rule resource." + }, + "type": { + "type": "string", + "description": "The type of NAT rule for VPN NAT.", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "VpnNatRuleType", + "modelAsString": true + } + }, + "mode": { + "type": "string", + "description": "The Source NAT direction of a VPN NAT.", + "enum": [ + "EgressSnat", + "IngressSnat" + ], + "x-ms-enum": { + "name": "VpnNatRuleMode", + "modelAsString": true + } + }, + "internalMappings": { + "type": "array", + "items": { + "$ref": "#/definitions/VpnNatRuleMapping" + }, + "description": "The private IP address internal mapping for NAT." + }, + "externalMappings": { + "type": "array", + "items": { + "$ref": "#/definitions/VpnNatRuleMapping" + }, + "description": "The private IP address external mapping for NAT." + }, + "ipConfigurationId": { + "type": "string", + "description": "The IP Configuration ID this NAT rule applies to." + }, + "egressVpnSiteLinkConnections": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "./network.json#/definitions/SubResource" + }, + "description": "List of egress VpnSiteLinkConnections" + }, + "ingressVpnSiteLinkConnections": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "./network.json#/definitions/SubResource" + }, + "description": "List of ingress VpnSiteLinkConnections." + } + }, + "description": "Parameters for VpnGatewayNatRule." + }, + "VpnGatewayNatRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VpnGatewayNatRuleProperties", + "description": "Properties of the VpnGateway NAT rule." + }, + "name": { + "type": "string", + "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource." + }, + "etag": { + "type": "string", + "readOnly": true, + "description": "A unique read-only string that changes whenever the resource is updated." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "Resource type." + } + }, + "allOf": [ + { + "$ref": "./network.json#/definitions/SubResource" + } + ], + "description": "VpnGatewayNatRule Resource." + }, + "ListVpnGatewayNatRulesResult": { + "description": "Result of the request to list all nat rules to a virtual wan vpn gateway. It contains a list of Nat rules and a URL nextLink to get the next set of results.", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VpnGatewayNatRule" + }, + "description": "List of Nat Rules." + }, + "nextLink": { + "type": "string", + "description": "URL to get the next set of operation list results if there are any." + } + } + }, "VpnConnectionProperties": { "properties": { "remoteVpnSite": { @@ -6062,6 +6425,20 @@ "readOnly": true, "$ref": "./network.json#/definitions/ProvisioningState", "description": "The provisioning state of the VPN site link connection resource." + }, + "ingressNatRules": { + "type": "array", + "items": { + "$ref": "./network.json#/definitions/SubResource" + }, + "description": "List of ingress NatRules" + }, + "egressNatRules": { + "type": "array", + "items": { + "$ref": "./network.json#/definitions/SubResource" + }, + "description": "List of egress NatRules." } }, "description": "Parameters for VpnConnection."