functions/event-pipeline-policy/Update-TssEventPipelinePolicyGroup.ps1
|
function Update-TssEventPipelinePolicyGroup { <# .SYNOPSIS Set the groups an event pipeline policy is assigned to .DESCRIPTION Replaces the groups an event pipeline policy is assigned to with the group IDs given. An empty list removes the policy from every group. Returns True when the assignment was saved. .PARAMETER TssSession TssSession object created by New-TssSession for authentication .PARAMETER Id Event pipeline policy ID .PARAMETER GroupId Group IDs the policy is assigned to. Replaces the current list; an empty list removes every group .EXAMPLE $session = New-TssSession -SecretServer https://alpha -Credential $ssCred Update-TssEventPipelinePolicyGroup -TssSession $session -Id 4 -GroupId 2, 7 Assigns event pipeline policy 4 to groups 2 and 7 only .EXAMPLE $session = New-TssSession -SecretServer https://alpha -Credential $ssCred Update-TssEventPipelinePolicyGroup -TssSession $session -Id 4 -GroupId @() Removes event pipeline policy 4 from every group .LINK https://thycotic-ps.github.io/thycotic.secretserver/commands/event-pipeline-policies/Update-TssEventPipelinePolicyGroup .LINK https://github.com/thycotic-ps/thycotic.secretserver/blob/main/src/functions/event-pipeline-policy/Update-TssEventPipelinePolicyGroup.ps1 .NOTES Requires TssSession object returned by New-TssSession #> [CmdletBinding(SupportsShouldProcess)] [OutputType('System.Boolean')] param ( [Parameter(Mandatory, ValueFromPipeline, Position = 0)] [Thycotic.PowerShell.Authentication.Session] $TssSession, [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [Alias('EventPipelinePolicyId')] [int] $Id, [Parameter(Mandatory)] [AllowEmptyCollection()] [int[]] $GroupId ) begin { $tssParams = $PSBoundParameters $invokeParams = . $GetInvokeApiParams $TssSession } process { Get-TssInvocation $PSCmdlet.MyInvocation if ($tssParams.ContainsKey('TssSession') -and $TssSession.IsValidSession()) { Compare-TssVersion $TssSession '10.9.000000' $PSCmdlet.MyInvocation $uri = $TssSession.ApiUrl, 'event-pipeline-policy', $Id, 'groups' -join '/' $invokeParams.Uri = $uri $invokeParams.Method = 'PUT' $body = @{ data = @($GroupId) } $invokeParams.Body = $body | ConvertTo-Json -Depth 100 if ($PSCmdlet.ShouldProcess("Event pipeline policy group: $Id", "$($invokeParams.Method) $uri with:`n$($invokeParams.Body)`n")) { Write-Verbose "Performing the operation $($invokeParams.Method) $uri with:`n$($invokeParams.Body)`n" try { $apiResponse = Invoke-TssApi @invokeParams $restResponse = . $ProcessResponse $apiResponse } catch { Write-Warning 'Issue with Update-TssEventPipelinePolicyGroup request' $err = $_ . $ErrorHandling $err } if ($null -ne $restResponse) { [System.Convert]::ToBoolean($restResponse) } } } else { Write-Warning 'No valid session found' } } } |