AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

A retry policy specifies all aspects of retry behavior. This includes conditions when the request should be retried, checks of retry limit, preparing the request before retry and introducing delay (backoff) before retries.

Inheritance Hierarchy

System.Object
  Amazon.Runtime.RetryPolicy

Namespace: Amazon.Runtime
Assembly: AWSSDK.Core.dll
Version: 3.x.y.z

Syntax

C#
public abstract class RetryPolicy

The RetryPolicy type exposes the following members

Properties

NameTypeDescription
Public Property ErrorCodesToRetryOn System.Collections.Generic.ICollection<System.String>

List of AWS specific error codes which are returned as part of the error response. These error codes will be retried.

Public Property HttpStatusCodesToRetryOn System.Collections.Generic.ICollection<System.Net.HttpStatusCode>

The standard set of transient error, HTTP status codes to retry on. 502 and 504 are returned by proxies. These can also be returned for S3 accelerate requests which are served by CloudFront.

Public Property Logger Amazon.Runtime.Internal.Util.ILogger

The logger used to log messages.

Public Property MaxRetries System.Int32

Maximum number of retries to be performed. This does not count the initial request.

Public Property ThrottlingErrorCodes System.Collections.Generic.ICollection<System.String>

The standard set of throttling error codes

Public Property TimeoutErrorCodesToRetryOn System.Collections.Generic.ICollection<System.String>

The standard set of timeout error codes to retry on.

Public Property WebExceptionStatusesToRetryOn System.Collections.Generic.ICollection<System.Net.WebExceptionStatus>

Set of web exception status codes to retry on.

Methods

Note:

Asynchronous operations (methods ending with Async) in the table below are for .NET 4.5 or higher. For .NET 3.5 the SDK follows the standard naming convention of BeginMethodName and EndMethodName to indicate asynchronous operations - these method pairs are not shown in the table below.

NameDescription
Public Method CanRetry(IExecutionContext)

Returns true if the request is in a state where it can be retried, else false.

Public Method IsServiceTimeoutError(Exception)

Determines if the exception is a known timeout error code that should be retried under the timeout error category.

Public Method IsThrottlingError(Exception)

Determines if an AmazonServiceException is a throttling error

Public Method IsTransientError(IExecutionContext, Exception)

Determines if an AmazonServiceException is a transient error that should be retried.

Public Method Static Method IsTransientSslError(Exception)
Public Method NotifySuccess(IExecutionContext)

Virtual method that gets called on a successful request response.

Public Method ObtainSendToken(IExecutionContext, Exception)

This method uses a token bucket to enforce the maximum sending rate.

Public Method ObtainSendTokenAsync(IExecutionContext, Exception)

This method uses a token bucket to enforce the maximum sending rate.

Public Method OnRetry(IExecutionContext)

Virtual method that gets called before a retry request is initiated. The value returned is True by default(retry throttling feature is disabled).

Public Method OnRetry(IExecutionContext, bool)

Virtual method that gets called before a retry request is initiated. The value returned is True by default(retry throttling feature is disabled).

Public Method OnRetry(IExecutionContext, bool, bool)

Virtual method that gets called before a retry request is initiated. The value returned is True by default(retry throttling feature is disabled).

Public Method Retry(IExecutionContext, Exception)

Checks if a retry should be performed with the given execution context and exception.

Public Method RetryAsync(IExecutionContext, Exception)

Checks if a retry should be performed with the given execution context and exception.

Public Method RetryForException(IExecutionContext, Exception)

Return true if the request should be retried for the given exception.

Public Method RetryForExceptionAsync(IExecutionContext, Exception)

Return true if the request should be retried for the given exception.

Public Method RetryLimitReached(IExecutionContext)

Checks if the retry limit is reached.

Public Method WaitBeforeRetry(IExecutionContext)

Waits before retrying a request.

Public Method WaitBeforeRetryAsync(IExecutionContext)

Waits before retrying a request.

Version Information

.NET Core App:
Supported in: 3.1

.NET Standard:
Supported in: 2.0

.NET Framework:
Supported in: 4.5, 4.0, 3.5