public/Resume-UnraidParityCheck.ps1

function Resume-UnraidParityCheck {
    <#
    .SYNOPSIS
        Resumes a paused parity check.

    .PARAMETER Array
        Array object (auto-retrieves if not provided).

    .PARAMETER Session
        Unraid session (defaults to current session).

    .EXAMPLE
        Resume-UnraidParityCheck
    #>

    [CmdletBinding(SupportsShouldProcess)]
    [OutputType('void')]
    param(
        [Parameter(ValueFromPipeline)]
        [UnraidArray]$Array,

        [Parameter()]
        [UnraidSession]$Session = $script:DefaultUnraidSession
    )

    process {
        if (! $Array) { $Array = Get-UnraidArray }

        if ($Array.ParityStatus -ne "PAUSED") {
            Write-Error "No paused parity check found."
            return
        }

        if ($PSCmdlet.ShouldProcess("Unraid Array", "Resume Parity Check")) {
            $gqlQuery = @"
            mutation ResumeCheck {
                parityCheck {
                    resume
                }
            }
"@

            $result = Invoke-UnraidQuery -Query $gqlQuery -Session $Session
            if ($result) { Write-Information "Parity check resumed: Continuing..." -InformationAction Continue  }
        }
    }
}