Functions/Requests/Get-PASRequest.ps1
# .ExternalHelp psPAS-help.xml function Get-PASRequest { [CmdletBinding()] param( [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = 'Requests' )] [ValidateNotNullOrEmpty()] [ValidateSet('MyRequests', 'IncomingRequests')] [string]$RequestType, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = 'bulkactions' )] [int]$id, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = 'Requests' )] [boolean]$OnlyWaiting, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = 'Requests' )] [boolean]$Expired, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = 'bulkactions' )] [boolean]$DisplayExtendedItems ) BEGIN { Assert-VersionRequirement -RequiredVersion 9.10 }#begin PROCESS { #Create URL for Request switch ($PSCmdlet.ParameterSetName) { 'bulkactions' { Assert-VersionRequirement -RequiredVersion 13.2 $URI = "$Script:BaseURI/API/$($PSCmdlet.ParameterSetName)/$id" break } 'Requests' { $URI = "$Script:BaseURI/API/$($RequestType)" break } } #Create QueryString $queryString = $PSBoundParameters | Get-PASParameter -ParametersToRemove RequestType, id | ConvertTo-QueryString if ($null -ne $queryString) { #Add QueryString to URL $URI = "$URI`?$queryString" } #send request to PAS web service $result = Invoke-PASRestMethod -Uri $URI -Method GET -WebSession $Script:WebSession If ($null -ne $result) { #Return Results switch ($PSCmdlet.ParameterSetName) { 'bulkactions' { $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Request.BulkAction break } 'Requests' { $result.$RequestType | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Request.Details break } } } }#process END { }#end } |