Public/Get-UnifiSite.ps1

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

    if (-not $script:UnifiSession) {
        Write-Error "Not connected. Run Connect-UnifiController first."
        return
    }

    $result = Invoke-UnifiRequest -Endpoint '/api/self/sites'

    if (-not $result.data -or $result.data.Count -eq 0) {
        Write-Warning "No sites returned."
        return
    }

    $result.data | Select-Object `
        @{ N = 'SiteId';      E = { $_.name } },
        @{ N = 'Description'; E = { $_.desc } },
        @{ N = 'Role';        E = { $_.role } }
}