Private/Get-InfraPulseCheckCatalog.ps1

function Get-InfraPulseCheckCatalog {
    [CmdletBinding()]
    param()

    @(
        [pscustomobject]@{
            Name            = 'Disk'
            Category        = 'Capacity'
            FunctionName    = 'Invoke-InfraPulseDiskCheck'
            RequiresWindows = $true
            Description     = 'Evaluates fixed-disk free space using percentage and absolute thresholds.'
        }
        [pscustomobject]@{
            Name            = 'Memory'
            Category        = 'Capacity'
            FunctionName    = 'Invoke-InfraPulseMemoryCheck'
            RequiresWindows = $true
            Description     = 'Evaluates currently available physical memory.'
        }
        [pscustomobject]@{
            Name            = 'Cpu'
            Category        = 'Capacity'
            FunctionName    = 'Invoke-InfraPulseCpuCheck'
            RequiresWindows = $true
            Description     = 'Averages processor load over a short sample series to separate sustained pressure from spikes.'
        }
        [pscustomobject]@{
            Name            = 'Uptime'
            Category        = 'Lifecycle'
            FunctionName    = 'Invoke-InfraPulseUptimeCheck'
            RequiresWindows = $true
            Description     = 'Flags hosts that have exceeded configured uptime thresholds.'
        }
        [pscustomobject]@{
            Name            = 'PendingReboot'
            Category        = 'Lifecycle'
            FunctionName    = 'Invoke-InfraPulsePendingRebootCheck'
            RequiresWindows = $true
            Description     = 'Checks servicing, Windows Update, file rename, computer rename, and Configuration Manager reboot indicators.'
        }
        [pscustomobject]@{
            Name            = 'PatchAge'
            Category        = 'Lifecycle'
            FunctionName    = 'Invoke-InfraPulsePatchAgeCheck'
            RequiresWindows = $true
            Description     = 'Evaluates the age of the most recent installed Windows update.'
        }
        [pscustomobject]@{
            Name            = 'Services'
            Category        = 'Availability'
            FunctionName    = 'Invoke-InfraPulseServiceCheck'
            RequiresWindows = $true
            Description     = 'Verifies explicitly configured Windows services and expected states.'
        }
        [pscustomobject]@{
            Name            = 'ScheduledTasks'
            Category        = 'Availability'
            FunctionName    = 'Invoke-InfraPulseScheduledTaskCheck'
            RequiresWindows = $true
            Description     = 'Finds enabled scheduled tasks whose last run ended with a failure result.'
        }
        [pscustomobject]@{
            Name            = 'Certificates'
            Category        = 'Security'
            FunctionName    = 'Invoke-InfraPulseCertificateCheck'
            RequiresWindows = $true
            Description     = 'Finds expired and soon-to-expire certificates in configured LocalMachine stores.'
        }
        [pscustomobject]@{
            Name            = 'Defender'
            Category        = 'Security'
            FunctionName    = 'Invoke-InfraPulseDefenderCheck'
            RequiresWindows = $true
            Description     = 'Validates Microsoft Defender protection state and signature age; skipped when other antivirus is active.'
        }
        [pscustomobject]@{
            Name            = 'EventLog'
            Category        = 'Reliability'
            FunctionName    = 'Invoke-InfraPulseEventLogCheck'
            RequiresWindows = $true
            Description     = 'Counts recent critical and error events and identifies the noisiest providers.'
        }
        [pscustomobject]@{
            Name            = 'Stability'
            Category        = 'Reliability'
            FunctionName    = 'Invoke-InfraPulseStabilityCheck'
            RequiresWindows = $true
            Description     = 'Counts bugchecks, unexpected shutdowns, power-loss events, and hardware errors in a lookback window.'
        }
        [pscustomobject]@{
            Name            = 'Storage'
            Category        = 'Reliability'
            FunctionName    = 'Invoke-InfraPulseStorageCheck'
            RequiresWindows = $true
            Description     = 'Reports physical-disk and fixed-volume health status independently of free space.'
        }
        [pscustomobject]@{
            Name            = 'Dns'
            Category        = 'Connectivity'
            FunctionName    = 'Invoke-InfraPulseDnsCheck'
            RequiresWindows = $false
            Description     = 'Resolves configured DNS targets from the evaluated host.'
        }
        [pscustomobject]@{
            Name            = 'Tcp'
            Category        = 'Connectivity'
            FunctionName    = 'Invoke-InfraPulseTcpCheck'
            RequiresWindows = $false
            Description     = 'Tests configured TCP endpoints with deterministic connection timeouts.'
        }
        [pscustomobject]@{
            Name            = 'Tls'
            Category        = 'Security'
            FunctionName    = 'Invoke-InfraPulseTlsCheck'
            RequiresWindows = $false
            Description     = 'Validates TLS handshakes, certificate identity, chain trust, protocol, and expiry for configured endpoints.'
        }
        [pscustomobject]@{
            Name            = 'TimeSync'
            Category        = 'Connectivity'
            FunctionName    = 'Invoke-InfraPulseTimeSyncCheck'
            RequiresWindows = $false
            Description     = 'Queries NTP servers and calculates the local clock offset using SNTP timestamps.'
        }
    )
}