register(); return $handler; } /** @internal */ public static function _applyRetryConfig($value, array &$args, HandlerList $list) { if ($value) { $config = \Aws\Retry\ConfigurationProvider::unwrap($value); if ($config->getMode() === 'legacy') { $list->appendSign( Middleware::retry( RetryMiddleware::createDefaultDecider( $config->getMaxAttempts() - 1, ['error_codes' => ['TransactionInProgressException']] ), function ($retries) { return $retries ? RetryMiddleware::exponentialDelay($retries) / 2 : 0; }, isset($args['stats']['retries']) ? (bool)$args['stats']['retries'] : false ), 'retry' ); } else { $list->appendSign( RetryMiddlewareV2::wrap( $config, [ 'collect_stats' => $args['stats']['retries'], 'transient_error_codes' => ['TransactionInProgressException'] ] ), 'retry' ); } } } /** @internal */ public static function _applyApiProvider($value, array &$args, HandlerList $list) { ClientResolver::_apply_api_provider($value, $args); $args['parser'] = new Crc32ValidatingParser($args['parser']); } }