diff --git a/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.cs b/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.cs index 27cf1abff53c..72d1bff43b9f 100644 --- a/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.cs +++ b/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.cs @@ -96,5 +96,13 @@ public void TestAzureFirewallWithDNSProxy() { TestRunner.RunTestScript("Test-AzureFirewallWithDNSProxy"); } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [Trait(Category.Owner, NrpTeamAlias.azurefirewall)] + public void TestAzureFirewallVirtualHubMultiPublicIPCRUD() + { + TestRunner.RunTestScript("Test-AzureFirewallVirtualHubMultiPublicIPCRUD"); + } } } diff --git a/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.ps1 b/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.ps1 index c4a4fd0c2c6a..37d5bfa09586 100644 --- a/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.ps1 +++ b/src/Network/Network.Test/ScenarioTests/AzureFirewallTests.ps1 @@ -1469,4 +1469,50 @@ function Test-AzureFirewallWithDNSProxy { # Cleanup Clean-ResourceGroup $rgname } +} + +<# +.SYNOPSIS +Tests AzureFirewall with Multip IPs on Virtual Hub +#> +function Test-AzureFirewallVirtualHubMultiPublicIPCRUD { + # Setup + $rgname = Get-ResourceGroupName + $azureFirewallName = Get-ResourceName + $resourceTypeParent = "Microsoft.Network/AzureFirewalls" + $location = "eastus2euap" + $virtualWanName = Get-ResourceName + $virtualHubName = Get-ResourceName + $virtualHubAddressPrefix = "10.0.0.0/16" + $firewallPIPCount = "2" + $sku = "AZFW_Hub" + $tier = "Standard" + + try { + # Create the resource group + $resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "testval" } + + $fwpips = New-AzFirewallHubPublicIpAddress -Count $firewallPIPCount + $hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwpips + $fw= New-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname -Location $location -Sku AZFW_Hub -HubIPAddress $hubIpAddresses + + # Get AzureFirewall + $getAzureFirewall = Get-AzFirewall -name $azureFirewallName -ResourceGroupName $rgname + + #verification + Assert-AreEqual $rgName $getAzureFirewall.ResourceGroupName + Assert-AreEqual $azureFirewallName $getAzureFirewall.Name + Assert-NotNull $getAzureFirewall.Location + Assert-AreEqual (Normalize-Location $location) $getAzureFirewall.Location + Assert-NotNull $sku $getAzureFirewall.Sku + Assert-AreEqual $sku $getAzureFirewall.Sku.Name + Assert-AreEqual $tier $getAzureFirewall.Sku.Tier + Assert-NotNull $getAzureFirewall.HubIPAddresses + Assert-NotNull $getAzureFirewall.HubIPAddresses.PublicIPs + Assert-AreEqual $firewallPIPCount $getAzureFirewall.HubIPAddresses.PublicIPs.Count + } + finally { + # Cleanup + Clean-ResourceGroup $rgname + } } \ No newline at end of file diff --git a/src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.AzureFirewallTests/TestAzureFirewallVirtualHubMultiPublicIPCRUD.json b/src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.AzureFirewallTests/TestAzureFirewallVirtualHubMultiPublicIPCRUD.json new file mode 100644 index 000000000000..e808764f6631 --- /dev/null +++ b/src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.AzureFirewallTests/TestAzureFirewallVirtualHubMultiPublicIPCRUD.json @@ -0,0 +1,995 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourcegroups/ps5754?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Jlc291cmNlZ3JvdXBzL3BzNTc1ND9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "ae919183-97a0-40b0-b505-b4668f6ff6f0" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "33" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "abfb78d6-c76f-428c-a9f7-78e17c9023dd" + ], + "x-ms-correlation-request-id": [ + "abfb78d6-c76f-428c-a9f7-78e17c9023dd" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031208Z:abfb78d6-c76f-428c-a9f7-78e17c9023dd" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:07 GMT" + ], + "Content-Length": [ + "170" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754\",\r\n \"name\": \"ps5754\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819?api-version=2020-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Jlc291cmNlR3JvdXBzL3BzNTc1NC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvYXp1cmVGaXJld2FsbHMvcHMyODE5P2FwaS12ZXJzaW9uPTIwMjAtMDUtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f0087f05-c275-4195-9948-753a81ff9264" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/20.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "217a7863-e810-4902-8b94-f6846ed768f9" + ], + "x-ms-correlation-request-id": [ + "217a7863-e810-4902-8b94-f6846ed768f9" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031209Z:217a7863-e810-4902-8b94-f6846ed768f9" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:08 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "217" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/azureFirewalls/ps2819' under resource group 'ps5754' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819?api-version=2020-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Jlc291cmNlR3JvdXBzL3BzNTc1NC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvYXp1cmVGaXJld2FsbHMvcHMyODE5P2FwaS12ZXJzaW9uPTIwMjAtMDUtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/20.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"c4b2ee3f-8a89-4a60-820d-d22c1c52f86f\"" + ], + "x-ms-request-id": [ + "4c4771d1-3bd6-4e09-ac33-ecde7815258c" + ], + "x-ms-correlation-request-id": [ + "f6b911a9-250d-4202-ae32-75763ba49d3c" + ], + "x-ms-arm-service-request-id": [ + "54d659b1-42a6-4756-8b1e-0a0388635a8c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031223Z:f6b911a9-250d-4202-ae32-75763ba49d3c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:22 GMT" + ], + "Content-Length": [ + "607" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps2819\",\r\n \"id\": \"/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819\",\r\n \"etag\": \"W/\\\"c4b2ee3f-8a89-4a60-820d-d22c1c52f86f\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"additionalProperties\": {},\r\n \"hubIPAddresses\": {\r\n \"publicIPAddresses\": [],\r\n \"publicIPs\": {\r\n \"addresses\": [],\r\n \"count\": 2\r\n }\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819?api-version=2020-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Jlc291cmNlR3JvdXBzL3BzNTc1NC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvYXp1cmVGaXJld2FsbHMvcHMyODE5P2FwaS12ZXJzaW9uPTIwMjAtMDUtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "50cdfe62-ecfc-4ca3-8cdc-ca2e36fd3636" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/20.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"c4b2ee3f-8a89-4a60-820d-d22c1c52f86f\"" + ], + "x-ms-request-id": [ + "00778e8b-44e4-49b4-b59f-a1ef4f861882" + ], + "x-ms-correlation-request-id": [ + "1bc12fca-8d35-4293-b8d0-9eea44d434a5" + ], + "x-ms-arm-service-request-id": [ + "4617d3c0-9db7-4e40-b7e8-00e8d5c243fc" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031224Z:1bc12fca-8d35-4293-b8d0-9eea44d434a5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:23 GMT" + ], + "Content-Length": [ + "607" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps2819\",\r\n \"id\": \"/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819\",\r\n \"etag\": \"W/\\\"c4b2ee3f-8a89-4a60-820d-d22c1c52f86f\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"additionalProperties\": {},\r\n \"hubIPAddresses\": {\r\n \"publicIPAddresses\": [],\r\n \"publicIPs\": {\r\n \"addresses\": [],\r\n \"count\": 2\r\n }\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819?api-version=2020-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Jlc291cmNlR3JvdXBzL3BzNTc1NC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvYXp1cmVGaXJld2FsbHMvcHMyODE5P2FwaS12ZXJzaW9uPTIwMjAtMDUtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "44258424-1ab7-4113-adf8-1c6a17ea85da" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/20.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"c4b2ee3f-8a89-4a60-820d-d22c1c52f86f\"" + ], + "x-ms-request-id": [ + "a6dec892-ca7c-48b2-ad1f-d8f5849c672a" + ], + "x-ms-correlation-request-id": [ + "897e5cf3-c455-47e0-a074-dd535b5a3bd6" + ], + "x-ms-arm-service-request-id": [ + "78a73046-a4ab-40e5-86c9-3a182e008596" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031224Z:897e5cf3-c455-47e0-a074-dd535b5a3bd6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:23 GMT" + ], + "Content-Length": [ + "607" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps2819\",\r\n \"id\": \"/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819\",\r\n \"etag\": \"W/\\\"c4b2ee3f-8a89-4a60-820d-d22c1c52f86f\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"additionalProperties\": {},\r\n \"hubIPAddresses\": {\r\n \"publicIPAddresses\": [],\r\n \"publicIPs\": {\r\n \"addresses\": [],\r\n \"count\": 2\r\n }\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819?api-version=2020-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Jlc291cmNlR3JvdXBzL3BzNTc1NC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvYXp1cmVGaXJld2FsbHMvcHMyODE5P2FwaS12ZXJzaW9uPTIwMjAtMDUtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [],\r\n \"networkRuleCollections\": [],\r\n \"ipConfigurations\": [],\r\n \"hubIPAddresses\": {\r\n \"publicIPs\": {\r\n \"addresses\": [],\r\n \"count\": 2\r\n }\r\n },\r\n \"sku\": {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"additionalProperties\": {}\r\n },\r\n \"zones\": [],\r\n \"location\": \"eastus2euap\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "4320012f-915e-4d06-b542-9a4fe1a9e10e" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/20.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "425" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "10" + ], + "x-ms-request-id": [ + "ed7a8beb-97fa-4fa8-9e1f-97b52957871b" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/providers/Microsoft.Network/locations/eastus2euap/operations/ed7a8beb-97fa-4fa8-9e1f-97b52957871b?api-version=2020-05-01" + ], + "x-ms-correlation-request-id": [ + "f83b4173-31f9-46d2-ab2f-fe025e046420" + ], + "Azure-AsyncNotification": [ + "Enabled" + ], + "x-ms-arm-service-request-id": [ + "65ae1331-c2d9-4f17-bd47-69c73cad9bec" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031213Z:f83b4173-31f9-46d2-ab2f-fe025e046420" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:12 GMT" + ], + "Content-Length": [ + "606" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"ps2819\",\r\n \"id\": \"/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps5754/providers/Microsoft.Network/azureFirewalls/ps2819\",\r\n \"etag\": \"W/\\\"93a5162b-6177-4bf3-999f-d19e3f21b964\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"eastus2euap\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"additionalProperties\": {},\r\n \"hubIPAddresses\": {\r\n \"publicIPAddresses\": [],\r\n \"publicIPs\": {\r\n \"addresses\": [],\r\n \"count\": 2\r\n }\r\n }\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/providers/Microsoft.Network/locations/eastus2euap/operations/ed7a8beb-97fa-4fa8-9e1f-97b52957871b?api-version=2020-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvZWFzdHVzMmV1YXAvb3BlcmF0aW9ucy9lZDdhOGJlYi05N2ZhLTRmYTgtOWUxZi05N2I1Mjk1Nzg3MWI/YXBpLXZlcnNpb249MjAyMC0wNS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/20.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "eb4add57-95ff-4684-9a71-5e5ae1e129c4" + ], + "x-ms-correlation-request-id": [ + "4b9eba1f-4b5b-4ccf-aa46-12910aa3c062" + ], + "x-ms-arm-service-request-id": [ + "c5e14345-91f0-4eb5-b567-91a15742c68f" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031223Z:4b9eba1f-4b5b-4ccf-aa46-12910aa3c062" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:22 GMT" + ], + "Content-Length": [ + "29" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourcegroups/ps5754?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL3Jlc291cmNlZ3JvdXBzL3BzNTc1ND9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "dca3d78b-e751-4745-ba63-dcef405f54fb" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-request-id": [ + "ad7ee1c7-4cb7-4e6f-8ecd-13263a432ce4" + ], + "x-ms-correlation-request-id": [ + "ad7ee1c7-4cb7-4e6f-8ecd-13263a432ce4" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031225Z:ad7ee1c7-4cb7-4e6f-8ecd-13263a432ce4" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:24 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-request-id": [ + "74bd6f89-33db-4e11-a293-dc341a4eb027" + ], + "x-ms-correlation-request-id": [ + "74bd6f89-33db-4e11-a293-dc341a4eb027" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031240Z:74bd6f89-33db-4e11-a293-dc341a4eb027" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:40 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "ad00333d-f1ce-4f14-859a-67f92bc104d7" + ], + "x-ms-correlation-request-id": [ + "ad00333d-f1ce-4f14-859a-67f92bc104d7" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031256Z:ad00333d-f1ce-4f14-859a-67f92bc104d7" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:12:55 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "a35be0ec-02fe-46ec-b353-76b8cbe50b7c" + ], + "x-ms-correlation-request-id": [ + "a35be0ec-02fe-46ec-b353-76b8cbe50b7c" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031311Z:a35be0ec-02fe-46ec-b353-76b8cbe50b7c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:13:10 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "cb1f94e1-6b1b-41c7-b9ee-2db986915a5e" + ], + "x-ms-correlation-request-id": [ + "cb1f94e1-6b1b-41c7-b9ee-2db986915a5e" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031326Z:cb1f94e1-6b1b-41c7-b9ee-2db986915a5e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:13:25 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-request-id": [ + "ed80d2bf-88b9-447d-94f1-0a4f4edb5af2" + ], + "x-ms-correlation-request-id": [ + "ed80d2bf-88b9-447d-94f1-0a4f4edb5af2" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031341Z:ed80d2bf-88b9-447d-94f1-0a4f4edb5af2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:13:40 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01" + ], + "Retry-After": [ + "15" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-request-id": [ + "0afe6fce-7fb1-497c-81a0-c5b4f1b0d9f9" + ], + "x-ms-correlation-request-id": [ + "0afe6fce-7fb1-497c-81a0-c5b4f1b0d9f9" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031356Z:0afe6fce-7fb1-497c-81a0-c5b4f1b0d9f9" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:13:55 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-request-id": [ + "92b04eab-ec5f-4aee-82aa-f92b58829f0a" + ], + "x-ms-correlation-request-id": [ + "92b04eab-ec5f-4aee-82aa-f92b58829f0a" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031411Z:92b04eab-ec5f-4aee-82aa-f92b58829f0a" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:14:11 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU3NTQtRUFTVFVTMkVVQVAiLCJqb2JMb2NhdGlvbiI6ImVhc3R1czJldWFwIn0?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvYWViNWIwMmEtMGYxOC00NWE0LTg2ZDYtODE4MDgxMTVjYWNmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVM05UUXRSVUZUVkZWVE1rVlZRVkFpTENKcWIySk1iMk5oZEdsdmJpSTZJbVZoYzNSMWN6SmxkV0Z3SW4wP2FwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.13" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-request-id": [ + "76a2b4c7-b782-4600-82fc-726da6f0aa2d" + ], + "x-ms-correlation-request-id": [ + "76a2b4c7-b782-4600-82fc-726da6f0aa2d" + ], + "x-ms-routing-request-id": [ + "WESTUS:20200610T031411Z:76a2b4c7-b782-4600-82fc-726da6f0aa2d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Wed, 10 Jun 2020 03:14:11 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 200 + } + ], + "Names": { + "Test-AzureFirewallVirtualHubMultiPublicIPCRUD": [ + "ps5754", + "ps2819", + "ps1137", + "ps8482" + ] + }, + "Variables": { + "SubscriptionId": "aeb5b02a-0f18-45a4-86d6-81808115cacf" + } +} \ No newline at end of file diff --git a/src/Network/Network/Az.Network.psd1 b/src/Network/Network/Az.Network.psd1 index 509d166c8843..2a2cfd3275a1 100644 --- a/src/Network/Network/Az.Network.psd1 +++ b/src/Network/Network/Az.Network.psd1 @@ -414,6 +414,8 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate', 'New-AzFirewallApplicationRule', 'New-AzFirewallNatRuleCollection', 'New-AzFirewallNatRule', 'New-AzFirewallNetworkRuleCollection', 'New-AzFirewallNetworkRule', 'New-AzFirewallThreatIntelWhitelist', + 'New-AzFirewallHubPublicIpAddress','New-AzFirewallHubIpAddress', + 'New-AzFirewallPublicIpAddress', 'Get-AzFirewallFqdnTag', 'Get-AzNetworkProfile', 'New-AzNetworkProfile', 'Remove-AzNetworkProfile', 'Set-AzNetworkProfile', 'New-AzContainerNicConfig', diff --git a/src/Network/Network/AzureFirewall/NewAzureFirewallCommand.cs b/src/Network/Network/AzureFirewall/NewAzureFirewallCommand.cs index 646e792bacdc..f80a91c31be4 100644 --- a/src/Network/Network/AzureFirewall/NewAzureFirewallCommand.cs +++ b/src/Network/Network/AzureFirewall/NewAzureFirewallCommand.cs @@ -209,6 +209,11 @@ public class NewAzureFirewallCommand : AzureFirewallBaseCmdlet HelpMessage = "The virtual hub that a firewall is attached to")] public string VirtualHubId { get; set; } + [Parameter( + Mandatory = false, + HelpMessage = "The ip addresses for the firewall attached to a virtual hub")] + public PSAzureFirewallHubIpAddresses HubIPAddress { get; set; } + [Parameter( Mandatory = false, ValueFromPipelineByPropertyName = true, @@ -265,6 +270,11 @@ private PSAzureFirewall CreateAzureFirewall() } + if(this.HubIPAddress != null && this.HubIPAddress.PublicIPs != null && this.HubIPAddress.PublicIPs.Addresses != null) + { + throw new ArgumentException("The list of public Ip addresses cannot be provided during the firewall creation"); + } + var sku = new PSAzureFirewallSku(); sku.Name = MNM.AzureFirewallSkuName.AZFWHub; sku.Tier = MNM.AzureFirewallSkuTier.Standard; @@ -276,7 +286,8 @@ private PSAzureFirewall CreateAzureFirewall() Location = this.Location, Sku = sku, VirtualHub = VirtualHubId != null ? new MNM.SubResource(VirtualHubId) : null, - FirewallPolicy = FirewallPolicyId != null ? new MNM.SubResource(FirewallPolicyId) : null + FirewallPolicy = FirewallPolicyId != null ? new MNM.SubResource(FirewallPolicyId) : null, + HubIPAddresses = this.HubIPAddress }; } else diff --git a/src/Network/Network/AzureFirewall/NewAzureFirewallPublicIpAddress.cs b/src/Network/Network/AzureFirewall/NewAzureFirewallPublicIpAddress.cs new file mode 100644 index 000000000000..94bd7d62e41b --- /dev/null +++ b/src/Network/Network/AzureFirewall/NewAzureFirewallPublicIpAddress.cs @@ -0,0 +1,41 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.Linq; +using System.Management.Automation; +using Microsoft.Azure.Commands.Network.Models; + +namespace Microsoft.Azure.Commands.Network +{ + [Cmdlet(VerbsCommon.New, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "FirewallPublicIpAddress"), OutputType(typeof(PSAzureFirewallPublicIpAddress))] + public class NewAzureFirewallPublicIpAddress : AzureFirewallBaseCmdlet + { + [Parameter( + Mandatory = false, + HelpMessage = "The IP Addresses of the Firewall attached to a hub")] + [ValidateNotNull] + public string Address { get; set; } + + public override void Execute() + { + base.Execute(); + + var firewallPublicIpAddress = new PSAzureFirewallPublicIpAddress + { + Address = this.Address, + }; + WriteObject(firewallPublicIpAddress); + } + } +} diff --git a/src/Network/Network/AzureFirewall/VirtualHub/NewAzureFirewallHubIpAddress.cs b/src/Network/Network/AzureFirewall/VirtualHub/NewAzureFirewallHubIpAddress.cs new file mode 100644 index 000000000000..2af4bb85ca58 --- /dev/null +++ b/src/Network/Network/AzureFirewall/VirtualHub/NewAzureFirewallHubIpAddress.cs @@ -0,0 +1,47 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.Linq; +using System.Management.Automation; +using Microsoft.Azure.Commands.Network.Models; + +namespace Microsoft.Azure.Commands.Network +{ + [Cmdlet(VerbsCommon.New, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "FirewallHubIpAddress"), OutputType(typeof(PSAzureFirewallHubIpAddresses))] + public class NewAzureFirewallHubIpAddress : AzureFirewallBaseCmdlet + { + [Parameter( + Mandatory = false, + HelpMessage = "The private Ip Address of the Firewall attached to a Hub")] + [ValidateNotNull] + public string PrivateIPAddress { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "The IP Addresses of the Firewall attached to a hub")] + [ValidateNotNull] + public PSAzureFirewallHubPublicIpAddresses PublicIP { get; set; } + + public override void Execute() + { + base.Execute(); + + var hubPublicIpAddress = new PSAzureFirewallHubIpAddresses + { + PublicIPs = this.PublicIP + }; + WriteObject(hubPublicIpAddress); + } + } +} diff --git a/src/Network/Network/AzureFirewall/VirtualHub/NewAzureFirewallHubPublicIpAddress.cs b/src/Network/Network/AzureFirewall/VirtualHub/NewAzureFirewallHubPublicIpAddress.cs new file mode 100644 index 000000000000..320550e3c96b --- /dev/null +++ b/src/Network/Network/AzureFirewall/VirtualHub/NewAzureFirewallHubPublicIpAddress.cs @@ -0,0 +1,48 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.Linq; +using System.Management.Automation; +using Microsoft.Azure.Commands.Network.Models; + +namespace Microsoft.Azure.Commands.Network +{ + [Cmdlet(VerbsCommon.New, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "FirewallHubPublicIpAddress"), OutputType(typeof(PSAzureFirewallHubPublicIpAddresses))] + public class NewAzureFirewallHubPublicIpAddress : AzureFirewallBaseCmdlet + { + [Parameter( + Mandatory = false, + HelpMessage = "The count of public Ip addresses")] + [ValidateNotNull] + public int Count { get; set; } + + [Parameter( + Mandatory = false, + HelpMessage = "The Public IP Addresses of the Firewall attached to a hub")] + [ValidateNotNull] + public PSAzureFirewallPublicIpAddress[] Address { get; set; } + + public override void Execute() + { + base.Execute(); + + var hubPublicIpAddress = new PSAzureFirewallHubPublicIpAddresses + { + Count = this.Count, + Addresses = this.Address + }; + WriteObject(hubPublicIpAddress); + } + } +} diff --git a/src/Network/Network/Common/NetworkResourceManagerProfile.cs b/src/Network/Network/Common/NetworkResourceManagerProfile.cs index 2981dff8890e..e737795bc1b5 100644 --- a/src/Network/Network/Common/NetworkResourceManagerProfile.cs +++ b/src/Network/Network/Common/NetworkResourceManagerProfile.cs @@ -1226,6 +1226,7 @@ private static void Initialize() cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap(); + cfg.CreateMap(); // MNM to CNM cfg.CreateMap().AfterMap((src, dest) => @@ -1278,6 +1279,7 @@ private static void Initialize() cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap(); + cfg.CreateMap(); // Azure Firewall FQDN Tags // CNM to MNM diff --git a/src/Network/Network/Models/AzureFirewall/PSAzureFirewall.cs b/src/Network/Network/Models/AzureFirewall/PSAzureFirewall.cs index 3864f4d230d1..6095da359807 100644 --- a/src/Network/Network/Models/AzureFirewall/PSAzureFirewall.cs +++ b/src/Network/Network/Models/AzureFirewall/PSAzureFirewall.cs @@ -53,6 +53,8 @@ public class PSAzureFirewall : PSTopLevelResource public PSAzureFirewallThreatIntelWhitelist ThreatIntelWhitelist { get; set; } + public PSAzureFirewallHubIpAddresses HubIPAddresses { get; set; } + public string[] PrivateRange { get { @@ -112,6 +114,7 @@ public string ThreatIntelWhitelistText get { return JsonConvert.SerializeObject(ThreatIntelWhitelist, Formatting.Indented); } } + [JsonIgnore] public string PrivateRangeText { diff --git a/src/Network/Network/Models/AzureFirewall/PSAzureFirewallHubIpAddresses.cs b/src/Network/Network/Models/AzureFirewall/PSAzureFirewallHubIpAddresses.cs new file mode 100644 index 000000000000..d36e4ce712e9 --- /dev/null +++ b/src/Network/Network/Models/AzureFirewall/PSAzureFirewallHubIpAddresses.cs @@ -0,0 +1,24 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +namespace Microsoft.Azure.Commands.Network.Models +{ + public class PSAzureFirewallHubIpAddresses + { + public PSAzureFirewallPublicIpAddress[] publicIPAddresses { get; set; } + + public PSAzureFirewallHubPublicIpAddresses PublicIPs { get; set; } + } +} diff --git a/src/Network/Network/Models/AzureFirewall/PSAzureFirewallHubPublicIpAddresses.cs b/src/Network/Network/Models/AzureFirewall/PSAzureFirewallHubPublicIpAddresses.cs new file mode 100644 index 000000000000..d4ead8ef5645 --- /dev/null +++ b/src/Network/Network/Models/AzureFirewall/PSAzureFirewallHubPublicIpAddresses.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Microsoft.Azure.Commands.Network.Models +{ + public class PSAzureFirewallHubPublicIpAddresses + { + public int Count { get; set; } + + public PSAzureFirewallPublicIpAddress[] Addresses { get; set; } + } +} diff --git a/src/Network/Network/Models/AzureFirewall/PSAzureFirewallPublicIpAddress.cs b/src/Network/Network/Models/AzureFirewall/PSAzureFirewallPublicIpAddress.cs new file mode 100644 index 000000000000..b8c457443b40 --- /dev/null +++ b/src/Network/Network/Models/AzureFirewall/PSAzureFirewallPublicIpAddress.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Microsoft.Azure.Commands.Network.Models +{ + public class PSAzureFirewallPublicIpAddress + { + public string Address { get; set; } + } +} diff --git a/src/Network/Network/Network.format.ps1xml b/src/Network/Network/Network.format.ps1xml index 3ed6e7af06ef..7a560beec103 100644 --- a/src/Network/Network/Network.format.ps1xml +++ b/src/Network/Network/Network.format.ps1xml @@ -3766,6 +3766,10 @@ VirtualHub + + + HubIPAddresses + FirewallPolicy diff --git a/src/Network/Network/help/Az.Network.md b/src/Network/Network/help/Az.Network.md index 5cf910efe2da..911408b292b6 100644 --- a/src/Network/Network/help/Az.Network.md +++ b/src/Network/Network/help/Az.Network.md @@ -770,6 +770,12 @@ Creates a Firewall Application Rule. ### [New-AzFirewallApplicationRuleCollection](New-AzFirewallApplicationRuleCollection.md) Creates a collection of Firewall application rules. +### [New-AzFirewallHubIpAddress](New-AzFirewallHubIpAddress.md) +Ip addresses assoicated to the firewall on virtual hub + +### [New-AzFirewallHubPublicIpAddress](New-AzFirewallHubPublicIpAddress.md) +Public Ip assoicated to the firewall on virtual hub + ### [New-AzFirewallNatRule](New-AzFirewallNatRule.md) Creates a Firewall NAT Rule. @@ -803,6 +809,9 @@ Create a new Azure Firewall Policy NAT Rule ### [New-AzFirewallPolicyRuleCollectionGroup](New-AzFirewallPolicyRuleCollectionGroup.md) Create a new Azure Firewall Policy Rule Collection Group +### [New-AzFirewallPublicIpAddress](New-AzFirewallPublicIpAddress.md) +This is the placeholder for the Ip Address that can be used for multi pip on azure firewall. + ### [New-AzFirewallPolicyThreatIntelWhitelist](New-AzFirewallPolicyThreatIntelWhitelist.md) Create a new threat intelligence whitelist for Azure Firewall Policy diff --git a/src/Network/Network/help/Get-AzFirewall.md b/src/Network/Network/help/Get-AzFirewall.md index bbc08fbd955a..2d4bf2ffa9c6 100644 --- a/src/Network/Network/help/Get-AzFirewall.md +++ b/src/Network/Network/help/Get-AzFirewall.md @@ -277,7 +277,7 @@ This example retrieves a firewall and calls Allocate on the firewall to start th The credentials, account, tenant, and subscription used for communication with azure. ```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Type: IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential @@ -292,7 +292,7 @@ Accept wildcard characters: False Specifies the name of the Firewall that this cmdlet gets. ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: ResourceName @@ -300,14 +300,14 @@ Required: False Position: Named Default value: None Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: True +Accept wildcard characters: False ``` ### -ResourceGroupName Specifies the name of the resource group that Firewall belongs to. ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: @@ -315,11 +315,11 @@ Required: False Position: Named Default value: None Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: True +Accept wildcard characters: False ``` ### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/src/Network/Network/help/New-AzFirewall.md b/src/Network/Network/help/New-AzFirewall.md index 304bf8d447fc..fd92626f4d59 100644 --- a/src/Network/Network/help/New-AzFirewall.md +++ b/src/Network/Network/help/New-AzFirewall.md @@ -19,9 +19,9 @@ New-AzFirewall -Name -ResourceGroupName -Location [-ApplicationRuleCollection ] [-NatRuleCollection ] [-NetworkRuleCollection ] [-ThreatIntelMode ] - [-ThreatIntelWhitelist ] [-PrivateRange ] - [-EnableDnsProxy] [-DNSRequireProxyForNetworkRules ] [-DnsServer ] - [-Tag ] [-Force] [-AsJob] [-Zone ] [-Sku ] [-VirtualHubId ] + [-ThreatIntelWhitelist ] [-PrivateRange ] [-EnableDnsProxy] + [-DnsProxyNotRequiredForNetworkRule] [-DnsServer ] [-Tag ] [-Force] [-AsJob] + [-Zone ] [-Sku ] [-VirtualHubId ] [-HubIPAddresses ] [-FirewallPolicyId ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -32,9 +32,9 @@ New-AzFirewall -Name -ResourceGroupName -Location -Vi -PublicIpName [-ApplicationRuleCollection ] [-NatRuleCollection ] [-NetworkRuleCollection ] [-ThreatIntelMode ] - [-ThreatIntelWhitelist ] [-PrivateRange ] - [-EnableDnsProxy] [-DNSRequireProxyForNetworkRules ] [-DnsServer ] - [-Tag ] [-Force] [-AsJob] [-Zone ] [-Sku ] [-VirtualHubId ] + [-ThreatIntelWhitelist ] [-PrivateRange ] [-EnableDnsProxy] + [-DnsProxyNotRequiredForNetworkRule] [-DnsServer ] [-Tag ] [-Force] [-AsJob] + [-Zone ] [-Sku ] [-VirtualHubId ] [-HubIPAddresses ] [-FirewallPolicyId ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -46,9 +46,9 @@ New-AzFirewall -Name -ResourceGroupName -Location -Vi [-ApplicationRuleCollection ] [-NatRuleCollection ] [-NetworkRuleCollection ] [-ThreatIntelMode ] - [-ThreatIntelWhitelist ] [-PrivateRange ] - [-EnableDnsProxy] [-DNSRequireProxyForNetworkRules ] [-DnsServer ] - [-Tag ] [-Force] [-AsJob] [-Zone ] [-Sku ] [-VirtualHubId ] + [-ThreatIntelWhitelist ] [-PrivateRange ] [-EnableDnsProxy] + [-DnsProxyNotRequiredForNetworkRule] [-DnsServer ] [-Tag ] [-Force] [-AsJob] + [-Zone ] [-Sku ] [-VirtualHubId ] [-HubIPAddresses ] [-FirewallPolicyId ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -229,13 +229,26 @@ This example creates a Firewall attached to virtual network "vnet" in the same r DNS Proxy is enabled for this firewall and 2 DNS Servers are provided. Also Require DNS Proxy for Network rules is set so if there are any Network rules with FQDNs then DNS proxy will be used for them too. +### 14: Create a Firewall with multiple IPs. The Firewall can be associated with the Virtual Hub +``` +$rgName = "resourceGroupName" +$vHub = Get-AzVirtualHub -Name "hub" +$vHubId = $vHub.Id +$fwpips = New-AzFirewallHubPublicIpAddress -Count 2 +$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIPs $fwpips +$fw=New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location westus -Sku AZFW_Hub -HubIPAddresses $hubIpAddresses -VirtualHubId $vHubId +``` + +This example creates a Firewall attached to virtual hub "hub" in the same resource group as the firewall. +The Firewall will be assigned 2 public IPs that are created implicitly. + ## PARAMETERS ### -ApplicationRuleCollection Specifies the collections of application rules for the new Firewall. ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSAzureFirewallApplicationRuleCollection[] +Type: PSAzureFirewallApplicationRuleCollection[] Parameter Sets: (All) Aliases: @@ -250,7 +263,7 @@ Accept wildcard characters: False Run cmdlet in the background ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter Parameter Sets: (All) Aliases: @@ -265,7 +278,7 @@ Accept wildcard characters: False The credentials, account, tenant, and subscription used for communication with azure. ```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Type: IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential @@ -276,10 +289,11 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -EnableDnsProxy -Enable DNS Proxy. By default it is disabled. +### -DnsProxyNotRequiredForNetworkRule +Requires DNS Proxy functionality for FQDNs within Network Rules. + ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter Parameter Sets: (All) Aliases: @@ -290,11 +304,11 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -DnsProxyNotRequiredForNetworkRule -Requires DNS Proxy functionality for FQDNs within Network Rules. +### -DnsServer +The list of DNS Servers to be used for DNS resolution, ```yaml -Type: System.Management.Automation.SwitchParameter +Type: String[] Parameter Sets: (All) Aliases: @@ -305,11 +319,12 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -DnsServer -The list of DNS Servers to be used for DNS resolution, +### -EnableDnsProxy +Enable DNS Proxy. By default it is disabled. + ```yaml -Type: System.String[] +Type: SwitchParameter Parameter Sets: (All) Aliases: @@ -324,7 +339,7 @@ Accept wildcard characters: False The firewall policy attached to the firewall ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: @@ -339,7 +354,22 @@ Accept wildcard characters: False Forces the command to run without asking for user confirmation. ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HubIPAddresses +The ip addresses for the firewall attached to a virtual hub + +```yaml +Type: PSAzureFirewallHubIpAddresses Parameter Sets: (All) Aliases: @@ -354,7 +384,7 @@ Accept wildcard characters: False Specifies the region for the Firewall. ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: @@ -369,7 +399,7 @@ Accept wildcard characters: False One or more Public IP Addresses to use for management traffic. The Public IP addresses must use Standard SKU and must belong to the same resource group as the Firewall. ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSPublicIpAddress +Type: PSPublicIpAddress Parameter Sets: IpConfigurationParameterValues Aliases: @@ -384,7 +414,7 @@ Accept wildcard characters: False Specifies the name of the Azure Firewall that this cmdlet creates. ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: ResourceName @@ -399,7 +429,7 @@ Accept wildcard characters: False The list of AzureFirewallNatRuleCollections ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSAzureFirewallNatRuleCollection[] +Type: PSAzureFirewallNatRuleCollection[] Parameter Sets: (All) Aliases: @@ -414,7 +444,7 @@ Accept wildcard characters: False The list of AzureFirewallNetworkRuleCollections ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSAzureFirewallNetworkRuleCollection[] +Type: PSAzureFirewallNetworkRuleCollection[] Parameter Sets: (All) Aliases: @@ -429,7 +459,7 @@ Accept wildcard characters: False The private IP ranges to which traffic won't be SNAT'ed ```yaml -Type: System.String[] +Type: String[] Parameter Sets: (All) Aliases: @@ -444,7 +474,7 @@ Accept wildcard characters: False One or more Public IP Addresses. The Public IP addresses must use Standard SKU and must belong to the same resource group as the Firewall. ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSPublicIpAddress[] +Type: PSPublicIpAddress[] Parameter Sets: IpConfigurationParameterValues Aliases: @@ -459,7 +489,7 @@ Accept wildcard characters: False Public Ip Name. The Public IP must use Standard SKU and must belong to the same resource group as the Firewall. ```yaml -Type: System.String +Type: String Parameter Sets: OldIpConfigurationParameterValues Aliases: @@ -474,7 +504,7 @@ Accept wildcard characters: False Specifies the name of a resource group to contain the Firewall. ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: @@ -489,7 +519,7 @@ Accept wildcard characters: False The sku type for firewall ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: Accepted values: AZFW_Hub, AZFW_VNet @@ -507,7 +537,7 @@ Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} ```yaml -Type: System.Collections.Hashtable +Type: Hashtable Parameter Sets: (All) Aliases: @@ -522,7 +552,7 @@ Accept wildcard characters: False Specifies the operation mode for Threat Intelligence. Default mode is Alert, not Off. ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: Accepted values: Alert, Deny, Off @@ -538,7 +568,7 @@ Accept wildcard characters: False The whitelist for Threat Intelligence ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSAzureFirewallThreatIntelWhitelist +Type: PSAzureFirewallThreatIntelWhitelist Parameter Sets: (All) Aliases: @@ -553,7 +583,7 @@ Accept wildcard characters: False The virtual hub that a firewall is attached to ```yaml -Type: System.String +Type: String Parameter Sets: (All) Aliases: @@ -568,7 +598,7 @@ Accept wildcard characters: False Virtual Network ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSVirtualNetwork +Type: PSVirtualNetwork Parameter Sets: IpConfigurationParameterValues Aliases: @@ -583,7 +613,7 @@ Accept wildcard characters: False Specifies the name of the virtual network for which the Firewall will be deployed. Virtual network and Firewall must belong to the same resource group. ```yaml -Type: System.String +Type: String Parameter Sets: OldIpConfigurationParameterValues Aliases: @@ -598,7 +628,7 @@ Accept wildcard characters: False A list of availability zones denoting where the firewall needs to come from. ```yaml -Type: System.String[] +Type: String[] Parameter Sets: (All) Aliases: @@ -613,7 +643,7 @@ Accept wildcard characters: False Prompts you for confirmation before running the cmdlet. ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter Parameter Sets: (All) Aliases: cf @@ -629,7 +659,7 @@ Shows what would happen if the cmdlet runs. The cmdlet is not run. ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter Parameter Sets: (All) Aliases: wi diff --git a/src/Network/Network/help/New-AzFirewallHubIpAddress.md b/src/Network/Network/help/New-AzFirewallHubIpAddress.md new file mode 100644 index 000000000000..c6bb157da777 --- /dev/null +++ b/src/Network/Network/help/New-AzFirewallHubIpAddress.md @@ -0,0 +1,123 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Network.dll-Help.xml +Module Name: Az.Network +online version: https://docs.microsoft.com/en-us/powershell/module/az.network/new-azfirewallhubipaddress +schema: 2.0.0 +--- + +# New-AzFirewallHubIpAddress + +## SYNOPSIS +Ip addresses assoicated to the firewall on virtual hub + +## SYNTAX + +``` +New-AzFirewallHubIpAddress [-PrivateIPAddress ] [-PublicIPs ] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +Ip addresses assoicated to the firewall on virtual hub. These can be public and private addresses + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> $fwpips = New-AzFirewallHubPublicIpAddress -Count 2 +PS C:\> New-AzFirewallHubIpAddress -PublicIPs $fwpips +``` + +This example creates a Hub Ip address object with a count of 2 public IPs. The HubIPAddress object is ssociated to the firewall on the virtual hub. + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrivateIPAddress +The private Ip Address of the Firewall attached to a Hub + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicIPs +The IP Addresses of the Firewall attached to a hub + +```yaml +Type: PSAzureFirewallHubPublicIpAddresses +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +## OUTPUTS + +### Microsoft.Azure.Commands.Network.Models.PSAzureFirewallHubIpAddresses + +## NOTES + +## RELATED LINKS diff --git a/src/Network/Network/help/New-AzFirewallHubPublicIpAddress.md b/src/Network/Network/help/New-AzFirewallHubPublicIpAddress.md new file mode 100644 index 000000000000..76fec7f05443 --- /dev/null +++ b/src/Network/Network/help/New-AzFirewallHubPublicIpAddress.md @@ -0,0 +1,101 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Network.dll-Help.xml +Module Name: Az.Network +online version: https://docs.microsoft.com/en-us/powershell/module/az.network/new-azfirewallhubpublicipaddress +schema: 2.0.0 +--- + +# New-AzFirewallHubPublicIpAddress + +## SYNOPSIS +Public Ip assoicated to the firewall on virtual hub + +## SYNTAX + +``` +New-AzFirewallHubPublicIpAddress [-Count ] [-Addresses ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Public Ip assoicated to the firewall on virtual hub + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> New-AzFirewallHubPublicIpAddress -Count 2 +``` + +This will create 2 public ips on the firewall attached to the virtual hub. This will create the ip address in the backend.We cannot provide the ipaddresses explicitly for a new firewall. + +### Example 2 +```powershell +PS C:\> $publicIp1 = New-AzFirewallPublicIpAddress -Address 10.2.3.4 +PS C:\> $publicIp2 = New-AzFirewallPublicIpAddress -Address 20.56.37.46 +PS C:\> New-AzFirewallHubPublicIpAddress -Count 3 -Addresses $publicIp1, $publicIp2 +``` + +This will create 1 new public ip on the firewall by retain $publicIp1, $publicIp2 which are already exist on the firewall. + +## PARAMETERS + +### -Addresses +The Public IP Addresses of the Firewall attached to a hub + +```yaml +Type: PSAzureFirewallPublicIpAddress[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Count +The count of public Ip addresses + +```yaml +Type: Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +## OUTPUTS + +### Microsoft.Azure.Commands.Network.Models.PSAzureFirewallHubPublicIpAddresses + +## NOTES + +## RELATED LINKS diff --git a/src/Network/Network/help/New-AzFirewallPublicIpAddress.md b/src/Network/Network/help/New-AzFirewallPublicIpAddress.md new file mode 100644 index 000000000000..37eef24d9b04 --- /dev/null +++ b/src/Network/Network/help/New-AzFirewallPublicIpAddress.md @@ -0,0 +1,107 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Network.dll-Help.xml +Module Name: Az.Network +online version: https://docs.microsoft.com/en-us/powershell/module/az.network/new-azfirewallpublicipaddress +schema: 2.0.0 +--- + +# New-AzFirewallPublicIpAddress + +## SYNOPSIS +This is the placeholder for the Ip Address that can be used for multi pip on azure firewall. + +## SYNTAX + +``` +New-AzFirewallPublicIpAddress [-Address ] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +## DESCRIPTION +This is the placeholder for the Ip Address that can be used for multi pip on azure firewall. + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> $publicIp = New-AzFirewallPublicIpAddress -Address 20.2.3.4 +``` + +$publicIp will be the placeholder for the ip address 20.2.3.4 + +## PARAMETERS + +### -Address +The IP Addresses of the Firewall attached to a hub + +```yaml +Type: String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### None + +## OUTPUTS + +### Microsoft.Azure.Commands.Network.Models.PSAzureFirewallPublicIpAddress + +## NOTES + +## RELATED LINKS diff --git a/src/Network/Network/help/Set-AzFirewall.md b/src/Network/Network/help/Set-AzFirewall.md index ccba81613e66..5b5de908e55e 100644 --- a/src/Network/Network/help/Set-AzFirewall.md +++ b/src/Network/Network/help/Set-AzFirewall.md @@ -73,6 +73,7 @@ $pip = Get-AzPublicIpAddress - ResourceGroupName rgName -Name publicIpName $firewall.Allocate($vnet, $pip) $firewall | Set-AzFirewall ``` + This example retrieves a Firewall, deallocates the firewall, and saves it. The Deallocate command removes the running service but preserves the firewall's configuration. For changes to be reflected in cloud, Set-AzFirewall must be called. If user wants to start the service again, the Allocate method should be called on the firewall. @@ -87,6 +88,7 @@ $mgmtPip = Get-AzPublicIpAddress - ResourceGroupName rgName -Name MgmtPublicIpNa $firewall.Allocate($vnet, $pip, $mgmtPip) $firewall | Set-AzFirewall ``` + This example allocates the firewall with a management public IP address and subnet for forced tunneling scenarios. The VNet must contain a subnet called "AzureFirewallManagementSubnet". ### 6: Add a Public IP address to an Azure Firewall @@ -122,14 +124,13 @@ $azFw | Set-AzFirewall In this example, the management public IP address of the firewall will be changed to "AzFwMgmtPublicIp2" - ## PARAMETERS ### -AsJob Run cmdlet in the background ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter Parameter Sets: (All) Aliases: @@ -144,7 +145,7 @@ Accept wildcard characters: False The AzureFirewall ```yaml -Type: Microsoft.Azure.Commands.Network.Models.PSAzureFirewall +Type: PSAzureFirewall Parameter Sets: (All) Aliases: @@ -159,7 +160,7 @@ Accept wildcard characters: False The credentials, account, tenant, and subscription used for communication with azure. ```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Type: IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential @@ -174,7 +175,7 @@ Accept wildcard characters: False Prompts you for confirmation before running the cmdlet. ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter Parameter Sets: (All) Aliases: cf @@ -189,7 +190,7 @@ Accept wildcard characters: False Shows what would happen if the cmdlet runs. The cmdlet is not run. ```yaml -Type: System.Management.Automation.SwitchParameter +Type: SwitchParameter Parameter Sets: (All) Aliases: wi @@ -201,7 +202,7 @@ Accept wildcard characters: False ``` ### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/tools/StaticAnalysis/Exceptions/Az.Network/SignatureIssues.csv b/tools/StaticAnalysis/Exceptions/Az.Network/SignatureIssues.csv index 778df2e8e04d..67db0a809b7a 100644 --- a/tools/StaticAnalysis/Exceptions/Az.Network/SignatureIssues.csv +++ b/tools/StaticAnalysis/Exceptions/Az.Network/SignatureIssues.csv @@ -311,6 +311,9 @@ "Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.AddAzureRmVirtualHubRouteCommand","Add-AzVirtualHubRoute","1","8100","Add-AzVirtualHubRoute Does not support ShouldProcess but the cmdlet verb Add indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" "Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.AddAzureRmVirtualHubRouteTableCommand","Add-AzVirtualHubRouteTable","1","8100","Add-AzVirtualHubRouteTable Does not support ShouldProcess but the cmdlet verb Add indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" "Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.NewAzureFirewallThreatIntelWhitelistCommand","New-AzFirewallThreatIntelWhitelist","1","8100","New-AzFirewallThreatIntelWhitelist Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" +"Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.NewAzureFirewallHubPublicIpAddress","New-AzFirewallHubPublicIpAddress","1","8100","New-AzFirewallHubPublicIpAddress Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" +"Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.NewAzureFirewallHubIpAddress","New-AzFirewallHubIpAddress","1","8100","New-AzFirewallHubIpAddress Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" +"Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.NewAzureFirewallPublicIpAddress","New-AzFirewallPublicIpAddress","1","8100","New-AzFirewallPublicIpAddress Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" "Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayFirewallPolicyExclusionCommand","New-AzApplicationGatewayFirewallPolicyExclusion","1","8100","New-AzApplicationGatewayFirewallPolicyExclusion Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" "Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayFirewallPolicyManagedRuleOverrideCommand","New-AzApplicationGatewayFirewallPolicyManagedRuleOverride","1","8100","New-AzApplicationGatewayFirewallPolicyManagedRuleOverride Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue" "Microsoft.Azure.PowerShell.Cmdlets.Network.dll","Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayFirewallPolicyManagedRuleGroupOverrideCommand","New-AzApplicationGatewayFirewallPolicyManagedRuleGroupOverride","1","8100","New-AzApplicationGatewayFirewallPolicyManagedRuleGroupOverride Does not support ShouldProcess but the cmdlet verb New indicates that it should.","Determine if the cmdlet should implement ShouldProcess and if so determine if it should implement Force / ShouldContinue"