Documentation
¶
Index ¶
- Constants
- Variables
- func IsThrottleError(err error) bool
- func RejectCustomMiddleware(apiOptions []func(*middleware.Stack) error) error
- func SleepWithContext(ctx context.Context, op string, dur time.Duration) error
- func ValidateOpBatchGetItemInput(v *dynamodb.BatchGetItemInput) error
- func ValidateOpBatchWriteItemInput(v *dynamodb.BatchWriteItemInput) error
- func ValidateOpDeleteItemInput(v *dynamodb.DeleteItemInput) error
- func ValidateOpGetItemInput(v *dynamodb.GetItemInput) error
- func ValidateOpPutItemInput(v *dynamodb.PutItemInput) error
- func ValidateOpQueryInput(v *dynamodb.QueryInput) error
- func ValidateOpScanInput(v *dynamodb.ScanInput) error
- func ValidateOpTransactGetItemsInput(v *dynamodb.TransactGetItemsInput) error
- func ValidateOpTransactWriteItemsInput(v *dynamodb.TransactWriteItemsInput) error
- func ValidateOpUpdateItemInput(v *dynamodb.UpdateItemInput) error
- type ClusterDaxClient
- func (cc *ClusterDaxClient) BatchGetItemWithOptions(ctx context.Context, input *dynamodb.BatchGetItemInput, ...) (*dynamodb.BatchGetItemOutput, error)
- func (cc *ClusterDaxClient) BatchWriteItemWithOptions(ctx context.Context, input *dynamodb.BatchWriteItemInput, ...) (*dynamodb.BatchWriteItemOutput, error)
- func (cc *ClusterDaxClient) Close() error
- func (cc *ClusterDaxClient) DeleteItemWithOptions(ctx context.Context, input *dynamodb.DeleteItemInput, ...) (*dynamodb.DeleteItemOutput, error)
- func (cc *ClusterDaxClient) GetItemWithOptions(ctx context.Context, input *dynamodb.GetItemInput, ...) (*dynamodb.GetItemOutput, error)
- func (cc *ClusterDaxClient) PutItemWithOptions(ctx context.Context, input *dynamodb.PutItemInput, ...) (*dynamodb.PutItemOutput, error)
- func (cc *ClusterDaxClient) QueryWithOptions(ctx context.Context, input *dynamodb.QueryInput, output *dynamodb.QueryOutput, ...) (*dynamodb.QueryOutput, error)
- func (cc *ClusterDaxClient) ScanWithOptions(ctx context.Context, input *dynamodb.ScanInput, output *dynamodb.ScanOutput, ...) (*dynamodb.ScanOutput, error)
- func (cc *ClusterDaxClient) TransactGetItemsWithOptions(ctx context.Context, input *dynamodb.TransactGetItemsInput, ...) (*dynamodb.TransactGetItemsOutput, error)
- func (cc *ClusterDaxClient) TransactWriteItemsWithOptions(ctx context.Context, input *dynamodb.TransactWriteItemsInput, ...) (*dynamodb.TransactWriteItemsOutput, error)
- func (cc *ClusterDaxClient) UpdateItemWithOptions(ctx context.Context, input *dynamodb.UpdateItemInput, ...) (*dynamodb.UpdateItemOutput, error)
- type Config
- type CustomInvalidParamError
- type DaxAPI
- type DaxRetryer
- type HealthCheckDaxAPI
- type HealthStatus
- type RequestOptions
- type RouteListener
- type RouteManager
- type SingleDaxClient
- func (client *SingleDaxClient) BatchGetItemWithOptions(ctx context.Context, input *dynamodb.BatchGetItemInput, ...) (*dynamodb.BatchGetItemOutput, error)
- func (client *SingleDaxClient) BatchWriteItemWithOptions(ctx context.Context, input *dynamodb.BatchWriteItemInput, ...) (*dynamodb.BatchWriteItemOutput, error)
- func (client *SingleDaxClient) Close() error
- func (client *SingleDaxClient) DeleteItemWithOptions(ctx context.Context, input *dynamodb.DeleteItemInput, ...) (*dynamodb.DeleteItemOutput, error)
- func (client *SingleDaxClient) GetItemWithOptions(ctx context.Context, input *dynamodb.GetItemInput, ...) (*dynamodb.GetItemOutput, error)
- func (client *SingleDaxClient) PutItemWithOptions(ctx context.Context, input *dynamodb.PutItemInput, ...) (*dynamodb.PutItemOutput, error)
- func (client *SingleDaxClient) QueryWithOptions(ctx context.Context, input *dynamodb.QueryInput, output *dynamodb.QueryOutput, ...) (*dynamodb.QueryOutput, error)
- func (client *SingleDaxClient) ScanWithOptions(ctx context.Context, input *dynamodb.ScanInput, output *dynamodb.ScanOutput, ...) (*dynamodb.ScanOutput, error)
- func (client *SingleDaxClient) TransactGetItemsWithOptions(ctx context.Context, input *dynamodb.TransactGetItemsInput, ...) (*dynamodb.TransactGetItemsOutput, error)
- func (client *SingleDaxClient) TransactWriteItemsWithOptions(ctx context.Context, input *dynamodb.TransactWriteItemsInput, ...) (*dynamodb.TransactWriteItemsOutput, error)
- func (client *SingleDaxClient) UpdateItemWithOptions(ctx context.Context, input *dynamodb.UpdateItemInput, ...) (*dynamodb.UpdateItemOutput, error)
Constants ¶
const ( // DefaultBaseRetryDelay is base delay for throttled requests DefaultBaseRetryDelay = 70 * time.Millisecond // DefaultMaxBackoffDelay is max backoff delay for throttled requests DefaultMaxBackoffDelay = 20 * time.Second )
const ( ErrCodeNotImplemented = "NotImplemented" ErrCodeValidationException = "ValidationException" ErrCodeUnknown = "Unknown" ErrCodeThrottlingException = "ThrottlingException" ErrCodeInvalidParameter = "InvalidParameter" ErrCodeResponseTimeout = "ResponseTimeout" ErrCodeInternalServerError = "InternalServerError" )
const ( OpGetItem = "GetItem" OpPutItem = "PutItem" OpUpdateItem = "UpdateItem" OpDeleteItem = "DeleteItem" OpBatchGetItem = "BatchGetItem" OpBatchWriteItem = "BatchWriteItem" OpTransactGetItems = "TransactGetItems" OpTransactWriteItems = "TransactWriteItems" OpQuery = "Query" OpScan = "Scan" )
Variables ¶
var ThrottleChecker = retry.ThrottleErrorCode{ Codes: retry.DefaultThrottleErrorCodes, }
Functions ¶
func IsThrottleError ¶
func RejectCustomMiddleware ¶
func RejectCustomMiddleware(apiOptions []func(*middleware.Stack) error) error
rejectCustomMiddleware checks if APIOptions are present and returns an error if they are. It's used to explicitly prevent custom middleware usage in the DAX client.
func SleepWithContext ¶
SleepWithContext will wait for the timer duration to expire, or the context is canceled. Which ever happens first. If the context is canceled the Context's error will be returned.
Expects Context to always return a non-nil error if the Done channel is closed.
func ValidateOpBatchGetItemInput ¶
func ValidateOpBatchGetItemInput(v *dynamodb.BatchGetItemInput) error
func ValidateOpBatchWriteItemInput ¶
func ValidateOpBatchWriteItemInput(v *dynamodb.BatchWriteItemInput) error
func ValidateOpDeleteItemInput ¶
func ValidateOpDeleteItemInput(v *dynamodb.DeleteItemInput) error
func ValidateOpGetItemInput ¶
func ValidateOpGetItemInput(v *dynamodb.GetItemInput) error
func ValidateOpPutItemInput ¶
func ValidateOpPutItemInput(v *dynamodb.PutItemInput) error
func ValidateOpQueryInput ¶
func ValidateOpQueryInput(v *dynamodb.QueryInput) error
func ValidateOpScanInput ¶
func ValidateOpTransactGetItemsInput ¶
func ValidateOpTransactGetItemsInput(v *dynamodb.TransactGetItemsInput) error
func ValidateOpTransactWriteItemsInput ¶
func ValidateOpTransactWriteItemsInput(v *dynamodb.TransactWriteItemsInput) error
func ValidateOpUpdateItemInput ¶
func ValidateOpUpdateItemInput(v *dynamodb.UpdateItemInput) error
Types ¶
type ClusterDaxClient ¶
type ClusterDaxClient struct {
// contains filtered or unexported fields
}
func New ¶
func New(config Config) (*ClusterDaxClient, error)
func (*ClusterDaxClient) BatchGetItemWithOptions ¶
func (cc *ClusterDaxClient) BatchGetItemWithOptions(ctx context.Context, input *dynamodb.BatchGetItemInput, output *dynamodb.BatchGetItemOutput, opt RequestOptions) (*dynamodb.BatchGetItemOutput, error)
func (*ClusterDaxClient) BatchWriteItemWithOptions ¶
func (cc *ClusterDaxClient) BatchWriteItemWithOptions(ctx context.Context, input *dynamodb.BatchWriteItemInput, output *dynamodb.BatchWriteItemOutput, opt RequestOptions) (*dynamodb.BatchWriteItemOutput, error)
func (*ClusterDaxClient) Close ¶
func (cc *ClusterDaxClient) Close() error
func (*ClusterDaxClient) DeleteItemWithOptions ¶
func (cc *ClusterDaxClient) DeleteItemWithOptions(ctx context.Context, input *dynamodb.DeleteItemInput, output *dynamodb.DeleteItemOutput, opt RequestOptions) (*dynamodb.DeleteItemOutput, error)
func (*ClusterDaxClient) GetItemWithOptions ¶
func (cc *ClusterDaxClient) GetItemWithOptions(ctx context.Context, input *dynamodb.GetItemInput, output *dynamodb.GetItemOutput, opt RequestOptions) (*dynamodb.GetItemOutput, error)
func (*ClusterDaxClient) PutItemWithOptions ¶
func (cc *ClusterDaxClient) PutItemWithOptions(ctx context.Context, input *dynamodb.PutItemInput, output *dynamodb.PutItemOutput, opt RequestOptions) (*dynamodb.PutItemOutput, error)
func (*ClusterDaxClient) QueryWithOptions ¶
func (cc *ClusterDaxClient) QueryWithOptions(ctx context.Context, input *dynamodb.QueryInput, output *dynamodb.QueryOutput, opt RequestOptions) (*dynamodb.QueryOutput, error)
func (*ClusterDaxClient) ScanWithOptions ¶
func (cc *ClusterDaxClient) ScanWithOptions(ctx context.Context, input *dynamodb.ScanInput, output *dynamodb.ScanOutput, opt RequestOptions) (*dynamodb.ScanOutput, error)
func (*ClusterDaxClient) TransactGetItemsWithOptions ¶
func (cc *ClusterDaxClient) TransactGetItemsWithOptions(ctx context.Context, input *dynamodb.TransactGetItemsInput, output *dynamodb.TransactGetItemsOutput, opt RequestOptions) (*dynamodb.TransactGetItemsOutput, error)
func (*ClusterDaxClient) TransactWriteItemsWithOptions ¶
func (cc *ClusterDaxClient) TransactWriteItemsWithOptions(ctx context.Context, input *dynamodb.TransactWriteItemsInput, output *dynamodb.TransactWriteItemsOutput, opt RequestOptions) (*dynamodb.TransactWriteItemsOutput, error)
func (*ClusterDaxClient) UpdateItemWithOptions ¶
func (cc *ClusterDaxClient) UpdateItemWithOptions(ctx context.Context, input *dynamodb.UpdateItemInput, output *dynamodb.UpdateItemOutput, opt RequestOptions) (*dynamodb.UpdateItemOutput, error)
type Config ¶
type Config struct { MaxPendingConnectionsPerHost int ClusterUpdateThreshold time.Duration ClusterUpdateInterval time.Duration IdleConnectionReapDelay time.Duration ClientHealthCheckInterval time.Duration Region string HostPorts []string Credentials aws.CredentialsProvider DialContext func(ctx context.Context, network string, address string) (net.Conn, error) SkipHostnameVerification bool RouteManagerEnabled bool // this flag temporarily removes routes facing network errors. // contains filtered or unexported fields }
func DefaultConfig ¶
func DefaultConfig() Config
type CustomInvalidParamError ¶
type CustomInvalidParamError struct { smithy.InvalidParamError // contains filtered or unexported fields }
CustomInvalidParamError is a custom error type that implements smithy.InvalidParamError
func NewCustomInvalidParamError ¶
func NewCustomInvalidParamError(field, reason string) *CustomInvalidParamError
NewCustomInvalidParamError creates a new CustomInvalidParamError
func (*CustomInvalidParamError) AddNestedContext ¶
func (e *CustomInvalidParamError) AddNestedContext(ctx string)
AddNestedContext adds a nested context to the error
func (*CustomInvalidParamError) Error ¶
func (e *CustomInvalidParamError) Error() string
Error returns the error message
func (*CustomInvalidParamError) Field ¶
func (e *CustomInvalidParamError) Field() string
Field returns the field name
func (*CustomInvalidParamError) SetContext ¶
func (e *CustomInvalidParamError) SetContext(ctx string)
SetContext sets the context for the error
type DaxAPI ¶
type DaxAPI interface { PutItemWithOptions(ctx context.Context, input *dynamodb.PutItemInput, output *dynamodb.PutItemOutput, opt RequestOptions) (*dynamodb.PutItemOutput, error) DeleteItemWithOptions(ctx context.Context, input *dynamodb.DeleteItemInput, output *dynamodb.DeleteItemOutput, opt RequestOptions) (*dynamodb.DeleteItemOutput, error) UpdateItemWithOptions(ctx context.Context, input *dynamodb.UpdateItemInput, output *dynamodb.UpdateItemOutput, opt RequestOptions) (*dynamodb.UpdateItemOutput, error) GetItemWithOptions(ctx context.Context, input *dynamodb.GetItemInput, output *dynamodb.GetItemOutput, opt RequestOptions) (*dynamodb.GetItemOutput, error) ScanWithOptions(ctx context.Context, input *dynamodb.ScanInput, output *dynamodb.ScanOutput, opt RequestOptions) (*dynamodb.ScanOutput, error) QueryWithOptions(ctx context.Context, input *dynamodb.QueryInput, output *dynamodb.QueryOutput, opt RequestOptions) (*dynamodb.QueryOutput, error) BatchWriteItemWithOptions(ctx context.Context, input *dynamodb.BatchWriteItemInput, output *dynamodb.BatchWriteItemOutput, opt RequestOptions) (*dynamodb.BatchWriteItemOutput, error) BatchGetItemWithOptions(ctx context.Context, input *dynamodb.BatchGetItemInput, output *dynamodb.BatchGetItemOutput, opt RequestOptions) (*dynamodb.BatchGetItemOutput, error) TransactWriteItemsWithOptions(ctx context.Context, input *dynamodb.TransactWriteItemsInput, output *dynamodb.TransactWriteItemsOutput, opt RequestOptions) (*dynamodb.TransactWriteItemsOutput, error) TransactGetItemsWithOptions(ctx context.Context, input *dynamodb.TransactGetItemsInput, output *dynamodb.TransactGetItemsOutput, opt RequestOptions) (*dynamodb.TransactGetItemsOutput, error) // contains filtered or unexported methods }
type DaxRetryer ¶
DaxRetryer implements retry strategy with equal jitter backoff for throttled requests
func (DaxRetryer) IsErrorRetryable ¶
func (r DaxRetryer) IsErrorRetryable(err error) bool
IsErrorRetryable returns if the error is daxError if code sequences correct any condition return a value other than unknown.
func (DaxRetryer) MaxAttempts ¶
func (r DaxRetryer) MaxAttempts() int
MaxAttempts returns the maximum number of retry attempts
func (DaxRetryer) RetryDelay ¶
func (r DaxRetryer) RetryDelay(attempts int, err error) time.Duration
RetryDelay returns the delay duration before retrying this request again
type HealthCheckDaxAPI ¶
type HealthCheckDaxAPI interface {
// contains filtered or unexported methods
}
type HealthStatus ¶
type HealthStatus interface {
// contains filtered or unexported methods
}
type RequestOptions ¶
type RequestOptions struct { dynamodb.Options LogLevel utils.LogLevelType RetryDelay time.Duration Context context.Context //Retryer implements equal jitter backoff stratergy for throttled requests Retryer DaxRetryer }
type RouteListener ¶
type RouteListener interface {
// contains filtered or unexported methods
}
type RouteManager ¶
type RouteManager interface {
// contains filtered or unexported methods
}
type SingleDaxClient ¶
type SingleDaxClient struct {
// contains filtered or unexported fields
}
func NewSingleClient ¶
func NewSingleClient(endpoint string, connConfigData connConfig, region string, credentials aws.CredentialsProvider, routeListener RouteListener) (*SingleDaxClient, error)
func (*SingleDaxClient) BatchGetItemWithOptions ¶
func (client *SingleDaxClient) BatchGetItemWithOptions(ctx context.Context, input *dynamodb.BatchGetItemInput, output *dynamodb.BatchGetItemOutput, opt RequestOptions) (*dynamodb.BatchGetItemOutput, error)
func (*SingleDaxClient) BatchWriteItemWithOptions ¶
func (client *SingleDaxClient) BatchWriteItemWithOptions(ctx context.Context, input *dynamodb.BatchWriteItemInput, output *dynamodb.BatchWriteItemOutput, opt RequestOptions) (*dynamodb.BatchWriteItemOutput, error)
func (*SingleDaxClient) Close ¶
func (client *SingleDaxClient) Close() error
func (*SingleDaxClient) DeleteItemWithOptions ¶
func (client *SingleDaxClient) DeleteItemWithOptions(ctx context.Context, input *dynamodb.DeleteItemInput, output *dynamodb.DeleteItemOutput, opt RequestOptions) (*dynamodb.DeleteItemOutput, error)
func (*SingleDaxClient) GetItemWithOptions ¶
func (client *SingleDaxClient) GetItemWithOptions(ctx context.Context, input *dynamodb.GetItemInput, output *dynamodb.GetItemOutput, opt RequestOptions) (*dynamodb.GetItemOutput, error)
func (*SingleDaxClient) PutItemWithOptions ¶
func (client *SingleDaxClient) PutItemWithOptions(ctx context.Context, input *dynamodb.PutItemInput, output *dynamodb.PutItemOutput, opt RequestOptions) (*dynamodb.PutItemOutput, error)
func (*SingleDaxClient) QueryWithOptions ¶
func (client *SingleDaxClient) QueryWithOptions(ctx context.Context, input *dynamodb.QueryInput, output *dynamodb.QueryOutput, opt RequestOptions) (*dynamodb.QueryOutput, error)
func (*SingleDaxClient) ScanWithOptions ¶
func (client *SingleDaxClient) ScanWithOptions(ctx context.Context, input *dynamodb.ScanInput, output *dynamodb.ScanOutput, opt RequestOptions) (*dynamodb.ScanOutput, error)
func (*SingleDaxClient) TransactGetItemsWithOptions ¶
func (client *SingleDaxClient) TransactGetItemsWithOptions(ctx context.Context, input *dynamodb.TransactGetItemsInput, output *dynamodb.TransactGetItemsOutput, opt RequestOptions) (*dynamodb.TransactGetItemsOutput, error)
func (*SingleDaxClient) TransactWriteItemsWithOptions ¶
func (client *SingleDaxClient) TransactWriteItemsWithOptions(ctx context.Context, input *dynamodb.TransactWriteItemsInput, output *dynamodb.TransactWriteItemsOutput, opt RequestOptions) (*dynamodb.TransactWriteItemsOutput, error)
func (*SingleDaxClient) UpdateItemWithOptions ¶
func (client *SingleDaxClient) UpdateItemWithOptions(ctx context.Context, input *dynamodb.UpdateItemInput, output *dynamodb.UpdateItemOutput, opt RequestOptions) (*dynamodb.UpdateItemOutput, error)