Get-IpsJob.ps1

<#
.SYNOPSIS
Get the status of an Image Portability Service job.

.DESCRIPTION
Gets the status of an Image Portability Service job.

.PARAMETER CustomerId
Specifies the customer id of the Citrix customer running this command.

.PARAMETER SecureClientId
Specifies the client id of the Citrix customer's API client.

.PARAMETER SecureSecret
Specifies the client secret of the Citrix customer's API client.

.PARAMETER JobId
Specifies the id of the job to get the status of.

.PARAMETER Deployment
Specifies the service address to send the job request to. It defaults to api.layering.cloud.com. This can be used if necessary to send the request to a geo specific deployment such as api.eu.layering.cloud.com.

.INPUTS
None.

.OUTPUTS
PSCustomObject. The job status.

.EXAMPLE
PS> $CitrixCreds = @{
    CustomerId = 'a7f4wb1example'
    SecureClientId = '7fed2a1e-1495-46b7-8fd3-5644764af395'
    SecureSecret = '9T.3Q~MGlnB6NNgpNUUWrcquVzODrdGK~eXampLe'
}
PS> Get-IpsJob @CitrixCreds -JobId fb067a8a-b20a-4889-ba3e-1ec580edd9c5
#>


Function Get-IpsJob
{
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory = $true)]
        [string]$CustomerId,
        [Parameter()]
        [string]$SecureClientId,
        [Parameter()]
        [string]$SecureSecret,
        [Parameter(Mandatory = $true)]
        [string]$JobId,
        [Parameter()]
        [string]$Deployment
    )
    Begin
    {
        Add-PSSnapin Citrix.*
    }
    Process
    {
        $parameters = AuthToCitrixCloud $CustomerId $SecureClientId $SecureSecret
        if ([string]::IsNullOrWhiteSpace($SecureClientId) -Or [string]::IsNullOrWhiteSpace($SecureSecret)) {
            $SecureClientId = $parameters.ApiKey
            $SecureSecret = $parameters.SecretKey
        }

        $job = Invoke-CCRestMethod 'Get' $Deployment "jobs/$JobId" $CustomerId $SecureClientId $SecureSecret @{} $null
        Write-Output $job
    }
}