Skip to content

Commit 218d652

Browse files
ariklinArik RiklinVeryEarlywyunchi-ms
authored
Introducing Az.Security SecuritySolution cmdlets (#18022)
* Introducing SecurityTopologies cmdlets * Update ChangeLog.md * Update ChangeLog.md * Change cmdlet name to Get-AzSecurityTopology * remove AllowedConnections * change name * fix conflicy * fix conflict * Update ChangeLog.md * Introducing Az.Security AllowedConnections cmdlets * update change.log * remove SecurityTopology * fix version * Fix comments * fix location * fix comment * fix comment * fix version number * Create Adaptive Application Control API cmdlets * Create Adaptive Application Control API cmdlets * fix1 * fix2 * Add back comment end token * Introducing ScurityAdaptiveNetworkHardening cmdlets * Update Security.csproj * Update ChangeLog.md * 1 * Introducing Az.Security AdaptiveNetworkHardening cmdlets * Introducing Az.Security AdaptiveNetworkHardening cmdlets * change to a singular noun for the parameter name * change to a singular noun for the parameter name * change to a singular noun for the parameter name2 * implement ShouldProcess * fix1 * Update JIT help * remove files * revert ChangeLog.md * Security-Solutions * Introducing Az.Security SecuritySolution cmdlets * Update ChangeLog.md * Delete README.md Co-authored-by: Arik Riklin <[email protected]> Co-authored-by: Yabo Hu <[email protected]> Co-authored-by: Yunchi Wang <[email protected]>
1 parent 0b9b9c6 commit 218d652

File tree

9 files changed

+386
-2
lines changed

9 files changed

+386
-2
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// ----------------------------------------------------------------------------------
2+
//
3+
// Copyright Microsoft Corporation
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
// ----------------------------------------------------------------------------------
14+
15+
using Microsoft.Azure.Commands.ScenarioTest;
16+
using Microsoft.Azure.ServiceManagement.Common.Models;
17+
using Microsoft.WindowsAzure.Commands.ScenarioTest;
18+
using Xunit;
19+
20+
namespace Microsoft.Azure.Commands.Security.Test.ScenarioTests
21+
{
22+
public class SecuritySolutionTests
23+
{
24+
private readonly XunitTracingInterceptor _logger;
25+
26+
public SecuritySolutionTests(Xunit.Abstractions.ITestOutputHelper output)
27+
{
28+
_logger = new XunitTracingInterceptor(output);
29+
XunitTracingInterceptor.AddToContext(_logger);
30+
TestExecutionHelpers.SetUpSessionAndProfile();
31+
}
32+
33+
[Fact]
34+
[Trait(Category.AcceptanceType, Category.CheckIn)]
35+
public void GetSubscriptionScope()
36+
{
37+
TestController.NewInstance.RunPowerShellTest(_logger, "Get-AzSecuritySolution-SubscriptionScope");
38+
}
39+
}
40+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# ----------------------------------------------------------------------------------
2+
#
3+
# Copyright Microsoft Corporation
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
# Unless required by applicable law or agreed to in writing, software
9+
# distributed under the License is distributed on an "AS IS" BASIS,
10+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
# See the License for the specific language governing permissions and
12+
# limitations under the License.
13+
# ----------------------------------------------------------------------------------
14+
15+
<#
16+
.SYNOPSIS
17+
Get discovered security solutions on a subscription scope
18+
#>
19+
function Get-AzSecuritySolution-SubscriptionScope
20+
{
21+
$SecuritySolution = Get-AzSecuritySolution
22+
Validate-SecuritySolution $SecuritySolution
23+
}
24+
25+
<#
26+
.SYNOPSIS
27+
Validates a list of security discoveredSecuritySolutions
28+
#>
29+
function Validate-SecuritySolution
30+
{
31+
param($SecuritySolution)
32+
33+
Assert-True { $SecuritySolution.Count -gt 0 }
34+
35+
Foreach($SecuritySolution in $SecuritySolution)
36+
{
37+
Validate-SecuritySolution $SecuritySolution
38+
}
39+
}
40+
41+
<#
42+
.SYNOPSIS
43+
Validates a single SecuritySolution
44+
#>
45+
function Validate-SecuritySolution
46+
{
47+
param($SecuritySolution)
48+
49+
Assert-NotNull $SecuritySolution
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{
2+
"Entries": [
3+
{
4+
"RequestUri": "/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/providers/Microsoft.Security/securitySolutions?api-version=2020-01-01",
5+
"EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNjdiYzYwNGItNTRiMi00Yzc4LWE3YmEtNzI1MDQ5MjBhMzE5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU2VjdXJpdHkvc2VjdXJpdHlTb2x1dGlvbnM/YXBpLXZlcnNpb249MjAyMC0wMS0wMQ==",
6+
"RequestMethod": "GET",
7+
"RequestBody": "",
8+
"RequestHeaders": {
9+
"x-ms-client-request-id": [
10+
"f378fdcf-41b5-4409-99e7-69c0c811a745"
11+
],
12+
"Accept-Language": [
13+
"en-US"
14+
],
15+
"User-Agent": [
16+
"FxVersion/4.700.22.16002",
17+
"OSName/Windows",
18+
"OSVersion/Microsoft.Windows.10.0.22000",
19+
"Microsoft.Azure.Management.Security.SecurityCenterClient/3.0.0.0"
20+
]
21+
},
22+
"ResponseHeaders": {
23+
"Cache-Control": [
24+
"no-cache"
25+
],
26+
"Pragma": [
27+
"no-cache"
28+
],
29+
"x-ms-original-request-ids": [
30+
"",
31+
"",
32+
""
33+
],
34+
"x-ms-ratelimit-remaining-subscription-resource-requests": [
35+
"749"
36+
],
37+
"x-ms-request-id": [
38+
"a10d7f95-216c-4532-aa03-554944621480"
39+
],
40+
"x-ms-correlation-request-id": [
41+
"a10d7f95-216c-4532-aa03-554944621480"
42+
],
43+
"x-ms-routing-request-id": [
44+
"UAECENTRAL:20220501T112827Z:a10d7f95-216c-4532-aa03-554944621480"
45+
],
46+
"Strict-Transport-Security": [
47+
"max-age=31536000; includeSubDomains"
48+
],
49+
"X-Content-Type-Options": [
50+
"nosniff"
51+
],
52+
"Date": [
53+
"Sun, 01 May 2022 11:28:27 GMT"
54+
],
55+
"Content-Type": [
56+
"application/json; charset=utf-8"
57+
],
58+
"Expires": [
59+
"-1"
60+
],
61+
"Content-Length": [
62+
"6739"
63+
]
64+
},
65+
"ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"Va\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"Good\",\r\n \"template\": \"qualys.qualysAgent\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"http://www.qualys.com/\",\r\n \"creationDate\": \"2017-10-09T12:37:15.9527562Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"67931ECFB2B86BFFE512B04C745D307FE7F15FF4\",\r\n \"configurations\": {\r\n \"AutoUpdate\": false\r\n }\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/QualysLICTest/providers/Microsoft.Security/locations/centralus/securitySolutions/QualysLICTest\",\r\n \"name\": \"QualysLICTest\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"westcentralus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"SaasWaf\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"Good\",\r\n \"template\": \"Microsoft.ApplicationGateway-ARM\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"https://portal.azure.com#resource/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/OfriWafTest/providers/Microsoft.Network/applicationGateways/OfriWafTest/overview\",\r\n \"creationDate\": \"2020-10-05T11:01:57.6339395Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"9C29D374728B41DC6923D87B1E159EFCB0BF2768\"\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/OfriWafTest/providers/Microsoft.Security/locations/centralus/securitySolutions/OfriWafTest\",\r\n \"name\": \"OfriWafTest\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"SaasWaf\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"UnReported\",\r\n \"template\": \"microsoft.ApplicationGateway-ARM\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"https://portal.azure.com#resource/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/waf155/providers/Microsoft.Network/applicationGateways/waf155vm/overview\",\r\n \"creationDate\": \"2020-07-22T11:45:47.9115946Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"2C8995EFB1500186BC1958C032CC360BAC33C5BC\"\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/waf155/providers/Microsoft.Security/locations/centralus/securitySolutions/waf155vm\",\r\n \"name\": \"waf155vm\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"westcentralus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"SaasWaf\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"Good\",\r\n \"template\": \"microsoft.ApplicationGateway-ARM\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"https://portal.azure.com#resource/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/solutionsProdTest/providers/Microsoft.Network/applicationGateways/msWafProdTest/overview\",\r\n \"creationDate\": \"2020-12-22T12:36:21.3564505Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"DF6A40AD0A3A9FEDA4635882E1D15AEF63E2CAF9\"\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/solutionsProdTest/providers/Microsoft.Security/locations/centralus/securitySolutions/msWafProdTest\",\r\n \"name\": \"msWafProdTest\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"SaasWaf\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"Good\",\r\n \"template\": \"microsoft.ApplicationGateway-ARM\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"https://portal.azure.com#resource/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/waf-rg2/providers/Microsoft.Network/applicationGateways/Ofri-WAF/overview\",\r\n \"creationDate\": \"2021-08-16T15:07:07.0095098Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"8E21D225069917B73D65FB806785076F443F4530\"\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/waf-rg2/providers/Microsoft.Security/locations/centralus/securitySolutions/Ofri-WAF\",\r\n \"name\": \"Ofri-WAF\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"Va\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"UnReported\",\r\n \"template\": \"qualys.qualysAgent\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"http://www.qualys.com/\",\r\n \"creationDate\": \"2021-03-09T10:40:18.7014776Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"FDE9EB85DB07E8354B3AFF34DA84B0929F14F222\",\r\n \"configurations\": {\r\n \"AutoUpdate\": false\r\n }\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/tryNomisolutions/providers/Microsoft.Security/locations/centralus/securitySolutions/DedicatedEHTest3\",\r\n \"name\": \"DedicatedEHTest3\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"westcentralus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"Va\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"Good\",\r\n \"template\": \"qualys.qualysAgent\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"http://www.qualys.com/\",\r\n \"creationDate\": \"2017-10-01T14:51:37.5457917Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"3120660E864F689F9166DB122386B71E27C2D565\",\r\n \"configurations\": {\r\n \"AutoUpdate\": false\r\n }\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/QualysLinuxTest/providers/Microsoft.Security/locations/centralus/securitySolutions/Qualys1\",\r\n \"name\": \"Qualys1\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"westcentralus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"Va\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"NotReporting\",\r\n \"template\": \"rapid7.insightplatform\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"\",\r\n \"creationDate\": \"2018-06-11T13:24:27.1314378Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"1A54F1A20AB90FDAD835897B4A413B1F40473DD9\",\r\n \"configurations\": {\r\n \"AutoUpdate\": false\r\n }\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/Rapid7Va/providers/Microsoft.Security/locations/centralus/securitySolutions/Rapid7VaRome3\",\r\n \"name\": \"Rapid7VaRome3\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"centralus\"\r\n },\r\n {\r\n \"properties\": {\r\n \"securityFamily\": \"SaasWaf\",\r\n \"integrationLevel\": \"SemiIntegrated\",\r\n \"protectionStatus\": \"Good\",\r\n \"template\": \"microsoft.ApplicationGateway-ARM\",\r\n \"protectedResourcesStates\": [],\r\n \"protectedResourcesTypes\": [],\r\n \"managementUrl\": \"https://portal.azure.com#resource/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/MatanWafTest/providers/Microsoft.Network/applicationGateways/MatanWAFtEST/overview\",\r\n \"creationDate\": \"2021-08-16T15:06:32.3284944Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"clusterId\": \"B95CAE8386CD79955A26A6E2AF0D62B7331D17D5\"\r\n },\r\n \"id\": \"/subscriptions/67bc604b-54b2-4c78-a7ba-72504920a319/resourceGroups/MatanWafTest/providers/Microsoft.Security/locations/centralus/securitySolutions/MatanWAFtEST\",\r\n \"name\": \"MatanWAFtEST\",\r\n \"type\": \"Microsoft.Security/locations/securitySolutions\",\r\n \"location\": \"eastus2\"\r\n }\r\n ]\r\n}",
66+
"StatusCode": 200
67+
}
68+
],
69+
"Names": {},
70+
"Variables": {
71+
"SubscriptionId": "67bc604b-54b2-4c78-a7ba-72504920a319"
72+
}
73+
}

src/Security/Security/Az.Security.psd1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ FunctionsToExport = @()
7575

7676
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
7777

78-
CmdletsToExport = 'Get-AzSecuritySolutionsReferenceData', 'New-AzAlertsSuppressionRuleScope', 'Get-AzAlertsSuppressionRule', 'Set-AzAlertsSuppressionRule', 'Remove-AzAlertsSuppressionRule',
78+
CmdletsToExport = 'Get-AzSecuritySolution', 'Get-AzSecuritySolutionsReferenceData', 'New-AzAlertsSuppressionRuleScope', 'Get-AzAlertsSuppressionRule', 'Set-AzAlertsSuppressionRule', 'Remove-AzAlertsSuppressionRule',
79+
7980
'Get-AzSecurityAlert', 'Set-AzSecurityAlert',
8081
'Get-AzSecurityAutoProvisioningSetting',
8182
'Set-AzSecurityAutoProvisioningSetting', 'Get-AzSecurityCompliance',
@@ -191,4 +192,3 @@ PrivateData = @{
191192
# DefaultCommandPrefix = ''
192193

193194
}
194-

src/Security/Security/ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
-->
2020

2121
## Upcoming Release
22+
* Added new cmdlet: `Get-AzSecuritySolution`
2223
* Added Alerts Suppression Rules to cmdlets:
2324
`Get-AlertsSuppressionRule`
2425
`Remove-AlertsSuppressionRule`
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
// ----------------------------------------------------------------------------------
2+
//
3+
// Copyright Microsoft Corporation
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
// ------------------------------------
14+
15+
using Commands.Security;
16+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
17+
using Microsoft.Azure.Commands.Security.Common;
18+
using Microsoft.Azure.Commands.Security.Models.SecuritySolutions;
19+
using Microsoft.Azure.Commands.SecurityCenter.Common;
20+
using System.Linq;
21+
using System.Management.Automation;
22+
23+
namespace Microsoft.Azure.Commands.Security.Cmdlets.SecuritySolution
24+
{
25+
[Cmdlet(VerbsCommon.Get, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "SecuritySolution", DefaultParameterSetName = ParameterSetNames.SubscriptionScope), OutputType(typeof(PSSecuritySecuritySolution))]
26+
public class GetSecuritySolution : SecurityCenterCmdletBase
27+
{
28+
[Parameter(ParameterSetName = ParameterSetNames.ResourceGroupLevelResource, Mandatory = true, HelpMessage = ParameterHelpMessages.ResourceGroupName)]
29+
[ValidateNotNullOrEmpty]
30+
public string ResourceGroupName { get; set; }
31+
32+
[Parameter(ParameterSetName = ParameterSetNames.ResourceGroupLevelResource, Mandatory = true, HelpMessage = ParameterHelpMessages.ResourceName)]
33+
[ValidateNotNullOrEmpty]
34+
public string Name { get; set; }
35+
36+
[Parameter(ParameterSetName = ParameterSetNames.ResourceGroupLevelResource, Mandatory = true, HelpMessage = ParameterHelpMessages.Location)]
37+
[ValidateNotNullOrEmpty]
38+
[LocationCompleter("Microsoft.Security/SecuritySolutions")]
39+
public string Location { get; set; }
40+
41+
[Parameter(ParameterSetName = ParameterSetNames.ResourceId, Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = ParameterHelpMessages.ResourceId)]
42+
[ValidateNotNullOrEmpty]
43+
public string ResourceId { get; set; }
44+
45+
public override void ExecuteCmdlet()
46+
{
47+
switch (ParameterSetName)
48+
{
49+
case ParameterSetNames.SubscriptionScope:
50+
var ssss = SecurityCenterClient.SecuritySolutions.ListWithHttpMessagesAsync().GetAwaiter().GetResult().Body;
51+
WriteObject(ssss.ConvertToPSType(), enumerateCollection: true);
52+
break;
53+
case ParameterSetNames.ResourceGroupLevelResource:
54+
SecurityCenterClient.AscLocation = SecurityCenterClient.Locations.ListWithHttpMessagesAsync().GetAwaiter().GetResult().Body.First().Name;
55+
56+
var sss = SecurityCenterClient.SecuritySolutions.GetWithHttpMessagesAsync(ResourceGroupName, Name).GetAwaiter().GetResult().Body;
57+
WriteObject(sss.ConvertToPSType(), enumerateCollection: false);
58+
break;
59+
case ParameterSetNames.ResourceId:
60+
SecurityCenterClient.AscLocation = AzureIdUtilities.GetResourceLocation(ResourceId);
61+
62+
sss = SecurityCenterClient.SecuritySolutions.GetWithHttpMessagesAsync(AzureIdUtilities.GetResourceGroup(ResourceId), AzureIdUtilities.GetResourceName(ResourceId)).GetAwaiter().GetResult().Body;
63+
WriteObject(sss.ConvertToPSType(), enumerateCollection: false);
64+
break;
65+
default:
66+
throw new PSInvalidOperationException();
67+
}
68+
}
69+
}
70+
}

0 commit comments

Comments
 (0)