Private/Get-InfraPulseSummary.ps1

function Get-InfraPulseSummary {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [AllowEmptyCollection()]
        [object[]]$Results
    )

    $counts = [ordered]@{
        Total    = @($Results).Count
        Healthy  = @($Results | Where-Object { $_.Status -eq 'Healthy' }).Count
        Warning  = @($Results | Where-Object { $_.Status -eq 'Warning' }).Count
        Critical = @($Results | Where-Object { $_.Status -eq 'Critical' }).Count
        Unknown  = @($Results | Where-Object { $_.Status -eq 'Unknown' }).Count
        Skipped  = @($Results | Where-Object { $_.Status -eq 'Skipped' }).Count
    }

    if ($counts.Critical -gt 0) {
        $overallStatus = 'Critical'
    }
    elseif ($counts.Warning -gt 0) {
        $overallStatus = 'Warning'
    }
    elseif ($counts.Unknown -gt 0) {
        $overallStatus = 'Unknown'
    }
    elseif ($counts.Healthy -gt 0) {
        $overallStatus = 'Healthy'
    }
    else {
        $overallStatus = 'Skipped'
    }

    [pscustomobject]@{
        OverallStatus = $overallStatus
        Counts        = [pscustomobject]$counts
    }
}