functions/roles/Get-TssRole.ps1
|
function Get-TssRole { <# .SYNOPSIS Get a role by ID .DESCRIPTION Returns the role with the given ID. An ID that does not exist returns an empty role with Id 0. .PARAMETER TssSession TssSession object created by New-TssSession for authentication .PARAMETER Id Role ID .EXAMPLE $session = New-TssSession -SecretServer https://alpha -Credential $ssCred Get-TssRole -TssSession $session -Id 1 Returns role ID 1 .LINK https://thycotic-ps.github.io/thycotic.secretserver/commands/roles/Get-TssRole .LINK https://github.com/thycotic-ps/thycotic.secretserver/blob/main/src/functions/roles/Get-TssRole.ps1 .NOTES Requires TssSession object returned by New-TssSession #> [CmdletBinding()] [OutputType('Thycotic.PowerShell.Roles.Role')] param ( [Parameter(Mandatory, ValueFromPipeline, Position = 0)] [Thycotic.PowerShell.Authentication.Session] $TssSession, [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [Alias('RoleId')] [int[]] $Id ) 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 foreach ($currentId in $Id) { $restResponse = $null $uri = $TssSession.ApiUrl, 'roles', $currentId -join '/' $invokeParams.Uri = $uri $invokeParams.Method = 'GET' Write-Verbose "Performing the operation $($invokeParams.Method) $uri" try { $apiResponse = Invoke-TssApi @invokeParams $restResponse = . $ProcessResponse $apiResponse } catch { Write-Warning 'Issue with Get-TssRole request' $err = $_ . $ErrorHandling $err } if ($restResponse) { [Thycotic.PowerShell.Roles.Role](. $FilterTssResponse $restResponse ([Thycotic.PowerShell.Roles.Role])) } } } else { Write-Warning 'No valid session found' } } } |