From 4087ffcfe357072a21fd62f7c0f02e3ffa94e328 Mon Sep 17 00:00:00 2001 From: Rogier Dijkman <40334679+azurekid@users.noreply.github.com> Date: Fri, 28 Feb 2025 16:19:59 +0000 Subject: [PATCH 1/3] Add argument completers for ResourceGroupName and WorkspaceName in workspace manager functions --- src/Public/Add-AzWorkspaceManager.ps1 | 1 + src/Public/Add-AzWorkspaceManagerAssignment.ps1 | 7 +++++-- src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 | 6 +++++- src/Public/Add-AzWorkspaceManagerGroup.ps1 | 6 +++++- src/Public/Add-AzWorkspaceManagerMember.ps1 | 10 ++++++++-- src/Public/Get-AzWorkspaceManagerAssignment.ps1 | 11 +++++++---- src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 | 7 +++++-- src/Public/Get-AzWorkspaceManagerGroup.ps1 | 9 ++++++--- src/Public/Get-AzWorkspaceManagerItem.ps1 | 8 ++++++-- src/Public/Get-AzWorkspaceManagerMember.ps1 | 8 ++++++-- src/Public/Remove-AzWorkspaceManagerAssignment.ps1 | 6 +++++- src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 | 9 +++++++-- src/Public/Remove-AzWorkspaceManagerGroup.ps1 | 8 ++++++-- src/Public/Remove-AzWorkspaceManagerMember.ps1 | 8 ++++++-- 14 files changed, 78 insertions(+), 26 deletions(-) diff --git a/src/Public/Add-AzWorkspaceManager.ps1 b/src/Public/Add-AzWorkspaceManager.ps1 index c0bdb18..c0d667d 100644 --- a/src/Public/Add-AzWorkspaceManager.ps1 +++ b/src/Public/Add-AzWorkspaceManager.ps1 @@ -7,6 +7,7 @@ function Add-AzWorkspaceManager { [string]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipeline = $true)] diff --git a/src/Public/Add-AzWorkspaceManagerAssignment.ps1 b/src/Public/Add-AzWorkspaceManagerAssignment.ps1 index 0392a38..32444ee 100644 --- a/src/Public/Add-AzWorkspaceManagerAssignment.ps1 +++ b/src/Public/Add-AzWorkspaceManagerAssignment.ps1 @@ -4,10 +4,13 @@ function Add-AzWorkspaceManagerAssignment { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] [ValidateNotNullOrEmpty()] - [string]$WorkspaceName, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [ValidateNotNullOrEmpty()] + [ValidateNotNullOrEmpty()][Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $true, ValueFromPipeline = $false)] diff --git a/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 index 1e43834..10fcd41 100644 --- a/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 @@ -4,10 +4,14 @@ function Add-AzWorkspaceManagerAssignmentJob { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] - [string]$WorkspaceName, # //TODO: Add validation for workspace name + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipeline = $false)] diff --git a/src/Public/Add-AzWorkspaceManagerGroup.ps1 b/src/Public/Add-AzWorkspaceManagerGroup.ps1 index 4b875c5..c20cd4d 100644 --- a/src/Public/Add-AzWorkspaceManagerGroup.ps1 +++ b/src/Public/Add-AzWorkspaceManagerGroup.ps1 @@ -4,10 +4,14 @@ function Add-AzWorkspaceManagerGroup { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $true, ValueFromPipeline = $false)] diff --git a/src/Public/Add-AzWorkspaceManagerMember.ps1 b/src/Public/Add-AzWorkspaceManagerMember.ps1 index fb5ac2f..ed3c425 100644 --- a/src/Public/Add-AzWorkspaceManagerMember.ps1 +++ b/src/Public/Add-AzWorkspaceManagerMember.ps1 @@ -4,13 +4,19 @@ function Add-AzWorkspaceManagerMember { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $false)] - [array]$ResourceId, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][array]$ResourceId, [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [ValidatePattern('^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$', ErrorMessage="It is not a valid GUID")] diff --git a/src/Public/Get-AzWorkspaceManagerAssignment.ps1 b/src/Public/Get-AzWorkspaceManagerAssignment.ps1 index c3aea1d..e43ad0b 100644 --- a/src/Public/Get-AzWorkspaceManagerAssignment.ps1 +++ b/src/Public/Get-AzWorkspaceManagerAssignment.ps1 @@ -1,13 +1,16 @@ function Get-AzWorkspaceManagerAssignment { [cmdletbinding()] param ( - [Parameter(Mandatory = $false, ValueFromPipeline = $true)] + [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, - [Parameter(Mandatory = $false, ValueFromPipeline = $true)] - [ValidateNotNullOrEmpty()] + [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipeline = $true)] diff --git a/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 index b79d9ac..6791a92 100644 --- a/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 @@ -4,10 +4,13 @@ function Get-AzWorkspaceManagerAssignmentJob { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [ValidateNotNullOrEmpty()] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] diff --git a/src/Public/Get-AzWorkspaceManagerGroup.ps1 b/src/Public/Get-AzWorkspaceManagerGroup.ps1 index 78851e8..eb0a31c 100644 --- a/src/Public/Get-AzWorkspaceManagerGroup.ps1 +++ b/src/Public/Get-AzWorkspaceManagerGroup.ps1 @@ -3,11 +3,14 @@ function Get-AzWorkspaceManagerGroup { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [ValidateNotNullOrEmpty()] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] diff --git a/src/Public/Get-AzWorkspaceManagerItem.ps1 b/src/Public/Get-AzWorkspaceManagerItem.ps1 index f8d167f..b902214 100644 --- a/src/Public/Get-AzWorkspaceManagerItem.ps1 +++ b/src/Public/Get-AzWorkspaceManagerItem.ps1 @@ -3,10 +3,14 @@ function Get-AzWorkspaceManagerItem { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] diff --git a/src/Public/Get-AzWorkspaceManagerMember.ps1 b/src/Public/Get-AzWorkspaceManagerMember.ps1 index 13ef340..0d52d8f 100644 --- a/src/Public/Get-AzWorkspaceManagerMember.ps1 +++ b/src/Public/Get-AzWorkspaceManagerMember.ps1 @@ -3,10 +3,14 @@ function Get-AzWorkspaceManagerMember { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] diff --git a/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 b/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 index 2b48081..5aa169e 100644 --- a/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 @@ -4,9 +4,13 @@ function Remove-AzWorkspaceManagerAssignment { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] diff --git a/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 index 9ac5af4..2d04a45 100644 --- a/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 @@ -2,10 +2,15 @@ function Remove-AzWorkspaceManagerAssignmentJob { [cmdletbinding(SupportsShouldProcess = $true, ConfirmImpact = 'High')] param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [ValidateNotNullOrEmpty()] + [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] diff --git a/src/Public/Remove-AzWorkspaceManagerGroup.ps1 b/src/Public/Remove-AzWorkspaceManagerGroup.ps1 index b05c785..244bb3c 100644 --- a/src/Public/Remove-AzWorkspaceManagerGroup.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerGroup.ps1 @@ -3,10 +3,14 @@ function Remove-AzWorkspaceManagerGroup { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] diff --git a/src/Public/Remove-AzWorkspaceManagerMember.ps1 b/src/Public/Remove-AzWorkspaceManagerMember.ps1 index b5b2899..a52bfa0 100644 --- a/src/Public/Remove-AzWorkspaceManagerMember.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerMember.ps1 @@ -3,10 +3,14 @@ function Remove-AzWorkspaceManagerMember { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$WorkspaceName, + [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$WorkspaceName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] From c2706a7780ab0d39e9bd794f01a7f65077f2cc1d Mon Sep 17 00:00:00 2001 From: Rogier Dijkman <40334679+azurekid@users.noreply.github.com> Date: Wed, 5 Mar 2025 20:21:18 +0100 Subject: [PATCH 2/3] updated parameters --- src/Private/Get-LogAnalyticsWorkspace.ps1 | 6 +++++- src/Public/Add-AzWorkspaceManagerAssignment.ps1 | 4 +++- src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 | 4 +++- src/Public/Add-AzWorkspaceManagerGroup.ps1 | 4 +++- src/Public/Get-AzWorkspaceManager.ps1 | 7 +++++-- src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 | 4 +++- src/Public/Get-AzWorkspaceManagerGroup.ps1 | 1 - src/Public/Remove-AzWorkspaceManager.ps1 | 6 +++++- src/Public/Remove-AzWorkspaceManagerAssignment.ps1 | 4 +++- src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 | 4 +++- src/Public/Remove-AzWorkspaceManagerMember.ps1 | 4 +++- 11 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/Private/Get-LogAnalyticsWorkspace.ps1 b/src/Private/Get-LogAnalyticsWorkspace.ps1 index 5bf73fc..dc78779 100644 --- a/src/Private/Get-LogAnalyticsWorkspace.ps1 +++ b/src/Private/Get-LogAnalyticsWorkspace.ps1 @@ -14,9 +14,13 @@ function Get-LogAnalyticsWorkspace { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$Name, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName ) diff --git a/src/Public/Add-AzWorkspaceManagerAssignment.ps1 b/src/Public/Add-AzWorkspaceManagerAssignment.ps1 index 32444ee..fef42e4 100644 --- a/src/Public/Add-AzWorkspaceManagerAssignment.ps1 +++ b/src/Public/Add-AzWorkspaceManagerAssignment.ps1 @@ -23,7 +23,9 @@ function Add-AzWorkspaceManagerAssignment { [array]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [array]$ResourceId + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][array]$ResourceId ) begin { diff --git a/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 index 10fcd41..c6686d0 100644 --- a/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 @@ -19,7 +19,9 @@ function Add-AzWorkspaceManagerAssignmentJob { [string]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [array]$ResourceId + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][array]$ResourceId ) begin { diff --git a/src/Public/Add-AzWorkspaceManagerGroup.ps1 b/src/Public/Add-AzWorkspaceManagerGroup.ps1 index c20cd4d..34a5da3 100644 --- a/src/Public/Add-AzWorkspaceManagerGroup.ps1 +++ b/src/Public/Add-AzWorkspaceManagerGroup.ps1 @@ -26,7 +26,9 @@ function Add-AzWorkspaceManagerGroup { [array]$workspaceManagerMembers, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [array]$ResourceId + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][array]$ResourceId ) diff --git a/src/Public/Get-AzWorkspaceManager.ps1 b/src/Public/Get-AzWorkspaceManager.ps1 index 79db625..499269d 100644 --- a/src/Public/Get-AzWorkspaceManager.ps1 +++ b/src/Public/Get-AzWorkspaceManager.ps1 @@ -3,10 +3,13 @@ function Get-AzWorkspaceManager { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] - [string]$Name, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [ValidateNotNullOrEmpty()] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName ) diff --git a/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 index 6791a92..89512ba 100644 --- a/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 @@ -24,7 +24,9 @@ function Get-AzWorkspaceManagerAssignmentJob { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [string]$ResourceId + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][string]$ResourceId ) begin { diff --git a/src/Public/Get-AzWorkspaceManagerGroup.ps1 b/src/Public/Get-AzWorkspaceManagerGroup.ps1 index eb0a31c..022bc48 100644 --- a/src/Public/Get-AzWorkspaceManagerGroup.ps1 +++ b/src/Public/Get-AzWorkspaceManagerGroup.ps1 @@ -15,7 +15,6 @@ function Get-AzWorkspaceManagerGroup { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] [ValidateNotNullOrEmpty()] - # [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage = "It does not match expected pattern '{1}'")] [string]$Name ) diff --git a/src/Public/Remove-AzWorkspaceManager.ps1 b/src/Public/Remove-AzWorkspaceManager.ps1 index 5943d39..f4b1805 100644 --- a/src/Public/Remove-AzWorkspaceManager.ps1 +++ b/src/Public/Remove-AzWorkspaceManager.ps1 @@ -4,9 +4,13 @@ function Remove-AzWorkspaceManager { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$', ErrorMessage="It does not match expected pattern '{1}'")] - [string]$Name, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceNameCompleterAttribute( + "Microsoft.OperationalInsights/workspaces", + "ResourceGroupName" + )][string]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute()] [string]$ResourceGroupName, [Parameter(Mandatory = $false)] diff --git a/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 b/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 index 5aa169e..54db1c0 100644 --- a/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 @@ -20,7 +20,9 @@ function Remove-AzWorkspaceManagerAssignment { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [array]$ResourceId, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][array]$ResourceId, [Parameter(Mandatory = $false)] [switch]$Force diff --git a/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 index 2d04a45..dcfb0f7 100644 --- a/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 @@ -25,7 +25,9 @@ function Remove-AzWorkspaceManagerAssignmentJob { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [array]$ResourceId, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][array]$ResourceId, [Parameter(Mandatory = $false)] [switch]$Force diff --git a/src/Public/Remove-AzWorkspaceManagerMember.ps1 b/src/Public/Remove-AzWorkspaceManagerMember.ps1 index a52bfa0..a44075d 100644 --- a/src/Public/Remove-AzWorkspaceManagerMember.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerMember.ps1 @@ -19,7 +19,9 @@ function Remove-AzWorkspaceManagerMember { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [array]$ResourceId, + [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( + "Microsoft.OperationalInsights/workspaces" + )][array]$ResourceId, [Parameter(Mandatory = $false)] [switch]$Force From 6c0ef5c2713828c35996f426c0829beeeb8d139d Mon Sep 17 00:00:00 2001 From: Rogier Dijkman <40334679+azurekid@users.noreply.github.com> Date: Wed, 5 Mar 2025 20:09:32 +0000 Subject: [PATCH 3/3] Update API version and remove ArgumentCompleters from ResourceId parameters in workspace manager functions --- src/AzWorkspaceManager.psm1 | 2 +- src/Public/Add-AzWorkspaceManagerAssignment.ps1 | 4 +--- src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 | 4 +--- src/Public/Add-AzWorkspaceManagerGroup.ps1 | 4 +--- src/Public/Add-AzWorkspaceManagerMember.ps1 | 4 +--- src/Public/Get-AzWorkspaceManager.ps1 | 10 +++++----- src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 | 4 +--- src/Public/Remove-AzWorkspaceManagerAssignment.ps1 | 4 +--- src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 | 4 +--- src/Public/Remove-AzWorkspaceManagerMember.ps1 | 4 +--- 10 files changed, 14 insertions(+), 30 deletions(-) diff --git a/src/AzWorkspaceManager.psm1 b/src/AzWorkspaceManager.psm1 index 198e826..0908822 100644 --- a/src/AzWorkspaceManager.psm1 +++ b/src/AzWorkspaceManager.psm1 @@ -5,7 +5,7 @@ $SessionVariables = [ordered]@{ baseUri = '' ExpiresOn = '' workspace = '' - apiVersion = '2023-10-01' + apiVersion = '2025-01-01-preview' } Set-Variable -Name Guid -Value (New-Guid).Guid -Scope Script -Force diff --git a/src/Public/Add-AzWorkspaceManagerAssignment.ps1 b/src/Public/Add-AzWorkspaceManagerAssignment.ps1 index fef42e4..32444ee 100644 --- a/src/Public/Add-AzWorkspaceManagerAssignment.ps1 +++ b/src/Public/Add-AzWorkspaceManagerAssignment.ps1 @@ -23,9 +23,7 @@ function Add-AzWorkspaceManagerAssignment { [array]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][array]$ResourceId + [array]$ResourceId ) begin { diff --git a/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 index c6686d0..10fcd41 100644 --- a/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Add-AzWorkspaceManagerAssignmentJob.ps1 @@ -19,9 +19,7 @@ function Add-AzWorkspaceManagerAssignmentJob { [string]$Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][array]$ResourceId + [array]$ResourceId ) begin { diff --git a/src/Public/Add-AzWorkspaceManagerGroup.ps1 b/src/Public/Add-AzWorkspaceManagerGroup.ps1 index 34a5da3..c20cd4d 100644 --- a/src/Public/Add-AzWorkspaceManagerGroup.ps1 +++ b/src/Public/Add-AzWorkspaceManagerGroup.ps1 @@ -26,9 +26,7 @@ function Add-AzWorkspaceManagerGroup { [array]$workspaceManagerMembers, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][array]$ResourceId + [array]$ResourceId ) diff --git a/src/Public/Add-AzWorkspaceManagerMember.ps1 b/src/Public/Add-AzWorkspaceManagerMember.ps1 index ed3c425..eea9736 100644 --- a/src/Public/Add-AzWorkspaceManagerMember.ps1 +++ b/src/Public/Add-AzWorkspaceManagerMember.ps1 @@ -14,9 +14,7 @@ function Add-AzWorkspaceManagerMember { [string]$ResourceGroupName, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $false)] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][array]$ResourceId, + [array]$ResourceId, [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [ValidatePattern('^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$', ErrorMessage="It is not a valid GUID")] diff --git a/src/Public/Get-AzWorkspaceManager.ps1 b/src/Public/Get-AzWorkspaceManager.ps1 index 499269d..a3cb24a 100644 --- a/src/Public/Get-AzWorkspaceManager.ps1 +++ b/src/Public/Get-AzWorkspaceManager.ps1 @@ -25,7 +25,7 @@ function Get-AzWorkspaceManager { Get-LogAnalyticsWorkspace -Name $Name } - try { + # try { if ($SessionVariables.workspace) { Write-Verbose "Get Microsoft Sentinel Workspace Manager Configuration for workspace '$Name'" $uri = "$($SessionVariables.workspace)/providers/Microsoft.SecurityInsights/workspaceManagerConfigurations?api-version=$($SessionVariables.apiVersion)" @@ -50,10 +50,10 @@ function Get-AzWorkspaceManager { Write-Message -FunctionName $($MyInvocation.MyCommand.Name) -Message "Workspace Manager is not configured for workspace '$Name'" -Severity 'Information' $SessionVariables.workspaceManagerConfiguration = $false } - } - catch { - Write-Message -FunctionName $($MyInvocation.MyCommand.Name) -Message $($_.Exception.Message) -Severity 'Error' - } + # } + # catch { + # Write-Message -FunctionName $($MyInvocation.MyCommand.Name) -Message $($_.Exception.Message) -Severity 'Error' + # } } <# .SYNOPSIS diff --git a/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 index 89512ba..6791a92 100644 --- a/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Get-AzWorkspaceManagerAssignmentJob.ps1 @@ -24,9 +24,7 @@ function Get-AzWorkspaceManagerAssignmentJob { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][string]$ResourceId + [string]$ResourceId ) begin { diff --git a/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 b/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 index 54db1c0..5aa169e 100644 --- a/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerAssignment.ps1 @@ -20,9 +20,7 @@ function Remove-AzWorkspaceManagerAssignment { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][array]$ResourceId, + [array]$ResourceId, [Parameter(Mandatory = $false)] [switch]$Force diff --git a/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 b/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 index dcfb0f7..2d04a45 100644 --- a/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerAssignmentJob.ps1 @@ -25,9 +25,7 @@ function Remove-AzWorkspaceManagerAssignmentJob { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][array]$ResourceId, + [array]$ResourceId, [Parameter(Mandatory = $false)] [switch]$Force diff --git a/src/Public/Remove-AzWorkspaceManagerMember.ps1 b/src/Public/Remove-AzWorkspaceManagerMember.ps1 index a44075d..a52bfa0 100644 --- a/src/Public/Remove-AzWorkspaceManagerMember.ps1 +++ b/src/Public/Remove-AzWorkspaceManagerMember.ps1 @@ -19,9 +19,7 @@ function Remove-AzWorkspaceManagerMember { [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] - [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceIdCompleter( - "Microsoft.OperationalInsights/workspaces" - )][array]$ResourceId, + [array]$ResourceId, [Parameter(Mandatory = $false)] [switch]$Force