Public/Get-GCRoutingWrapupCodes.ps1

<#
.SYNOPSIS
    Retrieves a list of wrapup codes from Genesys Cloud.

.DESCRIPTION
    Queries the Genesys Cloud API to retrieve a paginated list of wrapup codes.
    Supports filtering by name and sorting.
    API Endpoint: GET /api/v2/routing/wrapupcodes

.PARAMETER PageSize
    The number of results per page. Default is 25.

.PARAMETER PageNumber
    The page number to retrieve. Default is 1.

.PARAMETER SortBy
    The field to sort results by. Default is 'name'.

.PARAMETER SortOrder
    The sort order for results. Valid values are 'ascending' or 'descending'.

.PARAMETER Name
    Filter wrapup codes by name. Supports partial matching.

.EXAMPLE
    Get-GCRoutingWrapupCodes
    Retrieves the first page of wrapup codes.

.EXAMPLE
    Get-GCRoutingWrapupCodes -Name 'Resolved' -SortOrder 'ascending'
    Retrieves wrapup codes matching 'Resolved' sorted in ascending order.

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

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

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

        [Parameter(Mandatory = $false)]
        [string]$SortBy,

        [Parameter(Mandatory = $false)]
        [string]$SortOrder,

        [Parameter(Mandatory = $false)]
        [string]$Name
    )

    $queryParams = @{
        pageSize   = $PageSize
        pageNumber = $PageNumber
    }

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

    $endpoint = "routing/wrapupcodes"
    return Invoke-GCApiRequest -Endpoint $endpoint -Method GET -QueryParameters $queryParams
}