Private/Runtime/Get-OpenApiRetryPolicy.ps1
|
function Get-OpenApiRetryPolicy { <# .SYNOPSIS Returns the retry settings for a request: status codes to retry by method (idempotent vs POST/PATCH), delays and retry count. #> [CmdletBinding()] [OutputType([pscustomobject])] param( [Parameter(Mandatory)] [string]$Method, [Parameter()] [int]$MaxRetries = 3 ) $idempotent = @('GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE') -contains $Method.ToUpperInvariant() $statusCodes = @(429, 503) if ($idempotent) { $statusCodes = @(408, 429, 500, 502, 503, 504) } return [pscustomobject]@{ StatusCodes = $statusCodes MaxRetries = [Math]::Max(0, $MaxRetries) DelaySeconds = 1 BackoffMultiplier = 2 MaxDelaySeconds = 60 JitterPercent = 20 RetryConnectionFailure = $idempotent } } |