Public/Get-GCLearningModules.ps1

<#
.SYNOPSIS
    Retrieves a list of learning modules.

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

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

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

.PARAMETER SortOrder
    The sort direction: ascending or descending.

.PARAMETER SortBy
    The field to sort results by.

.EXAMPLE
    Get-GCLearningModules

.EXAMPLE
    Get-GCLearningModules -SortBy 'name' -SortOrder 'asc'

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

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

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

        [Parameter()]
        [string]$SortOrder,

        [Parameter()]
        [string]$SortBy
    )

    $endpoint = "learning/modules"
    $queryParams = @{
        pageSize   = $PageSize
        pageNumber = $PageNumber
    }

    if ($SortOrder) { $queryParams['sortOrder'] = $SortOrder }
    if ($SortBy)    { $queryParams['sortBy'] = $SortBy }

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