Documentation ¶
Index ¶
- Constants
- func AddToUserAgent(r *Request, s string)
- func HandlerListLogItem(item HandlerListRunItem) bool
- func HandlerListStopOnError(item HandlerListRunItem) bool
- func MakeAddToUserAgentFreeFormHandler(s string) func(*Request)
- func MakeAddToUserAgentHandler(name, version string, extra ...string) func(*Request)
- func WithRetryer(cfg *aws.Config, retryer Retryer) *aws.Config
- type ErrInvalidParam
- type ErrInvalidParams
- func (e *ErrInvalidParams) Add(err ErrInvalidParam)
- func (e *ErrInvalidParams) AddNested(nestedCtx string, nested ErrInvalidParams)
- func (e ErrInvalidParams) Code() string
- func (e ErrInvalidParams) Error() string
- func (e ErrInvalidParams) Len() int
- func (e ErrInvalidParams) Message() string
- func (e ErrInvalidParams) OrigErr() error
- func (e ErrInvalidParams) OrigErrs() []error
- type ErrParamMinLen
- func (e *ErrParamMinLen) AddNestedContext(ctx string)
- func (e *ErrParamMinLen) Code() string
- func (e *ErrParamMinLen) Error() string
- func (e *ErrParamMinLen) Field() string
- func (e *ErrParamMinLen) Message() string
- func (e *ErrParamMinLen) MinLen() int
- func (e *ErrParamMinLen) OrigErr() error
- func (e *ErrParamMinLen) SetContext(ctx string)
- type ErrParamMinValue
- func (e *ErrParamMinValue) AddNestedContext(ctx string)
- func (e *ErrParamMinValue) Code() string
- func (e *ErrParamMinValue) Error() string
- func (e *ErrParamMinValue) Field() string
- func (e *ErrParamMinValue) Message() string
- func (e *ErrParamMinValue) MinValue() float64
- func (e *ErrParamMinValue) OrigErr() error
- func (e *ErrParamMinValue) SetContext(ctx string)
- type ErrParamRequired
- func (e *ErrParamRequired) AddNestedContext(ctx string)
- func (e *ErrParamRequired) Code() string
- func (e *ErrParamRequired) Error() string
- func (e *ErrParamRequired) Field() string
- func (e *ErrParamRequired) Message() string
- func (e *ErrParamRequired) OrigErr() error
- func (e *ErrParamRequired) SetContext(ctx string)
- type HandlerList
- func (l *HandlerList) Clear()
- func (l *HandlerList) Len() int
- func (l *HandlerList) PushBack(f func(*Request))
- func (l *HandlerList) PushBackNamed(n NamedHandler)
- func (l *HandlerList) PushFront(f func(*Request))
- func (l *HandlerList) PushFrontNamed(n NamedHandler)
- func (l *HandlerList) Remove(n NamedHandler)
- func (l *HandlerList) RemoveByName(name string)
- func (l *HandlerList) Run(r *Request)
- type HandlerListRunItem
- type Handlers
- type NamedHandler
- type Operation
- type Option
- type Pagination
- type Paginator
- type Request
- func (r *Request) ApplyOptions(opts ...Option)
- func (r *Request) Build() error
- func (r *Request) Context() aws.Context
- func (r *Request) DataFilled() bool
- func (r *Request) EachPage(fn func(data interface{}, isLastPage bool) (shouldContinue bool)) error
- func (r *Request) GetBody() io.ReadSeeker
- func (r *Request) HasNextPage() bool
- func (r *Request) IsErrorExpired() bool
- func (r *Request) IsErrorRetryable() bool
- func (r *Request) IsErrorThrottle() bool
- func (r *Request) NextPage() *Request
- func (r *Request) ParamsFilled() bool
- func (r *Request) Presign(expireTime time.Duration) (string, error)
- func (r *Request) PresignRequest(expireTime time.Duration) (string, http.Header, error)
- func (r *Request) ResetBody()
- func (r *Request) Send() error
- func (r *Request) SetBufferBody(buf []byte)
- func (r *Request) SetContext(ctx aws.Context)
- func (r *Request) SetReaderBody(reader io.ReadSeeker)
- func (r *Request) SetStringBody(s string)
- func (r *Request) Sign() error
- func (r *Request) WillRetry() bool
- type Retryer
- type Validator
- type Waiter
- type WaiterAcceptor
- type WaiterDelay
- type WaiterMatchMode
- type WaiterOption
- type WaiterState
Constants ¶
const ( // ErrCodeSerialization is the serialization error code that is received // during protocol unmarshaling. ErrCodeSerialization = "SerializationError" // ErrCodeResponseTimeout is the connection timeout error that is recieved // during body reads. ErrCodeResponseTimeout = "ResponseTimeout" // CanceledErrorCode is the error code that will be returned by an // API request that was canceled. Requests given a aws.Context may // return this error when canceled. CanceledErrorCode = "RequestCanceled" )
const ( // InvalidParameterErrCode is the error code for invalid parameters errors InvalidParameterErrCode = "InvalidParameter" // ParamRequiredErrCode is the error code for required parameter errors ParamRequiredErrCode = "ParamRequiredError" // ParamMinValueErrCode is the error code for fields with too low of a // number value. ParamMinValueErrCode = "ParamMinValueError" // ParamMinLenErrCode is the error code for fields without enough elements. ParamMinLenErrCode = "ParamMinLenError" )
const ( // HandlerResponseTimeout is what we use to signify the name of the // response timeout handler. HandlerResponseTimeout = "ResponseTimeoutHandler" )
const WaiterResourceNotReadyErrorCode = "ResourceNotReady"
WaiterResourceNotReadyErrorCode is the error code returned by a waiter when the waiter's max attempts have been exhausted.
Variables ¶
This section is empty.
Functions ¶
func AddToUserAgent ¶ added in v1.0.0
AddToUserAgent adds the string to the end of the request's current user agent.
func HandlerListLogItem ¶ added in v1.1.16
func HandlerListLogItem(item HandlerListRunItem) bool
HandlerListLogItem logs the request handler and the state of the request's Error value. Always returns true to continue iterating request handlers in a HandlerList.
func HandlerListStopOnError ¶ added in v1.1.16
func HandlerListStopOnError(item HandlerListRunItem) bool
HandlerListStopOnError returns false to stop the HandlerList iterating over request handlers if Request.Error is not nil. True otherwise to continue iterating.
func MakeAddToUserAgentFreeFormHandler ¶ added in v1.0.0
MakeAddToUserAgentFreeFormHandler adds the input to the User-Agent request header. The input string will be concatenated with the current request's user agent string.
func MakeAddToUserAgentHandler ¶ added in v1.0.0
MakeAddToUserAgentHandler will add the name/version pair to the User-Agent request header. If the extra parameters are provided they will be added as metadata to the name/version pair resulting in the following format. "name/version (extra0; extra1; ...)" The user agent part will be concatenated with this current request's user agent string.
Types ¶
type ErrInvalidParam ¶ added in v1.1.24
type ErrInvalidParam interface { awserr.Error // Field name the error occurred on. Field() string // SetContext updates the context of the error. SetContext(string) // AddNestedContext updates the error's context to include a nested level. AddNestedContext(string) }
An ErrInvalidParam represents an invalid parameter error type.
type ErrInvalidParams ¶ added in v1.1.24
type ErrInvalidParams struct { // Context is the base context of the invalid parameter group. Context string // contains filtered or unexported fields }
An ErrInvalidParams provides wrapping of invalid parameter errors found when validating API operation input parameters.
func (*ErrInvalidParams) Add ¶ added in v1.1.24
func (e *ErrInvalidParams) Add(err ErrInvalidParam)
Add adds a new invalid parameter error to the collection of invalid parameters. The context of the invalid parameter will be updated to reflect this collection.
func (*ErrInvalidParams) AddNested ¶ added in v1.1.24
func (e *ErrInvalidParams) AddNested(nestedCtx string, nested ErrInvalidParams)
AddNested adds the invalid parameter errors from another ErrInvalidParams value into this collection. The nested errors will have their nested context updated and base context to reflect the merging.
Use for nested validations errors.
func (ErrInvalidParams) Code ¶ added in v1.1.24
func (e ErrInvalidParams) Code() string
Code returns the code of the error
func (ErrInvalidParams) Error ¶ added in v1.1.24
func (e ErrInvalidParams) Error() string
Error returns the string formatted form of the invalid parameters.
func (ErrInvalidParams) Len ¶ added in v1.1.24
func (e ErrInvalidParams) Len() int
Len returns the number of invalid parameter errors
func (ErrInvalidParams) Message ¶ added in v1.1.24
func (e ErrInvalidParams) Message() string
Message returns the message of the error
func (ErrInvalidParams) OrigErr ¶ added in v1.1.24
func (e ErrInvalidParams) OrigErr() error
OrigErr returns the invalid parameters as a awserr.BatchedErrors value
func (ErrInvalidParams) OrigErrs ¶ added in v1.1.24
func (e ErrInvalidParams) OrigErrs() []error
OrigErrs returns a slice of the invalid parameters
type ErrParamMinLen ¶ added in v1.1.24
type ErrParamMinLen struct {
// contains filtered or unexported fields
}
An ErrParamMinLen represents a minimum length parameter error.
func NewErrParamMinLen ¶ added in v1.1.24
func NewErrParamMinLen(field string, min int) *ErrParamMinLen
NewErrParamMinLen creates a new minimum length parameter error.
func (*ErrParamMinLen) AddNestedContext ¶ added in v1.1.24
func (e *ErrParamMinLen) AddNestedContext(ctx string)
AddNestedContext prepends a context to the field's path.
func (*ErrParamMinLen) Code ¶ added in v1.1.24
func (e *ErrParamMinLen) Code() string
Code returns the error code for the type of invalid parameter.
func (*ErrParamMinLen) Error ¶ added in v1.1.24
func (e *ErrParamMinLen) Error() string
Error returns the string version of the invalid parameter error.
func (*ErrParamMinLen) Field ¶ added in v1.1.24
func (e *ErrParamMinLen) Field() string
Field Returns the field and context the error occurred.
func (*ErrParamMinLen) Message ¶ added in v1.1.24
func (e *ErrParamMinLen) Message() string
Message returns the reason the parameter was invalid, and its context.
func (*ErrParamMinLen) MinLen ¶ added in v1.1.24
func (e *ErrParamMinLen) MinLen() int
MinLen returns the field's required minimum length.
func (*ErrParamMinLen) OrigErr ¶ added in v1.1.24
func (e *ErrParamMinLen) OrigErr() error
OrigErr returns nil, Implemented for awserr.Error interface.
func (*ErrParamMinLen) SetContext ¶ added in v1.1.24
func (e *ErrParamMinLen) SetContext(ctx string)
SetContext updates the base context of the error.
type ErrParamMinValue ¶ added in v1.1.24
type ErrParamMinValue struct {
// contains filtered or unexported fields
}
An ErrParamMinValue represents a minimum value parameter error.
func NewErrParamMinValue ¶ added in v1.1.24
func NewErrParamMinValue(field string, min float64) *ErrParamMinValue
NewErrParamMinValue creates a new minimum value parameter error.
func (*ErrParamMinValue) AddNestedContext ¶ added in v1.1.24
func (e *ErrParamMinValue) AddNestedContext(ctx string)
AddNestedContext prepends a context to the field's path.
func (*ErrParamMinValue) Code ¶ added in v1.1.24
func (e *ErrParamMinValue) Code() string
Code returns the error code for the type of invalid parameter.
func (*ErrParamMinValue) Error ¶ added in v1.1.24
func (e *ErrParamMinValue) Error() string
Error returns the string version of the invalid parameter error.
func (*ErrParamMinValue) Field ¶ added in v1.1.24
func (e *ErrParamMinValue) Field() string
Field Returns the field and context the error occurred.
func (*ErrParamMinValue) Message ¶ added in v1.1.24
func (e *ErrParamMinValue) Message() string
Message returns the reason the parameter was invalid, and its context.
func (*ErrParamMinValue) MinValue ¶ added in v1.1.24
func (e *ErrParamMinValue) MinValue() float64
MinValue returns the field's require minimum value.
float64 is returned for both int and float min values.
func (*ErrParamMinValue) OrigErr ¶ added in v1.1.24
func (e *ErrParamMinValue) OrigErr() error
OrigErr returns nil, Implemented for awserr.Error interface.
func (*ErrParamMinValue) SetContext ¶ added in v1.1.24
func (e *ErrParamMinValue) SetContext(ctx string)
SetContext updates the base context of the error.
type ErrParamRequired ¶ added in v1.1.24
type ErrParamRequired struct {
// contains filtered or unexported fields
}
An ErrParamRequired represents an required parameter error.
func NewErrParamRequired ¶ added in v1.1.24
func NewErrParamRequired(field string) *ErrParamRequired
NewErrParamRequired creates a new required parameter error.
func (*ErrParamRequired) AddNestedContext ¶ added in v1.1.24
func (e *ErrParamRequired) AddNestedContext(ctx string)
AddNestedContext prepends a context to the field's path.
func (*ErrParamRequired) Code ¶ added in v1.1.24
func (e *ErrParamRequired) Code() string
Code returns the error code for the type of invalid parameter.
func (*ErrParamRequired) Error ¶ added in v1.1.24
func (e *ErrParamRequired) Error() string
Error returns the string version of the invalid parameter error.
func (*ErrParamRequired) Field ¶ added in v1.1.24
func (e *ErrParamRequired) Field() string
Field Returns the field and context the error occurred.
func (*ErrParamRequired) Message ¶ added in v1.1.24
func (e *ErrParamRequired) Message() string
Message returns the reason the parameter was invalid, and its context.
func (*ErrParamRequired) OrigErr ¶ added in v1.1.24
func (e *ErrParamRequired) OrigErr() error
OrigErr returns nil, Implemented for awserr.Error interface.
func (*ErrParamRequired) SetContext ¶ added in v1.1.24
func (e *ErrParamRequired) SetContext(ctx string)
SetContext updates the base context of the error.
type HandlerList ¶
type HandlerList struct { // Called after each request handler in the list is called. If set // and the func returns true the HandlerList will continue to iterate // over the request handlers. If false is returned the HandlerList // will stop iterating. // // Should be used if extra logic to be performed between each handler // in the list. This can be used to terminate a list's iteration // based on a condition such as error like, HandlerListStopOnError. // Or for logging like HandlerListLogItem. AfterEachFn func(item HandlerListRunItem) bool // contains filtered or unexported fields }
A HandlerList manages zero or more handlers in a list.
func (*HandlerList) Len ¶
func (l *HandlerList) Len() int
Len returns the number of handlers in the list.
func (*HandlerList) PushBack ¶
func (l *HandlerList) PushBack(f func(*Request))
PushBack pushes handler f to the back of the handler list.
func (*HandlerList) PushBackNamed ¶
func (l *HandlerList) PushBackNamed(n NamedHandler)
PushBackNamed pushes named handler f to the back of the handler list.
func (*HandlerList) PushFront ¶
func (l *HandlerList) PushFront(f func(*Request))
PushFront pushes handler f to the front of the handler list.
func (*HandlerList) PushFrontNamed ¶
func (l *HandlerList) PushFrontNamed(n NamedHandler)
PushFrontNamed pushes named handler f to the front of the handler list.
func (*HandlerList) Remove ¶
func (l *HandlerList) Remove(n NamedHandler)
Remove removes a NamedHandler n
func (*HandlerList) RemoveByName ¶ added in v1.8.10
func (l *HandlerList) RemoveByName(name string)
RemoveByName removes a NamedHandler by name.
func (*HandlerList) Run ¶
func (l *HandlerList) Run(r *Request)
Run executes all handlers in the list with a given request object.
type HandlerListRunItem ¶ added in v1.1.16
type HandlerListRunItem struct { Index int Handler NamedHandler Request *Request }
A HandlerListRunItem represents an entry in the HandlerList which is being run.
type Handlers ¶
type Handlers struct { Validate HandlerList Build HandlerList Sign HandlerList Send HandlerList ValidateResponse HandlerList Unmarshal HandlerList UnmarshalMeta HandlerList UnmarshalError HandlerList Retry HandlerList AfterRetry HandlerList Complete HandlerList }
A Handlers provides a collection of request handlers for various stages of handling requests.
type NamedHandler ¶
A NamedHandler is a struct that contains a name and function callback.
type Operation ¶
type Operation struct { Name string HTTPMethod string HTTPPath string *Paginator BeforePresignFn func(r *Request) error }
An Operation is the service API operation to be made.
type Option ¶ added in v1.8.0
type Option func(*Request)
A Option is a functional option that can augment or modify a request when using a WithContext API operation method.
func WithAppendUserAgent ¶ added in v1.8.0
WithAppendUserAgent will add a string to the user agent prefixed with a single white space.
func WithGetResponseHeader ¶ added in v1.8.5
WithGetResponseHeader builds a request Option which will retrieve a single header value from the HTTP Response. If there are multiple values for the header key use WithGetResponseHeaders instead to access the http.Header map directly. The passed in val pointer must be non-nil.
This Option can be used multiple times with a single API operation.
var id2, versionID string svc.PutObjectWithContext(ctx, params, request.WithGetResponseHeader("x-amz-id-2", &id2), request.WithGetResponseHeader("x-amz-version-id", &versionID), )
func WithGetResponseHeaders ¶ added in v1.8.5
WithGetResponseHeaders builds a request Option which will retrieve the headers from the HTTP response and assign them to the passed in headers variable. The passed in headers pointer must be non-nil.
var headers http.Header svc.PutObjectWithContext(ctx, params, request.WithGetResponseHeaders(&headers))
func WithLogLevel ¶ added in v1.8.0
func WithLogLevel(l aws.LogLevelType) Option
WithLogLevel is a request option that will set the request to use a specific log level when the request is made.
svc.PutObjectWithContext(ctx, params, request.WithLogLevel(aws.LogDebugWithHTTPBody)
func WithResponseReadTimeout ¶ added in v1.8.10
WithResponseReadTimeout is a request option that will wrap the body in a timeout read closer. This will allow for per read timeouts. If a timeout occurred, we will return the ErrCodeResponseTimeout.
svc.PutObjectWithContext(ctx, params, request.WithTimeoutReadCloser(30 * time.Second)
type Pagination ¶ added in v1.8.0
type Pagination struct { // Function to return a Request value for each pagination request. // Any configuration or handlers that need to be applied to the request // prior to getting the next page should be done here before the request // returned. // // NewRequest should always be built from the same API operations. It is // undefined if different API operations are returned on subsequent calls. NewRequest func() (*Request, error) // contains filtered or unexported fields }
A Pagination provides paginating of SDK API operations which are paginatable. Generally you should not use this type directly, but use the "Pages" API operations method to automatically perform pagination for you. Such as, "S3.ListObjectsPages", and "S3.ListObjectsPagesWithContext" methods.
Pagination differs from a Paginator type in that pagination is the type that does the pagination between API operations, and Paginator defines the configuration that will be used per page request.
cont := true for p.Next() && cont { data := p.Page().(*s3.ListObjectsOutput) // process the page's data } return p.Err()
See service client API operation Pages methods for examples how the SDK will use the Pagination type.
func (*Pagination) Err ¶ added in v1.8.0
func (p *Pagination) Err() error
Err returns the error Pagination encountered when retrieving the next page.
func (*Pagination) HasNextPage ¶ added in v1.8.0
func (p *Pagination) HasNextPage() bool
HasNextPage will return true if Pagination is able to determine that the API operation has additional pages. False will be returned if there are no more pages remaining.
Will always return true if Next has not been called yet.
func (*Pagination) Next ¶ added in v1.8.0
func (p *Pagination) Next() bool
Next will attempt to retrieve the next page for the API operation. When a page is retrieved true will be returned. If the page cannot be retrieved, or there are no more pages false will be returned.
Use the Page method to retrieve the current page data. The data will need to be cast to the API operation's output type.
Use the Err method to determine if an error occurred if Page returns false.
func (*Pagination) Page ¶ added in v1.8.0
func (p *Pagination) Page() interface{}
Page returns the current page. Page should only be called after a successful call to Next. It is undefined what Page will return if Page is called after Next returns false.
type Paginator ¶
type Paginator struct { InputTokens []string OutputTokens []string LimitToken string TruncationToken string }
A Paginator is the configuration data that defines how an API operation should be paginated. This type is used by the API service models to define the generated pagination config for service APIs.
The Pagination type is what provides iterating between pages of an API. It is only used to store the token metadata the SDK should use for performing pagination.
type Request ¶
type Request struct { Config aws.Config ClientInfo metadata.ClientInfo Handlers Handlers Retryer Time time.Time ExpireTime time.Duration Operation *Operation HTTPRequest *http.Request HTTPResponse *http.Response Body io.ReadSeeker BodyStart int64 // offset from beginning of Body that the request body starts Params interface{} Error error Data interface{} RequestID string RetryCount int Retryable *bool RetryDelay time.Duration NotHoist bool SignedHeaderVals http.Header LastSignedAt time.Time // contains filtered or unexported fields }
A Request is the service request to be made.
func New ¶
func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers, retryer Retryer, operation *Operation, params interface{}, data interface{}) *Request
New returns a new Request pointer for the service API operation and parameters.
Params is any value of input parameters to be the request payload. Data is pointer value to an object which the request's response payload will be deserialized to.
func (*Request) ApplyOptions ¶ added in v1.8.0
ApplyOptions will apply each option to the request calling them in the order the were provided.
func (*Request) Build ¶
Build will build the request's object so it can be signed and sent to the service. Build will also validate all the request's parameters. Anny additional build Handlers set on this request will be run in the order they were set.
The request will only be built once. Multiple calls to build will have no effect.
If any Validate or Build errors occur the build will stop and the error which occurred will be returned.
func (*Request) Context ¶ added in v1.8.0
Context will always returns a non-nil context. If Request does not have a context aws.BackgroundContext will be returned.
func (*Request) DataFilled ¶
DataFilled returns true if the request's data for response deserialization target has been set and is a valid. False is returned if data is not set, or is invalid.
func (*Request) EachPage ¶
EachPage iterates over each page of a paginated request object. The fn parameter should be a function with the following sample signature:
func(page *T, lastPage bool) bool { return true // return false to stop iterating }
Where "T" is the structure type matching the output structure of the given operation. For example, a request object generated by DynamoDB.ListTablesRequest() would expect to see dynamodb.ListTablesOutput as the structure "T". The lastPage value represents whether the page is the last page of data or not. The return value of this function should return true to keep iterating or false to stop.
Deprecated Use Pagination type for configurable pagination of API operations
func (*Request) GetBody ¶ added in v1.5.1
func (r *Request) GetBody() io.ReadSeeker
GetBody will return an io.ReadSeeker of the Request's underlying input body with a concurrency safe wrapper.
func (*Request) HasNextPage ¶
HasNextPage returns true if this request has more pages of data available.
Deprecated Use Pagination type for configurable pagination of API operations
func (*Request) IsErrorExpired ¶
IsErrorExpired returns whether the error code is a credential expiry error. Returns false if the request has no Error set.
func (*Request) IsErrorRetryable ¶
IsErrorRetryable returns whether the error is retryable, based on its Code. Returns false if the request has no Error set.
func (*Request) IsErrorThrottle ¶ added in v1.1.16
IsErrorThrottle returns whether the error is to be throttled based on its code. Returns false if the request has no Error set
func (*Request) NextPage ¶
NextPage returns a new Request that can be executed to return the next page of result data. Call .Send() on this request to execute it.
Deprecated Use Pagination type for configurable pagination of API operations
func (*Request) ParamsFilled ¶
ParamsFilled returns if the request's parameters have been populated and the parameters are valid. False is returned if no parameters are provided or invalid.
func (*Request) Presign ¶
Presign returns the request's signed URL. Error will be returned if the signing fails.
func (*Request) PresignRequest ¶ added in v1.1.16
PresignRequest behaves just like presign, but hoists all headers and signs them. Also returns the signed hash back to the user
func (*Request) ResetBody ¶ added in v1.5.1
func (r *Request) ResetBody()
ResetBody rewinds the request body backto its starting position, and set's the HTTP Request body reference. When the body is read prior to being sent in the HTTP request it will need to be rewound.
func (*Request) Send ¶
Send will send the request returning error if errors are encountered.
Send will sign the request prior to sending. All Send Handlers will be executed in the order they were set.
Canceling a request is non-deterministic. If a request has been canceled, then the transport will choose, randomly, one of the state channels during reads or getting the connection.
readLoop() and getConn(req *Request, cm connectMethod) https://github.com/golang/go/blob/master/src/net/http/transport.go
Send will not close the request.Request's body.
func (*Request) SetBufferBody ¶
SetBufferBody will set the request's body bytes that will be sent to the service API.
func (*Request) SetContext ¶ added in v1.8.0
SetContext adds a Context to the current request that can be used to cancel a in-flight request. The Context value must not be nil, or this method will panic.
Unlike http.Request.WithContext, SetContext does not return a copy of the Request. It is not safe to use use a single Request value for multiple requests. A new Request should be created for each API operation request.
Go 1.6 and below: The http.Request's Cancel field will be set to the Done() value of the context. This will overwrite the Cancel field's value.
Go 1.7 and above: The http.Request.WithContext will be used to set the context on the underlying http.Request. This will create a shallow copy of the http.Request. The SDK may create sub contexts in the future for nested requests such as retries.
func (*Request) SetReaderBody ¶
func (r *Request) SetReaderBody(reader io.ReadSeeker)
SetReaderBody will set the request's body reader.
func (*Request) SetStringBody ¶
SetStringBody sets the body of the request to be backed by a string.
type Retryer ¶
type Retryer interface { RetryRules(*Request) time.Duration ShouldRetry(*Request) bool MaxRetries() int }
Retryer is an interface to control retry logic for a given service. The default implementation used by most services is the service.DefaultRetryer structure, which contains basic retry logic using exponential backoff.
type Validator ¶ added in v1.1.24
type Validator interface {
Validate() error
}
Validator provides a way for types to perform validation logic on their input values that external code can use to determine if a type's values are valid.
type Waiter ¶ added in v1.8.0
type Waiter struct { Name string Acceptors []WaiterAcceptor Logger aws.Logger MaxAttempts int Delay WaiterDelay RequestOptions []Option NewRequest func([]Option) (*Request, error) }
A Waiter provides the functionality to performing blocking call which will wait for an resource state to be satisfied a service.
This type should not be used directly. The API operations provided in the service packages prefixed with "WaitUntil" should be used instead.
func (*Waiter) ApplyOptions ¶ added in v1.8.0
func (w *Waiter) ApplyOptions(opts ...WaiterOption)
ApplyOptions updates the waiter with the list of waiter options provided.
func (Waiter) WaitWithContext ¶ added in v1.8.0
WaitWithContext will make requests for the API operation using NewRequest to build API requests. The request's response will be compared against the Waiter's Acceptors to determine the successful state of the resource the waiter is inspecting.
The passed in context must not be nil. If it is nil a panic will occur. The Context will be used to cancel the waiter's pending requests and retry delays. Use aws.BackgroundContext if no context is available.
The waiter will continue until the target state defined by the Acceptors, or the max attempts expires.
Will return the WaiterResourceNotReadyErrorCode error code if the waiter's retryer ShouldRetry returns false. This normally will happen when the max wait attempts expires.
type WaiterAcceptor ¶ added in v1.8.0
type WaiterAcceptor struct { State WaiterState Matcher WaiterMatchMode Argument string Expected interface{} }
A WaiterAcceptor provides the information needed to wait for an API operation to complete.
type WaiterDelay ¶ added in v1.8.0
WaiterDelay will return a delay the waiter should pause between attempts to check the resource state. The passed in attempt is the number of times the Waiter has checked the resource state.
Attempt is the number of attempts the Waiter has made checking the resource state.
func ConstantWaiterDelay ¶ added in v1.8.0
func ConstantWaiterDelay(delay time.Duration) WaiterDelay
ConstantWaiterDelay returns a WaiterDelay that will always return a constant delay the waiter should use between attempts. It ignores the number of attempts made.
type WaiterMatchMode ¶ added in v1.8.0
type WaiterMatchMode int
WaiterMatchMode is the mode that the waiter will use to match the WaiterAcceptor definition's Expected attribute.
const ( PathAllWaiterMatch WaiterMatchMode = iota // match on all paths PathWaiterMatch // match on specific path PathAnyWaiterMatch // match on any path PathListWaiterMatch // match on list of paths StatusWaiterMatch // match on status code ErrorWaiterMatch // match on error )
Modes the waiter will use when inspecting API response to identify target resource states.
func (WaiterMatchMode) String ¶ added in v1.8.0
func (m WaiterMatchMode) String() string
String returns the string representation of the waiter match mode.
type WaiterOption ¶ added in v1.8.0
type WaiterOption func(*Waiter)
A WaiterOption is a function that will update the Waiter value's fields to configure the waiter.
func WithWaiterDelay ¶ added in v1.8.0
func WithWaiterDelay(delayer WaiterDelay) WaiterOption
WithWaiterDelay will set the Waiter to use the WaiterDelay passed in.
func WithWaiterLogger ¶ added in v1.8.0
func WithWaiterLogger(logger aws.Logger) WaiterOption
WithWaiterLogger returns a waiter option to set the logger a waiter should use to log warnings and errors to.
func WithWaiterMaxAttempts ¶ added in v1.8.0
func WithWaiterMaxAttempts(max int) WaiterOption
WithWaiterMaxAttempts returns the maximum number of times the waiter should attempt to check the resource for the target state.
func WithWaiterRequestOptions ¶ added in v1.8.0
func WithWaiterRequestOptions(opts ...Option) WaiterOption
WithWaiterRequestOptions returns a waiter option setting the request options for each request the waiter makes. Appends to waiter's request options already set.
type WaiterState ¶ added in v1.8.0
type WaiterState int
WaiterState are states the waiter uses based on WaiterAcceptor definitions to identify if the resource state the waiter is waiting on has occurred.
const ( SuccessWaiterState WaiterState = iota // waiter successful FailureWaiterState // waiter failed RetryWaiterState // waiter needs to be retried )
States the waiter acceptors will use to identify target resource states.
func (WaiterState) String ¶ added in v1.8.0
func (s WaiterState) String() string
String returns the string representation of the waiter state.