Documentation ¶
Index ¶
- Variables
- func AfterRetryHandler(r *Request)
- func BuildContentLength(r *Request)
- func SendHandler(r *Request)
- func UserAgentHandler(r *Request)
- func ValidateEndpointHandler(r *Request)
- func ValidateParameters(r *Request)
- func ValidateResponseHandler(r *Request)
- type HandlerList
- type Handlers
- type Operation
- type Paginator
- type Request
- func (r *Request) Build() error
- func (r *Request) DataFilled() bool
- func (r *Request) EachPage(fn func(data interface{}, isLastPage bool) (shouldContinue bool)) error
- func (r *Request) HasNextPage() bool
- func (r *Request) NextPage() *Request
- func (r *Request) ParamsFilled() bool
- func (r *Request) Presign(expireTime time.Duration) (string, error)
- func (r *Request) Send() error
- func (r *Request) SetBufferBody(buf []byte)
- func (r *Request) SetReaderBody(reader io.ReadSeeker)
- func (r *Request) SetStringBody(s string)
- func (r *Request) Sign() error
- func (r *Request) WillRetry() bool
- type Service
Constants ¶
This section is empty.
Variables ¶
var ( // ErrMissingRegion is an error that is returned if region configuration is // not found. // // @readonly ErrMissingRegion error = awserr.New("MissingRegion", "could not find region configuration", nil) // ErrMissingEndpoint is an error that is returned if an endpoint cannot be // resolved for a service. // // @readonly ErrMissingEndpoint error = awserr.New("MissingEndpoint", "'Endpoint' configuration is required for this service", nil) )
Functions ¶
func AfterRetryHandler ¶
func AfterRetryHandler(r *Request)
AfterRetryHandler performs final checks to determine if the request should be retried and how long to delay.
func BuildContentLength ¶
func BuildContentLength(r *Request)
BuildContentLength builds the content length of a request based on the body, or will use the HTTPRequest.Header's "Content-Length" if defined. If unable to determine request body length and no "Content-Length" was specified it will panic.
func SendHandler ¶
func SendHandler(r *Request)
SendHandler is a request handler to send service request using HTTP client.
func UserAgentHandler ¶
func UserAgentHandler(r *Request)
UserAgentHandler is a request handler for injecting User agent into requests.
func ValidateEndpointHandler ¶
func ValidateEndpointHandler(r *Request)
ValidateEndpointHandler is a request handler to validate a request had the appropriate Region and Endpoint set. Will set r.Error if the endpoint or region is not valid.
func ValidateParameters ¶
func ValidateParameters(r *Request)
ValidateParameters is a request handler to validate the input parameters. Validating parameters only has meaning if done prior to the request being sent.
func ValidateResponseHandler ¶
func ValidateResponseHandler(r *Request)
ValidateResponseHandler is a request handler to validate service response.
Types ¶
type HandlerList ¶
type HandlerList struct {
// 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 handlers f to the back of the handler list.
func (*HandlerList) PushFront ¶
func (l *HandlerList) PushFront(f ...func(*Request))
PushFront pushes handlers f to the front of the handler list.
func (*HandlerList) Run ¶
func (l *HandlerList) Run(r *Request)
Run executes all handlers in the list with a given request object.
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 }
A Handlers provides a collection of request handlers for various stages of handling requests.
type Paginator ¶
type Paginator struct { InputTokens []string OutputTokens []string LimitToken string TruncationToken string }
Paginator keeps track of pagination configuration for an API operation.
type Request ¶
type Request struct { *Service Handlers Handlers Time time.Time ExpireTime time.Duration Operation *Operation HTTPRequest *http.Request HTTPResponse *http.Response Body io.ReadSeeker Params interface{} Error error Data interface{} RequestID string RetryCount uint Retryable *bool RetryDelay time.Duration // contains filtered or unexported fields }
A Request is the service request to be made.
func NewRequest ¶
func NewRequest(service *Service, operation *Operation, params interface{}, data interface{}) *Request
NewRequest 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) 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) 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.
func (*Request) HasNextPage ¶
HasNextPage returns true if this request has more pages of data available.
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.
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) 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.
func (*Request) SetBufferBody ¶
SetBufferBody will set the request's body bytes that will be sent to the service API.
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 Service ¶
type Service struct { Config *aws.Config Handlers Handlers ServiceName string APIVersion string Endpoint string SigningName string SigningRegion string JSONVersion string TargetPrefix string RetryRules func(*Request) time.Duration ShouldRetry func(*Request) bool DefaultMaxRetries uint }
A Service implements the base service request and response handling used by all services.
func NewService ¶
NewService will return a pointer to a new Server object initialized.
func (*Service) AddDebugHandlers ¶
func (s *Service) AddDebugHandlers()
AddDebugHandlers injects debug logging handlers into the service to log request debug information.
func (*Service) MaxRetries ¶
MaxRetries returns the number of maximum returns the service will use to make an individual API request.