Public/PayRateOverridePayCodes/Update-AspirePayRateOverridePayCode.ps1

<#
.SYNOPSIS
    Updates an existing pay rate override pay code in the Aspire API.
.DESCRIPTION
    Uses Invoke-AspireRequest to perform a PUT request to the /PayRateOverridePayCodes endpoint.
.PARAMETER PayRateOverridePayCodeID
    The ID of the pay rate override pay code to update (required).
.PARAMETER PayRateID
    The pay rate ID (required).
.PARAMETER PayCodeID
    The pay code ID (required).
.PARAMETER OverrideRate
    Optional override rate (double).
.OUTPUTS
    The response from the API containing the updated pay rate override pay code details.
.EXAMPLE
    Update-AspirePayRateOverridePayCode -PayRateOverridePayCodeID 1 -PayRateID 1 -PayCodeID 2 -OverrideRate 15.0
#>

function Update-AspirePayRateOverridePayCode {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [int]$PayRateOverridePayCodeID,
        [Parameter(Mandatory = $true)]
        [int]$PayRateID,
        [Parameter(Mandatory = $true)]
        [int]$PayCodeID,
        [double]$OverrideRate = $null
    )

    $body = @{
        PayRateOverridePayCodeID = $PayRateOverridePayCodeID
        PayRateID = $PayRateID
        PayCodeID = $PayCodeID
    }

    if ($OverrideRate) {
        $body.OverrideRate = $OverrideRate
    }

    return Invoke-AspireRequest -Method PUT -Path "/PayRateOverridePayCodes" -Body $body -ApiVersion $null
}