public/Get-UnraidServer.ps1

function Get-UnraidServer {
    <#
    .SYNOPSIS
        Gets server overview and resource usage.

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

    .EXAMPLE
        Get-UnraidServer

    .EXAMPLE
        Get-UnraidServer | Format-List
    #>

    [CmdletBinding()]
    [OutputType("UnraidServer")]
    param(
        [Parameter()]
        [UnraidSession]$Session = $script:DefaultUnraidSession
    )

    process {

        $gqlQuery = @"
        query ServerDashboard {
            server {
                name
                lanip
                wanip
                guid
            }
            vars {
                comment
                timeZone
                workgroup
                domain
            }
            info {
                os { uptime }
                versions { core { unraid kernel } }
                system { manufacturer model serial uuid sku }
                cpu { brand cores threads }
                devices {
                    network { iface mac speed model vendor }
                }
                baseboard { manufacturer model serial assetTag }
                memory {
                    layout { bank type size clockSpeed manufacturer }
                }
            }
            metrics {
                cpu { percentTotal }
                memory { percentTotal used total }
            }
            array {
                state
                capacity { kilobytes { total used } }
            }
        }
"@

        $result = Invoke-UnraidQuery -Query $gqlQuery -Session $Session 

        if ($result.server) {
            return [UnraidServer]::new($result)
        }
    }
}