Public/Get-GCStations.ps1

<#
.SYNOPSIS
    Retrieves a list of stations.

.DESCRIPTION
    Returns a paginated list of stations from Genesys Cloud.
    Uses the GET /api/v2/stations endpoint.

.PARAMETER PageSize
    The number of results per page. Defaults to 25.

.PARAMETER PageNumber
    The page number to retrieve. Defaults to 1.

.PARAMETER SortBy
    The field to sort results by.

.PARAMETER Name
    Filter stations by name.

.EXAMPLE
    Get-GCStations

.EXAMPLE
    Get-GCStations -Name 'Phone*'

.NOTES
    Genesys Cloud API: GET /api/v2/stations
#>

function Get-GCStations {
    [CmdletBinding()]
    param(
        [Parameter()]
        [int]$PageSize = 25,

        [Parameter()]
        [int]$PageNumber = 1,

        [Parameter()]
        [string]$SortBy,

        [Parameter()]
        [string]$Name
    )

    $endpoint = "stations"
    $queryParams = @{
        pageSize   = $PageSize
        pageNumber = $PageNumber
    }

    if ($SortBy) { $queryParams['sortBy'] = $SortBy }
    if ($Name)   { $queryParams['name'] = $Name }

    return Invoke-GCApiRequest -Endpoint $endpoint -Method GET -QueryParameters $queryParams
}