custom/oldsdk/Get-CVJobDetail.ps1
Add-AEnums function Get-CVJobDetail { <# .SYNOPSIS Gets extended details for a job. .DESCRIPTION Gets extended details for a job. JobId must be valid. .PARAMETER Id Gets extended details for the job specified by Id. .PARAMETER InfoType Gets additional job information. .PARAMETER JobObject Gets extended details for the job specified by piped JobObject. .EXAMPLE Get-CVJobDetail .EXAMPLE Get-CVJobDetail -Id 175 .EXAMPLE Get-CVJob | Get-CVJobDetail .EXAMPLE Get-CVJobDetail -Id 175 | Select-Object -ExpandProperty detailInfo .EXAMPLE Get-CVJobDetail -Id 175 | Select-Object -ExpandProperty generalInfo .EXAMPLE Get-CVJobDetail -Id 175 | Select-Object -ExpandProperty progressInfo .EXAMPLE Get-CVJobDetail -Id 175 InfoType 1 .OUTPUTS Outputs [PSCustomObject] containing result. .NOTES Author: Gary Stoops Company: Commvault #> [Alias('Get-CVJobDetails')] [CmdletBinding(DefaultParameterSetName = 'ById')] [OutputType([PSCustomObject])] param( [Alias('JobId')] [Parameter(Mandatory = $True, ParameterSetName = 'ById')] [ValidateNotNullorEmpty()] [Int32] $Id, [Parameter(Mandatory = $False, ParameterSetName = 'ById', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] [ValidateNotNullorEmpty()] [Int32] $InfoType, [Parameter(Mandatory = $True, ParameterSetName = 'ByObject', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] [ValidateNotNullorEmpty()] [System.Object] $JobObject ) begin { Write-Debug -Message "$($MyInvocation.MyCommand): begin" try { if ($InfoType -eq 0) { $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name $endpointSave = $sessionObj.requestProps.endpoint } else { $sessionObj = Get-CVSessionDetail 'GetJobById' $endpointSave = $sessionObj.requestProps.endpoint } } catch { throw $_ } } process { Write-Debug -Message "$($MyInvocation.MyCommand): process" try { if ($InfoType -gt 0) { if ($PSCmdlet.ParameterSetName -eq 'ById') { $job_id = $Id } else { $job_id = $JobObject.jobId } $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', ($job_id)) $sessionObj.requestProps.endpoint = -join ($sessionObj.requestProps.endpoint, "/AdvancedDetails?infoType=", $InfoType) $body = '' $headerObj = Get-CVRESTHeader $sessionObj $payload = @{ } $payload.Add('headerObject', $headerObj) $payload.Add('body', $body) $validate = '' $response = Submit-CVRESTRequest $payload $validate if ($response.IsValid) { Write-Output $response.Content } } else { $sessionObj.requestProps.endpoint = $endpointSave $headerObj = Get-CVRESTHeader $sessionObj $jobObj = @{ } if ($PSCmdlet.ParameterSetName -eq 'ById') { $jobObj.Add('jobId', $Id) } else { $jobObj.Add('jobId', $JobObject.jobId) } $body = $jobObj | ConvertTo-Json -Depth 10 $payload = @{ } $payload.Add('headerObject', $headerObj) $payload.Add('body', $body) $validate = 'job' $response = Submit-CVRESTRequest $payload $validate if ($response.IsValid) { Write-Output $response.Content.job.jobDetail } } } catch { throw $_ } } end { Write-Debug -Message "$($MyInvocation.MyCommand): end" } } |