Apps/Get-CitrixWorkspaceApp.ps1

function Get-CitrixWorkspaceApp {
    <#
        .SYNOPSIS
            Returns the current Citrix Workspace app releases and HDX RTME release.

        .NOTES
            Author: Aaron Parker
            Twitter: @stealthpuppy
    #>

    [OutputType([System.Management.Automation.PSObject])]
    [CmdletBinding(SupportsShouldProcess = $false)]
    param (
        [Parameter(Mandatory = $false, Position = 0)]
        [ValidateNotNull()]
        [System.Management.Automation.PSObject]
        $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1])
    )

    # Read the Citrix Workspace app for updater feed for each OS in the list
    $params = @{
        Uri       = $res.Get.Update.Uri
        UserAgent = $res.Get.Update.UserAgent
    }
    $UpdateFeed = Invoke-EvergreenRestMethod @params

    # Convert content to XML document
    if ($null -ne $UpdateFeed) {

        # Filter the update feed for just the installers we want
        $Installers = $UpdateFeed.Catalog.Installers | `
            Where-Object { $_.name -eq $res.Get.Update.FilterName } | `
            Select-Object -ExpandProperty $res.Get.Update.ExpandProperty

        # Walk through each node to output details
        foreach ($Installer in $Installers) {

            # Write a warning if Citrix is throttling updates
            if ($Installer.Version -eq "0.0.0.0") {
                Write-Warning -Message "$($MyInvocation.MyCommand): Citrix may be throttling availability of updates for $($Installer.ShortDescription -replace ':', '')."
            }

            $PSObject = [PSCustomObject] @{
                Version = $Installer.Version
                Stream  = $Installer.Stream
                Date    = ConvertTo-DateTime -DateTime $Installer.StartDate -Pattern $res.Get.Update.DatePattern
                #Title = $($Installer.ShortDescription -replace ":", "")
                Size    = $(if ($Installer.Size) { $Installer.Size } else { "Unknown" })
                Hash    = $Installer.Hash
                URI     = "$($res.Get.Download.Uri)$($Installer.DownloadURL)"
            }
            Write-Output -InputObject $PSObject
        }
    }
}