diff --git a/src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.cs b/src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.cs new file mode 100644 index 000000000000..5d5c3cf362ad --- /dev/null +++ b/src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.cs @@ -0,0 +1,56 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Synapse.Test.ScenarioTests +{ + using Microsoft.WindowsAzure.Commands.ScenarioTest; + using ServiceManagement.Common.Models; + using Xunit; + + public class FirewallTests : SynapseTestBase + { + public XunitTracingInterceptor _logger; + + public FirewallTests(Xunit.Abstractions.ITestOutputHelper output) + { + _logger = new XunitTracingInterceptor(output); + XunitTracingInterceptor.AddToContext(_logger); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void TestSynapseFirewall() + { + string testResourceGroupName = SynapseTestBase.TestResourceGroupName; + if (string.IsNullOrEmpty(testResourceGroupName)) + { + testResourceGroupName = nameof(TestResourceGroupName); + } + + string testWorkspaceName = SynapseTestBase.TestWorkspaceName; + if (string.IsNullOrEmpty(testWorkspaceName)) + { + testWorkspaceName = nameof(TestWorkspaceName); + } + + SynapseTestBase.NewInstance.RunPsTest( + _logger, + string.Format( + "Test-SynapseFirewall -resourceGroupName '{0}' -workspaceName '{1}'", + "testResourceGroupName", + "testWorkspaceName" + )); + } + } +} diff --git a/src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.ps1 b/src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.ps1 new file mode 100644 index 000000000000..5f9aa00445b5 --- /dev/null +++ b/src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.ps1 @@ -0,0 +1,56 @@ +<# +.SYNOPSIS +Tests Synapse Firewall Lifecycle (Create, Update, Get, List, Delete). +#> +function Test-SynapseFirewall +{ + param + ( + $resourceGroupName = (Get-ResourceGroupName), + $workspaceName = (Get-SynapseWorkspaceName) + ) + + try + { + $resourceGroupName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("resourceGroupName", $resourceGroupName) + $workspaceName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("workspaceName", $workspaceName) + $workspace = Get-AzSynapseWorkspace -resourceGroupName $resourceGroupName -Name $workspaceName + $firewallRuleName = "originRuleName" + $StartIpAddress = "0.0.0.0" + $NewStartIpAddress = "10.0.0.0" + $EndIpAddress = "255.255.255.255" + $NewEndIpAddress = "255.0.0.0" + $SucessState = "Succeeded" + + # create firewall + $firewallCreated = New-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $firewallRuleName -StartIpAddress $StartIpAddress -EndIpAddress $EndIpAddress + + Assert-AreEqual $StartIpAddress $firewallCreated.StartIpAddress + Assert-AreEqual $EndIpAddress $firewallCreated.EndIpAddress + + # Wait for 10 seconds for the create completion + [Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(10000) + + # List firewall + $firewallList = Get-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName + Assert-NotNull $firewallList + + # Get firewall + $firewallGet = Get-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $firewallRuleName + Assert-AreEqual $SucessState $firewallGet.ProvisioningState + Assert-AreEqual $StartIpAddress $firewallGet.StartIpAddress + Assert-AreEqual $EndIpAddress $firewallGet.EndIpAddress + + # Update firewall + $firewallUpdate = Update-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $firewallRuleName -StartIpAddress $NewStartIpAddress -EndIpAddress $NewEndIpAddress + Assert-AreEqual $NewStartIpAddress $firewallUpdate.StartIpAddress + Assert-AreEqual $NewEndIpAddress $firewallUpdate.EndIpAddress + + # Delete firewall + Assert-True {Remove-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $firewallRuleName -PassThru} "Remove firewall rule failed" + } + finally + { + # cleanup the firewallRuleName created by test code. + } +} diff --git a/src/Synapse/Synapse.Test/ScenarioTests/SparkJobTests.cs b/src/Synapse/Synapse.Test/ScenarioTests/SparkJobTests.cs index b46eb00a5902..b9f8c3c3023e 100644 --- a/src/Synapse/Synapse.Test/ScenarioTests/SparkJobTests.cs +++ b/src/Synapse/Synapse.Test/ScenarioTests/SparkJobTests.cs @@ -46,6 +46,7 @@ public void TestSynapseSparkJob() _logger, string.Format( "Test-SynapseSparkJob -resourceGroupname '{0}' -workspaceName '{1}' -sparkPoolName {2}", + resourceGroupName, testWorkspaceName, testSparkPoolName)); } diff --git a/src/Synapse/Synapse.Test/SessionRecords/Microsoft.Azure.Commands.Synapse.Test.ScenarioTests.FirewallTests/TestSynapseFirewall.json b/src/Synapse/Synapse.Test/SessionRecords/Microsoft.Azure.Commands.Synapse.Test.ScenarioTests.FirewallTests/TestSynapseFirewall.json new file mode 100644 index 000000000000..0c32e8709a28 --- /dev/null +++ b/src/Synapse/Synapse.Test/SessionRecords/Microsoft.Azure.Commands.Synapse.Test.ScenarioTests.FirewallTests/TestSynapseFirewall.json @@ -0,0 +1,1084 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2U/YXBpLXZlcnNpb249MjAxOS0wNi0wMS1wcmV2aWV3", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c34fe0f1-a872-40b6-88c0-ab9c8e2ec63e" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "7c80f337-06f7-4d56-9f76-074bf58193a3" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-correlation-request-id": [ + "316eed46-9911-41d0-8483-6cb3286c20b2" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091834Z:316eed46-9911-41d0-8483-6cb3286c20b2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:18:34 GMT" + ], + "Content-Length": [ + "1129" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace\",\r\n \"location\": \"eastus\",\r\n \"name\": \"shangweisynapseworkspace\",\r\n \"type\": \"Microsoft.Synapse/workspaces\",\r\n \"identity\": {\r\n \"type\": \"SystemAssigned\",\r\n \"principalId\": \"4d3b9332-0505-4b79-b223-9e1ab5b4e674\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\r\n },\r\n \"tags\": {},\r\n \"properties\": {\r\n \"connectivityEndpoints\": {\r\n \"web\": \"https://web.azuresynapse.net?workspace=%2fsubscriptions%2f964c10bb-8a6c-43bc-83d3-6b318c6c7305%2fresourceGroups%2fshangwei-dev%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2fshangweisynapseworkspace\",\r\n \"sql\": \"shangweisynapseworkspace.sql.azuresynapse.net\",\r\n \"dev\": \"https://shangweisynapseworkspace.dev.azuresynapse.net\",\r\n \"sqlOnDemand\": \"shangweisynapseworkspace-ondemand.sql.azuresynapse.net\"\r\n },\r\n \"managedResourceGroupName\": \"workspacemanagedrg-d486359f-decd-4f30-87e6-1c17c619ee8b\",\r\n \"defaultDataLakeStorage\": {\r\n \"accountUrl\": \"https://shangweiadlsgen2.dfs.core.windows.net\",\r\n \"filesystem\": \"shangwei\"\r\n },\r\n \"sqlAdministratorLogin\": \"sqladminuser\",\r\n \"privateEndpointConnections\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2U/YXBpLXZlcnNpb249MjAxOS0wNi0wMS1wcmV2aWV3", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "cd0f5c2b-933a-453f-ae63-0b977e438e35" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "41e222de-f22a-4a19-8705-9d3fed902b07" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "152989a1-e7cd-4322-a911-d1a8788d4a0c" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091948Z:152989a1-e7cd-4322-a911-d1a8788d4a0c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:47 GMT" + ], + "Content-Length": [ + "1129" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace\",\r\n \"location\": \"eastus\",\r\n \"name\": \"shangweisynapseworkspace\",\r\n \"type\": \"Microsoft.Synapse/workspaces\",\r\n \"identity\": {\r\n \"type\": \"SystemAssigned\",\r\n \"principalId\": \"4d3b9332-0505-4b79-b223-9e1ab5b4e674\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\r\n },\r\n \"tags\": {},\r\n \"properties\": {\r\n \"connectivityEndpoints\": {\r\n \"web\": \"https://web.azuresynapse.net?workspace=%2fsubscriptions%2f964c10bb-8a6c-43bc-83d3-6b318c6c7305%2fresourceGroups%2fshangwei-dev%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2fshangweisynapseworkspace\",\r\n \"sql\": \"shangweisynapseworkspace.sql.azuresynapse.net\",\r\n \"dev\": \"https://shangweisynapseworkspace.dev.azuresynapse.net\",\r\n \"sqlOnDemand\": \"shangweisynapseworkspace-ondemand.sql.azuresynapse.net\"\r\n },\r\n \"managedResourceGroupName\": \"workspacemanagedrg-d486359f-decd-4f30-87e6-1c17c619ee8b\",\r\n \"defaultDataLakeStorage\": {\r\n \"accountUrl\": \"https://shangweiadlsgen2.dfs.core.windows.net\",\r\n \"filesystem\": \"shangwei\"\r\n },\r\n \"sqlAdministratorLogin\": \"sqladminuser\",\r\n \"privateEndpointConnections\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7e36b4cd-b502-45f8-98b7-cf755635443d" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "213d091d-16b7-4c9c-a1d6-e15c9958a220" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "b5672eda-1c36-4c2e-b61f-e000e9fdd252" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091835Z:b5672eda-1c36-4c2e-b61f-e000e9fdd252" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:18:34 GMT" + ], + "Content-Length": [ + "95" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"IpFirewallRuleNotFound\",\r\n \"message\": \"shangweisynapseworkspace/originRuleName\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "e0556752-a3e4-4fbd-9e0f-ba8aba31625b" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "cd18edc0-1abc-4907-995a-e75707df1998" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091906Z:cd18edc0-1abc-4907-995a-e75707df1998" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:06 GMT" + ], + "Content-Length": [ + "364" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bc62d15d-63b5-4e18-9109-538ddd1fe2d8" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "4fd4ace2-321b-4a1e-877a-4745f50720b0" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "4075969c-8905-4994-a6c9-4b317e269c15" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091916Z:4075969c-8905-4994-a6c9-4b317e269c15" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:16 GMT" + ], + "Content-Length": [ + "364" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f9a411a4-37eb-4c50-8c1a-47af54899238" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "c8c78580-1443-4965-8d8f-eb08e1edef80" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "c127f551-dad2-45cb-bd60-17230f8a3a8c" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091917Z:c127f551-dad2-45cb-bd60-17230f8a3a8c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:16 GMT" + ], + "Content-Length": [ + "364" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "1abcf9b9-13c3-420e-89fe-a97826989454" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "e3371e3e-ab31-4f4b-9185-918731ed08f5" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-correlation-request-id": [ + "c2dcb3d1-79af-4c1f-b9c5-ec4863f02dae" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091917Z:c2dcb3d1-79af-4c1f-b9c5-ec4863f02dae" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:16 GMT" + ], + "Content-Length": [ + "364" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "d2e30269-8822-451f-ac6f-4d4dcd2884a3" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11990" + ], + "x-ms-correlation-request-id": [ + "e2342a76-2a71-452f-b777-947afed4e83c" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091948Z:e2342a76-2a71-452f-b777-947afed4e83c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:47 GMT" + ], + "Content-Length": [ + "359" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"10.0.0.0\",\r\n \"endIpAddress\": \"255.0.0.0\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a380a8b4-58bd-4e2e-8e24-34bfe18c7ef1" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "79054148-b600-436f-9aaa-cbc23fe9eb18" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11988" + ], + "x-ms-correlation-request-id": [ + "d42aae02-ce5a-4d58-bec3-8d8519db1d79" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091948Z:d42aae02-ce5a-4d58-bec3-8d8519db1d79" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:47 GMT" + ], + "Content-Length": [ + "359" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"10.0.0.0\",\r\n \"endIpAddress\": \"255.0.0.0\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"endIpAddress\": \"255.255.255.255\",\r\n \"startIpAddress\": \"0.0.0.0\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bc74b000-4640-4b15-93cc-ad0c190fbca5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "101" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationResults/d1bb1326-81a4-40cf-bcd0-9feb1d32f358?api-version=2019-06-01-preview" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationStatuses/d1bb1326-81a4-40cf-bcd0-9feb1d32f358?api-version=2019-06-01-preview" + ], + "Access-Control-Allow-Headers": [ + "Location" + ], + "Access-Control-Expose-Headers": [ + "Location" + ], + "x-ms-request-id": [ + "4d4b4ad6-6fbf-410c-91d5-ae3e555465ca" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "d430e502-153a-4fc0-a698-cf3cd883d3ae" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091835Z:d430e502-153a-4fc0-a698-cf3cd883d3ae" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:18:34 GMT" + ], + "Content-Length": [ + "367" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Provisioning\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"endIpAddress\": \"255.0.0.0\",\r\n \"startIpAddress\": \"10.0.0.0\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "aef8dd82-cde8-4ffa-8154-137e66048ed7" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "96" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationResults/e9d5f55a-a416-4485-a0e2-66e0cbb367b1?api-version=2019-06-01-preview" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationStatuses/e9d5f55a-a416-4485-a0e2-66e0cbb367b1?api-version=2019-06-01-preview" + ], + "Access-Control-Allow-Headers": [ + "Location" + ], + "Access-Control-Expose-Headers": [ + "Location" + ], + "x-ms-request-id": [ + "ae49c11f-fe1b-4412-a337-cc4ef3eb241d" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-correlation-request-id": [ + "3c782145-a45a-4227-af22-2f161a180299" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091917Z:3c782145-a45a-4227-af22-2f161a180299" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:17 GMT" + ], + "Content-Length": [ + "362" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"provisioningState\": \"Provisioning\",\r\n \"startIpAddress\": \"10.0.0.0\",\r\n \"endIpAddress\": \"255.0.0.0\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationStatuses/d1bb1326-81a4-40cf-bcd0-9feb1d32f358?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2Uvb3BlcmF0aW9uU3RhdHVzZXMvZDFiYjEzMjYtODFhNC00MGNmLWJjZDAtOWZlYjFkMzJmMzU4P2FwaS12ZXJzaW9uPTIwMTktMDYtMDEtcHJldmlldw==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "85e52fea-cc84-48b9-b3f4-6d02173b58dd" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "0e9813d3-9f76-4cd4-8b5b-4b56cd406e63" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091905Z:0e9813d3-9f76-4cd4-8b5b-4b56cd406e63" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:05 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcz9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e54a2575-64ba-42c3-b43c-05d177dcd262" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "aa69cb5f-205a-4b20-b255-9f66a6ef6b73" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "83345f1b-24e0-4f0c-aa9f-fc37184b9cee" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091916Z:83345f1b-24e0-4f0c-aa9f-fc37184b9cee" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:16 GMT" + ], + "Content-Length": [ + "1098" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/allowAll\",\r\n \"name\": \"allowAll\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n },\r\n {\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/AllowAllAzureIPs\",\r\n \"name\": \"AllowAllAzureIPs\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n },\r\n {\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"startIpAddress\": \"0.0.0.0\",\r\n \"endIpAddress\": \"255.255.255.255\"\r\n },\r\n \"id\": \"/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName\",\r\n \"name\": \"originRuleName\",\r\n \"type\": \"Microsoft.Synapse/workspaces/firewallRules\"\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationStatuses/e9d5f55a-a416-4485-a0e2-66e0cbb367b1?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2Uvb3BlcmF0aW9uU3RhdHVzZXMvZTlkNWY1NWEtYTQxNi00NDg1LWEwZTItNjZlMGNiYjM2N2IxP2FwaS12ZXJzaW9uPTIwMTktMDYtMDEtcHJldmlldw==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "5275302d-59b8-41bf-b9c4-a831d09c081d" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11991" + ], + "x-ms-correlation-request-id": [ + "05a5dc40-0bdd-427f-819c-d8d20a7f4644" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091947Z:05a5dc40-0bdd-427f-819c-d8d20a7f4644" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:46 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/firewallRules/originRuleName?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2UvZmlyZXdhbGxSdWxlcy9vcmlnaW5SdWxlTmFtZT9hcGktdmVyc2lvbj0yMDE5LTA2LTAxLXByZXZpZXc=", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d47fe740-4492-4ed6-9fe5-56f29301b68f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationResults/cc46f6bb-cda4-4bb3-b8e6-f0fa57162086?api-version=2019-06-01-preview" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationStatuses/cc46f6bb-cda4-4bb3-b8e6-f0fa57162086?api-version=2019-06-01-preview" + ], + "Access-Control-Allow-Headers": [ + "Location" + ], + "Access-Control-Expose-Headers": [ + "Location" + ], + "x-ms-request-id": [ + "5c4432bf-7b4b-4fdb-94cb-24c290b0c007" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-correlation-request-id": [ + "bca15e38-37f9-4b2e-b437-77fa715f2a0a" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T091948Z:bca15e38-37f9-4b2e-b437-77fa715f2a0a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:19:48 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationStatuses/cc46f6bb-cda4-4bb3-b8e6-f0fa57162086?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2Uvb3BlcmF0aW9uU3RhdHVzZXMvY2M0NmY2YmItY2RhNC00YmIzLWI4ZTYtZjBmYTU3MTYyMDg2P2FwaS12ZXJzaW9uPTIwMTktMDYtMDEtcHJldmlldw==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "0a68b7b1-3cd4-4b1c-99d1-bd145ef3ab55" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11987" + ], + "x-ms-correlation-request-id": [ + "d42d706a-4543-4871-ab1f-9195e8f7f8b3" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T092019Z:d42d706a-4543-4871-ab1f-9195e8f7f8b3" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:20:18 GMT" + ], + "Content-Length": [ + "22" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/964c10bb-8a6c-43bc-83d3-6b318c6c7305/resourceGroups/shangwei-dev/providers/Microsoft.Synapse/workspaces/shangweisynapseworkspace/operationResults/cc46f6bb-cda4-4bb3-b8e6-f0fa57162086?api-version=2019-06-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTY0YzEwYmItOGE2Yy00M2JjLTgzZDMtNmIzMThjNmM3MzA1L3Jlc291cmNlR3JvdXBzL3NoYW5nd2VpLWRldi9wcm92aWRlcnMvTWljcm9zb2Z0LlN5bmFwc2Uvd29ya3NwYWNlcy9zaGFuZ3dlaXN5bmFwc2V3b3Jrc3BhY2Uvb3BlcmF0aW9uUmVzdWx0cy9jYzQ2ZjZiYi1jZGE0LTRiYjMtYjhlNi1mMGZhNTcxNjIwODY/YXBpLXZlcnNpb249MjAxOS0wNi0wMS1wcmV2aWV3", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28207.03", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18363.", + "Microsoft.Azure.Management.Synapse.SynapseManagementClient/0.1.0.preview.2" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-request-id": [ + "7b4ad5fc-fd80-40bf-b75c-49eab6855bbf" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11986" + ], + "x-ms-correlation-request-id": [ + "9feac4aa-e291-491c-9b2a-0415b6f463cb" + ], + "x-ms-routing-request-id": [ + "JAPANEAST:20200528T092019Z:9feac4aa-e291-491c-9b2a-0415b6f463cb" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Thu, 28 May 2020 09:20:19 GMT" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 204 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "964c10bb-8a6c-43bc-83d3-6b318c6c7305", + "resourceGroupName": "shangwei-dev", + "workspaceName": "shangweisynapseworkspace" + } +} \ No newline at end of file diff --git a/src/Synapse/Synapse/Az.Synapse.psd1 b/src/Synapse/Synapse/Az.Synapse.psd1 index e5049f049b4b..939ce8c954a5 100644 --- a/src/Synapse/Synapse/Az.Synapse.psd1 +++ b/src/Synapse/Synapse/Az.Synapse.psd1 @@ -12,7 +12,7 @@ # RootModule = '' # Version number of this module. -ModuleVersion = '0.1.0' +ModuleVersion = '0.2.0' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -87,7 +87,9 @@ CmdletsToExport = 'Get-AzSynapseSparkJob', 'Stop-AzSynapseSparkJob', 'Update-AzSynapseWorkspace', 'Get-AzSynapseSqlPool', 'New-AzSynapseSqlPool', 'Remove-AzSynapseSqlPool', 'Update-AzSynapseSqlPool', 'Test-AzSynapseWorkspace', - 'Test-AzSynapseSparkPool', 'Test-AzSynapseSqlPool' + 'Test-AzSynapseSparkPool', 'Test-AzSynapseSqlPool', + 'New-AzSynapseFirewallRule', 'Remove-AzSynapseFirewallRule', + 'Get-AzSynapseFirewallRule', 'Update-AzSynapseFirewallRule' # Variables to export from this module # VariablesToExport = @() diff --git a/src/Synapse/Synapse/ChangeLog.md b/src/Synapse/Synapse/ChangeLog.md index 45c316d22e4a..1295a9a22f1d 100644 --- a/src/Synapse/Synapse/ChangeLog.md +++ b/src/Synapse/Synapse/ChangeLog.md @@ -19,6 +19,13 @@ --> ## Upcoming Release +* Added support for operation of Synapse FirewallRule + - Add `New-AzSynapseFirewallRule` cmdlet + - Add `Remove-AzSynapseFirewallRule` cmdlet + - Add `Get-AzSynapseFirewallRule` cmdlet + - Add `Update-AzSynapseFirewallRule` cmdlet +* Removed '-DisallowAllConnection' parameter from the 'New-AzSynapseWorkspace' cmdlet + ## Version 0.1.0 * Preview release of `Az.Synapse` module diff --git a/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/GetAzureSynapseFirewallRule.cs b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/GetAzureSynapseFirewallRule.cs new file mode 100644 index 000000000000..2120bb45a05f --- /dev/null +++ b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/GetAzureSynapseFirewallRule.cs @@ -0,0 +1,64 @@ +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.Synapse.Common; +using Microsoft.Azure.Commands.Synapse.Models; +using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using System.Linq; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Synapse +{ + [Cmdlet(VerbsCommon.Get, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.FirewallRule, + DefaultParameterSetName = GetByNameParameterSet)] + [OutputType(typeof(PSSynapseIpFirewallRule))] + public class GetAzureSynapseFirewallRule : SynapseCmdletBase + { + private const string GetByNameParameterSet = "GetByNameParameterSet"; + private const string GetByParentObjectParameterSet = "GetByParentObjectParameterSet"; + + [Parameter(ParameterSetName = GetByNameParameterSet, Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter(ParameterSetName = GetByNameParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)] + [ResourceNameCompleter(ResourceTypes.Workspace, nameof(ResourceGroupName))] + [ValidateNotNullOrEmpty] + public string WorkspaceName { get; set; } + + [Parameter(ValueFromPipeline = true, ParameterSetName = GetByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)] + [ValidateNotNull] + public PSSynapseWorkspace WorkspaceObject { get; set; } + + [Parameter(Mandatory = false, ParameterSetName = GetByNameParameterSet, HelpMessage = HelpMessages.FirewallRuleName)] + [Parameter(Mandatory = false, ParameterSetName = GetByParentObjectParameterSet, HelpMessage = HelpMessages.FirewallRuleName)] + [Alias(SynapseConstants.FirewallRuleName)] + [ValidateNotNullOrEmpty] + public string Name { get; set; } + + public override void ExecuteCmdlet() + { + if (this.IsParameterBound(c => c.WorkspaceObject)) + { + this.ResourceGroupName = new ResourceIdentifier(this.WorkspaceObject.Id).ResourceGroupName; + this.WorkspaceName = this.WorkspaceObject.Name; + } + + if (string.IsNullOrEmpty(this.ResourceGroupName)) + { + this.ResourceGroupName = this.SynapseAnalyticsClient.GetResourceGroupByWorkspaceName(this.WorkspaceName); + } + + if (!string.IsNullOrEmpty(this.Name)) + { + var result = this.SynapseAnalyticsClient.GetFirewallRule(this.ResourceGroupName, this.WorkspaceName, this.Name); + WriteObject(result); + } + else + { + var result = this.SynapseAnalyticsClient.ListFirewallRules(this.ResourceGroupName, this.WorkspaceName); + WriteObject(result, true); + } + } + } +} diff --git a/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/NewAzureSynapseFirewallRule.cs b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/NewAzureSynapseFirewallRule.cs new file mode 100644 index 000000000000..f8a7814bb3f7 --- /dev/null +++ b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/NewAzureSynapseFirewallRule.cs @@ -0,0 +1,104 @@ +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.Synapse.Common; +using Microsoft.Azure.Commands.Synapse.Models; +using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; +using Microsoft.Azure.Commands.Synapse.Properties; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using System.Linq; +using System.Management.Automation; +using Microsoft.Azure.Management.Synapse.Models; + +namespace Microsoft.Azure.Commands.Synapse +{ + [Cmdlet(VerbsCommon.New, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.FirewallRule, + DefaultParameterSetName = CreateByNameParameterSet, SupportsShouldProcess = true)] + [OutputType(typeof(PSSynapseIpFirewallRule))] + public class NewAzureSynapseFirewallRule : SynapseCmdletBase + { + private const string CreateByNameParameterSet = "CreateByNameParameterSet"; + private const string CreateByParentObjectParameterSet = "CreateByParentObjectParameterSet"; + private const string CreateByNameAllowAllIpParameterSet = "CreateByNameAllowAllIpParameterSet"; + private const string CreateByParentObjectAllowAllIpParameterSet = "CreateByParentObjectAllowAllIpParameterSet"; + private const string AzureRuleStartIp = "0.0.0.0"; + private const string AzureRuleEndIp = "255.255.255.255"; + private const string AzureRuleName = "AllowAllAzureIPs"; + + [Parameter(ParameterSetName = CreateByNameParameterSet,Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)] + [Parameter(ParameterSetName = CreateByNameAllowAllIpParameterSet, Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter(ParameterSetName = CreateByNameParameterSet,Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)] + [Parameter(ParameterSetName = CreateByNameAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)] + [ResourceNameCompleter(ResourceTypes.Workspace, nameof(ResourceGroupName))] + [ValidateNotNullOrEmpty] + public string WorkspaceName { get; set; } + + [Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)] + [Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)] + [ValidateNotNull] + public PSSynapseWorkspace WorkspaceObject { get; set; } + + [Parameter(ParameterSetName = CreateByNameParameterSet, Mandatory = true, HelpMessage = HelpMessages.FirewallRuleName)] + [Parameter(ParameterSetName = CreateByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.FirewallRuleName)] + [Alias(SynapseConstants.FirewallRuleName)] + [ValidateNotNullOrEmpty] + public string Name { get; set; } + + [Parameter(ParameterSetName = CreateByNameParameterSet, Mandatory = true, HelpMessage = HelpMessages.StartIpAddress)] + [Parameter(ParameterSetName = CreateByParentObjectParameterSet,Mandatory = true, HelpMessage = HelpMessages.StartIpAddress)] + [ValidateNotNullOrEmpty] + public string StartIpAddress { get; set; } + + [Parameter(ParameterSetName = CreateByNameParameterSet, Mandatory = true, HelpMessage = HelpMessages.EndIpAddress)] + [Parameter(ParameterSetName = CreateByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.EndIpAddress)] + [ValidateNotNullOrEmpty] + public string EndIpAddress { get; set; } + + [Parameter(ParameterSetName = CreateByNameAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AzureIpRule)] + [Parameter(ParameterSetName = CreateByParentObjectAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AzureIpRule)] + public SwitchParameter AllowAllAzureIP { get; set; } + + [Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)] + public SwitchParameter AsJob { get; set; } + + public override void ExecuteCmdlet() + { + if (this.IsParameterBound(c => c.WorkspaceObject)) + { + this.ResourceGroupName = new ResourceIdentifier(this.WorkspaceObject.Id).ResourceGroupName; + this.WorkspaceName = this.WorkspaceObject.Name; + } + + if (ParameterSetName == CreateByNameAllowAllIpParameterSet || ParameterSetName == CreateByParentObjectAllowAllIpParameterSet) + { + this.Name = AzureRuleName; + this.StartIpAddress = AzureRuleStartIp; + this.EndIpAddress = AzureRuleEndIp; + } + + if (string.IsNullOrEmpty(this.ResourceGroupName)) + { + this.ResourceGroupName = this.SynapseAnalyticsClient.GetResourceGroupByWorkspaceName(this.WorkspaceName); + } + + if (SynapseAnalyticsClient.TestFirewallRule(ResourceGroupName, WorkspaceName, Name)) + { + throw new PSInvalidOperationException(string.Format(Resources.ConflictFirewallRuleName, Name)); + } + + IpFirewallRuleInfo ipFirewallRuleInfo = new IpFirewallRuleInfo + { + StartIpAddress = StartIpAddress, + EndIpAddress = EndIpAddress + }; + + if (this.ShouldProcess(this.Name, string.Format(Resources.CreatingFirewallRule, this.WorkspaceName, this.Name))) + { + var result = new PSSynapseIpFirewallRule(this.SynapseAnalyticsClient.CreateOrUpdateWorkspaceFirewallRule(this.ResourceGroupName, this.WorkspaceName, this.Name, ipFirewallRuleInfo)); + WriteObject(result); + } + } + } +} diff --git a/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/RemoveAzureSynapseFirewallRule.cs b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/RemoveAzureSynapseFirewallRule.cs new file mode 100644 index 000000000000..d9915e176f0a --- /dev/null +++ b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/RemoveAzureSynapseFirewallRule.cs @@ -0,0 +1,68 @@ +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.Synapse.Common; +using Microsoft.Azure.Commands.Synapse.Models; +using Microsoft.Azure.Commands.Synapse.Properties; +using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using System.Management.Automation; + +namespace Microsoft.Azure.Commands.Synaspe +{ + [Cmdlet(VerbsCommon.Remove, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.FirewallRule, DefaultParameterSetName = DeleteByNameParameterSet, SupportsShouldProcess = true)] + [OutputType(typeof(bool))] + public class RemoveAzureSynapseFirewallRule : SynapseCmdletBase + { + private const string DeleteByNameParameterSet = "DeleteByNameParameterSet"; + private const string DeleteByParentObjectParameterSet = "DeleteByParentObjectParameterSet"; + + [Parameter(ParameterSetName = DeleteByNameParameterSet, Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)] + [ResourceGroupCompleter()] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter(ParameterSetName = DeleteByNameParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)] + [ResourceNameCompleter(ResourceTypes.Workspace, nameof(ResourceGroupName))] + [ValidateNotNullOrEmpty] + public string WorkspaceName { get; set; } + + [Parameter(ParameterSetName = DeleteByNameParameterSet,Mandatory = true, HelpMessage = HelpMessages.FirewallRuleName)] + [Parameter(ParameterSetName = DeleteByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.FirewallRuleName)] + [Alias(SynapseConstants.FirewallRuleName)] + [ResourceNameCompleter(ResourceTypes.Workspace, nameof(ResourceGroupName))] + [ValidateNotNullOrEmpty] + public string Name { get; set; } + + [Parameter(ValueFromPipeline = true, ParameterSetName = DeleteByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)] + [ValidateNotNull] + public PSSynapseWorkspace WorkspaceObject { get; set; } + + [Parameter(Mandatory = false, HelpMessage = HelpMessages.PassThru)] + public SwitchParameter PassThru { get; set; } + + [Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)] + public SwitchParameter AsJob { get; set; } + + public override void ExecuteCmdlet() + { + if (this.IsParameterBound(c => c.WorkspaceObject)) + { + this.ResourceGroupName = new ResourceIdentifier(this.WorkspaceObject.Id).ResourceGroupName; + this.WorkspaceName = this.WorkspaceObject.Name; + } + + if (string.IsNullOrEmpty(this.ResourceGroupName)) + { + this.ResourceGroupName = this.SynapseAnalyticsClient.GetResourceGroupByWorkspaceName(this.WorkspaceName); + } + + if (this.ShouldProcess(this.Name, string.Format(Resources.RemovingFirewallRule, this.Name, this.WorkspaceName))) + { + SynapseAnalyticsClient.DeleteFirewallRule(ResourceGroupName, WorkspaceName, Name); + if (PassThru) + { + WriteObject(true); + } + } + } + } +} diff --git a/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/UpdateAzureSynapseFirewallRule.cs b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/UpdateAzureSynapseFirewallRule.cs new file mode 100644 index 000000000000..ce15900844e7 --- /dev/null +++ b/src/Synapse/Synapse/Commands/ManagementCommands/Firewall/UpdateAzureSynapseFirewallRule.cs @@ -0,0 +1,87 @@ +using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; +using Microsoft.Azure.Commands.Synapse.Common; +using Microsoft.Azure.Commands.Synapse.Models; +using Microsoft.Azure.Management.Internal.Resources.Utilities.Models; +using Microsoft.Azure.Commands.Synapse.Properties; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using System.Linq; +using System.Management.Automation; +using Microsoft.Azure.Management.Synapse.Models; + +namespace Microsoft.Azure.Commands.Synapse +{ + [Cmdlet(VerbsData.Update, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.FirewallRule, + DefaultParameterSetName = UpdateByNameParameterSet, SupportsShouldProcess = true)] + [OutputType(typeof(PSSynapseIpFirewallRule))] + public class UpdateAzureSynapseFirewallRules : SynapseCmdletBase + { + private const string UpdateByNameParameterSet = "UpdateByNameParameterSet"; + private const string UpdateByParentObjectParameterSet = "UpdateByParentObjectParameterSet"; + + [Parameter(ParameterSetName = UpdateByNameParameterSet, Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)] + [ResourceGroupCompleter] + [ValidateNotNullOrEmpty] + public string ResourceGroupName { get; set; } + + [Parameter(ParameterSetName = UpdateByNameParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)] + [ResourceNameCompleter(ResourceTypes.Workspace, nameof(ResourceGroupName))] + [ValidateNotNullOrEmpty] + public string WorkspaceName { get; set; } + + [Parameter(ValueFromPipeline = true, ParameterSetName = UpdateByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)] + [ValidateNotNull] + public PSSynapseWorkspace WorkspaceObject { get; set; } + + [Parameter(ParameterSetName = UpdateByNameParameterSet, Mandatory = true, HelpMessage = HelpMessages.FirewallRuleName)] + [Parameter(ParameterSetName = UpdateByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.FirewallRuleName)] + [Alias(SynapseConstants.FirewallRuleName)] + [ValidateNotNullOrEmpty] + public string Name { get; set; } + + [Parameter(ParameterSetName = UpdateByNameParameterSet, Mandatory = false, HelpMessage = HelpMessages.StartIpAddress)] + [Parameter(ParameterSetName = UpdateByParentObjectParameterSet, Mandatory = false, HelpMessage = HelpMessages.StartIpAddress)] + [ValidateNotNullOrEmpty] + public string StartIpAddress { get; set; } + + [Parameter(ParameterSetName = UpdateByNameParameterSet, Mandatory = false, HelpMessage = HelpMessages.EndIpAddress)] + [Parameter(ParameterSetName = UpdateByParentObjectParameterSet, Mandatory = false, HelpMessage = HelpMessages.EndIpAddress)] + [ValidateNotNullOrEmpty] + public string EndIpAddress { get; set; } + + [Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)] + public SwitchParameter AsJob { get; set; } + + public override void ExecuteCmdlet() + { + if (this.IsParameterBound(c => c.WorkspaceObject)) + { + this.ResourceGroupName = new ResourceIdentifier(this.WorkspaceObject.Id).ResourceGroupName; + this.WorkspaceName = this.WorkspaceObject.Name; + } + + if (string.IsNullOrEmpty(this.ResourceGroupName)) + { + this.ResourceGroupName = this.SynapseAnalyticsClient.GetResourceGroupByWorkspaceName(this.WorkspaceName); + } + + if (!SynapseAnalyticsClient.TestFirewallRule(ResourceGroupName, WorkspaceName, Name)) + { + throw new PSInvalidOperationException(string.Format(Resources.FirewallRuleDoesNotExist, Name)); + } + + var originIpFirewallRull = SynapseAnalyticsClient.GetFirewallRule(ResourceGroupName, WorkspaceName, Name); + + IpFirewallRuleInfo ipFirewallRuleInfo = new IpFirewallRuleInfo + { + StartIpAddress = StartIpAddress??originIpFirewallRull.StartIpAddress, + EndIpAddress = EndIpAddress??originIpFirewallRull.EndIpAddress, + }; + + if (this.ShouldProcess(this.Name, string.Format(Resources.CreatingFirewallRule, this.WorkspaceName, this.Name))) + { + var result = new PSSynapseIpFirewallRule(this.SynapseAnalyticsClient.CreateOrUpdateWorkspaceFirewallRule(this.ResourceGroupName, this.WorkspaceName, this.Name, ipFirewallRuleInfo)); + WriteObject(result); + } + } + } +} diff --git a/src/Synapse/Synapse/Commands/ManagementCommands/Workspace/NewAzureSynapseWorkspace.cs b/src/Synapse/Synapse/Commands/ManagementCommands/Workspace/NewAzureSynapseWorkspace.cs index a6c9fc29d864..68957aa770f9 100644 --- a/src/Synapse/Synapse/Commands/ManagementCommands/Workspace/NewAzureSynapseWorkspace.cs +++ b/src/Synapse/Synapse/Commands/ManagementCommands/Workspace/NewAzureSynapseWorkspace.cs @@ -57,9 +57,6 @@ public class NewAzureSynapseWorkspace : SynapseCmdletBase [ValidateSet("default")] public string ManagedVirtualNetwork { get; set; } - [Parameter(Mandatory = false, HelpMessage = HelpMessages.DisallowAllConnection)] - public SwitchParameter DisallowAllConnection { get; set; } - [Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)] public SwitchParameter AsJob { get; set; } @@ -119,19 +116,6 @@ public override void ExecuteCmdlet() this.Name, createParams)); - if (!this.DisallowAllConnection.IsPresent) - { - SynapseAnalyticsClient.CreateOrUpdateWorkspaceFirewallRule( - this.ResourceGroupName, - this.Name, - SynapseConstants.FilewallRuleAllowAll, - new IpFirewallRuleInfo - { - StartIpAddress = SynapseConstants.AllowAllStartIpAddress, - EndIpAddress = SynapseConstants.AllowAllEndIpAddress, - }); - } - this.WriteObject(workspace); } } diff --git a/src/Synapse/Synapse/Common/HelpMessages.cs b/src/Synapse/Synapse/Common/HelpMessages.cs index 881063e2588f..20fe6ab0b8c2 100644 --- a/src/Synapse/Synapse/Common/HelpMessages.cs +++ b/src/Synapse/Synapse/Common/HelpMessages.cs @@ -157,5 +157,13 @@ public static class HelpMessages public const string RestorePoint = "Snapshot time to restore."; public const string SqlAdministratorLoginPassword = "The new SQL administrator password for the workspace."; + + public const string FirewallRuleName = "The firerwall rule name for the workspace."; + + public const string StartIpAddress = "The start IP address of the firewall rule. Must be IPv4 format."; + + public const string EndIpAddress = "The end IP address of the firewall rule. Must be IPv4 format. Must be greater than or equal to startIpAddress."; + + public const string AzureIpRule = "Creates a special firewall rule that permits all Azure IPs to have access."; } } diff --git a/src/Synapse/Synapse/Models/PSSynapseIpFirewallRule.cs b/src/Synapse/Synapse/Models/PSSynapseIpFirewallRule.cs new file mode 100644 index 000000000000..1f6c349de35d --- /dev/null +++ b/src/Synapse/Synapse/Models/PSSynapseIpFirewallRule.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Synapse.Models; + +namespace Microsoft.Azure.Commands.Synapse.Models +{ + class PSSynapseIpFirewallRule + { + public PSSynapseIpFirewallRule(IpFirewallRuleInfo ipFirewallRuleInfo) + { + this.EndIpAddress=ipFirewallRuleInfo?.EndIpAddress; + this.ProvisioningState = ipFirewallRuleInfo?.ProvisioningState; + this.StartIpAddress = ipFirewallRuleInfo?.StartIpAddress; + } + + /// + /// Gets or sets the end IP address of the firewall rule. Must be IPv4 format. Must be greater than or equal to startIpAddress + /// + public string EndIpAddress { get; set; } + + /// + /// Gets resource provisioning state. Possible values include: 'Provisioning', 'Succeeded', 'Deleting', 'Failed', 'DeleteError' + /// + public string ProvisioningState { get; } + + /// + /// Gets or sets the start IP address of the firewall rule. Must be IPv4 format + /// + public string StartIpAddress { get; set; } + } +} diff --git a/src/Synapse/Synapse/Models/SynapseAnalyticsClient.cs b/src/Synapse/Synapse/Models/SynapseAnalyticsClient.cs index eff5293e7a13..981271757f26 100644 --- a/src/Synapse/Synapse/Models/SynapseAnalyticsClient.cs +++ b/src/Synapse/Synapse/Models/SynapseAnalyticsClient.cs @@ -138,6 +138,10 @@ public IpFirewallRuleInfo CreateOrUpdateWorkspaceFirewallRule( { try { + if (string.IsNullOrEmpty(resourceGroupName)) + { + resourceGroupName = GetResourceGroupByWorkspaceName(workspaceName); + } return _synapseManagementClient.IpFirewallRules.CreateOrUpdate( resourceGroupName, workspaceName, @@ -150,6 +154,70 @@ public IpFirewallRuleInfo CreateOrUpdateWorkspaceFirewallRule( } } + public IpFirewallRuleInfo GetFirewallRule(string resourceGroupName, string workspaceName, string ruleName) + { + try + { + if (string.IsNullOrEmpty(resourceGroupName)) + { + resourceGroupName = GetResourceGroupByWorkspaceName(workspaceName); + } + + return _synapseManagementClient.IpFirewallRules.Get(resourceGroupName, workspaceName, ruleName); + } + catch (ErrorContractException ex) + { + throw GetSynapseException(ex); + } + } + + public List ListFirewallRules(string resourceGroupName, string workspaceName) + { + try + { + if (string.IsNullOrEmpty(resourceGroupName)) + { + resourceGroupName = GetResourceGroupByWorkspaceName(workspaceName); + } + + var firstPage = _synapseManagementClient.IpFirewallRules.ListByWorkspace(resourceGroupName, workspaceName); + return ListResources(firstPage, _synapseManagementClient.IpFirewallRules.ListByWorkspaceNext); + } + catch + { + throw new NotFoundException(string.Format(Properties.Resources.FailedToDiscoverFirewallRuleByWorkspace, workspaceName)); + } + } + + public void DeleteFirewallRule(string resourceGroupName, string workspaceName, string ruleName) + { + + if (string.IsNullOrEmpty(resourceGroupName)) + { + resourceGroupName = GetResourceGroupByWorkspaceName(workspaceName); + } + + if (!TestWorkspace(resourceGroupName, workspaceName)) + { + throw new InvalidOperationException(string.Format(Properties.Resources.WorkspaceDoesNotExist, workspaceName)); + } + + + if (!TestFirewallRule(resourceGroupName, workspaceName, ruleName)) + { + throw new InvalidOperationException(string.Format(Properties.Resources.FirewallRuleDoesNotExist, ruleName)); + } + + try + { + _synapseManagementClient.IpFirewallRules.Delete(resourceGroupName, workspaceName, ruleName); + } + catch (CloudException ex) + { + throw GetSynapseException(ex); + } + } + public bool TestWorkspace(string resourceGroupName, string workspaceName) { try @@ -163,6 +231,19 @@ public bool TestWorkspace(string resourceGroupName, string workspaceName) } } + public bool TestFirewallRule(string resourceGroupName, string workspaceName, string ruleName) + { + try + { + GetFirewallRule(resourceGroupName, workspaceName, ruleName); + return true; + } + catch (NotFoundException) + { + return false; + } + } + public string GetResourceGroupByWorkspaceName(string workspaceName) { try diff --git a/src/Synapse/Synapse/Models/SynapseConstants.cs b/src/Synapse/Synapse/Models/SynapseConstants.cs index cb53f4b4c543..6e91c692c25a 100644 --- a/src/Synapse/Synapse/Models/SynapseConstants.cs +++ b/src/Synapse/Synapse/Models/SynapseConstants.cs @@ -12,7 +12,9 @@ public static class SynapseConstants public const string WorkspaceName = nameof(WorkspaceName); - public const string FilewallRuleAllowAll = nameof(FilewallRuleAllowAll); + public const string FirewallRuleName = nameof(FirewallRuleName); + + public const string FirewallRule = nameof(FirewallRule); public const string SparkPool = nameof(SparkPool); diff --git a/src/Synapse/Synapse/Properties/Resources.Designer.cs b/src/Synapse/Synapse/Properties/Resources.Designer.cs index d12d72f5b0b1..fb6c6f72fce4 100644 --- a/src/Synapse/Synapse/Properties/Resources.Designer.cs +++ b/src/Synapse/Synapse/Properties/Resources.Designer.cs @@ -87,6 +87,24 @@ internal static string ConfirmToStopSparkStatement { } } + /// + /// Looks up a localized string similar to The specified firewall rule '{0}' already exists. Please use Set-AzSynapseFirewallRule to modify a firewall rule with these properties.. + /// + internal static string ConflictFirewallRuleName { + get { + return ResourceManager.GetString("ConflictFirewallRuleName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creating a new firewall rule in workspace '{0}' with name '{1}'.. + /// + internal static string CreatingFirewallRule { + get { + return ResourceManager.GetString("CreatingFirewallRule", resourceCulture); + } + } + /// /// Looks up a localized string similar to Creating a new Spark pool in resource group '{0}' under parent Workspace '{1}' with name '{2}'.. /// @@ -177,6 +195,15 @@ internal static string FailedToDisableSparkPoolAutoScale { } } + /// + /// Looks up a localized string similar to The specified firewall rule '{0}' does not exist. Please use Add-AzSynapseFirewallRule to create a firewall rule with these properties.. + /// + internal static string FailedToDiscoverFirewallRuleByWorkspace { + get { + return ResourceManager.GetString("FailedToDiscoverFirewallRuleByWorkspace", resourceCulture); + } + } + /// /// Looks up a localized string similar to Could not find workspace: '{0}' in any resource group in the currently selected subscription: {1}. Please ensure this workspace exists and that the current user has access to it.. /// @@ -276,6 +303,15 @@ internal static string FilePathDoesNotExist { } } + /// + /// Looks up a localized string similar to Cannot perform the requested operation because the specified firewall rule '{0}' does not exist.. + /// + internal static string FirewallRuleDoesNotExist { + get { + return ResourceManager.GetString("FirewallRuleDoesNotExist", resourceCulture); + } + } + /// /// Looks up a localized string similar to InteractiveSparkSessionTips. /// @@ -348,6 +384,15 @@ internal static string PrincipalNotFound { } } + /// + /// Looks up a localized string similar to Deleting firewall rule '{0}' in workspace '{1}'. + /// + internal static string RemovingFirewallRule { + get { + return ResourceManager.GetString("RemovingFirewallRule", resourceCulture); + } + } + /// /// Looks up a localized string similar to Deleting Spark pool '{0}' in resource group '{1}' under workspace '{2}'.. /// diff --git a/src/Synapse/Synapse/Properties/Resources.resx b/src/Synapse/Synapse/Properties/Resources.resx index 8b4a0982cf8c..85a74f160180 100644 --- a/src/Synapse/Synapse/Properties/Resources.resx +++ b/src/Synapse/Synapse/Properties/Resources.resx @@ -135,6 +135,9 @@ Creating a new workspace in resource group '{0}' with name '{1}'. + + Creating a new firewall rule in workspace '{0}' with name '{1}'. + Disabling Auto-pause for spark pool '{0}' in resource group '{1}' under parent workspace '{2}'. @@ -180,6 +183,12 @@ A workspace with name '{0}' in resource group '{1}' does not exist. Please use New-AzSynapseWorkspace to create a workspace with these properties. + + The specified firewall rule '{0}' does not exist. Please use Add-AzSynapseFirewallRule to create a firewall rule with these properties. + + + The specified firewall rule '{0}' already exists. Please use Set-AzSynapseFirewallRule to modify a firewall rule with these properties. + Failed to start session. @@ -222,6 +231,9 @@ Deleting workspace '{0}' in resource group '{1}' + + Deleting firewall rule '{0}' in workspace '{1}' + Resetting timeout for Spark session with Id: '{0}' ... @@ -279,4 +291,7 @@ Cannot perform the requested operation because the specified workspace '{0}' does not exist. + + Cannot perform the requested operation because the specified firewall rule '{0}' does not exist. + \ No newline at end of file diff --git a/src/Synapse/Synapse/help/Az.Synapse.md b/src/Synapse/Synapse/help/Az.Synapse.md index 95178054cc9f..1dfcf50392b9 100644 --- a/src/Synapse/Synapse/help/Az.Synapse.md +++ b/src/Synapse/Synapse/help/Az.Synapse.md @@ -11,6 +11,9 @@ Locale: en-US The topics in this section document the Azure PowerShell cmdlets for Azure Synapse Analytics. ## Az.Synapse Cmdlets +### [Get-AzSynapseFirewallRule](Get-AzSynapseFirewallRule.md) +Gets a Synapse Analytics Firewall Rule. + ### [Get-AzSynapseSparkJob](Get-AzSynapseSparkJob.md) Gets a Synapse Analytics Spark job. @@ -32,6 +35,9 @@ Gets a Synapse Analytics workspace. ### [Invoke-AzSynapseSparkStatement](Invoke-AzSynapseSparkStatement.md) Invokes a Synapse Analytics Spark statement. +### [New-AzSynapseFirewallRule](New-AzSynapseFirewallRule.md) +Creates a Synapse Analytics Firewall Rule. + ### [New-AzSynapseSparkPool](New-AzSynapseSparkPool.md) Creates a Synapse Analytics Spark pool. @@ -41,6 +47,9 @@ Creates a Synapse Analytics SQL pool. ### [New-AzSynapseWorkspace](New-AzSynapseWorkspace.md) Creates a Synapse Analytics workspace. +### [Remove-AzSynapseFirewallRule](Remove-AzSynapseFirewallRule.md) +Deletes a Synapse Analytics Firewall Rule. + ### [Remove-AzSynapseSparkPool](Remove-AzSynapseSparkPool.md) Deletes a Synapse Analytics Spark pool. @@ -77,6 +86,9 @@ Checks for the existence of a Synapse Analytics SQL pool. ### [Test-AzSynapseWorkspace](Test-AzSynapseWorkspace.md) Checks for the existence of a Synapse Analytics workspace. +### [Update-AzSynapseFirewallRule](Update-AzSynapseFirewallRule.md) +Updates a Synapse Analytics Firewall Rule. + ### [Update-AzSynapseSparkPool](Update-AzSynapseSparkPool.md) Updates a Synapse Analytics Spark pool. diff --git a/src/Synapse/Synapse/help/Get-AzSynapseFirewallRule.md b/src/Synapse/Synapse/help/Get-AzSynapseFirewallRule.md new file mode 100644 index 000000000000..0bf3a46553c6 --- /dev/null +++ b/src/Synapse/Synapse/help/Get-AzSynapseFirewallRule.md @@ -0,0 +1,145 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll-Help.xml +Module Name: Az.Synapse +online version: https://docs.microsoft.com/en-us/powershell/module/az.synapse/get-azsynapsefirewallrule +schema: 2.0.0 +--- + +# Get-AzSynapseFirewallRule + +## SYNOPSIS +Gets a Synapse Analytics Firewall Rule. + +## SYNTAX + +### GetByNameParameterSet (Default) +``` +Get-AzSynapseFirewallRule [-ResourceGroupName ] -WorkspaceName [-Name ] + [-DefaultProfile ] [] +``` + +### GetByParentObjectParameterSet +``` +Get-AzSynapseFirewallRule -WorkSpaceObject [-Name ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +The **Get-AzSynapseFirewallRule** cmdlet gets a Azure Synapse Analytics Firewall Rule. +If you do not specify a rule name, this cmdlet gets all rules. + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> Get-AzSynapseFirewallRule -ResourceGroupName ContosoResourceGroup -WorkspaceName ContosoWorkspace +``` + +This command gets all firewall rules under a workspace. + +### Example 2 +```powershell +PS C:\> Get-AzSynapseFirewallRule -ResourceGroupName ContosoResourceGroup -WorkspaceName ContosoWorkspace -Name ContosoFirewallRule +``` + +This command gets the firewall rule under workspace ContosoWorkspace with name ContosoFirewallRule. + +### Example 3 +```powershell +PS C:\> $ws = Get-AzSynapseWorkspace -Name ContosoWorkspace +PS C:\> $ws | Get-AzSynapseFirewallRule +``` + +This command gets all firewall rules under a workspace through pipeline. + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The firerwall rule name for the workspace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: FirewallRuleName + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +Resource group name. + +```yaml +Type: System.String +Parameter Sets: GetByNameParameterSet +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceName +Name of Synapse workspace. + +```yaml +Type: System.String +Parameter Sets: GetByNameParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkSpaceObject +workspace input object, usually passed through the pipeline. + +```yaml +Type: Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace +Parameter Sets: GetByParentObjectParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +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 + +### Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace + +## OUTPUTS + +### Microsoft.Azure.Commands.Synapse.Models.PSSynapseIpFirewallRule + +## NOTES + +## RELATED LINKS diff --git a/src/Synapse/Synapse/help/New-AzSynapseFirewallRule.md b/src/Synapse/Synapse/help/New-AzSynapseFirewallRule.md new file mode 100644 index 000000000000..3ef4737946a1 --- /dev/null +++ b/src/Synapse/Synapse/help/New-AzSynapseFirewallRule.md @@ -0,0 +1,252 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll-Help.xml +Module Name: Az.Synapse +online version: https://docs.microsoft.com/en-us/powershell/module/az.synapse/new-azsynapsefirewallrule +schema: 2.0.0 +--- + +# New-AzSynapseFirewallRule + +## SYNOPSIS +Creates a Synapse Analytics Firewall Rule. + +## SYNTAX + +### CreateByNameParameterSet (Default) +``` +New-AzSynapseFirewallRule [-ResourceGroupName ] -WorkspaceName -Name + -StartIpAddress -EndIpAddress [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] +``` + +### CreateByNameAllowAllIpParameterSet +``` +New-AzSynapseFirewallRule [-ResourceGroupName ] -WorkspaceName [-AllowAllAzureIP] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### CreateByParentObjectParameterSet +``` +New-AzSynapseFirewallRule -WorkspaceObject -Name -StartIpAddress + -EndIpAddress [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +### CreateByParentObjectAllowAllIpParameterSet +``` +New-AzSynapseFirewallRule -WorkspaceObject [-AllowAllAzureIP] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **New-AzSynapseFirewallRule** cmdlet creates an Azure Synapse Analytics Firewall Rule. + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> New-AzSynapseFirewallRule -WorkspaceName ContosoWorkspace -Name ContosoFirewallRule -StartIpAddress "0.0.0.0" -EndIpAssdress "255.255.255.255" +``` + +This command creates firewall rule named ContosoFirewallRule under workspace ContosoWorkspace with name ContosoFirewallRule. + +### Example 2 +```powershell +PS C:\> $ws = Get-AzSynapseWorkspace -Name ContosoWorkspace +PS C:\> $ws | New-AzSynapseFirewallRule -Name ContosoFirewallRule -StartIpAddress "0.0.0.0" -EndIpAssdress "255.255.255.255" +``` + +This command creates firewall rule named ContosoFirewallRule under a workspace through pipeline. + +### Example 3 +```powershell +PS C:\> New-AzSynapseFirewallRule -WorkspaceName ContosoWorkspace -AllowAllAzureIPs +``` + +This command creates firewall rule that allow all azure ips under a workspace. + +## PARAMETERS + +### -AllowAllAzureIP +Creates a special firewall rule that permits all Azure IPs to have access. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: CreateByNameAllowAllIpParameterSet, CreateByParentObjectAllowAllIpParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AsJob +Run cmdlet in the background + +```yaml +Type: System.Management.Automation.SwitchParameter +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: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndIpAddress +The end IP address of the firewall rule. +Must be IPv4 format. +Must be greater than or equal to startIpAddress. + +```yaml +Type: System.String +Parameter Sets: CreateByNameParameterSet, CreateByParentObjectParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The firerwall rule name for the workspace. + +```yaml +Type: System.String +Parameter Sets: CreateByNameParameterSet, CreateByParentObjectParameterSet +Aliases: FirewallRuleName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +Resource group name. + +```yaml +Type: System.String +Parameter Sets: CreateByNameParameterSet, CreateByNameAllowAllIpParameterSet +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StartIpAddress +The start IP address of the firewall rule. +Must be IPv4 format. + +```yaml +Type: System.String +Parameter Sets: CreateByNameParameterSet, CreateByParentObjectParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceName +Name of Synapse workspace. + +```yaml +Type: System.String +Parameter Sets: CreateByNameParameterSet, CreateByNameAllowAllIpParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceObject +workspace input object, usually passed through the pipeline. + +```yaml +Type: Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace +Parameter Sets: CreateByParentObjectParameterSet, CreateByParentObjectAllowAllIpParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.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: System.Management.Automation.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 + +### Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace + +## OUTPUTS + +### Microsoft.Azure.Commands.Synapse.Models.PSSynapseIpFirewallRule + +## NOTES + +## RELATED LINKS diff --git a/src/Synapse/Synapse/help/New-AzSynapseWorkspace.md b/src/Synapse/Synapse/help/New-AzSynapseWorkspace.md index 12d4e5f2348d..d94862ca53f7 100644 --- a/src/Synapse/Synapse/help/New-AzSynapseWorkspace.md +++ b/src/Synapse/Synapse/help/New-AzSynapseWorkspace.md @@ -15,8 +15,8 @@ Creates a Synapse Analytics workspace. ``` New-AzSynapseWorkspace -ResourceGroupName -Name -Location [-Tag ] -DefaultDataLakeStorageAccountName -DefaultDataLakeStorageFilesystem - -SqlAdministratorLoginCredential [-ManagedVirtualNetwork ] [-DisallowAllConnection] - [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] [] + -SqlAdministratorLoginCredential [-ManagedVirtualNetwork ] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -95,21 +95,6 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -DisallowAllConnection -Azure Synapse Studio and other client tools will only be able to connect to the workspace endpoints if this parameter is not present. Connections from specific IP addresses or all Azure services can be allowed/disallowed after the workspace is provisioned. - -```yaml -Type: System.Management.Automation.SwitchParameter -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -Location Azure region where the resource should be created. diff --git a/src/Synapse/Synapse/help/Remove-AzSynapseFirewallRule.md b/src/Synapse/Synapse/help/Remove-AzSynapseFirewallRule.md new file mode 100644 index 000000000000..5980b8cf8138 --- /dev/null +++ b/src/Synapse/Synapse/help/Remove-AzSynapseFirewallRule.md @@ -0,0 +1,199 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll-Help.xml +Module Name: Az.Synapse +online version: https://docs.microsoft.com/en-us/powershell/module/az.synapse/remove-azsynapsefirewallrule +schema: 2.0.0 +--- + +# Remove-AzSynapseFirewallRule + +## SYNOPSIS +Deletes a Synapse Analytics Firewall Rule. + +## SYNTAX + +### DeleteByNameParameterSet (Default) +``` +Remove-AzSynapseFirewallRule [-ResourceGroupName ] -WorkspaceName -Name [-PassThru] + [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +### DeleteByParentObjectParameterSet +``` +Remove-AzSynapseFirewallRule -Name -WorkspaceObject [-PassThru] [-AsJob] + [-DefaultProfile ] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION +The **Remove-AzSynapseFirewallRule** cmdlet permanently deletes an Azure Synapse Analytics Firewall Rule. + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> Remove-AzSynapseFirewallRule -ResourceGroupName ContosoResourceGroup -WorkspaceName ContosoWorkspace -Name ContosoFirewallRule +``` + +This command deletes firewall rule named ContosoFirewallRule under workspace ContosoWorkspace with name ContosoFirewallRule. + +### Example 2 +```powershell +PS C:\> $ws = Get-AzSynapseWorkspace -Name ContosoWorkspace +PS C:\> $ws | Remove-AzSynapseFirewallRule -Name ContosoFirewallRule +``` + +This command deletes firewall rule named ContosoFirewallRule under a workspace through pipeline. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```yaml +Type: System.Management.Automation.SwitchParameter +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: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The firerwall rule name for the workspace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: FirewallRuleName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +This Cmdlet does not return an object by default. +If this switch is specified, it returns true if successful. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +Resource group name. + +```yaml +Type: System.String +Parameter Sets: DeleteByNameParameterSet +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceName +Name of Synapse workspace. + +```yaml +Type: System.String +Parameter Sets: DeleteByNameParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceObject +workspace input object, usually passed through the pipeline. + +```yaml +Type: Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace +Parameter Sets: DeleteByParentObjectParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.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: System.Management.Automation.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 + +### Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace + +## OUTPUTS + +### System.Boolean + +## NOTES + +## RELATED LINKS diff --git a/src/Synapse/Synapse/help/Update-AzSynapseFirewallRule.md b/src/Synapse/Synapse/help/Update-AzSynapseFirewallRule.md new file mode 100644 index 000000000000..fafd418ddc4d --- /dev/null +++ b/src/Synapse/Synapse/help/Update-AzSynapseFirewallRule.md @@ -0,0 +1,218 @@ +--- +external help file: Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll-Help.xml +Module Name: Az.Synapse +online version: https://docs.microsoft.com/en-us/powershell/module/az.synapse/update-azsynapsefirewallrule +schema: 2.0.0 +--- + +# Update-AzSynapseFirewallRule + +## SYNOPSIS +Updates a Synapse Analytics Firewall Rule. + +## SYNTAX + +### UpdateByNameParameterSet (Default) +``` +Update-AzSynapseFirewallRule [-ResourceGroupName ] -WorkspaceName -Name + [-StartIpAddress ] [-EndIpAddress ] [-AsJob] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] +``` + +### UpdateByParentObjectParameterSet +``` +Update-AzSynapseFirewallRule -WorkspaceObject -Name [-StartIpAddress ] + [-EndIpAddress ] [-AsJob] [-DefaultProfile ] [-WhatIf] [-Confirm] + [] +``` + +## DESCRIPTION +The **Update-AzSynapseFirewallRule** cmdlet modifys an Azure Synapse Analytics Firewall Rule. + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> Update-AzSynapseFirewallRule -ResourceGroupName ContosoResourceGroup -WorkspaceName ContosoWorkspace -Name ContosoFirewallRule -StartIpAddress "0.0.0.0" -EndIpAssdress "255.255.255.255" +``` + +This command updates firewall rule named ContosoFirewallRule under workspace ContosoWorkspace with name ContosoFirewallRule. + +### Example 2 +```powershell +PS C:\> $ws = Get-AzSynapseWorkspace -Name ContosoWorkspace +PS C:\> $ws | Update-AzSynapseFirewallRule -Name ContosoFirewallRule -StartIpAddress "0.0.0.0" -EndIpAssdress "255.255.255.255" +``` + +This command updates firewall rule named ContosoFirewallRule under a workspace through pipeline. + +## PARAMETERS + +### -AsJob +Run cmdlet in the background + +```yaml +Type: System.Management.Automation.SwitchParameter +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: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer +Parameter Sets: (All) +Aliases: AzContext, AzureRmContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndIpAddress +The end IP address of the firewall rule. +Must be IPv4 format. +Must be greater than or equal to startIpAddress. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The firerwall rule name for the workspace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: FirewallRuleName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +Resource group name. + +```yaml +Type: System.String +Parameter Sets: UpdateByNameParameterSet +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StartIpAddress +The start IP address of the firewall rule. +Must be IPv4 format. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceName +Name of Synapse workspace. + +```yaml +Type: System.String +Parameter Sets: UpdateByNameParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceObject +workspace input object, usually passed through the pipeline. + +```yaml +Type: Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace +Parameter Sets: UpdateByParentObjectParameterSet +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.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: System.Management.Automation.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 + +### Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace + +## OUTPUTS + +### Microsoft.Azure.Commands.Synapse.Models.PSSynapseIpFirewallRule + +## NOTES + +## RELATED LINKS diff --git a/src/Synapse/Synapse/help/Update-AzSynapseWorkspace.md b/src/Synapse/Synapse/help/Update-AzSynapseWorkspace.md index 15e496acf589..78915549b422 100644 --- a/src/Synapse/Synapse/help/Update-AzSynapseWorkspace.md +++ b/src/Synapse/Synapse/help/Update-AzSynapseWorkspace.md @@ -14,20 +14,23 @@ Updates a Synapse Analytics workspace. ### SetByNameParameterSet (Default) ``` -Update-AzSynapseWorkspace [-ResourceGroupName ] [-Name ] [-Tag ] [-AsJob] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] +Update-AzSynapseWorkspace [-ResourceGroupName ] [-Name ] [-Tag ] + [-SqlAdministratorLoginPassword ] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] ``` ### SetByInputObjectParameterSet ``` -Update-AzSynapseWorkspace -InputObject [-Tag ] [-AsJob] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] +Update-AzSynapseWorkspace -InputObject [-Tag ] + [-SqlAdministratorLoginPassword ] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] ``` ### SetByResourceIdParameterSet ``` -Update-AzSynapseWorkspace -ResourceId [-Tag ] [-AsJob] - [-DefaultProfile ] [-WhatIf] [-Confirm] [] +Update-AzSynapseWorkspace -ResourceId [-Tag ] + [-SqlAdministratorLoginPassword ] [-AsJob] [-DefaultProfile ] [-WhatIf] + [-Confirm] [] ``` ## DESCRIPTION @@ -149,6 +152,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -SqlAdministratorLoginPassword +The new SQL administrator password for the workspace. + +```yaml +Type: System.Security.SecureString +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Tag A string,string dictionary of tags associated with the resource.