src/pool-patch.ps1

# SPDX-License-Identifier: Apache-2.0

function ConvertTo-XoPoolPatchObject {
    param(
        [Parameter(Mandatory, ValueFromPipeline, Position = 0)]$InputObject
    )

    process {
        $props = @{
            Date        = [System.DateTimeOffset]::FromUnixTimeSeconds($InputObject.changelog.date).ToLocalTime()
            Description = $InputObject.changelog.description
        }
        Set-XoObject $InputObject -TypeName XoPowershell.PoolPatch -Properties $props
    }
}

function Get-XoPoolPatch {
    <#
    .SYNOPSIS
        Query pending patches for a Xen Orchestra pool.
    .DESCRIPTION
        Query pending patches for a Xen Orchestra pool.
    #>

    [CmdletBinding()]
    param (
        # UUID of pools to query.
        [Parameter(Mandatory, ValueFromPipelineByPropertyName, Position = 0)]
        [ValidatePattern("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")]
        [string]$PoolUuid
    )

    (Invoke-RestMethod -Uri "$script:XoHost/rest/v0/pools/$PoolUuid/missing_patches" @script:XoRestParameters -Body $params) | ConvertTo-XoPoolPatchObject
}