Documentation

Overview

Package aws provides the core SDK's utilities and shared types. Use this package's utilities to simplify setting and reading API operations parameters.

Value and Pointer Conversion Utilities

This package includes a helper conversion utility for each scalar type the SDK's API use. These utilities make getting a pointer of the scalar, and dereferencing a pointer easier.

Each conversion utility comes in two forms. Value to Pointer and Pointer to Value. The Pointer to value will safely dereference the pointer and return its value. If the pointer was nil, the scalar's zero value will be returned.

The value to pointer functions will be named after the scalar type. So get a *string from a string value use the "String" function. This makes it easy to to get pointer of a literal string value, because getting the address of a literal requires assigning the value to a variable first.

var strPtr *string

// Without the SDK's conversion functions
str := "my string"
strPtr = &str

// With the SDK's conversion functions
strPtr = aws.String("my string")

// Convert *string to string value
str = aws.StringValue(strPtr)

In addition to scalars the aws package also includes conversion utilities for map and slice for commonly types used in API parameters. The map and slice conversion functions use similar naming pattern as the scalar conversion functions.

var strPtrs []*string
var strs []string = []string{"Go", "Gophers", "Go"}

// Convert []string to []*string
strPtrs = aws.StringSlice(strs)

// Convert []*string to []string
strs = aws.StringValueSlice(strPtrs)

SDK Default HTTP Client

The SDK will use the http.DefaultClient if a HTTP client is not provided to the SDK's Session, or service client constructor. This means that if the http.DefaultClient is modified by other components of your application the modifications will be picked up by the SDK as well.

In some cases this might be intended, but it is a better practice to create a custom HTTP Client to share explicitly through your application. You can configure the SDK to use the custom HTTP Client by setting the HTTPClient value of the SDK's Config type when creating a Session or service client.

Package aws provides core functionality for making requests to AWS services.

Index

Constants

View Source
const SDKName = "aws-sdk-go"

    SDKName is the name of this AWS SDK

    View Source
    const SDKVersion = "1.20.9"

      SDKVersion is the version of this SDK

      View Source
      const UseServiceDefaultRetries = -1

        UseServiceDefaultRetries instructs the config to use the service's own default number of retries. This will be the default action if Config.MaxRetries is nil also.

        Variables

        View Source
        var (
        	// ErrMissingRegion is an error that is returned if region configuration is
        	// not found.
        	ErrMissingRegion = 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.
        	ErrMissingEndpoint = awserr.New("MissingEndpoint", "'Endpoint' configuration is required for this service", nil)
        )

        Functions

        func Bool

        func Bool(v bool) *bool

          Bool returns a pointer to the bool value passed in.

          func BoolMap

          func BoolMap(src map[string]bool) map[string]*bool

            BoolMap converts a string map of bool values into a string map of bool pointers

            func BoolSlice

            func BoolSlice(src []bool) []*bool

              BoolSlice converts a slice of bool values into a slice of bool pointers

              func BoolValue

              func BoolValue(v *bool) bool

                BoolValue returns the value of the bool pointer passed in or false if the pointer is nil.

                func BoolValueMap

                func BoolValueMap(src map[string]*bool) map[string]bool

                  BoolValueMap converts a string map of bool pointers into a string map of bool values

                  func BoolValueSlice

                  func BoolValueSlice(src []*bool) []bool

                    BoolValueSlice converts a slice of bool pointers into a slice of bool values

                    func Float64

                    func Float64(v float64) *float64

                      Float64 returns a pointer to the float64 value passed in.

                      func Float64Map

                      func Float64Map(src map[string]float64) map[string]*float64

                        Float64Map converts a string map of float64 values into a string map of float64 pointers

                        func Float64Slice

                        func Float64Slice(src []float64) []*float64

                          Float64Slice converts a slice of float64 values into a slice of float64 pointers

                          func Float64Value

                          func Float64Value(v *float64) float64

                            Float64Value returns the value of the float64 pointer passed in or 0 if the pointer is nil.

                            func Float64ValueMap

                            func Float64ValueMap(src map[string]*float64) map[string]float64

                              Float64ValueMap converts a string map of float64 pointers into a string map of float64 values

                              func Float64ValueSlice

                              func Float64ValueSlice(src []*float64) []float64

                                Float64ValueSlice converts a slice of float64 pointers into a slice of float64 values

                                func Int

                                func Int(v int) *int

                                  Int returns a pointer to the int value passed in.

                                  func Int64

                                  func Int64(v int64) *int64

                                    Int64 returns a pointer to the int64 value passed in.

                                    func Int64Map

                                    func Int64Map(src map[string]int64) map[string]*int64

                                      Int64Map converts a string map of int64 values into a string map of int64 pointers

                                      func Int64Slice

                                      func Int64Slice(src []int64) []*int64

                                        Int64Slice converts a slice of int64 values into a slice of int64 pointers

                                        func Int64Value

                                        func Int64Value(v *int64) int64

                                          Int64Value returns the value of the int64 pointer passed in or 0 if the pointer is nil.

                                          func Int64ValueMap

                                          func Int64ValueMap(src map[string]*int64) map[string]int64

                                            Int64ValueMap converts a string map of int64 pointers into a string map of int64 values

                                            func Int64ValueSlice

                                            func Int64ValueSlice(src []*int64) []int64

                                              Int64ValueSlice converts a slice of int64 pointers into a slice of int64 values

                                              func IntMap

                                              func IntMap(src map[string]int) map[string]*int

                                                IntMap converts a string map of int values into a string map of int pointers

                                                func IntSlice

                                                func IntSlice(src []int) []*int

                                                  IntSlice converts a slice of int values into a slice of int pointers

                                                  func IntValue

                                                  func IntValue(v *int) int

                                                    IntValue returns the value of the int pointer passed in or 0 if the pointer is nil.

                                                    func IntValueMap

                                                    func IntValueMap(src map[string]*int) map[string]int

                                                      IntValueMap converts a string map of int pointers into a string map of int values

                                                      func IntValueSlice

                                                      func IntValueSlice(src []*int) []int

                                                        IntValueSlice converts a slice of int pointers into a slice of int values

                                                        func IsReaderSeekable

                                                        func IsReaderSeekable(r io.Reader) bool

                                                          IsReaderSeekable returns if the underlying reader type can be seeked. A io.Reader might not actually be seekable if it is the ReaderSeekerCloser type.

                                                          func MillisecondsTimeValue

                                                          func MillisecondsTimeValue(v *int64) time.Time

                                                            MillisecondsTimeValue converts an int64 pointer to a time.Time value representing milliseconds sinch Epoch or time.Time{} if the pointer is nil.

                                                            func SecondsTimeValue

                                                            func SecondsTimeValue(v *int64) time.Time

                                                              SecondsTimeValue converts an int64 pointer to a time.Time value representing seconds since Epoch or time.Time{} if the pointer is nil.

                                                              func SeekerLen

                                                              func SeekerLen(s io.Seeker) (int64, error)

                                                                SeekerLen attempts to get the number of bytes remaining at the seeker's current position. Returns the number of bytes remaining or error.

                                                                func SleepWithContext

                                                                func SleepWithContext(ctx Context, dur time.Duration) error

                                                                  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 String

                                                                  func String(v string) *string

                                                                    String returns a pointer to the string value passed in.

                                                                    func StringMap

                                                                    func StringMap(src map[string]string) map[string]*string

                                                                      StringMap converts a string map of string values into a string map of string pointers

                                                                      func StringSlice

                                                                      func StringSlice(src []string) []*string

                                                                        StringSlice converts a slice of string values into a slice of string pointers

                                                                        func StringValue

                                                                        func StringValue(v *string) string

                                                                          StringValue returns the value of the string pointer passed in or "" if the pointer is nil.

                                                                          func StringValueMap

                                                                          func StringValueMap(src map[string]*string) map[string]string

                                                                            StringValueMap converts a string map of string pointers into a string map of string values

                                                                            func StringValueSlice

                                                                            func StringValueSlice(src []*string) []string

                                                                              StringValueSlice converts a slice of string pointers into a slice of string values

                                                                              func Time

                                                                              func Time(v time.Time) *time.Time

                                                                                Time returns a pointer to the time.Time value passed in.

                                                                                func TimeMap

                                                                                func TimeMap(src map[string]time.Time) map[string]*time.Time

                                                                                  TimeMap converts a string map of time.Time values into a string map of time.Time pointers

                                                                                  func TimeSlice

                                                                                  func TimeSlice(src []time.Time) []*time.Time

                                                                                    TimeSlice converts a slice of time.Time values into a slice of time.Time pointers

                                                                                    func TimeUnixMilli

                                                                                    func TimeUnixMilli(t time.Time) int64

                                                                                      TimeUnixMilli returns a Unix timestamp in milliseconds from "January 1, 1970 UTC". The result is undefined if the Unix time cannot be represented by an int64. Which includes calling TimeUnixMilli on a zero Time is undefined.

                                                                                      This utility is useful for service API's such as CloudWatch Logs which require their unix time values to be in milliseconds.

                                                                                      See Go stdlib https://golang.org/pkg/time/#Time.UnixNano for more information.

                                                                                      func TimeValue

                                                                                      func TimeValue(v *time.Time) time.Time

                                                                                        TimeValue returns the value of the time.Time pointer passed in or time.Time{} if the pointer is nil.

                                                                                        func TimeValueMap

                                                                                        func TimeValueMap(src map[string]*time.Time) map[string]time.Time

                                                                                          TimeValueMap converts a string map of time.Time pointers into a string map of time.Time values

                                                                                          func TimeValueSlice

                                                                                          func TimeValueSlice(src []*time.Time) []time.Time

                                                                                            TimeValueSlice converts a slice of time.Time pointers into a slice of time.Time values

                                                                                            func URLHostname

                                                                                            func URLHostname(url *url.URL) string

                                                                                              URLHostname will extract the Hostname without port from the URL value.

                                                                                              Wrapper of net/url#URL.Hostname for backwards Go version compatibility.

                                                                                              Types

                                                                                              type Config

                                                                                              type Config struct {
                                                                                              	// Enables verbose error printing of all credential chain errors.
                                                                                              	// Should be used when wanting to see all errors while attempting to
                                                                                              	// retrieve credentials.
                                                                                              	CredentialsChainVerboseErrors *bool
                                                                                              
                                                                                              	// The credentials object to use when signing requests. Defaults to a
                                                                                              	// chain of credential providers to search for credentials in environment
                                                                                              	// variables, shared credential file, and EC2 Instance Roles.
                                                                                              	Credentials *credentials.Credentials
                                                                                              
                                                                                              	// An optional endpoint URL (hostname only or fully qualified URI)
                                                                                              	// that overrides the default generated endpoint for a client. Set this
                                                                                              	// to `""` to use the default generated endpoint.
                                                                                              	//
                                                                                              	// Note: You must still provide a `Region` value when specifying an
                                                                                              	// endpoint for a client.
                                                                                              	Endpoint *string
                                                                                              
                                                                                              	// The resolver to use for looking up endpoints for AWS service clients
                                                                                              	// to use based on region.
                                                                                              	EndpointResolver endpoints.Resolver
                                                                                              
                                                                                              	// EnforceShouldRetryCheck is used in the AfterRetryHandler to always call
                                                                                              	// ShouldRetry regardless of whether or not if request.Retryable is set.
                                                                                              	// This will utilize ShouldRetry method of custom retryers. If EnforceShouldRetryCheck
                                                                                              	// is not set, then ShouldRetry will only be called if request.Retryable is nil.
                                                                                              	// Proper handling of the request.Retryable field is important when setting this field.
                                                                                              	EnforceShouldRetryCheck *bool
                                                                                              
                                                                                              	// The region to send requests to. This parameter is required and must
                                                                                              	// be configured globally or on a per-client basis unless otherwise
                                                                                              	// noted. A full list of regions is found in the "Regions and Endpoints"
                                                                                              	// document.
                                                                                              	//
                                                                                              	// See http://docs.aws.amazon.com/general/latest/gr/rande.html for AWS
                                                                                              	// Regions and Endpoints.
                                                                                              	Region *string
                                                                                              
                                                                                              	// Set this to `true` to disable SSL when sending requests. Defaults
                                                                                              	// to `false`.
                                                                                              	DisableSSL *bool
                                                                                              
                                                                                              	// The HTTP client to use when sending requests. Defaults to
                                                                                              	// `http.DefaultClient`.
                                                                                              	HTTPClient *http.Client
                                                                                              
                                                                                              	// An integer value representing the logging level. The default log level
                                                                                              	// is zero (LogOff), which represents no logging. To enable logging set
                                                                                              	// to a LogLevel Value.
                                                                                              	LogLevel *LogLevelType
                                                                                              
                                                                                              	// The logger writer interface to write logging messages to. Defaults to
                                                                                              	// standard out.
                                                                                              	Logger Logger
                                                                                              
                                                                                              	// The maximum number of times that a request will be retried for failures.
                                                                                              	// Defaults to -1, which defers the max retry setting to the service
                                                                                              	// specific configuration.
                                                                                              	MaxRetries *int
                                                                                              
                                                                                              	// Retryer guides how HTTP requests should be retried in case of
                                                                                              	// recoverable failures.
                                                                                              	//
                                                                                              	// When nil or the value does not implement the request.Retryer interface,
                                                                                              	// the client.DefaultRetryer will be used.
                                                                                              	//
                                                                                              	// When both Retryer and MaxRetries are non-nil, the former is used and
                                                                                              	// the latter ignored.
                                                                                              	//
                                                                                              	// To set the Retryer field in a type-safe manner and with chaining, use
                                                                                              	// the request.WithRetryer helper function:
                                                                                              	//
                                                                                              	//   cfg := request.WithRetryer(aws.NewConfig(), myRetryer)
                                                                                              	//
                                                                                              	Retryer RequestRetryer
                                                                                              
                                                                                              	// Disables semantic parameter validation, which validates input for
                                                                                              	// missing required fields and/or other semantic request input errors.
                                                                                              	DisableParamValidation *bool
                                                                                              
                                                                                              	// Disables the computation of request and response checksums, e.g.,
                                                                                              	// CRC32 checksums in Amazon DynamoDB.
                                                                                              	DisableComputeChecksums *bool
                                                                                              
                                                                                              	// Set this to `true` to force the request to use path-style addressing,
                                                                                              	// i.e., `http://s3.amazonaws.com/BUCKET/KEY`. By default, the S3 client
                                                                                              	// will use virtual hosted bucket addressing when possible
                                                                                              	// (`http://BUCKET.s3.amazonaws.com/KEY`).
                                                                                              	//
                                                                                              	// Note: This configuration option is specific to the Amazon S3 service.
                                                                                              	//
                                                                                              	// See http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
                                                                                              	// for Amazon S3: Virtual Hosting of Buckets
                                                                                              	S3ForcePathStyle *bool
                                                                                              
                                                                                              	// Set this to `true` to disable the SDK adding the `Expect: 100-Continue`
                                                                                              	// header to PUT requests over 2MB of content. 100-Continue instructs the
                                                                                              	// HTTP client not to send the body until the service responds with a
                                                                                              	// `continue` status. This is useful to prevent sending the request body
                                                                                              	// until after the request is authenticated, and validated.
                                                                                              	//
                                                                                              	// http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html
                                                                                              	//
                                                                                              	// 100-Continue is only enabled for Go 1.6 and above. See `http.Transport`'s
                                                                                              	// `ExpectContinueTimeout` for information on adjusting the continue wait
                                                                                              	// timeout. https://golang.org/pkg/net/http/#Transport
                                                                                              	//
                                                                                              	// You should use this flag to disble 100-Continue if you experience issues
                                                                                              	// with proxies or third party S3 compatible services.
                                                                                              	S3Disable100Continue *bool
                                                                                              
                                                                                              	// Set this to `true` to enable S3 Accelerate feature. For all operations
                                                                                              	// compatible with S3 Accelerate will use the accelerate endpoint for
                                                                                              	// requests. Requests not compatible will fall back to normal S3 requests.
                                                                                              	//
                                                                                              	// The bucket must be enable for accelerate to be used with S3 client with
                                                                                              	// accelerate enabled. If the bucket is not enabled for accelerate an error
                                                                                              	// will be returned. The bucket name must be DNS compatible to also work
                                                                                              	// with accelerate.
                                                                                              	S3UseAccelerate *bool
                                                                                              
                                                                                              	// S3DisableContentMD5Validation config option is temporarily disabled,
                                                                                              	// For S3 GetObject API calls, #1837.
                                                                                              	//
                                                                                              	// Set this to `true` to disable the S3 service client from automatically
                                                                                              	// adding the ContentMD5 to S3 Object Put and Upload API calls. This option
                                                                                              	// will also disable the SDK from performing object ContentMD5 validation
                                                                                              	// on GetObject API calls.
                                                                                              	S3DisableContentMD5Validation *bool
                                                                                              
                                                                                              	// Set this to `true` to disable the EC2Metadata client from overriding the
                                                                                              	// default http.Client's Timeout. This is helpful if you do not want the
                                                                                              	// EC2Metadata client to create a new http.Client. This options is only
                                                                                              	// meaningful if you're not already using a custom HTTP client with the
                                                                                              	// SDK. Enabled by default.
                                                                                              	//
                                                                                              	// Must be set and provided to the session.NewSession() in order to disable
                                                                                              	// the EC2Metadata overriding the timeout for default credentials chain.
                                                                                              	//
                                                                                              	// Example:
                                                                                              	//    sess := session.Must(session.NewSession(aws.NewConfig()
                                                                                              	//       .WithEC2MetadataDiableTimeoutOverride(true)))
                                                                                              	//
                                                                                              	//    svc := s3.New(sess)
                                                                                              	//
                                                                                              	EC2MetadataDisableTimeoutOverride *bool
                                                                                              
                                                                                              	// Instructs the endpoint to be generated for a service client to
                                                                                              	// be the dual stack endpoint. The dual stack endpoint will support
                                                                                              	// both IPv4 and IPv6 addressing.
                                                                                              	//
                                                                                              	// Setting this for a service which does not support dual stack will fail
                                                                                              	// to make requets. It is not recommended to set this value on the session
                                                                                              	// as it will apply to all service clients created with the session. Even
                                                                                              	// services which don't support dual stack endpoints.
                                                                                              	//
                                                                                              	// If the Endpoint config value is also provided the UseDualStack flag
                                                                                              	// will be ignored.
                                                                                              	//
                                                                                              	// Only supported with.
                                                                                              	//
                                                                                              	//     sess := session.Must(session.NewSession())
                                                                                              	//
                                                                                              	//     svc := s3.New(sess, &aws.Config{
                                                                                              	//         UseDualStack: aws.Bool(true),
                                                                                              	//     })
                                                                                              	UseDualStack *bool
                                                                                              
                                                                                              	// SleepDelay is an override for the func the SDK will call when sleeping
                                                                                              	// during the lifecycle of a request. Specifically this will be used for
                                                                                              	// request delays. This value should only be used for testing. To adjust
                                                                                              	// the delay of a request see the aws/client.DefaultRetryer and
                                                                                              	// aws/request.Retryer.
                                                                                              	//
                                                                                              	// SleepDelay will prevent any Context from being used for canceling retry
                                                                                              	// delay of an API operation. It is recommended to not use SleepDelay at all
                                                                                              	// and specify a Retryer instead.
                                                                                              	SleepDelay func(time.Duration)
                                                                                              
                                                                                              	// DisableRestProtocolURICleaning will not clean the URL path when making rest protocol requests.
                                                                                              	// Will default to false. This would only be used for empty directory names in s3 requests.
                                                                                              	//
                                                                                              	// Example:
                                                                                              	//    sess := session.Must(session.NewSession(&aws.Config{
                                                                                              	//         DisableRestProtocolURICleaning: aws.Bool(true),
                                                                                              	//    }))
                                                                                              	//
                                                                                              	//    svc := s3.New(sess)
                                                                                              	//    out, err := svc.GetObject(&s3.GetObjectInput {
                                                                                              	//    	Bucket: aws.String("bucketname"),
                                                                                              	//    	Key: aws.String("//foo//bar//moo"),
                                                                                              	//    })
                                                                                              	DisableRestProtocolURICleaning *bool
                                                                                              
                                                                                              	// EnableEndpointDiscovery will allow for endpoint discovery on operations that
                                                                                              	// have the definition in its model. By default, endpoint discovery is off.
                                                                                              	//
                                                                                              	// Example:
                                                                                              	//    sess := session.Must(session.NewSession(&aws.Config{
                                                                                              	//         EnableEndpointDiscovery: aws.Bool(true),
                                                                                              	//    }))
                                                                                              	//
                                                                                              	//    svc := s3.New(sess)
                                                                                              	//    out, err := svc.GetObject(&s3.GetObjectInput {
                                                                                              	//    	Bucket: aws.String("bucketname"),
                                                                                              	//    	Key: aws.String("/foo/bar/moo"),
                                                                                              	//    })
                                                                                              	EnableEndpointDiscovery *bool
                                                                                              
                                                                                              	// DisableEndpointHostPrefix will disable the SDK's behavior of prefixing
                                                                                              	// request endpoint hosts with modeled information.
                                                                                              	//
                                                                                              	// Disabling this feature is useful when you want to use local endpoints
                                                                                              	// for testing that do not support the modeled host prefix pattern.
                                                                                              	DisableEndpointHostPrefix *bool
                                                                                              }

                                                                                                A Config provides service configuration for service clients. By default, all clients will use the defaults.DefaultConfig structure.

                                                                                                // Create Session with MaxRetry configuration to be shared by multiple
                                                                                                // service clients.
                                                                                                sess := session.Must(session.NewSession(&aws.Config{
                                                                                                    MaxRetries: aws.Int(3),
                                                                                                }))
                                                                                                
                                                                                                // Create S3 service client with a specific Region.
                                                                                                svc := s3.New(sess, &aws.Config{
                                                                                                    Region: aws.String("us-west-2"),
                                                                                                })
                                                                                                

                                                                                                func NewConfig

                                                                                                func NewConfig() *Config

                                                                                                  NewConfig returns a new Config pointer that can be chained with builder methods to set multiple configuration values inline without using pointers.

                                                                                                  // Create Session with MaxRetry configuration to be shared by multiple
                                                                                                  // service clients.
                                                                                                  sess := session.Must(session.NewSession(aws.NewConfig().
                                                                                                      WithMaxRetries(3),
                                                                                                  ))
                                                                                                  
                                                                                                  // Create S3 service client with a specific Region.
                                                                                                  svc := s3.New(sess, aws.NewConfig().
                                                                                                      WithRegion("us-west-2"),
                                                                                                  )
                                                                                                  

                                                                                                  func (*Config) Copy

                                                                                                  func (c *Config) Copy(cfgs ...*Config) *Config

                                                                                                    Copy will return a shallow copy of the Config object. If any additional configurations are provided they will be merged into the new config returned.

                                                                                                    func (*Config) MergeIn

                                                                                                    func (c *Config) MergeIn(cfgs ...*Config)

                                                                                                      MergeIn merges the passed in configs into the existing config object.

                                                                                                      func (*Config) WithCredentials

                                                                                                      func (c *Config) WithCredentials(creds *credentials.Credentials) *Config

                                                                                                        WithCredentials sets a config Credentials value returning a Config pointer for chaining.

                                                                                                        func (*Config) WithCredentialsChainVerboseErrors

                                                                                                        func (c *Config) WithCredentialsChainVerboseErrors(verboseErrs bool) *Config

                                                                                                          WithCredentialsChainVerboseErrors sets a config verbose errors boolean and returning a Config pointer.

                                                                                                          func (*Config) WithDisableComputeChecksums

                                                                                                          func (c *Config) WithDisableComputeChecksums(disable bool) *Config

                                                                                                            WithDisableComputeChecksums sets a config DisableComputeChecksums value returning a Config pointer for chaining.

                                                                                                            func (*Config) WithDisableEndpointHostPrefix

                                                                                                            func (c *Config) WithDisableEndpointHostPrefix(t bool) *Config

                                                                                                              WithDisableEndpointHostPrefix will set whether or not to use modeled host prefix when making requests.

                                                                                                              func (*Config) WithDisableParamValidation

                                                                                                              func (c *Config) WithDisableParamValidation(disable bool) *Config

                                                                                                                WithDisableParamValidation sets a config DisableParamValidation value returning a Config pointer for chaining.

                                                                                                                func (*Config) WithDisableSSL

                                                                                                                func (c *Config) WithDisableSSL(disable bool) *Config

                                                                                                                  WithDisableSSL sets a config DisableSSL value returning a Config pointer for chaining.

                                                                                                                  func (*Config) WithEC2MetadataDisableTimeoutOverride

                                                                                                                  func (c *Config) WithEC2MetadataDisableTimeoutOverride(enable bool) *Config

                                                                                                                    WithEC2MetadataDisableTimeoutOverride sets a config EC2MetadataDisableTimeoutOverride value returning a Config pointer for chaining.

                                                                                                                    func (*Config) WithEndpoint

                                                                                                                    func (c *Config) WithEndpoint(endpoint string) *Config

                                                                                                                      WithEndpoint sets a config Endpoint value returning a Config pointer for chaining.

                                                                                                                      func (*Config) WithEndpointDiscovery

                                                                                                                      func (c *Config) WithEndpointDiscovery(t bool) *Config

                                                                                                                        WithEndpointDiscovery will set whether or not to use endpoint discovery.

                                                                                                                        func (*Config) WithEndpointResolver

                                                                                                                        func (c *Config) WithEndpointResolver(resolver endpoints.Resolver) *Config

                                                                                                                          WithEndpointResolver sets a config EndpointResolver value returning a Config pointer for chaining.

                                                                                                                          func (*Config) WithHTTPClient

                                                                                                                          func (c *Config) WithHTTPClient(client *http.Client) *Config

                                                                                                                            WithHTTPClient sets a config HTTPClient value returning a Config pointer for chaining.

                                                                                                                            func (*Config) WithLogLevel

                                                                                                                            func (c *Config) WithLogLevel(level LogLevelType) *Config

                                                                                                                              WithLogLevel sets a config LogLevel value returning a Config pointer for chaining.

                                                                                                                              func (*Config) WithLogger

                                                                                                                              func (c *Config) WithLogger(logger Logger) *Config

                                                                                                                                WithLogger sets a config Logger value returning a Config pointer for chaining.

                                                                                                                                func (*Config) WithMaxRetries

                                                                                                                                func (c *Config) WithMaxRetries(max int) *Config

                                                                                                                                  WithMaxRetries sets a config MaxRetries value returning a Config pointer for chaining.

                                                                                                                                  func (*Config) WithRegion

                                                                                                                                  func (c *Config) WithRegion(region string) *Config

                                                                                                                                    WithRegion sets a config Region value returning a Config pointer for chaining.

                                                                                                                                    func (*Config) WithS3Disable100Continue

                                                                                                                                    func (c *Config) WithS3Disable100Continue(disable bool) *Config

                                                                                                                                      WithS3Disable100Continue sets a config S3Disable100Continue value returning a Config pointer for chaining.

                                                                                                                                      func (*Config) WithS3DisableContentMD5Validation

                                                                                                                                      func (c *Config) WithS3DisableContentMD5Validation(enable bool) *Config

                                                                                                                                        WithS3DisableContentMD5Validation sets a config S3DisableContentMD5Validation value returning a Config pointer for chaining.

                                                                                                                                        func (*Config) WithS3ForcePathStyle

                                                                                                                                        func (c *Config) WithS3ForcePathStyle(force bool) *Config

                                                                                                                                          WithS3ForcePathStyle sets a config S3ForcePathStyle value returning a Config pointer for chaining.

                                                                                                                                          func (*Config) WithS3UseAccelerate

                                                                                                                                          func (c *Config) WithS3UseAccelerate(enable bool) *Config

                                                                                                                                            WithS3UseAccelerate sets a config S3UseAccelerate value returning a Config pointer for chaining.

                                                                                                                                            func (*Config) WithSleepDelay

                                                                                                                                            func (c *Config) WithSleepDelay(fn func(time.Duration)) *Config

                                                                                                                                              WithSleepDelay overrides the function used to sleep while waiting for the next retry. Defaults to time.Sleep.

                                                                                                                                              func (*Config) WithUseDualStack

                                                                                                                                              func (c *Config) WithUseDualStack(enable bool) *Config

                                                                                                                                                WithUseDualStack sets a config UseDualStack value returning a Config pointer for chaining.

                                                                                                                                                type Context

                                                                                                                                                type Context = context.Context

                                                                                                                                                  Context is an alias of the Go stdlib's context.Context interface. It can be used within the SDK's API operation "WithContext" methods.

                                                                                                                                                  See https://golang.org/pkg/context on how to use contexts.

                                                                                                                                                  func BackgroundContext

                                                                                                                                                  func BackgroundContext() Context

                                                                                                                                                    BackgroundContext returns a context that will never be canceled, has no values, and no deadline. This context is used by the SDK to provide backwards compatibility with non-context API operations and functionality.

                                                                                                                                                    Go 1.6 and before: This context function is equivalent to context.Background in the Go stdlib.

                                                                                                                                                    Go 1.7 and later: The context returned will be the value returned by context.Background()

                                                                                                                                                    See https://golang.org/pkg/context for more information on Contexts.

                                                                                                                                                    type JSONValue

                                                                                                                                                    type JSONValue map[string]interface{}

                                                                                                                                                      JSONValue is a representation of a grab bag type that will be marshaled into a json string. This type can be used just like any other map.

                                                                                                                                                      Example:
                                                                                                                                                      
                                                                                                                                                      values := aws.JSONValue{
                                                                                                                                                      	"Foo": "Bar",
                                                                                                                                                      }
                                                                                                                                                      values["Baz"] = "Qux"
                                                                                                                                                      

                                                                                                                                                      type LogLevelType

                                                                                                                                                      type LogLevelType uint

                                                                                                                                                        A LogLevelType defines the level logging should be performed at. Used to instruct the SDK which statements should be logged.

                                                                                                                                                        const (
                                                                                                                                                        	// LogOff states that no logging should be performed by the SDK. This is the
                                                                                                                                                        	// default state of the SDK, and should be use to disable all logging.
                                                                                                                                                        	LogOff LogLevelType = iota * 0x1000
                                                                                                                                                        
                                                                                                                                                        	// LogDebug state that debug output should be logged by the SDK. This should
                                                                                                                                                        	// be used to inspect request made and responses received.
                                                                                                                                                        	LogDebug
                                                                                                                                                        )
                                                                                                                                                        const (
                                                                                                                                                        	// LogDebugWithSigning states that the SDK should log request signing and
                                                                                                                                                        	// presigning events. This should be used to log the signing details of
                                                                                                                                                        	// requests for debugging. Will also enable LogDebug.
                                                                                                                                                        	LogDebugWithSigning LogLevelType = LogDebug | (1 << iota)
                                                                                                                                                        
                                                                                                                                                        	// LogDebugWithHTTPBody states the SDK should log HTTP request and response
                                                                                                                                                        	// HTTP bodys in addition to the headers and path. This should be used to
                                                                                                                                                        	// see the body content of requests and responses made while using the SDK
                                                                                                                                                        	// Will also enable LogDebug.
                                                                                                                                                        	LogDebugWithHTTPBody
                                                                                                                                                        
                                                                                                                                                        	// LogDebugWithRequestRetries states the SDK should log when service requests will
                                                                                                                                                        	// be retried. This should be used to log when you want to log when service
                                                                                                                                                        	// requests are being retried. Will also enable LogDebug.
                                                                                                                                                        	LogDebugWithRequestRetries
                                                                                                                                                        
                                                                                                                                                        	// LogDebugWithRequestErrors states the SDK should log when service requests fail
                                                                                                                                                        	// to build, send, validate, or unmarshal.
                                                                                                                                                        	LogDebugWithRequestErrors
                                                                                                                                                        
                                                                                                                                                        	// LogDebugWithEventStreamBody states the SDK should log EventStream
                                                                                                                                                        	// request and response bodys. This should be used to log the EventStream
                                                                                                                                                        	// wire unmarshaled message content of requests and responses made while
                                                                                                                                                        	// using the SDK Will also enable LogDebug.
                                                                                                                                                        	LogDebugWithEventStreamBody
                                                                                                                                                        )

                                                                                                                                                          Debug Logging Sub Levels

                                                                                                                                                          func LogLevel

                                                                                                                                                          func LogLevel(l LogLevelType) *LogLevelType

                                                                                                                                                            LogLevel returns the pointer to a LogLevel. Should be used to workaround not being able to take the address of a non-composite literal.

                                                                                                                                                            func (*LogLevelType) AtLeast

                                                                                                                                                            func (l *LogLevelType) AtLeast(v LogLevelType) bool

                                                                                                                                                              AtLeast returns true if this LogLevel is at least high enough to satisfies v. Is safe to use on nil value LogLevelTypes. If LogLevel is nil, will default to LogOff comparison.

                                                                                                                                                              func (*LogLevelType) Matches

                                                                                                                                                              func (l *LogLevelType) Matches(v LogLevelType) bool

                                                                                                                                                                Matches returns true if the v LogLevel is enabled by this LogLevel. Should be used with logging sub levels. Is safe to use on nil value LogLevelTypes. If LogLevel is nil, will default to LogOff comparison.

                                                                                                                                                                func (*LogLevelType) Value

                                                                                                                                                                func (l *LogLevelType) Value() LogLevelType

                                                                                                                                                                  Value returns the LogLevel value or the default value LogOff if the LogLevel is nil. Safe to use on nil value LogLevelTypes.

                                                                                                                                                                  type Logger

                                                                                                                                                                  type Logger interface {
                                                                                                                                                                  	Log(...interface{})
                                                                                                                                                                  }

                                                                                                                                                                    A Logger is a minimalistic interface for the SDK to log messages to. Should be used to provide custom logging writers for the SDK to use.

                                                                                                                                                                    func NewDefaultLogger

                                                                                                                                                                    func NewDefaultLogger() Logger

                                                                                                                                                                      NewDefaultLogger returns a Logger which will write log messages to stdout, and use same formatting runes as the stdlib log.Logger

                                                                                                                                                                      type LoggerFunc

                                                                                                                                                                      type LoggerFunc func(...interface{})

                                                                                                                                                                        A LoggerFunc is a convenience type to convert a function taking a variadic list of arguments and wrap it so the Logger interface can be used.

                                                                                                                                                                        Example:

                                                                                                                                                                        s3.New(sess, &aws.Config{Logger: aws.LoggerFunc(func(args ...interface{}) {
                                                                                                                                                                            fmt.Fprintln(os.Stdout, args...)
                                                                                                                                                                        })})
                                                                                                                                                                        

                                                                                                                                                                        func (LoggerFunc) Log

                                                                                                                                                                        func (f LoggerFunc) Log(args ...interface{})

                                                                                                                                                                          Log calls the wrapped function with the arguments provided

                                                                                                                                                                          type ReaderSeekerCloser

                                                                                                                                                                          type ReaderSeekerCloser struct {
                                                                                                                                                                          	// contains filtered or unexported fields
                                                                                                                                                                          }

                                                                                                                                                                            ReaderSeekerCloser represents a reader that can also delegate io.Seeker and io.Closer interfaces to the underlying object if they are available.

                                                                                                                                                                            func ReadSeekCloser

                                                                                                                                                                            func ReadSeekCloser(r io.Reader) ReaderSeekerCloser

                                                                                                                                                                              ReadSeekCloser wraps a io.Reader returning a ReaderSeekerCloser. Allows the SDK to accept an io.Reader that is not also an io.Seeker for unsigned streaming payload API operations.

                                                                                                                                                                              A ReadSeekCloser wrapping an nonseekable io.Reader used in an API operation's input will prevent that operation being retried in the case of network errors, and cause operation requests to fail if the operation requires payload signing.

                                                                                                                                                                              Note: If using With S3 PutObject to stream an object upload The SDK's S3 Upload manager (s3manager.Uploader) provides support for streaming with the ability to retry network errors.

                                                                                                                                                                              func (ReaderSeekerCloser) Close

                                                                                                                                                                              func (r ReaderSeekerCloser) Close() error

                                                                                                                                                                                Close closes the ReaderSeekerCloser.

                                                                                                                                                                                If the ReaderSeekerCloser is not an io.Closer nothing will be done.

                                                                                                                                                                                func (ReaderSeekerCloser) GetLen

                                                                                                                                                                                func (r ReaderSeekerCloser) GetLen() (int64, error)

                                                                                                                                                                                  GetLen returns the length of the bytes remaining in the underlying reader. Checks first for Len(), then io.Seeker to determine the size of the underlying reader.

                                                                                                                                                                                  Will return -1 if the length cannot be determined.

                                                                                                                                                                                  func (ReaderSeekerCloser) HasLen

                                                                                                                                                                                  func (r ReaderSeekerCloser) HasLen() (int, bool)

                                                                                                                                                                                    HasLen returns the length of the underlying reader if the value implements the Len() int method.

                                                                                                                                                                                    func (ReaderSeekerCloser) IsSeeker

                                                                                                                                                                                    func (r ReaderSeekerCloser) IsSeeker() bool

                                                                                                                                                                                      IsSeeker returns if the underlying reader is also a seeker.

                                                                                                                                                                                      func (ReaderSeekerCloser) Read

                                                                                                                                                                                      func (r ReaderSeekerCloser) Read(p []byte) (int, error)

                                                                                                                                                                                        Read reads from the reader up to size of p. The number of bytes read, and error if it occurred will be returned.

                                                                                                                                                                                        If the reader is not an io.Reader zero bytes read, and nil error will be returned.

                                                                                                                                                                                        Performs the same functionality as io.Reader Read

                                                                                                                                                                                        func (ReaderSeekerCloser) Seek

                                                                                                                                                                                        func (r ReaderSeekerCloser) Seek(offset int64, whence int) (int64, error)

                                                                                                                                                                                          Seek sets the offset for the next Read to offset, interpreted according to whence: 0 means relative to the origin of the file, 1 means relative to the current offset, and 2 means relative to the end. Seek returns the new offset and an error, if any.

                                                                                                                                                                                          If the ReaderSeekerCloser is not an io.Seeker nothing will be done.

                                                                                                                                                                                          type RequestRetryer

                                                                                                                                                                                          type RequestRetryer interface{}

                                                                                                                                                                                            RequestRetryer is an alias for a type that implements the request.Retryer interface.

                                                                                                                                                                                            type WriteAtBuffer

                                                                                                                                                                                            type WriteAtBuffer struct {
                                                                                                                                                                                            
                                                                                                                                                                                            	// GrowthCoeff defines the growth rate of the internal buffer. By
                                                                                                                                                                                            	// default, the growth rate is 1, where expanding the internal
                                                                                                                                                                                            	// buffer will allocate only enough capacity to fit the new expected
                                                                                                                                                                                            	// length.
                                                                                                                                                                                            	GrowthCoeff float64
                                                                                                                                                                                            	// contains filtered or unexported fields
                                                                                                                                                                                            }

                                                                                                                                                                                              A WriteAtBuffer provides a in memory buffer supporting the io.WriterAt interface Can be used with the s3manager.Downloader to download content to a buffer in memory. Safe to use concurrently.

                                                                                                                                                                                              func NewWriteAtBuffer

                                                                                                                                                                                              func NewWriteAtBuffer(buf []byte) *WriteAtBuffer

                                                                                                                                                                                                NewWriteAtBuffer creates a WriteAtBuffer with an internal buffer provided by buf.

                                                                                                                                                                                                func (*WriteAtBuffer) Bytes

                                                                                                                                                                                                func (b *WriteAtBuffer) Bytes() []byte

                                                                                                                                                                                                  Bytes returns a slice of bytes written to the buffer.

                                                                                                                                                                                                  func (*WriteAtBuffer) WriteAt

                                                                                                                                                                                                  func (b *WriteAtBuffer) WriteAt(p []byte, pos int64) (n int, err error)

                                                                                                                                                                                                    WriteAt writes a slice of bytes to a buffer starting at the position provided The number of bytes written will be returned, or error. Can overwrite previous written slices if the write ats overlap.

                                                                                                                                                                                                    Directories

                                                                                                                                                                                                    Path Synopsis
                                                                                                                                                                                                    Package arn provides a parser for interacting with Amazon Resource Names.
                                                                                                                                                                                                    Package arn provides a parser for interacting with Amazon Resource Names.
                                                                                                                                                                                                    Package awserr represents API error interface accessors for the SDK.
                                                                                                                                                                                                    Package awserr represents API error interface accessors for the SDK.
                                                                                                                                                                                                    Package credentials provides credential retrieval and management The Credentials is the primary method of getting access to and managing credentials Values.
                                                                                                                                                                                                    Package credentials provides credential retrieval and management The Credentials is the primary method of getting access to and managing credentials Values.
                                                                                                                                                                                                    endpointcreds
                                                                                                                                                                                                    Package endpointcreds provides support for retrieving credentials from an arbitrary HTTP endpoint.
                                                                                                                                                                                                    Package endpointcreds provides support for retrieving credentials from an arbitrary HTTP endpoint.
                                                                                                                                                                                                    plugincreds
                                                                                                                                                                                                    Package plugincreds implements a credentials provider sourced from a Go plugin.
                                                                                                                                                                                                    Package plugincreds implements a credentials provider sourced from a Go plugin.
                                                                                                                                                                                                    processcreds
                                                                                                                                                                                                    Package processcreds is a credential Provider to retrieve `credential_process` credentials.
                                                                                                                                                                                                    Package processcreds is a credential Provider to retrieve `credential_process` credentials.
                                                                                                                                                                                                    stscreds
                                                                                                                                                                                                    Package stscreds are credential Providers to retrieve STS AWS credentials.
                                                                                                                                                                                                    Package stscreds are credential Providers to retrieve STS AWS credentials.
                                                                                                                                                                                                    Package csm provides Client Side Monitoring (CSM) which enables sending metrics via UDP connection.
                                                                                                                                                                                                    Package csm provides Client Side Monitoring (CSM) which enables sending metrics via UDP connection.
                                                                                                                                                                                                    Package defaults is a collection of helpers to retrieve the SDK's default configuration and handlers.
                                                                                                                                                                                                    Package defaults is a collection of helpers to retrieve the SDK's default configuration and handlers.
                                                                                                                                                                                                    Package ec2metadata provides the client for making API calls to the EC2 Metadata service.
                                                                                                                                                                                                    Package ec2metadata provides the client for making API calls to the EC2 Metadata service.
                                                                                                                                                                                                    Package endpoints provides the types and functionality for defining regions and endpoints, as well as querying those definitions.
                                                                                                                                                                                                    Package endpoints provides the types and functionality for defining regions and endpoints, as well as querying those definitions.
                                                                                                                                                                                                    Package session provides configuration for the SDK's service clients.
                                                                                                                                                                                                    Package session provides configuration for the SDK's service clients.
                                                                                                                                                                                                    signer
                                                                                                                                                                                                    v4
                                                                                                                                                                                                    Package v4 implements signing for AWS V4 signer Provides request signing for request that need to be signed with AWS V4 Signatures.
                                                                                                                                                                                                    Package v4 implements signing for AWS V4 signer Provides request signing for request that need to be signed with AWS V4 Signatures.