aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/aws/aws-sdk-go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/aws/aws-sdk-go')
-rw-r--r--vendor/github.com/aws/aws-sdk-go/NOTICE.txt2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go25
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/client/client.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/client/logger.go6
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/config.go60
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go (renamed from vendor/github.com/aws/aws-sdk-go/aws/context.go)40
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/context_1_7.go9
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go11
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go (renamed from vendor/github.com/aws/aws-sdk-go/aws/context_1_6.go)15
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go20
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go24
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go46
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go7
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go425
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go30
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go21
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go58
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go26
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go67
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go10
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go13
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go6
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go59
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go1498
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go141
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go24
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/errors.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go3
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/request/request.go184
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/request/validation.go52
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go26
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go22
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go23
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/session/doc.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go19
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/session/session.go135
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go108
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go34
-rw-r--r--vendor/github.com/aws/aws-sdk-go/aws/version.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go120
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go11
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go35
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go29
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go24
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go17
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go51
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go165
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go347
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go324
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go30
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go152
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go39
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go43
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go60
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go41
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go45
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go35
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go284
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go166
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go25
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go24
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go57
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go12
-rw-r--r--vendor/github.com/aws/aws-sdk-go/private/protocol/host.go68
-rw-r--r--vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go54
-rw-r--r--vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go6
-rw-r--r--vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go14
-rw-r--r--vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go7
-rw-r--r--vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go12
-rw-r--r--vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go14
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/api.go3280
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/service.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go6
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go55
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/sts/api.go17
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go12
86 files changed, 8078 insertions, 898 deletions
diff --git a/vendor/github.com/aws/aws-sdk-go/NOTICE.txt b/vendor/github.com/aws/aws-sdk-go/NOTICE.txt
index 5f14d11..899129e 100644
--- a/vendor/github.com/aws/aws-sdk-go/NOTICE.txt
+++ b/vendor/github.com/aws/aws-sdk-go/NOTICE.txt
@@ -1,3 +1,3 @@
1AWS SDK for Go 1AWS SDK for Go
2Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. 2Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3Copyright 2014-2015 Stripe, Inc. 3Copyright 2014-2015 Stripe, Inc.
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go
index 59fa4a5..142a7a0 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go
@@ -15,7 +15,7 @@ func DeepEqual(a, b interface{}) bool {
15 rb := reflect.Indirect(reflect.ValueOf(b)) 15 rb := reflect.Indirect(reflect.ValueOf(b))
16 16
17 if raValid, rbValid := ra.IsValid(), rb.IsValid(); !raValid && !rbValid { 17 if raValid, rbValid := ra.IsValid(), rb.IsValid(); !raValid && !rbValid {
18 // If the elements are both nil, and of the same type the are equal 18 // If the elements are both nil, and of the same type they are equal
19 // If they are of different types they are not equal 19 // If they are of different types they are not equal
20 return reflect.TypeOf(a) == reflect.TypeOf(b) 20 return reflect.TypeOf(a) == reflect.TypeOf(b)
21 } else if raValid != rbValid { 21 } else if raValid != rbValid {
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go
index b6432f1..645df24 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go
@@ -23,28 +23,27 @@ func stringValue(v reflect.Value, indent int, buf *bytes.Buffer) {
23 case reflect.Struct: 23 case reflect.Struct:
24 buf.WriteString("{\n") 24 buf.WriteString("{\n")
25 25
26 names := []string{}
27 for i := 0; i < v.Type().NumField(); i++ { 26 for i := 0; i < v.Type().NumField(); i++ {
28 name := v.Type().Field(i).Name 27 ft := v.Type().Field(i)
29 f := v.Field(i) 28 fv := v.Field(i)
30 if name[0:1] == strings.ToLower(name[0:1]) { 29
30 if ft.Name[0:1] == strings.ToLower(ft.Name[0:1]) {
31 continue // ignore unexported fields 31 continue // ignore unexported fields
32 } 32 }
33 if (f.Kind() == reflect.Ptr || f.Kind() == reflect.Slice) && f.IsNil() { 33 if (fv.Kind() == reflect.Ptr || fv.Kind() == reflect.Slice) && fv.IsNil() {
34 continue // ignore unset fields 34 continue // ignore unset fields
35 } 35 }
36 names = append(names, name)
37 }
38 36
39 for i, n := range names {
40 val := v.FieldByName(n)
41 buf.WriteString(strings.Repeat(" ", indent+2)) 37 buf.WriteString(strings.Repeat(" ", indent+2))
42 buf.WriteString(n + ": ") 38 buf.WriteString(ft.Name + ": ")
43 stringValue(val, indent+2, buf)
44 39
45 if i < len(names)-1 { 40 if tag := ft.Tag.Get("sensitive"); tag == "true" {
46 buf.WriteString(",\n") 41 buf.WriteString("<sensitive>")
42 } else {
43 stringValue(fv, indent+2, buf)
47 } 44 }
45
46 buf.WriteString(",\n")
48 } 47 }
49 48
50 buf.WriteString("\n" + strings.Repeat(" ", indent) + "}") 49 buf.WriteString("\n" + strings.Repeat(" ", indent) + "}")
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/client.go b/vendor/github.com/aws/aws-sdk-go/aws/client/client.go
index 212fe25..7096053 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/client/client.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/client/client.go
@@ -18,7 +18,7 @@ type Config struct {
18 18
19 // States that the signing name did not come from a modeled source but 19 // States that the signing name did not come from a modeled source but
20 // was derived based on other data. Used by service client constructors 20 // was derived based on other data. Used by service client constructors
21 // to determine if the signin name can be overriden based on metadata the 21 // to determine if the signin name can be overridden based on metadata the
22 // service has. 22 // service has.
23 SigningNameDerived bool 23 SigningNameDerived bool
24} 24}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go b/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go
index ce9fb89..7b5e127 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go
@@ -118,6 +118,12 @@ var LogHTTPResponseHandler = request.NamedHandler{
118func logResponse(r *request.Request) { 118func logResponse(r *request.Request) {
119 lw := &logWriter{r.Config.Logger, bytes.NewBuffer(nil)} 119 lw := &logWriter{r.Config.Logger, bytes.NewBuffer(nil)}
120 120
121 if r.HTTPResponse == nil {
122 lw.Logger.Log(fmt.Sprintf(logRespErrMsg,
123 r.ClientInfo.ServiceName, r.Operation.Name, "request's HTTPResponse is nil"))
124 return
125 }
126
121 logBody := r.Config.LogLevel.Matches(aws.LogDebugWithHTTPBody) 127 logBody := r.Config.LogLevel.Matches(aws.LogDebugWithHTTPBody)
122 if logBody { 128 if logBody {
123 r.HTTPResponse.Body = &teeReaderCloser{ 129 r.HTTPResponse.Body = &teeReaderCloser{
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/config.go b/vendor/github.com/aws/aws-sdk-go/aws/config.go
index 5421b5d..10634d1 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/config.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/config.go
@@ -18,7 +18,7 @@ const UseServiceDefaultRetries = -1
18type RequestRetryer interface{} 18type RequestRetryer interface{}
19 19
20// A Config provides service configuration for service clients. By default, 20// A Config provides service configuration for service clients. By default,
21// all clients will use the defaults.DefaultConfig tructure. 21// all clients will use the defaults.DefaultConfig structure.
22// 22//
23// // Create Session with MaxRetry configuration to be shared by multiple 23// // Create Session with MaxRetry configuration to be shared by multiple
24// // service clients. 24// // service clients.
@@ -45,8 +45,8 @@ type Config struct {
45 // that overrides the default generated endpoint for a client. Set this 45 // that overrides the default generated endpoint for a client. Set this
46 // to `""` to use the default generated endpoint. 46 // to `""` to use the default generated endpoint.
47 // 47 //
48 // @note You must still provide a `Region` value when specifying an 48 // Note: You must still provide a `Region` value when specifying an
49 // endpoint for a client. 49 // endpoint for a client.
50 Endpoint *string 50 Endpoint *string
51 51
52 // The resolver to use for looking up endpoints for AWS service clients 52 // The resolver to use for looking up endpoints for AWS service clients
@@ -65,8 +65,8 @@ type Config struct {
65 // noted. A full list of regions is found in the "Regions and Endpoints" 65 // noted. A full list of regions is found in the "Regions and Endpoints"
66 // document. 66 // document.
67 // 67 //
68 // @see http://docs.aws.amazon.com/general/latest/gr/rande.html 68 // See http://docs.aws.amazon.com/general/latest/gr/rande.html for AWS
69 // AWS Regions and Endpoints 69 // Regions and Endpoints.
70 Region *string 70 Region *string
71 71
72 // Set this to `true` to disable SSL when sending requests. Defaults 72 // Set this to `true` to disable SSL when sending requests. Defaults
@@ -120,9 +120,10 @@ type Config struct {
120 // will use virtual hosted bucket addressing when possible 120 // will use virtual hosted bucket addressing when possible
121 // (`http://BUCKET.s3.amazonaws.com/KEY`). 121 // (`http://BUCKET.s3.amazonaws.com/KEY`).
122 // 122 //
123 // @note This configuration option is specific to the Amazon S3 service. 123 // Note: This configuration option is specific to the Amazon S3 service.
124 // @see http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html 124 //
125 // Amazon S3: Virtual Hosting of Buckets 125 // See http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
126 // for Amazon S3: Virtual Hosting of Buckets
126 S3ForcePathStyle *bool 127 S3ForcePathStyle *bool
127 128
128 // Set this to `true` to disable the SDK adding the `Expect: 100-Continue` 129 // Set this to `true` to disable the SDK adding the `Expect: 100-Continue`
@@ -223,6 +224,28 @@ type Config struct {
223 // Key: aws.String("//foo//bar//moo"), 224 // Key: aws.String("//foo//bar//moo"),
224 // }) 225 // })
225 DisableRestProtocolURICleaning *bool 226 DisableRestProtocolURICleaning *bool
227
228 // EnableEndpointDiscovery will allow for endpoint discovery on operations that
229 // have the definition in its model. By default, endpoint discovery is off.
230 //
231 // Example:
232 // sess := session.Must(session.NewSession(&aws.Config{
233 // EnableEndpointDiscovery: aws.Bool(true),
234 // }))
235 //
236 // svc := s3.New(sess)
237 // out, err := svc.GetObject(&s3.GetObjectInput {
238 // Bucket: aws.String("bucketname"),
239 // Key: aws.String("/foo/bar/moo"),
240 // })
241 EnableEndpointDiscovery *bool
242
243 // DisableEndpointHostPrefix will disable the SDK's behavior of prefixing
244 // request endpoint hosts with modeled information.
245 //
246 // Disabling this feature is useful when you want to use local endpoints
247 // for testing that do not support the modeled host prefix pattern.
248 DisableEndpointHostPrefix *bool
226} 249}
227 250
228// NewConfig returns a new Config pointer that can be chained with builder 251// NewConfig returns a new Config pointer that can be chained with builder
@@ -377,6 +400,19 @@ func (c *Config) WithSleepDelay(fn func(time.Duration)) *Config {
377 return c 400 return c
378} 401}
379 402
403// WithEndpointDiscovery will set whether or not to use endpoint discovery.
404func (c *Config) WithEndpointDiscovery(t bool) *Config {
405 c.EnableEndpointDiscovery = &t
406 return c
407}
408
409// WithDisableEndpointHostPrefix will set whether or not to use modeled host prefix
410// when making requests.
411func (c *Config) WithDisableEndpointHostPrefix(t bool) *Config {
412 c.DisableEndpointHostPrefix = &t
413 return c
414}
415
380// MergeIn merges the passed in configs into the existing config object. 416// MergeIn merges the passed in configs into the existing config object.
381func (c *Config) MergeIn(cfgs ...*Config) { 417func (c *Config) MergeIn(cfgs ...*Config) {
382 for _, other := range cfgs { 418 for _, other := range cfgs {
@@ -476,6 +512,14 @@ func mergeInConfig(dst *Config, other *Config) {
476 if other.EnforceShouldRetryCheck != nil { 512 if other.EnforceShouldRetryCheck != nil {
477 dst.EnforceShouldRetryCheck = other.EnforceShouldRetryCheck 513 dst.EnforceShouldRetryCheck = other.EnforceShouldRetryCheck
478 } 514 }
515
516 if other.EnableEndpointDiscovery != nil {
517 dst.EnableEndpointDiscovery = other.EnableEndpointDiscovery
518 }
519
520 if other.DisableEndpointHostPrefix != nil {
521 dst.DisableEndpointHostPrefix = other.DisableEndpointHostPrefix
522 }
479} 523}
480 524
481// Copy will return a shallow copy of the Config object. If any additional 525// Copy will return a shallow copy of the Config object. If any additional
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context.go b/vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go
index 79f4268..2866f9a 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/context.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go
@@ -1,8 +1,8 @@
1// +build !go1.9
2
1package aws 3package aws
2 4
3import ( 5import "time"
4 "time"
5)
6 6
7// Context is an copy of the Go v1.7 stdlib's context.Context interface. 7// Context is an copy of the Go v1.7 stdlib's context.Context interface.
8// It is represented as a SDK interface to enable you to use the "WithContext" 8// It is represented as a SDK interface to enable you to use the "WithContext"
@@ -35,37 +35,3 @@ type Context interface {
35 // functions. 35 // functions.
36 Value(key interface{}) interface{} 36 Value(key interface{}) interface{}
37} 37}
38
39// BackgroundContext returns a context that will never be canceled, has no
40// values, and no deadline. This context is used by the SDK to provide
41// backwards compatibility with non-context API operations and functionality.
42//
43// Go 1.6 and before:
44// This context function is equivalent to context.Background in the Go stdlib.
45//
46// Go 1.7 and later:
47// The context returned will be the value returned by context.Background()
48//
49// See https://golang.org/pkg/context for more information on Contexts.
50func BackgroundContext() Context {
51 return backgroundCtx
52}
53
54// SleepWithContext will wait for the timer duration to expire, or the context
55// is canceled. Which ever happens first. If the context is canceled the Context's
56// error will be returned.
57//
58// Expects Context to always return a non-nil error if the Done channel is closed.
59func SleepWithContext(ctx Context, dur time.Duration) error {
60 t := time.NewTimer(dur)
61 defer t.Stop()
62
63 select {
64 case <-t.C:
65 break
66 case <-ctx.Done():
67 return ctx.Err()
68 }
69
70 return nil
71}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_1_7.go b/vendor/github.com/aws/aws-sdk-go/aws/context_1_7.go
deleted file mode 100644
index 064f75c..0000000
--- a/vendor/github.com/aws/aws-sdk-go/aws/context_1_7.go
+++ /dev/null
@@ -1,9 +0,0 @@
1// +build go1.7
2
3package aws
4
5import "context"
6
7var (
8 backgroundCtx = context.Background()
9)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go b/vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go
new file mode 100644
index 0000000..3718b26
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go
@@ -0,0 +1,11 @@
1// +build go1.9
2
3package aws
4
5import "context"
6
7// Context is an alias of the Go stdlib's context.Context interface.
8// It can be used within the SDK's API operation "WithContext" methods.
9//
10// See https://golang.org/pkg/context on how to use contexts.
11type Context = context.Context
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_1_6.go b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go
index 8fdda53..66c5945 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/context_1_6.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go
@@ -39,3 +39,18 @@ func (e *emptyCtx) String() string {
39var ( 39var (
40 backgroundCtx = new(emptyCtx) 40 backgroundCtx = new(emptyCtx)
41) 41)
42
43// BackgroundContext returns a context that will never be canceled, has no
44// values, and no deadline. This context is used by the SDK to provide
45// backwards compatibility with non-context API operations and functionality.
46//
47// Go 1.6 and before:
48// This context function is equivalent to context.Background in the Go stdlib.
49//
50// Go 1.7 and later:
51// The context returned will be the value returned by context.Background()
52//
53// See https://golang.org/pkg/context for more information on Contexts.
54func BackgroundContext() Context {
55 return backgroundCtx
56}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go
new file mode 100644
index 0000000..9c29f29
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go
@@ -0,0 +1,20 @@
1// +build go1.7
2
3package aws
4
5import "context"
6
7// BackgroundContext returns a context that will never be canceled, has no
8// values, and no deadline. This context is used by the SDK to provide
9// backwards compatibility with non-context API operations and functionality.
10//
11// Go 1.6 and before:
12// This context function is equivalent to context.Background in the Go stdlib.
13//
14// Go 1.7 and later:
15// The context returned will be the value returned by context.Background()
16//
17// See https://golang.org/pkg/context for more information on Contexts.
18func BackgroundContext() Context {
19 return context.Background()
20}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go b/vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go
new file mode 100644
index 0000000..304fd15
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go
@@ -0,0 +1,24 @@
1package aws
2
3import (
4 "time"
5)
6
7// SleepWithContext will wait for the timer duration to expire, or the context
8// is canceled. Which ever happens first. If the context is canceled the Context's
9// error will be returned.
10//
11// Expects Context to always return a non-nil error if the Done channel is closed.
12func SleepWithContext(ctx Context, dur time.Duration) error {
13 t := time.NewTimer(dur)
14 defer t.Stop()
15
16 select {
17 case <-t.C:
18 break
19 case <-ctx.Done():
20 return ctx.Err()
21 }
22
23 return nil
24}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
index cfcddf3..f8853d7 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
@@ -72,9 +72,9 @@ var ValidateReqSigHandler = request.NamedHandler{
72 signedTime = r.LastSignedAt 72 signedTime = r.LastSignedAt
73 } 73 }
74 74
75 // 10 minutes to allow for some clock skew/delays in transmission. 75 // 5 minutes to allow for some clock skew/delays in transmission.
76 // Would be improved with aws/aws-sdk-go#423 76 // Would be improved with aws/aws-sdk-go#423
77 if signedTime.Add(10 * time.Minute).After(time.Now()) { 77 if signedTime.Add(5 * time.Minute).After(time.Now()) {
78 return 78 return
79 } 79 }
80 80
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go
index a15f496..ab69c7a 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go
@@ -17,7 +17,7 @@ var SDKVersionUserAgentHandler = request.NamedHandler{
17} 17}
18 18
19const execEnvVar = `AWS_EXECUTION_ENV` 19const execEnvVar = `AWS_EXECUTION_ENV`
20const execEnvUAKey = `exec_env` 20const execEnvUAKey = `exec-env`
21 21
22// AddHostExecEnvUserAgentHander is a request handler appending the SDK's 22// AddHostExecEnvUserAgentHander is a request handler appending the SDK's
23// execution environment to the user agent. 23// execution environment to the user agent.
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go
index f298d65..3ad1e79 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go
@@ -9,9 +9,7 @@ var (
9 // providers in the ChainProvider. 9 // providers in the ChainProvider.
10 // 10 //
11 // This has been deprecated. For verbose error messaging set 11 // This has been deprecated. For verbose error messaging set
12 // aws.Config.CredentialsChainVerboseErrors to true 12 // aws.Config.CredentialsChainVerboseErrors to true.
13 //
14 // @readonly
15 ErrNoValidProvidersFoundInChain = awserr.New("NoCredentialProviders", 13 ErrNoValidProvidersFoundInChain = awserr.New("NoCredentialProviders",
16 `no valid providers in chain. Deprecated. 14 `no valid providers in chain. Deprecated.
17 For verbose messaging see aws.Config.CredentialsChainVerboseErrors`, 15 For verbose messaging see aws.Config.CredentialsChainVerboseErrors`,
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
index ed08699..894bbc7 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
@@ -49,6 +49,8 @@
49package credentials 49package credentials
50 50
51import ( 51import (
52 "fmt"
53 "github.com/aws/aws-sdk-go/aws/awserr"
52 "sync" 54 "sync"
53 "time" 55 "time"
54) 56)
@@ -64,8 +66,6 @@ import (
64// Credentials: credentials.AnonymousCredentials, 66// Credentials: credentials.AnonymousCredentials,
65// }))) 67// })))
66// // Access public S3 buckets. 68// // Access public S3 buckets.
67//
68// @readonly
69var AnonymousCredentials = NewStaticCredentials("", "", "") 69var AnonymousCredentials = NewStaticCredentials("", "", "")
70 70
71// A Value is the AWS credentials value for individual credential fields. 71// A Value is the AWS credentials value for individual credential fields.
@@ -99,6 +99,14 @@ type Provider interface {
99 IsExpired() bool 99 IsExpired() bool
100} 100}
101 101
102// An Expirer is an interface that Providers can implement to expose the expiration
103// time, if known. If the Provider cannot accurately provide this info,
104// it should not implement this interface.
105type Expirer interface {
106 // The time at which the credentials are no longer valid
107 ExpiresAt() time.Time
108}
109
102// An ErrorProvider is a stub credentials provider that always returns an error 110// An ErrorProvider is a stub credentials provider that always returns an error
103// this is used by the SDK when construction a known provider is not possible 111// this is used by the SDK when construction a known provider is not possible
104// due to an error. 112// due to an error.
@@ -158,13 +166,19 @@ func (e *Expiry) SetExpiration(expiration time.Time, window time.Duration) {
158 166
159// IsExpired returns if the credentials are expired. 167// IsExpired returns if the credentials are expired.
160func (e *Expiry) IsExpired() bool { 168func (e *Expiry) IsExpired() bool {
161 if e.CurrentTime == nil { 169 curTime := e.CurrentTime
162 e.CurrentTime = time.Now 170 if curTime == nil {
171 curTime = time.Now
163 } 172 }
164 return e.expiration.Before(e.CurrentTime()) 173 return e.expiration.Before(curTime())
165} 174}
166 175
167// A Credentials provides synchronous safe retrieval of AWS credentials Value. 176// ExpiresAt returns the expiration time of the credential
177func (e *Expiry) ExpiresAt() time.Time {
178 return e.expiration
179}
180
181// A Credentials provides concurrency safe retrieval of AWS credentials Value.
168// Credentials will cache the credentials value until they expire. Once the value 182// Credentials will cache the credentials value until they expire. Once the value
169// expires the next Get will attempt to retrieve valid credentials. 183// expires the next Get will attempt to retrieve valid credentials.
170// 184//
@@ -256,3 +270,23 @@ func (c *Credentials) IsExpired() bool {
256func (c *Credentials) isExpired() bool { 270func (c *Credentials) isExpired() bool {
257 return c.forceRefresh || c.provider.IsExpired() 271 return c.forceRefresh || c.provider.IsExpired()
258} 272}
273
274// ExpiresAt provides access to the functionality of the Expirer interface of
275// the underlying Provider, if it supports that interface. Otherwise, it returns
276// an error.
277func (c *Credentials) ExpiresAt() (time.Time, error) {
278 c.m.RLock()
279 defer c.m.RUnlock()
280
281 expirer, ok := c.provider.(Expirer)
282 if !ok {
283 return time.Time{}, awserr.New("ProviderNotExpirer",
284 fmt.Sprintf("provider %s does not support ExpiresAt()", c.creds.ProviderName),
285 nil)
286 }
287 if c.forceRefresh {
288 // set expiration time to the distant past
289 return time.Time{}, nil
290 }
291 return expirer.ExpiresAt(), nil
292}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go
index a4cec5c..ace5131 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go
@@ -65,6 +65,10 @@ type Provider struct {
65 // 65 //
66 // If ExpiryWindow is 0 or less it will be ignored. 66 // If ExpiryWindow is 0 or less it will be ignored.
67 ExpiryWindow time.Duration 67 ExpiryWindow time.Duration
68
69 // Optional authorization token value if set will be used as the value of
70 // the Authorization header of the endpoint credential request.
71 AuthorizationToken string
68} 72}
69 73
70// NewProviderClient returns a credentials Provider for retrieving AWS credentials 74// NewProviderClient returns a credentials Provider for retrieving AWS credentials
@@ -152,6 +156,9 @@ func (p *Provider) getCredentials() (*getCredentialsOutput, error) {
152 out := &getCredentialsOutput{} 156 out := &getCredentialsOutput{}
153 req := p.Client.NewRequest(op, nil, out) 157 req := p.Client.NewRequest(op, nil, out)
154 req.HTTPRequest.Header.Set("Accept", "application/json") 158 req.HTTPRequest.Header.Set("Accept", "application/json")
159 if authToken := p.AuthorizationToken; len(authToken) != 0 {
160 req.HTTPRequest.Header.Set("Authorization", authToken)
161 }
155 162
156 return out, req.Send() 163 return out, req.Send()
157} 164}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go
index c14231a..54c5cf7 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go
@@ -12,14 +12,10 @@ const EnvProviderName = "EnvProvider"
12var ( 12var (
13 // ErrAccessKeyIDNotFound is returned when the AWS Access Key ID can't be 13 // ErrAccessKeyIDNotFound is returned when the AWS Access Key ID can't be
14 // found in the process's environment. 14 // found in the process's environment.
15 //
16 // @readonly
17 ErrAccessKeyIDNotFound = awserr.New("EnvAccessKeyNotFound", "AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY not found in environment", nil) 15 ErrAccessKeyIDNotFound = awserr.New("EnvAccessKeyNotFound", "AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY not found in environment", nil)
18 16
19 // ErrSecretAccessKeyNotFound is returned when the AWS Secret Access Key 17 // ErrSecretAccessKeyNotFound is returned when the AWS Secret Access Key
20 // can't be found in the process's environment. 18 // can't be found in the process's environment.
21 //
22 // @readonly
23 ErrSecretAccessKeyNotFound = awserr.New("EnvSecretNotFound", "AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY not found in environment", nil) 19 ErrSecretAccessKeyNotFound = awserr.New("EnvSecretNotFound", "AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY not found in environment", nil)
24) 20)
25 21
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go
new file mode 100644
index 0000000..1980c8c
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go
@@ -0,0 +1,425 @@
1/*
2Package processcreds is a credential Provider to retrieve `credential_process`
3credentials.
4
5WARNING: The following describes a method of sourcing credentials from an external
6process. This can potentially be dangerous, so proceed with caution. Other
7credential providers should be preferred if at all possible. If using this
8option, you should make sure that the config file is as locked down as possible
9using security best practices for your operating system.
10
11You can use credentials from a `credential_process` in a variety of ways.
12
13One way is to setup your shared config file, located in the default
14location, with the `credential_process` key and the command you want to be
15called. You also need to set the AWS_SDK_LOAD_CONFIG environment variable
16(e.g., `export AWS_SDK_LOAD_CONFIG=1`) to use the shared config file.
17
18 [default]
19 credential_process = /command/to/call
20
21Creating a new session will use the credential process to retrieve credentials.
22NOTE: If there are credentials in the profile you are using, the credential
23process will not be used.
24
25 // Initialize a session to load credentials.
26 sess, _ := session.NewSession(&aws.Config{
27 Region: aws.String("us-east-1")},
28 )
29
30 // Create S3 service client to use the credentials.
31 svc := s3.New(sess)
32
33Another way to use the `credential_process` method is by using
34`credentials.NewCredentials()` and providing a command to be executed to
35retrieve credentials:
36
37 // Create credentials using the ProcessProvider.
38 creds := processcreds.NewCredentials("/path/to/command")
39
40 // Create service client value configured for credentials.
41 svc := s3.New(sess, &aws.Config{Credentials: creds})
42
43You can set a non-default timeout for the `credential_process` with another
44constructor, `credentials.NewCredentialsTimeout()`, providing the timeout. To
45set a one minute timeout:
46
47 // Create credentials using the ProcessProvider.
48 creds := processcreds.NewCredentialsTimeout(
49 "/path/to/command",
50 time.Duration(500) * time.Millisecond)
51
52If you need more control, you can set any configurable options in the
53credentials using one or more option functions. For example, you can set a two
54minute timeout, a credential duration of 60 minutes, and a maximum stdout
55buffer size of 2k.
56
57 creds := processcreds.NewCredentials(
58 "/path/to/command",
59 func(opt *ProcessProvider) {
60 opt.Timeout = time.Duration(2) * time.Minute
61 opt.Duration = time.Duration(60) * time.Minute
62 opt.MaxBufSize = 2048
63 })
64
65You can also use your own `exec.Cmd`:
66
67 // Create an exec.Cmd
68 myCommand := exec.Command("/path/to/command")
69
70 // Create credentials using your exec.Cmd and custom timeout
71 creds := processcreds.NewCredentialsCommand(
72 myCommand,
73 func(opt *processcreds.ProcessProvider) {
74 opt.Timeout = time.Duration(1) * time.Second
75 })
76*/
77package processcreds
78
79import (
80 "bytes"
81 "encoding/json"
82 "fmt"
83 "io"
84 "io/ioutil"
85 "os"
86 "os/exec"
87 "runtime"
88 "strings"
89 "time"
90
91 "github.com/aws/aws-sdk-go/aws/awserr"
92 "github.com/aws/aws-sdk-go/aws/credentials"
93)
94
95const (
96 // ProviderName is the name this credentials provider will label any
97 // returned credentials Value with.
98 ProviderName = `ProcessProvider`
99
100 // ErrCodeProcessProviderParse error parsing process output
101 ErrCodeProcessProviderParse = "ProcessProviderParseError"
102
103 // ErrCodeProcessProviderVersion version error in output
104 ErrCodeProcessProviderVersion = "ProcessProviderVersionError"
105
106 // ErrCodeProcessProviderRequired required attribute missing in output
107 ErrCodeProcessProviderRequired = "ProcessProviderRequiredError"
108
109 // ErrCodeProcessProviderExecution execution of command failed
110 ErrCodeProcessProviderExecution = "ProcessProviderExecutionError"
111
112 // errMsgProcessProviderTimeout process took longer than allowed
113 errMsgProcessProviderTimeout = "credential process timed out"
114
115 // errMsgProcessProviderProcess process error
116 errMsgProcessProviderProcess = "error in credential_process"
117
118 // errMsgProcessProviderParse problem parsing output
119 errMsgProcessProviderParse = "parse failed of credential_process output"
120
121 // errMsgProcessProviderVersion version error in output
122 errMsgProcessProviderVersion = "wrong version in process output (not 1)"
123
124 // errMsgProcessProviderMissKey missing access key id in output
125 errMsgProcessProviderMissKey = "missing AccessKeyId in process output"
126
127 // errMsgProcessProviderMissSecret missing secret acess key in output
128 errMsgProcessProviderMissSecret = "missing SecretAccessKey in process output"
129
130 // errMsgProcessProviderPrepareCmd prepare of command failed
131 errMsgProcessProviderPrepareCmd = "failed to prepare command"
132
133 // errMsgProcessProviderEmptyCmd command must not be empty
134 errMsgProcessProviderEmptyCmd = "command must not be empty"
135
136 // errMsgProcessProviderPipe failed to initialize pipe
137 errMsgProcessProviderPipe = "failed to initialize pipe"
138
139 // DefaultDuration is the default amount of time in minutes that the
140 // credentials will be valid for.
141 DefaultDuration = time.Duration(15) * time.Minute
142
143 // DefaultBufSize limits buffer size from growing to an enormous
144 // amount due to a faulty process.
145 DefaultBufSize = 1024
146
147 // DefaultTimeout default limit on time a process can run.
148 DefaultTimeout = time.Duration(1) * time.Minute
149)
150
151// ProcessProvider satisfies the credentials.Provider interface, and is a
152// client to retrieve credentials from a process.
153type ProcessProvider struct {
154 staticCreds bool
155 credentials.Expiry
156 originalCommand []string
157
158 // Expiry duration of the credentials. Defaults to 15 minutes if not set.
159 Duration time.Duration
160
161 // ExpiryWindow will allow the credentials to trigger refreshing prior to
162 // the credentials actually expiring. This is beneficial so race conditions
163 // with expiring credentials do not cause request to fail unexpectedly
164 // due to ExpiredTokenException exceptions.
165 //
166 // So a ExpiryWindow of 10s would cause calls to IsExpired() to return true
167 // 10 seconds before the credentials are actually expired.
168 //
169 // If ExpiryWindow is 0 or less it will be ignored.
170 ExpiryWindow time.Duration
171
172 // A string representing an os command that should return a JSON with
173 // credential information.
174 command *exec.Cmd
175
176 // MaxBufSize limits memory usage from growing to an enormous
177 // amount due to a faulty process.
178 MaxBufSize int
179
180 // Timeout limits the time a process can run.
181 Timeout time.Duration
182}
183
184// NewCredentials returns a pointer to a new Credentials object wrapping the
185// ProcessProvider. The credentials will expire every 15 minutes by default.
186func NewCredentials(command string, options ...func(*ProcessProvider)) *credentials.Credentials {
187 p := &ProcessProvider{
188 command: exec.Command(command),
189 Duration: DefaultDuration,
190 Timeout: DefaultTimeout,
191 MaxBufSize: DefaultBufSize,
192 }
193
194 for _, option := range options {
195 option(p)
196 }
197
198 return credentials.NewCredentials(p)
199}
200
201// NewCredentialsTimeout returns a pointer to a new Credentials object with
202// the specified command and timeout, and default duration and max buffer size.
203func NewCredentialsTimeout(command string, timeout time.Duration) *credentials.Credentials {
204 p := NewCredentials(command, func(opt *ProcessProvider) {
205 opt.Timeout = timeout
206 })
207
208 return p
209}
210
211// NewCredentialsCommand returns a pointer to a new Credentials object with
212// the specified command, and default timeout, duration and max buffer size.
213func NewCredentialsCommand(command *exec.Cmd, options ...func(*ProcessProvider)) *credentials.Credentials {
214 p := &ProcessProvider{
215 command: command,
216 Duration: DefaultDuration,
217 Timeout: DefaultTimeout,
218 MaxBufSize: DefaultBufSize,
219 }
220
221 for _, option := range options {
222 option(p)
223 }
224
225 return credentials.NewCredentials(p)
226}
227
228type credentialProcessResponse struct {
229 Version int
230 AccessKeyID string `json:"AccessKeyId"`
231 SecretAccessKey string
232 SessionToken string
233 Expiration *time.Time
234}
235
236// Retrieve executes the 'credential_process' and returns the credentials.
237func (p *ProcessProvider) Retrieve() (credentials.Value, error) {
238 out, err := p.executeCredentialProcess()
239 if err != nil {
240 return credentials.Value{ProviderName: ProviderName}, err
241 }
242
243 // Serialize and validate response
244 resp := &credentialProcessResponse{}
245 if err = json.Unmarshal(out, resp); err != nil {
246 return credentials.Value{ProviderName: ProviderName}, awserr.New(
247 ErrCodeProcessProviderParse,
248 fmt.Sprintf("%s: %s", errMsgProcessProviderParse, string(out)),
249 err)
250 }
251
252 if resp.Version != 1 {
253 return credentials.Value{ProviderName: ProviderName}, awserr.New(
254 ErrCodeProcessProviderVersion,
255 errMsgProcessProviderVersion,
256 nil)
257 }
258
259 if len(resp.AccessKeyID) == 0 {
260 return credentials.Value{ProviderName: ProviderName}, awserr.New(
261 ErrCodeProcessProviderRequired,
262 errMsgProcessProviderMissKey,
263 nil)
264 }
265
266 if len(resp.SecretAccessKey) == 0 {
267 return credentials.Value{ProviderName: ProviderName}, awserr.New(
268 ErrCodeProcessProviderRequired,
269 errMsgProcessProviderMissSecret,
270 nil)
271 }
272
273 // Handle expiration
274 p.staticCreds = resp.Expiration == nil
275 if resp.Expiration != nil {
276 p.SetExpiration(*resp.Expiration, p.ExpiryWindow)
277 }
278
279 return credentials.Value{
280 ProviderName: ProviderName,
281 AccessKeyID: resp.AccessKeyID,
282 SecretAccessKey: resp.SecretAccessKey,
283 SessionToken: resp.SessionToken,
284 }, nil
285}
286
287// IsExpired returns true if the credentials retrieved are expired, or not yet
288// retrieved.
289func (p *ProcessProvider) IsExpired() bool {
290 if p.staticCreds {
291 return false
292 }
293 return p.Expiry.IsExpired()
294}
295
296// prepareCommand prepares the command to be executed.
297func (p *ProcessProvider) prepareCommand() error {
298
299 var cmdArgs []string
300 if runtime.GOOS == "windows" {
301 cmdArgs = []string{"cmd.exe", "/C"}
302 } else {
303 cmdArgs = []string{"sh", "-c"}
304 }
305
306 if len(p.originalCommand) == 0 {
307 p.originalCommand = make([]string, len(p.command.Args))
308 copy(p.originalCommand, p.command.Args)
309
310 // check for empty command because it succeeds
311 if len(strings.TrimSpace(p.originalCommand[0])) < 1 {
312 return awserr.New(
313 ErrCodeProcessProviderExecution,
314 fmt.Sprintf(
315 "%s: %s",
316 errMsgProcessProviderPrepareCmd,
317 errMsgProcessProviderEmptyCmd),
318 nil)
319 }
320 }
321
322 cmdArgs = append(cmdArgs, p.originalCommand...)
323 p.command = exec.Command(cmdArgs[0], cmdArgs[1:]...)
324 p.command.Env = os.Environ()
325
326 return nil
327}
328
329// executeCredentialProcess starts the credential process on the OS and
330// returns the results or an error.
331func (p *ProcessProvider) executeCredentialProcess() ([]byte, error) {
332
333 if err := p.prepareCommand(); err != nil {
334 return nil, err
335 }
336
337 // Setup the pipes
338 outReadPipe, outWritePipe, err := os.Pipe()
339 if err != nil {
340 return nil, awserr.New(
341 ErrCodeProcessProviderExecution,
342 errMsgProcessProviderPipe,
343 err)
344 }
345
346 p.command.Stderr = os.Stderr // display stderr on console for MFA
347 p.command.Stdout = outWritePipe // get creds json on process's stdout
348 p.command.Stdin = os.Stdin // enable stdin for MFA
349
350 output := bytes.NewBuffer(make([]byte, 0, p.MaxBufSize))
351
352 stdoutCh := make(chan error, 1)
353 go readInput(
354 io.LimitReader(outReadPipe, int64(p.MaxBufSize)),
355 output,
356 stdoutCh)
357
358 execCh := make(chan error, 1)
359 go executeCommand(*p.command, execCh)
360
361 finished := false
362 var errors []error
363 for !finished {
364 select {
365 case readError := <-stdoutCh:
366 errors = appendError(errors, readError)
367 finished = true
368 case execError := <-execCh:
369 err := outWritePipe.Close()
370 errors = appendError(errors, err)
371 errors = appendError(errors, execError)
372 if errors != nil {
373 return output.Bytes(), awserr.NewBatchError(
374 ErrCodeProcessProviderExecution,
375 errMsgProcessProviderProcess,
376 errors)
377 }
378 case <-time.After(p.Timeout):
379 finished = true
380 return output.Bytes(), awserr.NewBatchError(
381 ErrCodeProcessProviderExecution,
382 errMsgProcessProviderTimeout,
383 errors) // errors can be nil
384 }
385 }
386
387 out := output.Bytes()
388
389 if runtime.GOOS == "windows" {
390 // windows adds slashes to quotes
391 out = []byte(strings.Replace(string(out), `\"`, `"`, -1))
392 }
393
394 return out, nil
395}
396
397// appendError conveniently checks for nil before appending slice
398func appendError(errors []error, err error) []error {
399 if err != nil {
400 return append(errors, err)
401 }
402 return errors
403}
404
405func executeCommand(cmd exec.Cmd, exec chan error) {
406 // Start the command
407 err := cmd.Start()
408 if err == nil {
409 err = cmd.Wait()
410 }
411
412 exec <- err
413}
414
415func readInput(r io.Reader, w io.Writer, read chan error) {
416 tee := io.TeeReader(r, w)
417
418 _, err := ioutil.ReadAll(tee)
419
420 if err == io.EOF {
421 err = nil
422 }
423
424 read <- err // will only arrive here when write end of pipe is closed
425}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go
index 51e21e0..e155149 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go
@@ -4,9 +4,8 @@ import (
4 "fmt" 4 "fmt"
5 "os" 5 "os"
6 6
7 "github.com/go-ini/ini"
8
9 "github.com/aws/aws-sdk-go/aws/awserr" 7 "github.com/aws/aws-sdk-go/aws/awserr"
8 "github.com/aws/aws-sdk-go/internal/ini"
10 "github.com/aws/aws-sdk-go/internal/shareddefaults" 9 "github.com/aws/aws-sdk-go/internal/shareddefaults"
11) 10)
12 11
@@ -77,36 +76,37 @@ func (p *SharedCredentialsProvider) IsExpired() bool {
77// The credentials retrieved from the profile will be returned or error. Error will be 76// The credentials retrieved from the profile will be returned or error. Error will be
78// returned if it fails to read from the file, or the data is invalid. 77// returned if it fails to read from the file, or the data is invalid.
79func loadProfile(filename, profile string) (Value, error) { 78func loadProfile(filename, profile string) (Value, error) {
80 config, err := ini.Load(filename) 79 config, err := ini.OpenFile(filename)
81 if err != nil { 80 if err != nil {
82 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to load shared credentials file", err) 81 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to load shared credentials file", err)
83 } 82 }
84 iniProfile, err := config.GetSection(profile) 83
85 if err != nil { 84 iniProfile, ok := config.GetSection(profile)
86 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to get profile", err) 85 if !ok {
86 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to get profile", nil)
87 } 87 }
88 88
89 id, err := iniProfile.GetKey("aws_access_key_id") 89 id := iniProfile.String("aws_access_key_id")
90 if err != nil { 90 if len(id) == 0 {
91 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsAccessKey", 91 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsAccessKey",
92 fmt.Sprintf("shared credentials %s in %s did not contain aws_access_key_id", profile, filename), 92 fmt.Sprintf("shared credentials %s in %s did not contain aws_access_key_id", profile, filename),
93 err) 93 nil)
94 } 94 }
95 95
96 secret, err := iniProfile.GetKey("aws_secret_access_key") 96 secret := iniProfile.String("aws_secret_access_key")
97 if err != nil { 97 if len(secret) == 0 {
98 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsSecret", 98 return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsSecret",
99 fmt.Sprintf("shared credentials %s in %s did not contain aws_secret_access_key", profile, filename), 99 fmt.Sprintf("shared credentials %s in %s did not contain aws_secret_access_key", profile, filename),
100 nil) 100 nil)
101 } 101 }
102 102
103 // Default to empty string if not found 103 // Default to empty string if not found
104 token := iniProfile.Key("aws_session_token") 104 token := iniProfile.String("aws_session_token")
105 105
106 return Value{ 106 return Value{
107 AccessKeyID: id.String(), 107 AccessKeyID: id,
108 SecretAccessKey: secret.String(), 108 SecretAccessKey: secret,
109 SessionToken: token.String(), 109 SessionToken: token,
110 ProviderName: SharedCredsProviderName, 110 ProviderName: SharedCredsProviderName,
111 }, nil 111 }, nil
112} 112}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go
index 4f5dab3..531139e 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go
@@ -9,8 +9,6 @@ const StaticProviderName = "StaticProvider"
9 9
10var ( 10var (
11 // ErrStaticCredentialsEmpty is emitted when static credentials are empty. 11 // ErrStaticCredentialsEmpty is emitted when static credentials are empty.
12 //
13 // @readonly
14 ErrStaticCredentialsEmpty = awserr.New("EmptyStaticCreds", "static credentials are empty", nil) 12 ErrStaticCredentialsEmpty = awserr.New("EmptyStaticCreds", "static credentials are empty", nil)
15) 13)
16 14
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go
index 4108e43..b6dbfd2 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go
@@ -80,16 +80,18 @@ package stscreds
80 80
81import ( 81import (
82 "fmt" 82 "fmt"
83 "os"
83 "time" 84 "time"
84 85
85 "github.com/aws/aws-sdk-go/aws" 86 "github.com/aws/aws-sdk-go/aws"
86 "github.com/aws/aws-sdk-go/aws/awserr" 87 "github.com/aws/aws-sdk-go/aws/awserr"
87 "github.com/aws/aws-sdk-go/aws/client" 88 "github.com/aws/aws-sdk-go/aws/client"
88 "github.com/aws/aws-sdk-go/aws/credentials" 89 "github.com/aws/aws-sdk-go/aws/credentials"
90 "github.com/aws/aws-sdk-go/internal/sdkrand"
89 "github.com/aws/aws-sdk-go/service/sts" 91 "github.com/aws/aws-sdk-go/service/sts"
90) 92)
91 93
92// StdinTokenProvider will prompt on stdout and read from stdin for a string value. 94// StdinTokenProvider will prompt on stderr and read from stdin for a string value.
93// An error is returned if reading from stdin fails. 95// An error is returned if reading from stdin fails.
94// 96//
95// Use this function go read MFA tokens from stdin. The function makes no attempt 97// Use this function go read MFA tokens from stdin. The function makes no attempt
@@ -102,7 +104,7 @@ import (
102// Will wait forever until something is provided on the stdin. 104// Will wait forever until something is provided on the stdin.
103func StdinTokenProvider() (string, error) { 105func StdinTokenProvider() (string, error) {
104 var v string 106 var v string
105 fmt.Printf("Assume Role MFA token code: ") 107 fmt.Fprintf(os.Stderr, "Assume Role MFA token code: ")
106 _, err := fmt.Scanln(&v) 108 _, err := fmt.Scanln(&v)
107 109
108 return v, err 110 return v, err
@@ -193,6 +195,18 @@ type AssumeRoleProvider struct {
193 // 195 //
194 // If ExpiryWindow is 0 or less it will be ignored. 196 // If ExpiryWindow is 0 or less it will be ignored.
195 ExpiryWindow time.Duration 197 ExpiryWindow time.Duration
198
199 // MaxJitterFrac reduces the effective Duration of each credential requested
200 // by a random percentage between 0 and MaxJitterFraction. MaxJitterFrac must
201 // have a value between 0 and 1. Any other value may lead to expected behavior.
202 // With a MaxJitterFrac value of 0, default) will no jitter will be used.
203 //
204 // For example, with a Duration of 30m and a MaxJitterFrac of 0.1, the
205 // AssumeRole call will be made with an arbitrary Duration between 27m and
206 // 30m.
207 //
208 // MaxJitterFrac should not be negative.
209 MaxJitterFrac float64
196} 210}
197 211
198// NewCredentials returns a pointer to a new Credentials object wrapping the 212// NewCredentials returns a pointer to a new Credentials object wrapping the
@@ -254,8 +268,9 @@ func (p *AssumeRoleProvider) Retrieve() (credentials.Value, error) {
254 // Expire as often as AWS permits. 268 // Expire as often as AWS permits.
255 p.Duration = DefaultDuration 269 p.Duration = DefaultDuration
256 } 270 }
271 jitter := time.Duration(sdkrand.SeededRand.Float64() * p.MaxJitterFrac * float64(p.Duration))
257 input := &sts.AssumeRoleInput{ 272 input := &sts.AssumeRoleInput{
258 DurationSeconds: aws.Int64(int64(p.Duration / time.Second)), 273 DurationSeconds: aws.Int64(int64((p.Duration - jitter) / time.Second)),
259 RoleArn: aws.String(p.RoleARN), 274 RoleArn: aws.String(p.RoleARN),
260 RoleSessionName: aws.String(p.RoleSessionName), 275 RoleSessionName: aws.String(p.RoleSessionName),
261 ExternalId: p.ExternalID, 276 ExternalId: p.ExternalID,
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go
index 4b0d630..5bacc79 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go
@@ -3,6 +3,8 @@ package csm
3import ( 3import (
4 "strconv" 4 "strconv"
5 "time" 5 "time"
6
7 "github.com/aws/aws-sdk-go/aws"
6) 8)
7 9
8type metricTime time.Time 10type metricTime time.Time
@@ -39,6 +41,12 @@ type metric struct {
39 SDKException *string `json:"SdkException,omitempty"` 41 SDKException *string `json:"SdkException,omitempty"`
40 SDKExceptionMessage *string `json:"SdkExceptionMessage,omitempty"` 42 SDKExceptionMessage *string `json:"SdkExceptionMessage,omitempty"`
41 43
44 FinalHTTPStatusCode *int `json:"FinalHttpStatusCode,omitempty"`
45 FinalAWSException *string `json:"FinalAwsException,omitempty"`
46 FinalAWSExceptionMessage *string `json:"FinalAwsExceptionMessage,omitempty"`
47 FinalSDKException *string `json:"FinalSdkException,omitempty"`
48 FinalSDKExceptionMessage *string `json:"FinalSdkExceptionMessage,omitempty"`
49
42 DestinationIP *string `json:"DestinationIp,omitempty"` 50 DestinationIP *string `json:"DestinationIp,omitempty"`
43 ConnectionReused *int `json:"ConnectionReused,omitempty"` 51 ConnectionReused *int `json:"ConnectionReused,omitempty"`
44 52
@@ -48,4 +56,54 @@ type metric struct {
48 DNSLatency *int `json:"DnsLatency,omitempty"` 56 DNSLatency *int `json:"DnsLatency,omitempty"`
49 TCPLatency *int `json:"TcpLatency,omitempty"` 57 TCPLatency *int `json:"TcpLatency,omitempty"`
50 SSLLatency *int `json:"SslLatency,omitempty"` 58 SSLLatency *int `json:"SslLatency,omitempty"`
59
60 MaxRetriesExceeded *int `json:"MaxRetriesExceeded,omitempty"`
61}
62
63func (m *metric) TruncateFields() {
64 m.ClientID = truncateString(m.ClientID, 255)
65 m.UserAgent = truncateString(m.UserAgent, 256)
66
67 m.AWSException = truncateString(m.AWSException, 128)
68 m.AWSExceptionMessage = truncateString(m.AWSExceptionMessage, 512)
69
70 m.SDKException = truncateString(m.SDKException, 128)
71 m.SDKExceptionMessage = truncateString(m.SDKExceptionMessage, 512)
72
73 m.FinalAWSException = truncateString(m.FinalAWSException, 128)
74 m.FinalAWSExceptionMessage = truncateString(m.FinalAWSExceptionMessage, 512)
75
76 m.FinalSDKException = truncateString(m.FinalSDKException, 128)
77 m.FinalSDKExceptionMessage = truncateString(m.FinalSDKExceptionMessage, 512)
78}
79
80func truncateString(v *string, l int) *string {
81 if v != nil && len(*v) > l {
82 nv := (*v)[:l]
83 return &nv
84 }
85
86 return v
87}
88
89func (m *metric) SetException(e metricException) {
90 switch te := e.(type) {
91 case awsException:
92 m.AWSException = aws.String(te.exception)
93 m.AWSExceptionMessage = aws.String(te.message)
94 case sdkException:
95 m.SDKException = aws.String(te.exception)
96 m.SDKExceptionMessage = aws.String(te.message)
97 }
98}
99
100func (m *metric) SetFinalException(e metricException) {
101 switch te := e.(type) {
102 case awsException:
103 m.FinalAWSException = aws.String(te.exception)
104 m.FinalAWSExceptionMessage = aws.String(te.message)
105 case sdkException:
106 m.FinalSDKException = aws.String(te.exception)
107 m.FinalSDKExceptionMessage = aws.String(te.message)
108 }
51} 109}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go
new file mode 100644
index 0000000..54a9928
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go
@@ -0,0 +1,26 @@
1package csm
2
3type metricException interface {
4 Exception() string
5 Message() string
6}
7
8type requestException struct {
9 exception string
10 message string
11}
12
13func (e requestException) Exception() string {
14 return e.exception
15}
16func (e requestException) Message() string {
17 return e.message
18}
19
20type awsException struct {
21 requestException
22}
23
24type sdkException struct {
25 requestException
26}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go
index 11082e5..0b5571a 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go
@@ -82,14 +82,15 @@ func (rep *Reporter) sendAPICallAttemptMetric(r *request.Request) {
82 82
83 if r.Error != nil { 83 if r.Error != nil {
84 if awserr, ok := r.Error.(awserr.Error); ok { 84 if awserr, ok := r.Error.(awserr.Error); ok {
85 setError(&m, awserr) 85 m.SetException(getMetricException(awserr))
86 } 86 }
87 } 87 }
88 88
89 m.TruncateFields()
89 rep.metricsCh.Push(m) 90 rep.metricsCh.Push(m)
90} 91}
91 92
92func setError(m *metric, err awserr.Error) { 93func getMetricException(err awserr.Error) metricException {
93 msg := err.Error() 94 msg := err.Error()
94 code := err.Code() 95 code := err.Code()
95 96
@@ -97,11 +98,13 @@ func setError(m *metric, err awserr.Error) {
97 case "RequestError", 98 case "RequestError",
98 "SerializationError", 99 "SerializationError",
99 request.CanceledErrorCode: 100 request.CanceledErrorCode:
100 m.SDKException = &code 101 return sdkException{
101 m.SDKExceptionMessage = &msg 102 requestException{exception: code, message: msg},
103 }
102 default: 104 default:
103 m.AWSException = &code 105 return awsException{
104 m.AWSExceptionMessage = &msg 106 requestException{exception: code, message: msg},
107 }
105 } 108 }
106} 109}
107 110
@@ -112,16 +115,31 @@ func (rep *Reporter) sendAPICallMetric(r *request.Request) {
112 115
113 now := time.Now() 116 now := time.Now()
114 m := metric{ 117 m := metric{
115 ClientID: aws.String(rep.clientID), 118 ClientID: aws.String(rep.clientID),
116 API: aws.String(r.Operation.Name), 119 API: aws.String(r.Operation.Name),
117 Service: aws.String(r.ClientInfo.ServiceID), 120 Service: aws.String(r.ClientInfo.ServiceID),
118 Timestamp: (*metricTime)(&now), 121 Timestamp: (*metricTime)(&now),
119 Type: aws.String("ApiCall"), 122 UserAgent: aws.String(r.HTTPRequest.Header.Get("User-Agent")),
120 AttemptCount: aws.Int(r.RetryCount + 1), 123 Type: aws.String("ApiCall"),
121 Latency: aws.Int(int(time.Now().Sub(r.Time) / time.Millisecond)), 124 AttemptCount: aws.Int(r.RetryCount + 1),
122 XAmzRequestID: aws.String(r.RequestID), 125 Region: r.Config.Region,
126 Latency: aws.Int(int(time.Now().Sub(r.Time) / time.Millisecond)),
127 XAmzRequestID: aws.String(r.RequestID),
128 MaxRetriesExceeded: aws.Int(boolIntValue(r.RetryCount >= r.MaxRetries())),
129 }
130
131 if r.HTTPResponse != nil {
132 m.FinalHTTPStatusCode = aws.Int(r.HTTPResponse.StatusCode)
123 } 133 }
124 134
135 if r.Error != nil {
136 if awserr, ok := r.Error.(awserr.Error); ok {
137 m.SetFinalException(getMetricException(awserr))
138 }
139 }
140
141 m.TruncateFields()
142
125 // TODO: Probably want to figure something out for logging dropped 143 // TODO: Probably want to figure something out for logging dropped
126 // metrics 144 // metrics
127 rep.metricsCh.Push(m) 145 rep.metricsCh.Push(m)
@@ -221,11 +239,22 @@ func (rep *Reporter) InjectHandlers(handlers *request.Handlers) {
221 return 239 return
222 } 240 }
223 241
224 apiCallHandler := request.NamedHandler{Name: APICallMetricHandlerName, Fn: rep.sendAPICallMetric} 242 handlers.Complete.PushFrontNamed(request.NamedHandler{
225 apiCallAttemptHandler := request.NamedHandler{Name: APICallAttemptMetricHandlerName, Fn: rep.sendAPICallAttemptMetric} 243 Name: APICallMetricHandlerName,
244 Fn: rep.sendAPICallMetric,
245 })
226 246
227 handlers.Complete.PushFrontNamed(apiCallHandler) 247 handlers.CompleteAttempt.PushFrontNamed(request.NamedHandler{
228 handlers.Complete.PushFrontNamed(apiCallAttemptHandler) 248 Name: APICallAttemptMetricHandlerName,
249 Fn: rep.sendAPICallAttemptMetric,
250 })
251}
252
253// boolIntValue return 1 for true and 0 for false.
254func boolIntValue(b bool) int {
255 if b {
256 return 1
257 }
229 258
230 handlers.AfterRetry.PushFrontNamed(apiCallAttemptHandler) 259 return 0
231} 260}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go
index 5040a2f..23bb639 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go
@@ -24,6 +24,7 @@ import (
24 "github.com/aws/aws-sdk-go/aws/ec2metadata" 24 "github.com/aws/aws-sdk-go/aws/ec2metadata"
25 "github.com/aws/aws-sdk-go/aws/endpoints" 25 "github.com/aws/aws-sdk-go/aws/endpoints"
26 "github.com/aws/aws-sdk-go/aws/request" 26 "github.com/aws/aws-sdk-go/aws/request"
27 "github.com/aws/aws-sdk-go/internal/shareddefaults"
27) 28)
28 29
29// A Defaults provides a collection of default values for SDK clients. 30// A Defaults provides a collection of default values for SDK clients.
@@ -112,8 +113,8 @@ func CredProviders(cfg *aws.Config, handlers request.Handlers) []credentials.Pro
112} 113}
113 114
114const ( 115const (
115 httpProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_FULL_URI" 116 httpProviderAuthorizationEnvVar = "AWS_CONTAINER_AUTHORIZATION_TOKEN"
116 ecsCredsProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 117 httpProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_FULL_URI"
117) 118)
118 119
119// RemoteCredProvider returns a credentials provider for the default remote 120// RemoteCredProvider returns a credentials provider for the default remote
@@ -123,8 +124,8 @@ func RemoteCredProvider(cfg aws.Config, handlers request.Handlers) credentials.P
123 return localHTTPCredProvider(cfg, handlers, u) 124 return localHTTPCredProvider(cfg, handlers, u)
124 } 125 }
125 126
126 if uri := os.Getenv(ecsCredsProviderEnvVar); len(uri) > 0 { 127 if uri := os.Getenv(shareddefaults.ECSCredsProviderEnvVar); len(uri) > 0 {
127 u := fmt.Sprintf("http://169.254.170.2%s", uri) 128 u := fmt.Sprintf("%s%s", shareddefaults.ECSContainerCredentialsURI, uri)
128 return httpCredProvider(cfg, handlers, u) 129 return httpCredProvider(cfg, handlers, u)
129 } 130 }
130 131
@@ -187,6 +188,7 @@ func httpCredProvider(cfg aws.Config, handlers request.Handlers, u string) crede
187 return endpointcreds.NewProviderClient(cfg, handlers, u, 188 return endpointcreds.NewProviderClient(cfg, handlers, u,
188 func(p *endpointcreds.Provider) { 189 func(p *endpointcreds.Provider) {
189 p.ExpiryWindow = 5 * time.Minute 190 p.ExpiryWindow = 5 * time.Minute
191 p.AuthorizationToken = os.Getenv(httpProviderAuthorizationEnvVar)
190 }, 192 },
191 ) 193 )
192} 194}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
index c215cd3..d57a1af 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
@@ -24,8 +24,9 @@ func (c *EC2Metadata) GetMetadata(p string) (string, error) {
24 24
25 output := &metadataOutput{} 25 output := &metadataOutput{}
26 req := c.NewRequest(op, nil, output) 26 req := c.NewRequest(op, nil, output)
27 err := req.Send()
27 28
28 return output.Content, req.Send() 29 return output.Content, err
29} 30}
30 31
31// GetUserData returns the userdata that was configured for the service. If 32// GetUserData returns the userdata that was configured for the service. If
@@ -45,8 +46,9 @@ func (c *EC2Metadata) GetUserData() (string, error) {
45 r.Error = awserr.New("NotFoundError", "user-data not found", r.Error) 46 r.Error = awserr.New("NotFoundError", "user-data not found", r.Error)
46 } 47 }
47 }) 48 })
49 err := req.Send()
48 50
49 return output.Content, req.Send() 51 return output.Content, err
50} 52}
51 53
52// GetDynamicData uses the path provided to request information from the EC2 54// GetDynamicData uses the path provided to request information from the EC2
@@ -61,8 +63,9 @@ func (c *EC2Metadata) GetDynamicData(p string) (string, error) {
61 63
62 output := &metadataOutput{} 64 output := &metadataOutput{}
63 req := c.NewRequest(op, nil, output) 65 req := c.NewRequest(op, nil, output)
66 err := req.Send()
64 67
65 return output.Content, req.Send() 68 return output.Content, err
66} 69}
67 70
68// GetInstanceIdentityDocument retrieves an identity document describing an 71// GetInstanceIdentityDocument retrieves an identity document describing an
@@ -118,6 +121,10 @@ func (c *EC2Metadata) Region() (string, error) {
118 return "", err 121 return "", err
119 } 122 }
120 123
124 if len(resp) == 0 {
125 return "", awserr.New("EC2MetadataError", "invalid Region response", nil)
126 }
127
121 // returns region without the suffix. Eg: us-west-2a becomes us-west-2 128 // returns region without the suffix. Eg: us-west-2a becomes us-west-2
122 return resp[:len(resp)-1], nil 129 return resp[:len(resp)-1], nil
123} 130}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
index ef5f732..f4438ea 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
@@ -4,7 +4,7 @@
4// This package's client can be disabled completely by setting the environment 4// This package's client can be disabled completely by setting the environment
5// variable "AWS_EC2_METADATA_DISABLED=true". This environment variable set to 5// variable "AWS_EC2_METADATA_DISABLED=true". This environment variable set to
6// true instructs the SDK to disable the EC2 Metadata client. The client cannot 6// true instructs the SDK to disable the EC2 Metadata client. The client cannot
7// be used while the environemnt variable is set to true, (case insensitive). 7// be used while the environment variable is set to true, (case insensitive).
8package ec2metadata 8package ec2metadata
9 9
10import ( 10import (
@@ -72,6 +72,7 @@ func NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
72 cfg, 72 cfg,
73 metadata.ClientInfo{ 73 metadata.ClientInfo{
74 ServiceName: ServiceName, 74 ServiceName: ServiceName,
75 ServiceID: ServiceName,
75 Endpoint: endpoint, 76 Endpoint: endpoint,
76 APIVersion: "latest", 77 APIVersion: "latest",
77 }, 78 },
@@ -91,6 +92,9 @@ func NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
91 svc.Handlers.Send.SwapNamed(request.NamedHandler{ 92 svc.Handlers.Send.SwapNamed(request.NamedHandler{
92 Name: corehandlers.SendHandler.Name, 93 Name: corehandlers.SendHandler.Name,
93 Fn: func(r *request.Request) { 94 Fn: func(r *request.Request) {
95 r.HTTPResponse = &http.Response{
96 Header: http.Header{},
97 }
94 r.Error = awserr.New( 98 r.Error = awserr.New(
95 request.CanceledErrorCode, 99 request.CanceledErrorCode,
96 "EC2 IMDS access disabled via "+disableServiceEnvVar+" env var", 100 "EC2 IMDS access disabled via "+disableServiceEnvVar+" env var",
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go
index 74f72de..87b9ff3 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go
@@ -84,6 +84,8 @@ func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resol
84 custAddEC2Metadata(p) 84 custAddEC2Metadata(p)
85 custAddS3DualStack(p) 85 custAddS3DualStack(p)
86 custRmIotDataService(p) 86 custRmIotDataService(p)
87 custFixAppAutoscalingChina(p)
88 custFixAppAutoscalingUsGov(p)
87 } 89 }
88 90
89 return ps, nil 91 return ps, nil
@@ -94,7 +96,12 @@ func custAddS3DualStack(p *partition) {
94 return 96 return
95 } 97 }
96 98
97 s, ok := p.Services["s3"] 99 custAddDualstack(p, "s3")
100 custAddDualstack(p, "s3-control")
101}
102
103func custAddDualstack(p *partition, svcName string) {
104 s, ok := p.Services[svcName]
98 if !ok { 105 if !ok {
99 return 106 return
100 } 107 }
@@ -102,7 +109,7 @@ func custAddS3DualStack(p *partition) {
102 s.Defaults.HasDualStack = boxedTrue 109 s.Defaults.HasDualStack = boxedTrue
103 s.Defaults.DualStackHostname = "{service}.dualstack.{region}.{dnsSuffix}" 110 s.Defaults.DualStackHostname = "{service}.dualstack.{region}.{dnsSuffix}"
104 111
105 p.Services["s3"] = s 112 p.Services[svcName] = s
106} 113}
107 114
108func custAddEC2Metadata(p *partition) { 115func custAddEC2Metadata(p *partition) {
@@ -122,6 +129,54 @@ func custRmIotDataService(p *partition) {
122 delete(p.Services, "data.iot") 129 delete(p.Services, "data.iot")
123} 130}
124 131
132func custFixAppAutoscalingChina(p *partition) {
133 if p.ID != "aws-cn" {
134 return
135 }
136
137 const serviceName = "application-autoscaling"
138 s, ok := p.Services[serviceName]
139 if !ok {
140 return
141 }
142
143 const expectHostname = `autoscaling.{region}.amazonaws.com`
144 if e, a := s.Defaults.Hostname, expectHostname; e != a {
145 fmt.Printf("custFixAppAutoscalingChina: ignoring customization, expected %s, got %s\n", e, a)
146 return
147 }
148
149 s.Defaults.Hostname = expectHostname + ".cn"
150 p.Services[serviceName] = s
151}
152
153func custFixAppAutoscalingUsGov(p *partition) {
154 if p.ID != "aws-us-gov" {
155 return
156 }
157
158 const serviceName = "application-autoscaling"
159 s, ok := p.Services[serviceName]
160 if !ok {
161 return
162 }
163
164 if a := s.Defaults.CredentialScope.Service; a != "" {
165 fmt.Printf("custFixAppAutoscalingUsGov: ignoring customization, expected empty credential scope service, got %s\n", a)
166 return
167 }
168
169 if a := s.Defaults.Hostname; a != "" {
170 fmt.Printf("custFixAppAutoscalingUsGov: ignoring customization, expected empty hostname, got %s\n", a)
171 return
172 }
173
174 s.Defaults.CredentialScope.Service = "application-autoscaling"
175 s.Defaults.Hostname = "autoscaling.{region}.amazonaws.com"
176
177 p.Services[serviceName] = s
178}
179
125type decodeModelError struct { 180type decodeModelError struct {
126 awsError 181 awsError
127} 182}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
index 8e823be..50e170e 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
@@ -15,6 +15,7 @@ const (
15 15
16// AWS Standard partition's regions. 16// AWS Standard partition's regions.
17const ( 17const (
18 ApEast1RegionID = "ap-east-1" // Asia Pacific (Hong Kong).
18 ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo). 19 ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo).
19 ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul). 20 ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul).
20 ApSouth1RegionID = "ap-south-1" // Asia Pacific (Mumbai). 21 ApSouth1RegionID = "ap-south-1" // Asia Pacific (Mumbai).
@@ -22,6 +23,7 @@ const (
22 ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney). 23 ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney).
23 CaCentral1RegionID = "ca-central-1" // Canada (Central). 24 CaCentral1RegionID = "ca-central-1" // Canada (Central).
24 EuCentral1RegionID = "eu-central-1" // EU (Frankfurt). 25 EuCentral1RegionID = "eu-central-1" // EU (Frankfurt).
26 EuNorth1RegionID = "eu-north-1" // EU (Stockholm).
25 EuWest1RegionID = "eu-west-1" // EU (Ireland). 27 EuWest1RegionID = "eu-west-1" // EU (Ireland).
26 EuWest2RegionID = "eu-west-2" // EU (London). 28 EuWest2RegionID = "eu-west-2" // EU (London).
27 EuWest3RegionID = "eu-west-3" // EU (Paris). 29 EuWest3RegionID = "eu-west-3" // EU (Paris).
@@ -40,140 +42,10 @@ const (
40 42
41// AWS GovCloud (US) partition's regions. 43// AWS GovCloud (US) partition's regions.
42const ( 44const (
45 UsGovEast1RegionID = "us-gov-east-1" // AWS GovCloud (US-East).
43 UsGovWest1RegionID = "us-gov-west-1" // AWS GovCloud (US). 46 UsGovWest1RegionID = "us-gov-west-1" // AWS GovCloud (US).
44) 47)
45 48
46// Service identifiers
47const (
48 A4bServiceID = "a4b" // A4b.
49 AcmServiceID = "acm" // Acm.
50 AcmPcaServiceID = "acm-pca" // AcmPca.
51 ApiMediatailorServiceID = "api.mediatailor" // ApiMediatailor.
52 ApiPricingServiceID = "api.pricing" // ApiPricing.
53 ApigatewayServiceID = "apigateway" // Apigateway.
54 ApplicationAutoscalingServiceID = "application-autoscaling" // ApplicationAutoscaling.
55 Appstream2ServiceID = "appstream2" // Appstream2.
56 AthenaServiceID = "athena" // Athena.
57 AutoscalingServiceID = "autoscaling" // Autoscaling.
58 AutoscalingPlansServiceID = "autoscaling-plans" // AutoscalingPlans.
59 BatchServiceID = "batch" // Batch.
60 BudgetsServiceID = "budgets" // Budgets.
61 CeServiceID = "ce" // Ce.
62 Cloud9ServiceID = "cloud9" // Cloud9.
63 ClouddirectoryServiceID = "clouddirectory" // Clouddirectory.
64 CloudformationServiceID = "cloudformation" // Cloudformation.
65 CloudfrontServiceID = "cloudfront" // Cloudfront.
66 CloudhsmServiceID = "cloudhsm" // Cloudhsm.
67 Cloudhsmv2ServiceID = "cloudhsmv2" // Cloudhsmv2.
68 CloudsearchServiceID = "cloudsearch" // Cloudsearch.
69 CloudtrailServiceID = "cloudtrail" // Cloudtrail.
70 CodebuildServiceID = "codebuild" // Codebuild.
71 CodecommitServiceID = "codecommit" // Codecommit.
72 CodedeployServiceID = "codedeploy" // Codedeploy.
73 CodepipelineServiceID = "codepipeline" // Codepipeline.
74 CodestarServiceID = "codestar" // Codestar.
75 CognitoIdentityServiceID = "cognito-identity" // CognitoIdentity.
76 CognitoIdpServiceID = "cognito-idp" // CognitoIdp.
77 CognitoSyncServiceID = "cognito-sync" // CognitoSync.
78 ComprehendServiceID = "comprehend" // Comprehend.
79 ConfigServiceID = "config" // Config.
80 CurServiceID = "cur" // Cur.
81 DatapipelineServiceID = "datapipeline" // Datapipeline.
82 DaxServiceID = "dax" // Dax.
83 DevicefarmServiceID = "devicefarm" // Devicefarm.
84 DirectconnectServiceID = "directconnect" // Directconnect.
85 DiscoveryServiceID = "discovery" // Discovery.
86 DmsServiceID = "dms" // Dms.
87 DsServiceID = "ds" // Ds.
88 DynamodbServiceID = "dynamodb" // Dynamodb.
89 Ec2ServiceID = "ec2" // Ec2.
90 Ec2metadataServiceID = "ec2metadata" // Ec2metadata.
91 EcrServiceID = "ecr" // Ecr.
92 EcsServiceID = "ecs" // Ecs.
93 ElasticacheServiceID = "elasticache" // Elasticache.
94 ElasticbeanstalkServiceID = "elasticbeanstalk" // Elasticbeanstalk.
95 ElasticfilesystemServiceID = "elasticfilesystem" // Elasticfilesystem.
96 ElasticloadbalancingServiceID = "elasticloadbalancing" // Elasticloadbalancing.
97 ElasticmapreduceServiceID = "elasticmapreduce" // Elasticmapreduce.
98 ElastictranscoderServiceID = "elastictranscoder" // Elastictranscoder.
99 EmailServiceID = "email" // Email.
100 EntitlementMarketplaceServiceID = "entitlement.marketplace" // EntitlementMarketplace.
101 EsServiceID = "es" // Es.
102 EventsServiceID = "events" // Events.
103 FirehoseServiceID = "firehose" // Firehose.
104 FmsServiceID = "fms" // Fms.
105 GameliftServiceID = "gamelift" // Gamelift.
106 GlacierServiceID = "glacier" // Glacier.
107 GlueServiceID = "glue" // Glue.
108 GreengrassServiceID = "greengrass" // Greengrass.
109 GuarddutyServiceID = "guardduty" // Guardduty.
110 HealthServiceID = "health" // Health.
111 IamServiceID = "iam" // Iam.
112 ImportexportServiceID = "importexport" // Importexport.
113 InspectorServiceID = "inspector" // Inspector.
114 IotServiceID = "iot" // Iot.
115 KinesisServiceID = "kinesis" // Kinesis.
116 KinesisanalyticsServiceID = "kinesisanalytics" // Kinesisanalytics.
117 KinesisvideoServiceID = "kinesisvideo" // Kinesisvideo.
118 KmsServiceID = "kms" // Kms.
119 LambdaServiceID = "lambda" // Lambda.
120 LightsailServiceID = "lightsail" // Lightsail.
121 LogsServiceID = "logs" // Logs.
122 MachinelearningServiceID = "machinelearning" // Machinelearning.
123 MarketplacecommerceanalyticsServiceID = "marketplacecommerceanalytics" // Marketplacecommerceanalytics.
124 MediaconvertServiceID = "mediaconvert" // Mediaconvert.
125 MedialiveServiceID = "medialive" // Medialive.
126 MediapackageServiceID = "mediapackage" // Mediapackage.
127 MediastoreServiceID = "mediastore" // Mediastore.
128 MeteringMarketplaceServiceID = "metering.marketplace" // MeteringMarketplace.
129 MghServiceID = "mgh" // Mgh.
130 MobileanalyticsServiceID = "mobileanalytics" // Mobileanalytics.
131 ModelsLexServiceID = "models.lex" // ModelsLex.
132 MonitoringServiceID = "monitoring" // Monitoring.
133 MturkRequesterServiceID = "mturk-requester" // MturkRequester.
134 NeptuneServiceID = "neptune" // Neptune.
135 OpsworksServiceID = "opsworks" // Opsworks.
136 OpsworksCmServiceID = "opsworks-cm" // OpsworksCm.
137 OrganizationsServiceID = "organizations" // Organizations.
138 PinpointServiceID = "pinpoint" // Pinpoint.
139 PollyServiceID = "polly" // Polly.
140 RdsServiceID = "rds" // Rds.
141 RedshiftServiceID = "redshift" // Redshift.
142 RekognitionServiceID = "rekognition" // Rekognition.
143 ResourceGroupsServiceID = "resource-groups" // ResourceGroups.
144 Route53ServiceID = "route53" // Route53.
145 Route53domainsServiceID = "route53domains" // Route53domains.
146 RuntimeLexServiceID = "runtime.lex" // RuntimeLex.
147 RuntimeSagemakerServiceID = "runtime.sagemaker" // RuntimeSagemaker.
148 S3ServiceID = "s3" // S3.
149 SagemakerServiceID = "sagemaker" // Sagemaker.
150 SdbServiceID = "sdb" // Sdb.
151 SecretsmanagerServiceID = "secretsmanager" // Secretsmanager.
152 ServerlessrepoServiceID = "serverlessrepo" // Serverlessrepo.
153 ServicecatalogServiceID = "servicecatalog" // Servicecatalog.
154 ServicediscoveryServiceID = "servicediscovery" // Servicediscovery.
155 ShieldServiceID = "shield" // Shield.
156 SmsServiceID = "sms" // Sms.
157 SnowballServiceID = "snowball" // Snowball.
158 SnsServiceID = "sns" // Sns.
159 SqsServiceID = "sqs" // Sqs.
160 SsmServiceID = "ssm" // Ssm.
161 StatesServiceID = "states" // States.
162 StoragegatewayServiceID = "storagegateway" // Storagegateway.
163 StreamsDynamodbServiceID = "streams.dynamodb" // StreamsDynamodb.
164 StsServiceID = "sts" // Sts.
165 SupportServiceID = "support" // Support.
166 SwfServiceID = "swf" // Swf.
167 TaggingServiceID = "tagging" // Tagging.
168 TranslateServiceID = "translate" // Translate.
169 WafServiceID = "waf" // Waf.
170 WafRegionalServiceID = "waf-regional" // WafRegional.
171 WorkdocsServiceID = "workdocs" // Workdocs.
172 WorkmailServiceID = "workmail" // Workmail.
173 WorkspacesServiceID = "workspaces" // Workspaces.
174 XrayServiceID = "xray" // Xray.
175)
176
177// DefaultResolver returns an Endpoint resolver that will be able 49// DefaultResolver returns an Endpoint resolver that will be able
178// to resolve endpoints for: AWS Standard, AWS China, and AWS GovCloud (US). 50// to resolve endpoints for: AWS Standard, AWS China, and AWS GovCloud (US).
179// 51//
@@ -220,6 +92,9 @@ var awsPartition = partition{
220 SignatureVersions: []string{"v4"}, 92 SignatureVersions: []string{"v4"},
221 }, 93 },
222 Regions: regions{ 94 Regions: regions{
95 "ap-east-1": region{
96 Description: "Asia Pacific (Hong Kong)",
97 },
223 "ap-northeast-1": region{ 98 "ap-northeast-1": region{
224 Description: "Asia Pacific (Tokyo)", 99 Description: "Asia Pacific (Tokyo)",
225 }, 100 },
@@ -241,6 +116,9 @@ var awsPartition = partition{
241 "eu-central-1": region{ 116 "eu-central-1": region{
242 Description: "EU (Frankfurt)", 117 Description: "EU (Frankfurt)",
243 }, 118 },
119 "eu-north-1": region{
120 Description: "EU (Stockholm)",
121 },
244 "eu-west-1": region{ 122 "eu-west-1": region{
245 Description: "EU (Ireland)", 123 Description: "EU (Ireland)",
246 }, 124 },
@@ -276,6 +154,7 @@ var awsPartition = partition{
276 "acm": service{ 154 "acm": service{
277 155
278 Endpoints: endpoints{ 156 Endpoints: endpoints{
157 "ap-east-1": endpoint{},
279 "ap-northeast-1": endpoint{}, 158 "ap-northeast-1": endpoint{},
280 "ap-northeast-2": endpoint{}, 159 "ap-northeast-2": endpoint{},
281 "ap-south-1": endpoint{}, 160 "ap-south-1": endpoint{},
@@ -283,6 +162,7 @@ var awsPartition = partition{
283 "ap-southeast-2": endpoint{}, 162 "ap-southeast-2": endpoint{},
284 "ca-central-1": endpoint{}, 163 "ca-central-1": endpoint{},
285 "eu-central-1": endpoint{}, 164 "eu-central-1": endpoint{},
165 "eu-north-1": endpoint{},
286 "eu-west-1": endpoint{}, 166 "eu-west-1": endpoint{},
287 "eu-west-2": endpoint{}, 167 "eu-west-2": endpoint{},
288 "eu-west-3": endpoint{}, 168 "eu-west-3": endpoint{},
@@ -299,16 +179,129 @@ var awsPartition = partition{
299 }, 179 },
300 Endpoints: endpoints{ 180 Endpoints: endpoints{
301 "ap-northeast-1": endpoint{}, 181 "ap-northeast-1": endpoint{},
182 "ap-northeast-2": endpoint{},
183 "ap-south-1": endpoint{},
302 "ap-southeast-1": endpoint{}, 184 "ap-southeast-1": endpoint{},
303 "ap-southeast-2": endpoint{}, 185 "ap-southeast-2": endpoint{},
304 "ca-central-1": endpoint{}, 186 "ca-central-1": endpoint{},
305 "eu-central-1": endpoint{}, 187 "eu-central-1": endpoint{},
188 "eu-north-1": endpoint{},
306 "eu-west-1": endpoint{}, 189 "eu-west-1": endpoint{},
190 "eu-west-2": endpoint{},
191 "eu-west-3": endpoint{},
307 "us-east-1": endpoint{}, 192 "us-east-1": endpoint{},
308 "us-east-2": endpoint{}, 193 "us-east-2": endpoint{},
194 "us-west-1": endpoint{},
309 "us-west-2": endpoint{}, 195 "us-west-2": endpoint{},
310 }, 196 },
311 }, 197 },
198 "api.ecr": service{
199
200 Endpoints: endpoints{
201 "ap-east-1": endpoint{
202 Hostname: "api.ecr.ap-east-1.amazonaws.com",
203 CredentialScope: credentialScope{
204 Region: "ap-east-1",
205 },
206 },
207 "ap-northeast-1": endpoint{
208 Hostname: "api.ecr.ap-northeast-1.amazonaws.com",
209 CredentialScope: credentialScope{
210 Region: "ap-northeast-1",
211 },
212 },
213 "ap-northeast-2": endpoint{
214 Hostname: "api.ecr.ap-northeast-2.amazonaws.com",
215 CredentialScope: credentialScope{
216 Region: "ap-northeast-2",
217 },
218 },
219 "ap-south-1": endpoint{
220 Hostname: "api.ecr.ap-south-1.amazonaws.com",
221 CredentialScope: credentialScope{
222 Region: "ap-south-1",
223 },
224 },
225 "ap-southeast-1": endpoint{
226 Hostname: "api.ecr.ap-southeast-1.amazonaws.com",
227 CredentialScope: credentialScope{
228 Region: "ap-southeast-1",
229 },
230 },
231 "ap-southeast-2": endpoint{
232 Hostname: "api.ecr.ap-southeast-2.amazonaws.com",
233 CredentialScope: credentialScope{
234 Region: "ap-southeast-2",
235 },
236 },
237 "ca-central-1": endpoint{
238 Hostname: "api.ecr.ca-central-1.amazonaws.com",
239 CredentialScope: credentialScope{
240 Region: "ca-central-1",
241 },
242 },
243 "eu-central-1": endpoint{
244 Hostname: "api.ecr.eu-central-1.amazonaws.com",
245 CredentialScope: credentialScope{
246 Region: "eu-central-1",
247 },
248 },
249 "eu-north-1": endpoint{
250 Hostname: "api.ecr.eu-north-1.amazonaws.com",
251 CredentialScope: credentialScope{
252 Region: "eu-north-1",
253 },
254 },
255 "eu-west-1": endpoint{
256 Hostname: "api.ecr.eu-west-1.amazonaws.com",
257 CredentialScope: credentialScope{
258 Region: "eu-west-1",
259 },
260 },
261 "eu-west-2": endpoint{
262 Hostname: "api.ecr.eu-west-2.amazonaws.com",
263 CredentialScope: credentialScope{
264 Region: "eu-west-2",
265 },
266 },
267 "eu-west-3": endpoint{
268 Hostname: "api.ecr.eu-west-3.amazonaws.com",
269 CredentialScope: credentialScope{
270 Region: "eu-west-3",
271 },
272 },
273 "sa-east-1": endpoint{
274 Hostname: "api.ecr.sa-east-1.amazonaws.com",
275 CredentialScope: credentialScope{
276 Region: "sa-east-1",
277 },
278 },
279 "us-east-1": endpoint{
280 Hostname: "api.ecr.us-east-1.amazonaws.com",
281 CredentialScope: credentialScope{
282 Region: "us-east-1",
283 },
284 },
285 "us-east-2": endpoint{
286 Hostname: "api.ecr.us-east-2.amazonaws.com",
287 CredentialScope: credentialScope{
288 Region: "us-east-2",
289 },
290 },
291 "us-west-1": endpoint{
292 Hostname: "api.ecr.us-west-1.amazonaws.com",
293 CredentialScope: credentialScope{
294 Region: "us-west-1",
295 },
296 },
297 "us-west-2": endpoint{
298 Hostname: "api.ecr.us-west-2.amazonaws.com",
299 CredentialScope: credentialScope{
300 Region: "us-west-2",
301 },
302 },
303 },
304 },
312 "api.mediatailor": service{ 305 "api.mediatailor": service{
313 306
314 Endpoints: endpoints{ 307 Endpoints: endpoints{
@@ -317,6 +310,7 @@ var awsPartition = partition{
317 "ap-southeast-2": endpoint{}, 310 "ap-southeast-2": endpoint{},
318 "eu-west-1": endpoint{}, 311 "eu-west-1": endpoint{},
319 "us-east-1": endpoint{}, 312 "us-east-1": endpoint{},
313 "us-west-2": endpoint{},
320 }, 314 },
321 }, 315 },
322 "api.pricing": service{ 316 "api.pricing": service{
@@ -330,9 +324,52 @@ var awsPartition = partition{
330 "us-east-1": endpoint{}, 324 "us-east-1": endpoint{},
331 }, 325 },
332 }, 326 },
327 "api.sagemaker": service{
328
329 Endpoints: endpoints{
330 "ap-northeast-1": endpoint{},
331 "ap-northeast-2": endpoint{},
332 "ap-south-1": endpoint{},
333 "ap-southeast-1": endpoint{},
334 "ap-southeast-2": endpoint{},
335 "ca-central-1": endpoint{},
336 "eu-central-1": endpoint{},
337 "eu-west-1": endpoint{},
338 "eu-west-2": endpoint{},
339 "us-east-1": endpoint{},
340 "us-east-1-fips": endpoint{
341 Hostname: "api-fips.sagemaker.us-east-1.amazonaws.com",
342 CredentialScope: credentialScope{
343 Region: "us-east-1",
344 },
345 },
346 "us-east-2": endpoint{},
347 "us-east-2-fips": endpoint{
348 Hostname: "api-fips.sagemaker.us-east-2.amazonaws.com",
349 CredentialScope: credentialScope{
350 Region: "us-east-2",
351 },
352 },
353 "us-west-1": endpoint{},
354 "us-west-1-fips": endpoint{
355 Hostname: "api-fips.sagemaker.us-west-1.amazonaws.com",
356 CredentialScope: credentialScope{
357 Region: "us-west-1",
358 },
359 },
360 "us-west-2": endpoint{},
361 "us-west-2-fips": endpoint{
362 Hostname: "api-fips.sagemaker.us-west-2.amazonaws.com",
363 CredentialScope: credentialScope{
364 Region: "us-west-2",
365 },
366 },
367 },
368 },
333 "apigateway": service{ 369 "apigateway": service{
334 370
335 Endpoints: endpoints{ 371 Endpoints: endpoints{
372 "ap-east-1": endpoint{},
336 "ap-northeast-1": endpoint{}, 373 "ap-northeast-1": endpoint{},
337 "ap-northeast-2": endpoint{}, 374 "ap-northeast-2": endpoint{},
338 "ap-south-1": endpoint{}, 375 "ap-south-1": endpoint{},
@@ -340,6 +377,7 @@ var awsPartition = partition{
340 "ap-southeast-2": endpoint{}, 377 "ap-southeast-2": endpoint{},
341 "ca-central-1": endpoint{}, 378 "ca-central-1": endpoint{},
342 "eu-central-1": endpoint{}, 379 "eu-central-1": endpoint{},
380 "eu-north-1": endpoint{},
343 "eu-west-1": endpoint{}, 381 "eu-west-1": endpoint{},
344 "eu-west-2": endpoint{}, 382 "eu-west-2": endpoint{},
345 "eu-west-3": endpoint{}, 383 "eu-west-3": endpoint{},
@@ -359,6 +397,7 @@ var awsPartition = partition{
359 }, 397 },
360 }, 398 },
361 Endpoints: endpoints{ 399 Endpoints: endpoints{
400 "ap-east-1": endpoint{},
362 "ap-northeast-1": endpoint{}, 401 "ap-northeast-1": endpoint{},
363 "ap-northeast-2": endpoint{}, 402 "ap-northeast-2": endpoint{},
364 "ap-south-1": endpoint{}, 403 "ap-south-1": endpoint{},
@@ -366,6 +405,7 @@ var awsPartition = partition{
366 "ap-southeast-2": endpoint{}, 405 "ap-southeast-2": endpoint{},
367 "ca-central-1": endpoint{}, 406 "ca-central-1": endpoint{},
368 "eu-central-1": endpoint{}, 407 "eu-central-1": endpoint{},
408 "eu-north-1": endpoint{},
369 "eu-west-1": endpoint{}, 409 "eu-west-1": endpoint{},
370 "eu-west-2": endpoint{}, 410 "eu-west-2": endpoint{},
371 "eu-west-3": endpoint{}, 411 "eu-west-3": endpoint{},
@@ -385,19 +425,43 @@ var awsPartition = partition{
385 }, 425 },
386 Endpoints: endpoints{ 426 Endpoints: endpoints{
387 "ap-northeast-1": endpoint{}, 427 "ap-northeast-1": endpoint{},
428 "ap-northeast-2": endpoint{},
429 "ap-southeast-1": endpoint{},
430 "ap-southeast-2": endpoint{},
431 "eu-central-1": endpoint{},
388 "eu-west-1": endpoint{}, 432 "eu-west-1": endpoint{},
389 "us-east-1": endpoint{}, 433 "us-east-1": endpoint{},
390 "us-west-2": endpoint{}, 434 "us-west-2": endpoint{},
391 }, 435 },
392 }, 436 },
437 "appsync": service{
438
439 Endpoints: endpoints{
440 "ap-northeast-1": endpoint{},
441 "ap-northeast-2": endpoint{},
442 "ap-south-1": endpoint{},
443 "ap-southeast-1": endpoint{},
444 "ap-southeast-2": endpoint{},
445 "eu-central-1": endpoint{},
446 "eu-west-1": endpoint{},
447 "eu-west-2": endpoint{},
448 "us-east-1": endpoint{},
449 "us-east-2": endpoint{},
450 "us-west-2": endpoint{},
451 },
452 },
393 "athena": service{ 453 "athena": service{
394 454
395 Endpoints: endpoints{ 455 Endpoints: endpoints{
396 "ap-northeast-1": endpoint{}, 456 "ap-northeast-1": endpoint{},
457 "ap-northeast-2": endpoint{},
458 "ap-south-1": endpoint{},
397 "ap-southeast-1": endpoint{}, 459 "ap-southeast-1": endpoint{},
398 "ap-southeast-2": endpoint{}, 460 "ap-southeast-2": endpoint{},
461 "ca-central-1": endpoint{},
399 "eu-central-1": endpoint{}, 462 "eu-central-1": endpoint{},
400 "eu-west-1": endpoint{}, 463 "eu-west-1": endpoint{},
464 "eu-west-2": endpoint{},
401 "us-east-1": endpoint{}, 465 "us-east-1": endpoint{},
402 "us-east-2": endpoint{}, 466 "us-east-2": endpoint{},
403 "us-west-2": endpoint{}, 467 "us-west-2": endpoint{},
@@ -408,6 +472,7 @@ var awsPartition = partition{
408 Protocols: []string{"http", "https"}, 472 Protocols: []string{"http", "https"},
409 }, 473 },
410 Endpoints: endpoints{ 474 Endpoints: endpoints{
475 "ap-east-1": endpoint{},
411 "ap-northeast-1": endpoint{}, 476 "ap-northeast-1": endpoint{},
412 "ap-northeast-2": endpoint{}, 477 "ap-northeast-2": endpoint{},
413 "ap-south-1": endpoint{}, 478 "ap-south-1": endpoint{},
@@ -415,6 +480,7 @@ var awsPartition = partition{
415 "ap-southeast-2": endpoint{}, 480 "ap-southeast-2": endpoint{},
416 "ca-central-1": endpoint{}, 481 "ca-central-1": endpoint{},
417 "eu-central-1": endpoint{}, 482 "eu-central-1": endpoint{},
483 "eu-north-1": endpoint{},
418 "eu-west-1": endpoint{}, 484 "eu-west-1": endpoint{},
419 "eu-west-2": endpoint{}, 485 "eu-west-2": endpoint{},
420 "eu-west-3": endpoint{}, 486 "eu-west-3": endpoint{},
@@ -434,10 +500,18 @@ var awsPartition = partition{
434 }, 500 },
435 }, 501 },
436 Endpoints: endpoints{ 502 Endpoints: endpoints{
503 "ap-northeast-1": endpoint{},
504 "ap-northeast-2": endpoint{},
505 "ap-south-1": endpoint{},
437 "ap-southeast-1": endpoint{}, 506 "ap-southeast-1": endpoint{},
507 "ap-southeast-2": endpoint{},
508 "ca-central-1": endpoint{},
509 "eu-central-1": endpoint{},
438 "eu-west-1": endpoint{}, 510 "eu-west-1": endpoint{},
511 "eu-west-2": endpoint{},
439 "us-east-1": endpoint{}, 512 "us-east-1": endpoint{},
440 "us-east-2": endpoint{}, 513 "us-east-2": endpoint{},
514 "us-west-1": endpoint{},
441 "us-west-2": endpoint{}, 515 "us-west-2": endpoint{},
442 }, 516 },
443 }, 517 },
@@ -451,8 +525,11 @@ var awsPartition = partition{
451 "ap-southeast-2": endpoint{}, 525 "ap-southeast-2": endpoint{},
452 "ca-central-1": endpoint{}, 526 "ca-central-1": endpoint{},
453 "eu-central-1": endpoint{}, 527 "eu-central-1": endpoint{},
528 "eu-north-1": endpoint{},
454 "eu-west-1": endpoint{}, 529 "eu-west-1": endpoint{},
455 "eu-west-2": endpoint{}, 530 "eu-west-2": endpoint{},
531 "eu-west-3": endpoint{},
532 "sa-east-1": endpoint{},
456 "us-east-1": endpoint{}, 533 "us-east-1": endpoint{},
457 "us-east-2": endpoint{}, 534 "us-east-2": endpoint{},
458 "us-west-1": endpoint{}, 535 "us-west-1": endpoint{},
@@ -485,9 +562,27 @@ var awsPartition = partition{
485 }, 562 },
486 }, 563 },
487 }, 564 },
565 "chime": service{
566 PartitionEndpoint: "aws-global",
567 IsRegionalized: boxedFalse,
568 Defaults: endpoint{
569 SSLCommonName: "service.chime.aws.amazon.com",
570 Protocols: []string{"https"},
571 },
572 Endpoints: endpoints{
573 "aws-global": endpoint{
574 Hostname: "service.chime.aws.amazon.com",
575 Protocols: []string{"https"},
576 CredentialScope: credentialScope{
577 Region: "us-east-1",
578 },
579 },
580 },
581 },
488 "cloud9": service{ 582 "cloud9": service{
489 583
490 Endpoints: endpoints{ 584 Endpoints: endpoints{
585 "ap-northeast-1": endpoint{},
491 "ap-southeast-1": endpoint{}, 586 "ap-southeast-1": endpoint{},
492 "eu-west-1": endpoint{}, 587 "eu-west-1": endpoint{},
493 "us-east-1": endpoint{}, 588 "us-east-1": endpoint{},
@@ -500,6 +595,7 @@ var awsPartition = partition{
500 Endpoints: endpoints{ 595 Endpoints: endpoints{
501 "ap-southeast-1": endpoint{}, 596 "ap-southeast-1": endpoint{},
502 "ap-southeast-2": endpoint{}, 597 "ap-southeast-2": endpoint{},
598 "ca-central-1": endpoint{},
503 "eu-central-1": endpoint{}, 599 "eu-central-1": endpoint{},
504 "eu-west-1": endpoint{}, 600 "eu-west-1": endpoint{},
505 "eu-west-2": endpoint{}, 601 "eu-west-2": endpoint{},
@@ -511,6 +607,7 @@ var awsPartition = partition{
511 "cloudformation": service{ 607 "cloudformation": service{
512 608
513 Endpoints: endpoints{ 609 Endpoints: endpoints{
610 "ap-east-1": endpoint{},
514 "ap-northeast-1": endpoint{}, 611 "ap-northeast-1": endpoint{},
515 "ap-northeast-2": endpoint{}, 612 "ap-northeast-2": endpoint{},
516 "ap-south-1": endpoint{}, 613 "ap-south-1": endpoint{},
@@ -518,6 +615,7 @@ var awsPartition = partition{
518 "ap-southeast-2": endpoint{}, 615 "ap-southeast-2": endpoint{},
519 "ca-central-1": endpoint{}, 616 "ca-central-1": endpoint{},
520 "eu-central-1": endpoint{}, 617 "eu-central-1": endpoint{},
618 "eu-north-1": endpoint{},
521 "eu-west-1": endpoint{}, 619 "eu-west-1": endpoint{},
522 "eu-west-2": endpoint{}, 620 "eu-west-2": endpoint{},
523 "eu-west-3": endpoint{}, 621 "eu-west-3": endpoint{},
@@ -565,13 +663,16 @@ var awsPartition = partition{
565 }, 663 },
566 Endpoints: endpoints{ 664 Endpoints: endpoints{
567 "ap-northeast-1": endpoint{}, 665 "ap-northeast-1": endpoint{},
666 "ap-northeast-2": endpoint{},
568 "ap-south-1": endpoint{}, 667 "ap-south-1": endpoint{},
569 "ap-southeast-1": endpoint{}, 668 "ap-southeast-1": endpoint{},
570 "ap-southeast-2": endpoint{}, 669 "ap-southeast-2": endpoint{},
571 "ca-central-1": endpoint{}, 670 "ca-central-1": endpoint{},
572 "eu-central-1": endpoint{}, 671 "eu-central-1": endpoint{},
672 "eu-north-1": endpoint{},
573 "eu-west-1": endpoint{}, 673 "eu-west-1": endpoint{},
574 "eu-west-2": endpoint{}, 674 "eu-west-2": endpoint{},
675 "eu-west-3": endpoint{},
575 "us-east-1": endpoint{}, 676 "us-east-1": endpoint{},
576 "us-east-2": endpoint{}, 677 "us-east-2": endpoint{},
577 "us-west-1": endpoint{}, 678 "us-west-1": endpoint{},
@@ -596,6 +697,7 @@ var awsPartition = partition{
596 "cloudtrail": service{ 697 "cloudtrail": service{
597 698
598 Endpoints: endpoints{ 699 Endpoints: endpoints{
700 "ap-east-1": endpoint{},
599 "ap-northeast-1": endpoint{}, 701 "ap-northeast-1": endpoint{},
600 "ap-northeast-2": endpoint{}, 702 "ap-northeast-2": endpoint{},
601 "ap-south-1": endpoint{}, 703 "ap-south-1": endpoint{},
@@ -603,6 +705,7 @@ var awsPartition = partition{
603 "ap-southeast-2": endpoint{}, 705 "ap-southeast-2": endpoint{},
604 "ca-central-1": endpoint{}, 706 "ca-central-1": endpoint{},
605 "eu-central-1": endpoint{}, 707 "eu-central-1": endpoint{},
708 "eu-north-1": endpoint{},
606 "eu-west-1": endpoint{}, 709 "eu-west-1": endpoint{},
607 "eu-west-2": endpoint{}, 710 "eu-west-2": endpoint{},
608 "eu-west-3": endpoint{}, 711 "eu-west-3": endpoint{},
@@ -670,11 +773,17 @@ var awsPartition = partition{
670 "eu-west-1": endpoint{}, 773 "eu-west-1": endpoint{},
671 "eu-west-2": endpoint{}, 774 "eu-west-2": endpoint{},
672 "eu-west-3": endpoint{}, 775 "eu-west-3": endpoint{},
673 "sa-east-1": endpoint{}, 776 "fips": endpoint{
674 "us-east-1": endpoint{}, 777 Hostname: "codecommit-fips.ca-central-1.amazonaws.com",
675 "us-east-2": endpoint{}, 778 CredentialScope: credentialScope{
676 "us-west-1": endpoint{}, 779 Region: "ca-central-1",
677 "us-west-2": endpoint{}, 780 },
781 },
782 "sa-east-1": endpoint{},
783 "us-east-1": endpoint{},
784 "us-east-2": endpoint{},
785 "us-west-1": endpoint{},
786 "us-west-2": endpoint{},
678 }, 787 },
679 }, 788 },
680 "codedeploy": service{ 789 "codedeploy": service{
@@ -687,14 +796,39 @@ var awsPartition = partition{
687 "ap-southeast-2": endpoint{}, 796 "ap-southeast-2": endpoint{},
688 "ca-central-1": endpoint{}, 797 "ca-central-1": endpoint{},
689 "eu-central-1": endpoint{}, 798 "eu-central-1": endpoint{},
799 "eu-north-1": endpoint{},
690 "eu-west-1": endpoint{}, 800 "eu-west-1": endpoint{},
691 "eu-west-2": endpoint{}, 801 "eu-west-2": endpoint{},
692 "eu-west-3": endpoint{}, 802 "eu-west-3": endpoint{},
693 "sa-east-1": endpoint{}, 803 "sa-east-1": endpoint{},
694 "us-east-1": endpoint{}, 804 "us-east-1": endpoint{},
695 "us-east-2": endpoint{}, 805 "us-east-1-fips": endpoint{
696 "us-west-1": endpoint{}, 806 Hostname: "codedeploy-fips.us-east-1.amazonaws.com",
697 "us-west-2": endpoint{}, 807 CredentialScope: credentialScope{
808 Region: "us-east-1",
809 },
810 },
811 "us-east-2": endpoint{},
812 "us-east-2-fips": endpoint{
813 Hostname: "codedeploy-fips.us-east-2.amazonaws.com",
814 CredentialScope: credentialScope{
815 Region: "us-east-2",
816 },
817 },
818 "us-west-1": endpoint{},
819 "us-west-1-fips": endpoint{
820 Hostname: "codedeploy-fips.us-west-1.amazonaws.com",
821 CredentialScope: credentialScope{
822 Region: "us-west-1",
823 },
824 },
825 "us-west-2": endpoint{},
826 "us-west-2-fips": endpoint{
827 Hostname: "codedeploy-fips.us-west-2.amazonaws.com",
828 CredentialScope: credentialScope{
829 Region: "us-west-2",
830 },
831 },
698 }, 832 },
699 }, 833 },
700 "codepipeline": service{ 834 "codepipeline": service{
@@ -742,6 +876,7 @@ var awsPartition = partition{
742 "ap-south-1": endpoint{}, 876 "ap-south-1": endpoint{},
743 "ap-southeast-1": endpoint{}, 877 "ap-southeast-1": endpoint{},
744 "ap-southeast-2": endpoint{}, 878 "ap-southeast-2": endpoint{},
879 "ca-central-1": endpoint{},
745 "eu-central-1": endpoint{}, 880 "eu-central-1": endpoint{},
746 "eu-west-1": endpoint{}, 881 "eu-west-1": endpoint{},
747 "eu-west-2": endpoint{}, 882 "eu-west-2": endpoint{},
@@ -758,6 +893,7 @@ var awsPartition = partition{
758 "ap-south-1": endpoint{}, 893 "ap-south-1": endpoint{},
759 "ap-southeast-1": endpoint{}, 894 "ap-southeast-1": endpoint{},
760 "ap-southeast-2": endpoint{}, 895 "ap-southeast-2": endpoint{},
896 "ca-central-1": endpoint{},
761 "eu-central-1": endpoint{}, 897 "eu-central-1": endpoint{},
762 "eu-west-1": endpoint{}, 898 "eu-west-1": endpoint{},
763 "eu-west-2": endpoint{}, 899 "eu-west-2": endpoint{},
@@ -787,6 +923,20 @@ var awsPartition = partition{
787 Protocols: []string{"https"}, 923 Protocols: []string{"https"},
788 }, 924 },
789 Endpoints: endpoints{ 925 Endpoints: endpoints{
926 "ap-southeast-1": endpoint{},
927 "ap-southeast-2": endpoint{},
928 "ca-central-1": endpoint{},
929 "eu-central-1": endpoint{},
930 "eu-west-1": endpoint{},
931 "eu-west-2": endpoint{},
932 "us-east-1": endpoint{},
933 "us-east-2": endpoint{},
934 "us-west-2": endpoint{},
935 },
936 },
937 "comprehendmedical": service{
938
939 Endpoints: endpoints{
790 "eu-west-1": endpoint{}, 940 "eu-west-1": endpoint{},
791 "us-east-1": endpoint{}, 941 "us-east-1": endpoint{},
792 "us-east-2": endpoint{}, 942 "us-east-2": endpoint{},
@@ -796,6 +946,7 @@ var awsPartition = partition{
796 "config": service{ 946 "config": service{
797 947
798 Endpoints: endpoints{ 948 Endpoints: endpoints{
949 "ap-east-1": endpoint{},
799 "ap-northeast-1": endpoint{}, 950 "ap-northeast-1": endpoint{},
800 "ap-northeast-2": endpoint{}, 951 "ap-northeast-2": endpoint{},
801 "ap-south-1": endpoint{}, 952 "ap-south-1": endpoint{},
@@ -803,6 +954,7 @@ var awsPartition = partition{
803 "ap-southeast-2": endpoint{}, 954 "ap-southeast-2": endpoint{},
804 "ca-central-1": endpoint{}, 955 "ca-central-1": endpoint{},
805 "eu-central-1": endpoint{}, 956 "eu-central-1": endpoint{},
957 "eu-north-1": endpoint{},
806 "eu-west-1": endpoint{}, 958 "eu-west-1": endpoint{},
807 "eu-west-2": endpoint{}, 959 "eu-west-2": endpoint{},
808 "eu-west-3": endpoint{}, 960 "eu-west-3": endpoint{},
@@ -829,6 +981,21 @@ var awsPartition = partition{
829 "us-west-2": endpoint{}, 981 "us-west-2": endpoint{},
830 }, 982 },
831 }, 983 },
984 "datasync": service{
985
986 Endpoints: endpoints{
987 "ap-northeast-1": endpoint{},
988 "ap-northeast-2": endpoint{},
989 "ap-southeast-1": endpoint{},
990 "ap-southeast-2": endpoint{},
991 "eu-central-1": endpoint{},
992 "eu-west-1": endpoint{},
993 "us-east-1": endpoint{},
994 "us-east-2": endpoint{},
995 "us-west-1": endpoint{},
996 "us-west-2": endpoint{},
997 },
998 },
832 "dax": service{ 999 "dax": service{
833 1000
834 Endpoints: endpoints{ 1001 Endpoints: endpoints{
@@ -836,6 +1003,7 @@ var awsPartition = partition{
836 "ap-south-1": endpoint{}, 1003 "ap-south-1": endpoint{},
837 "ap-southeast-1": endpoint{}, 1004 "ap-southeast-1": endpoint{},
838 "ap-southeast-2": endpoint{}, 1005 "ap-southeast-2": endpoint{},
1006 "eu-central-1": endpoint{},
839 "eu-west-1": endpoint{}, 1007 "eu-west-1": endpoint{},
840 "sa-east-1": endpoint{}, 1008 "sa-east-1": endpoint{},
841 "us-east-1": endpoint{}, 1009 "us-east-1": endpoint{},
@@ -860,6 +1028,7 @@ var awsPartition = partition{
860 "ap-southeast-2": endpoint{}, 1028 "ap-southeast-2": endpoint{},
861 "ca-central-1": endpoint{}, 1029 "ca-central-1": endpoint{},
862 "eu-central-1": endpoint{}, 1030 "eu-central-1": endpoint{},
1031 "eu-north-1": endpoint{},
863 "eu-west-1": endpoint{}, 1032 "eu-west-1": endpoint{},
864 "eu-west-2": endpoint{}, 1033 "eu-west-2": endpoint{},
865 "eu-west-3": endpoint{}, 1034 "eu-west-3": endpoint{},
@@ -879,6 +1048,7 @@ var awsPartition = partition{
879 "dms": service{ 1048 "dms": service{
880 1049
881 Endpoints: endpoints{ 1050 Endpoints: endpoints{
1051 "ap-east-1": endpoint{},
882 "ap-northeast-1": endpoint{}, 1052 "ap-northeast-1": endpoint{},
883 "ap-northeast-2": endpoint{}, 1053 "ap-northeast-2": endpoint{},
884 "ap-south-1": endpoint{}, 1054 "ap-south-1": endpoint{},
@@ -886,6 +1056,7 @@ var awsPartition = partition{
886 "ap-southeast-2": endpoint{}, 1056 "ap-southeast-2": endpoint{},
887 "ca-central-1": endpoint{}, 1057 "ca-central-1": endpoint{},
888 "eu-central-1": endpoint{}, 1058 "eu-central-1": endpoint{},
1059 "eu-north-1": endpoint{},
889 "eu-west-1": endpoint{}, 1060 "eu-west-1": endpoint{},
890 "eu-west-2": endpoint{}, 1061 "eu-west-2": endpoint{},
891 "eu-west-3": endpoint{}, 1062 "eu-west-3": endpoint{},
@@ -896,6 +1067,41 @@ var awsPartition = partition{
896 "us-west-2": endpoint{}, 1067 "us-west-2": endpoint{},
897 }, 1068 },
898 }, 1069 },
1070 "docdb": service{
1071
1072 Endpoints: endpoints{
1073 "eu-central-1": endpoint{
1074 Hostname: "rds.eu-central-1.amazonaws.com",
1075 CredentialScope: credentialScope{
1076 Region: "eu-central-1",
1077 },
1078 },
1079 "eu-west-1": endpoint{
1080 Hostname: "rds.eu-west-1.amazonaws.com",
1081 CredentialScope: credentialScope{
1082 Region: "eu-west-1",
1083 },
1084 },
1085 "us-east-1": endpoint{
1086 Hostname: "rds.us-east-1.amazonaws.com",
1087 CredentialScope: credentialScope{
1088 Region: "us-east-1",
1089 },
1090 },
1091 "us-east-2": endpoint{
1092 Hostname: "rds.us-east-2.amazonaws.com",
1093 CredentialScope: credentialScope{
1094 Region: "us-east-2",
1095 },
1096 },
1097 "us-west-2": endpoint{
1098 Hostname: "rds.us-west-2.amazonaws.com",
1099 CredentialScope: credentialScope{
1100 Region: "us-west-2",
1101 },
1102 },
1103 },
1104 },
899 "ds": service{ 1105 "ds": service{
900 1106
901 Endpoints: endpoints{ 1107 Endpoints: endpoints{
@@ -920,6 +1126,7 @@ var awsPartition = partition{
920 Protocols: []string{"http", "https"}, 1126 Protocols: []string{"http", "https"},
921 }, 1127 },
922 Endpoints: endpoints{ 1128 Endpoints: endpoints{
1129 "ap-east-1": endpoint{},
923 "ap-northeast-1": endpoint{}, 1130 "ap-northeast-1": endpoint{},
924 "ap-northeast-2": endpoint{}, 1131 "ap-northeast-2": endpoint{},
925 "ap-south-1": endpoint{}, 1132 "ap-south-1": endpoint{},
@@ -927,6 +1134,7 @@ var awsPartition = partition{
927 "ap-southeast-2": endpoint{}, 1134 "ap-southeast-2": endpoint{},
928 "ca-central-1": endpoint{}, 1135 "ca-central-1": endpoint{},
929 "eu-central-1": endpoint{}, 1136 "eu-central-1": endpoint{},
1137 "eu-north-1": endpoint{},
930 "eu-west-1": endpoint{}, 1138 "eu-west-1": endpoint{},
931 "eu-west-2": endpoint{}, 1139 "eu-west-2": endpoint{},
932 "eu-west-3": endpoint{}, 1140 "eu-west-3": endpoint{},
@@ -949,6 +1157,7 @@ var awsPartition = partition{
949 Protocols: []string{"http", "https"}, 1157 Protocols: []string{"http", "https"},
950 }, 1158 },
951 Endpoints: endpoints{ 1159 Endpoints: endpoints{
1160 "ap-east-1": endpoint{},
952 "ap-northeast-1": endpoint{}, 1161 "ap-northeast-1": endpoint{},
953 "ap-northeast-2": endpoint{}, 1162 "ap-northeast-2": endpoint{},
954 "ap-south-1": endpoint{}, 1163 "ap-south-1": endpoint{},
@@ -956,6 +1165,7 @@ var awsPartition = partition{
956 "ap-southeast-2": endpoint{}, 1165 "ap-southeast-2": endpoint{},
957 "ca-central-1": endpoint{}, 1166 "ca-central-1": endpoint{},
958 "eu-central-1": endpoint{}, 1167 "eu-central-1": endpoint{},
1168 "eu-north-1": endpoint{},
959 "eu-west-1": endpoint{}, 1169 "eu-west-1": endpoint{},
960 "eu-west-2": endpoint{}, 1170 "eu-west-2": endpoint{},
961 "eu-west-3": endpoint{}, 1171 "eu-west-3": endpoint{},
@@ -977,29 +1187,10 @@ var awsPartition = partition{
977 }, 1187 },
978 }, 1188 },
979 }, 1189 },
980 "ecr": service{
981
982 Endpoints: endpoints{
983 "ap-northeast-1": endpoint{},
984 "ap-northeast-2": endpoint{},
985 "ap-south-1": endpoint{},
986 "ap-southeast-1": endpoint{},
987 "ap-southeast-2": endpoint{},
988 "ca-central-1": endpoint{},
989 "eu-central-1": endpoint{},
990 "eu-west-1": endpoint{},
991 "eu-west-2": endpoint{},
992 "eu-west-3": endpoint{},
993 "sa-east-1": endpoint{},
994 "us-east-1": endpoint{},
995 "us-east-2": endpoint{},
996 "us-west-1": endpoint{},
997 "us-west-2": endpoint{},
998 },
999 },
1000 "ecs": service{ 1190 "ecs": service{
1001 1191
1002 Endpoints: endpoints{ 1192 Endpoints: endpoints{
1193 "ap-east-1": endpoint{},
1003 "ap-northeast-1": endpoint{}, 1194 "ap-northeast-1": endpoint{},
1004 "ap-northeast-2": endpoint{}, 1195 "ap-northeast-2": endpoint{},
1005 "ap-south-1": endpoint{}, 1196 "ap-south-1": endpoint{},
@@ -1007,6 +1198,7 @@ var awsPartition = partition{
1007 "ap-southeast-2": endpoint{}, 1198 "ap-southeast-2": endpoint{},
1008 "ca-central-1": endpoint{}, 1199 "ca-central-1": endpoint{},
1009 "eu-central-1": endpoint{}, 1200 "eu-central-1": endpoint{},
1201 "eu-north-1": endpoint{},
1010 "eu-west-1": endpoint{}, 1202 "eu-west-1": endpoint{},
1011 "eu-west-2": endpoint{}, 1203 "eu-west-2": endpoint{},
1012 "eu-west-3": endpoint{}, 1204 "eu-west-3": endpoint{},
@@ -1020,6 +1212,7 @@ var awsPartition = partition{
1020 "elasticache": service{ 1212 "elasticache": service{
1021 1213
1022 Endpoints: endpoints{ 1214 Endpoints: endpoints{
1215 "ap-east-1": endpoint{},
1023 "ap-northeast-1": endpoint{}, 1216 "ap-northeast-1": endpoint{},
1024 "ap-northeast-2": endpoint{}, 1217 "ap-northeast-2": endpoint{},
1025 "ap-south-1": endpoint{}, 1218 "ap-south-1": endpoint{},
@@ -1027,14 +1220,21 @@ var awsPartition = partition{
1027 "ap-southeast-2": endpoint{}, 1220 "ap-southeast-2": endpoint{},
1028 "ca-central-1": endpoint{}, 1221 "ca-central-1": endpoint{},
1029 "eu-central-1": endpoint{}, 1222 "eu-central-1": endpoint{},
1223 "eu-north-1": endpoint{},
1030 "eu-west-1": endpoint{}, 1224 "eu-west-1": endpoint{},
1031 "eu-west-2": endpoint{}, 1225 "eu-west-2": endpoint{},
1032 "eu-west-3": endpoint{}, 1226 "eu-west-3": endpoint{},
1033 "sa-east-1": endpoint{}, 1227 "fips": endpoint{
1034 "us-east-1": endpoint{}, 1228 Hostname: "elasticache-fips.us-west-1.amazonaws.com",
1035 "us-east-2": endpoint{}, 1229 CredentialScope: credentialScope{
1036 "us-west-1": endpoint{}, 1230 Region: "us-west-1",
1037 "us-west-2": endpoint{}, 1231 },
1232 },
1233 "sa-east-1": endpoint{},
1234 "us-east-1": endpoint{},
1235 "us-east-2": endpoint{},
1236 "us-west-1": endpoint{},
1237 "us-west-2": endpoint{},
1038 }, 1238 },
1039 }, 1239 },
1040 "elasticbeanstalk": service{ 1240 "elasticbeanstalk": service{
@@ -1047,6 +1247,7 @@ var awsPartition = partition{
1047 "ap-southeast-2": endpoint{}, 1247 "ap-southeast-2": endpoint{},
1048 "ca-central-1": endpoint{}, 1248 "ca-central-1": endpoint{},
1049 "eu-central-1": endpoint{}, 1249 "eu-central-1": endpoint{},
1250 "eu-north-1": endpoint{},
1050 "eu-west-1": endpoint{}, 1251 "eu-west-1": endpoint{},
1051 "eu-west-2": endpoint{}, 1252 "eu-west-2": endpoint{},
1052 "eu-west-3": endpoint{}, 1253 "eu-west-3": endpoint{},
@@ -1060,10 +1261,13 @@ var awsPartition = partition{
1060 "elasticfilesystem": service{ 1261 "elasticfilesystem": service{
1061 1262
1062 Endpoints: endpoints{ 1263 Endpoints: endpoints{
1264 "ap-northeast-1": endpoint{},
1063 "ap-northeast-2": endpoint{}, 1265 "ap-northeast-2": endpoint{},
1266 "ap-southeast-1": endpoint{},
1064 "ap-southeast-2": endpoint{}, 1267 "ap-southeast-2": endpoint{},
1065 "eu-central-1": endpoint{}, 1268 "eu-central-1": endpoint{},
1066 "eu-west-1": endpoint{}, 1269 "eu-west-1": endpoint{},
1270 "eu-west-2": endpoint{},
1067 "us-east-1": endpoint{}, 1271 "us-east-1": endpoint{},
1068 "us-east-2": endpoint{}, 1272 "us-east-2": endpoint{},
1069 "us-west-1": endpoint{}, 1273 "us-west-1": endpoint{},
@@ -1075,6 +1279,7 @@ var awsPartition = partition{
1075 Protocols: []string{"https"}, 1279 Protocols: []string{"https"},
1076 }, 1280 },
1077 Endpoints: endpoints{ 1281 Endpoints: endpoints{
1282 "ap-east-1": endpoint{},
1078 "ap-northeast-1": endpoint{}, 1283 "ap-northeast-1": endpoint{},
1079 "ap-northeast-2": endpoint{}, 1284 "ap-northeast-2": endpoint{},
1080 "ap-south-1": endpoint{}, 1285 "ap-south-1": endpoint{},
@@ -1082,6 +1287,7 @@ var awsPartition = partition{
1082 "ap-southeast-2": endpoint{}, 1287 "ap-southeast-2": endpoint{},
1083 "ca-central-1": endpoint{}, 1288 "ca-central-1": endpoint{},
1084 "eu-central-1": endpoint{}, 1289 "eu-central-1": endpoint{},
1290 "eu-north-1": endpoint{},
1085 "eu-west-1": endpoint{}, 1291 "eu-west-1": endpoint{},
1086 "eu-west-2": endpoint{}, 1292 "eu-west-2": endpoint{},
1087 "eu-west-3": endpoint{}, 1293 "eu-west-3": endpoint{},
@@ -1095,9 +1301,10 @@ var awsPartition = partition{
1095 "elasticmapreduce": service{ 1301 "elasticmapreduce": service{
1096 Defaults: endpoint{ 1302 Defaults: endpoint{
1097 SSLCommonName: "{region}.{service}.{dnsSuffix}", 1303 SSLCommonName: "{region}.{service}.{dnsSuffix}",
1098 Protocols: []string{"http", "https"}, 1304 Protocols: []string{"https"},
1099 }, 1305 },
1100 Endpoints: endpoints{ 1306 Endpoints: endpoints{
1307 "ap-east-1": endpoint{},
1101 "ap-northeast-1": endpoint{}, 1308 "ap-northeast-1": endpoint{},
1102 "ap-northeast-2": endpoint{}, 1309 "ap-northeast-2": endpoint{},
1103 "ap-south-1": endpoint{}, 1310 "ap-south-1": endpoint{},
@@ -1107,10 +1314,11 @@ var awsPartition = partition{
1107 "eu-central-1": endpoint{ 1314 "eu-central-1": endpoint{
1108 SSLCommonName: "{service}.{region}.{dnsSuffix}", 1315 SSLCommonName: "{service}.{region}.{dnsSuffix}",
1109 }, 1316 },
1110 "eu-west-1": endpoint{}, 1317 "eu-north-1": endpoint{},
1111 "eu-west-2": endpoint{}, 1318 "eu-west-1": endpoint{},
1112 "eu-west-3": endpoint{}, 1319 "eu-west-2": endpoint{},
1113 "sa-east-1": endpoint{}, 1320 "eu-west-3": endpoint{},
1321 "sa-east-1": endpoint{},
1114 "us-east-1": endpoint{ 1322 "us-east-1": endpoint{
1115 SSLCommonName: "{service}.{region}.{dnsSuffix}", 1323 SSLCommonName: "{service}.{region}.{dnsSuffix}",
1116 }, 1324 },
@@ -1135,9 +1343,10 @@ var awsPartition = partition{
1135 "email": service{ 1343 "email": service{
1136 1344
1137 Endpoints: endpoints{ 1345 Endpoints: endpoints{
1138 "eu-west-1": endpoint{}, 1346 "eu-central-1": endpoint{},
1139 "us-east-1": endpoint{}, 1347 "eu-west-1": endpoint{},
1140 "us-west-2": endpoint{}, 1348 "us-east-1": endpoint{},
1349 "us-west-2": endpoint{},
1141 }, 1350 },
1142 }, 1351 },
1143 "entitlement.marketplace": service{ 1352 "entitlement.marketplace": service{
@@ -1153,6 +1362,7 @@ var awsPartition = partition{
1153 "es": service{ 1362 "es": service{
1154 1363
1155 Endpoints: endpoints{ 1364 Endpoints: endpoints{
1365 "ap-east-1": endpoint{},
1156 "ap-northeast-1": endpoint{}, 1366 "ap-northeast-1": endpoint{},
1157 "ap-northeast-2": endpoint{}, 1367 "ap-northeast-2": endpoint{},
1158 "ap-south-1": endpoint{}, 1368 "ap-south-1": endpoint{},
@@ -1160,19 +1370,27 @@ var awsPartition = partition{
1160 "ap-southeast-2": endpoint{}, 1370 "ap-southeast-2": endpoint{},
1161 "ca-central-1": endpoint{}, 1371 "ca-central-1": endpoint{},
1162 "eu-central-1": endpoint{}, 1372 "eu-central-1": endpoint{},
1373 "eu-north-1": endpoint{},
1163 "eu-west-1": endpoint{}, 1374 "eu-west-1": endpoint{},
1164 "eu-west-2": endpoint{}, 1375 "eu-west-2": endpoint{},
1165 "eu-west-3": endpoint{}, 1376 "eu-west-3": endpoint{},
1166 "sa-east-1": endpoint{}, 1377 "fips": endpoint{
1167 "us-east-1": endpoint{}, 1378 Hostname: "es-fips.us-west-1.amazonaws.com",
1168 "us-east-2": endpoint{}, 1379 CredentialScope: credentialScope{
1169 "us-west-1": endpoint{}, 1380 Region: "us-west-1",
1170 "us-west-2": endpoint{}, 1381 },
1382 },
1383 "sa-east-1": endpoint{},
1384 "us-east-1": endpoint{},
1385 "us-east-2": endpoint{},
1386 "us-west-1": endpoint{},
1387 "us-west-2": endpoint{},
1171 }, 1388 },
1172 }, 1389 },
1173 "events": service{ 1390 "events": service{
1174 1391
1175 Endpoints: endpoints{ 1392 Endpoints: endpoints{
1393 "ap-east-1": endpoint{},
1176 "ap-northeast-1": endpoint{}, 1394 "ap-northeast-1": endpoint{},
1177 "ap-northeast-2": endpoint{}, 1395 "ap-northeast-2": endpoint{},
1178 "ap-south-1": endpoint{}, 1396 "ap-south-1": endpoint{},
@@ -1180,6 +1398,7 @@ var awsPartition = partition{
1180 "ap-southeast-2": endpoint{}, 1398 "ap-southeast-2": endpoint{},
1181 "ca-central-1": endpoint{}, 1399 "ca-central-1": endpoint{},
1182 "eu-central-1": endpoint{}, 1400 "eu-central-1": endpoint{},
1401 "eu-north-1": endpoint{},
1183 "eu-west-1": endpoint{}, 1402 "eu-west-1": endpoint{},
1184 "eu-west-2": endpoint{}, 1403 "eu-west-2": endpoint{},
1185 "eu-west-3": endpoint{}, 1404 "eu-west-3": endpoint{},
@@ -1195,11 +1414,15 @@ var awsPartition = partition{
1195 Endpoints: endpoints{ 1414 Endpoints: endpoints{
1196 "ap-northeast-1": endpoint{}, 1415 "ap-northeast-1": endpoint{},
1197 "ap-northeast-2": endpoint{}, 1416 "ap-northeast-2": endpoint{},
1417 "ap-south-1": endpoint{},
1198 "ap-southeast-1": endpoint{}, 1418 "ap-southeast-1": endpoint{},
1199 "ap-southeast-2": endpoint{}, 1419 "ap-southeast-2": endpoint{},
1200 "ca-central-1": endpoint{}, 1420 "ca-central-1": endpoint{},
1201 "eu-central-1": endpoint{}, 1421 "eu-central-1": endpoint{},
1202 "eu-west-1": endpoint{}, 1422 "eu-west-1": endpoint{},
1423 "eu-west-2": endpoint{},
1424 "eu-west-3": endpoint{},
1425 "sa-east-1": endpoint{},
1203 "us-east-1": endpoint{}, 1426 "us-east-1": endpoint{},
1204 "us-east-2": endpoint{}, 1427 "us-east-2": endpoint{},
1205 "us-west-1": endpoint{}, 1428 "us-west-1": endpoint{},
@@ -1211,9 +1434,24 @@ var awsPartition = partition{
1211 Protocols: []string{"https"}, 1434 Protocols: []string{"https"},
1212 }, 1435 },
1213 Endpoints: endpoints{ 1436 Endpoints: endpoints{
1214 "eu-west-1": endpoint{}, 1437 "ap-northeast-1": endpoint{},
1215 "us-east-1": endpoint{}, 1438 "ap-southeast-2": endpoint{},
1216 "us-west-2": endpoint{}, 1439 "eu-central-1": endpoint{},
1440 "eu-west-1": endpoint{},
1441 "us-east-1": endpoint{},
1442 "us-east-2": endpoint{},
1443 "us-west-2": endpoint{},
1444 },
1445 },
1446 "fsx": service{
1447
1448 Endpoints: endpoints{
1449 "ap-northeast-1": endpoint{},
1450 "ap-southeast-2": endpoint{},
1451 "eu-west-1": endpoint{},
1452 "us-east-1": endpoint{},
1453 "us-east-2": endpoint{},
1454 "us-west-2": endpoint{},
1217 }, 1455 },
1218 }, 1456 },
1219 "gamelift": service{ 1457 "gamelift": service{
@@ -1240,6 +1478,7 @@ var awsPartition = partition{
1240 Protocols: []string{"http", "https"}, 1478 Protocols: []string{"http", "https"},
1241 }, 1479 },
1242 Endpoints: endpoints{ 1480 Endpoints: endpoints{
1481 "ap-east-1": endpoint{},
1243 "ap-northeast-1": endpoint{}, 1482 "ap-northeast-1": endpoint{},
1244 "ap-northeast-2": endpoint{}, 1483 "ap-northeast-2": endpoint{},
1245 "ap-south-1": endpoint{}, 1484 "ap-south-1": endpoint{},
@@ -1247,9 +1486,11 @@ var awsPartition = partition{
1247 "ap-southeast-2": endpoint{}, 1486 "ap-southeast-2": endpoint{},
1248 "ca-central-1": endpoint{}, 1487 "ca-central-1": endpoint{},
1249 "eu-central-1": endpoint{}, 1488 "eu-central-1": endpoint{},
1489 "eu-north-1": endpoint{},
1250 "eu-west-1": endpoint{}, 1490 "eu-west-1": endpoint{},
1251 "eu-west-2": endpoint{}, 1491 "eu-west-2": endpoint{},
1252 "eu-west-3": endpoint{}, 1492 "eu-west-3": endpoint{},
1493 "sa-east-1": endpoint{},
1253 "us-east-1": endpoint{}, 1494 "us-east-1": endpoint{},
1254 "us-east-2": endpoint{}, 1495 "us-east-2": endpoint{},
1255 "us-west-1": endpoint{}, 1496 "us-west-1": endpoint{},
@@ -1264,11 +1505,14 @@ var awsPartition = partition{
1264 "ap-south-1": endpoint{}, 1505 "ap-south-1": endpoint{},
1265 "ap-southeast-1": endpoint{}, 1506 "ap-southeast-1": endpoint{},
1266 "ap-southeast-2": endpoint{}, 1507 "ap-southeast-2": endpoint{},
1508 "ca-central-1": endpoint{},
1267 "eu-central-1": endpoint{}, 1509 "eu-central-1": endpoint{},
1268 "eu-west-1": endpoint{}, 1510 "eu-west-1": endpoint{},
1269 "eu-west-2": endpoint{}, 1511 "eu-west-2": endpoint{},
1512 "eu-west-3": endpoint{},
1270 "us-east-1": endpoint{}, 1513 "us-east-1": endpoint{},
1271 "us-east-2": endpoint{}, 1514 "us-east-2": endpoint{},
1515 "us-west-1": endpoint{},
1272 "us-west-2": endpoint{}, 1516 "us-west-2": endpoint{},
1273 }, 1517 },
1274 }, 1518 },
@@ -1281,6 +1525,7 @@ var awsPartition = partition{
1281 "ap-northeast-1": endpoint{}, 1525 "ap-northeast-1": endpoint{},
1282 "ap-southeast-2": endpoint{}, 1526 "ap-southeast-2": endpoint{},
1283 "eu-central-1": endpoint{}, 1527 "eu-central-1": endpoint{},
1528 "eu-west-1": endpoint{},
1284 "us-east-1": endpoint{}, 1529 "us-east-1": endpoint{},
1285 "us-west-2": endpoint{}, 1530 "us-west-2": endpoint{},
1286 }, 1531 },
@@ -1377,9 +1622,21 @@ var awsPartition = partition{
1377 "us-west-2": endpoint{}, 1622 "us-west-2": endpoint{},
1378 }, 1623 },
1379 }, 1624 },
1625 "iotanalytics": service{
1626
1627 Endpoints: endpoints{
1628 "ap-northeast-1": endpoint{},
1629 "eu-central-1": endpoint{},
1630 "eu-west-1": endpoint{},
1631 "us-east-1": endpoint{},
1632 "us-east-2": endpoint{},
1633 "us-west-2": endpoint{},
1634 },
1635 },
1380 "kinesis": service{ 1636 "kinesis": service{
1381 1637
1382 Endpoints: endpoints{ 1638 Endpoints: endpoints{
1639 "ap-east-1": endpoint{},
1383 "ap-northeast-1": endpoint{}, 1640 "ap-northeast-1": endpoint{},
1384 "ap-northeast-2": endpoint{}, 1641 "ap-northeast-2": endpoint{},
1385 "ap-south-1": endpoint{}, 1642 "ap-south-1": endpoint{},
@@ -1387,6 +1644,7 @@ var awsPartition = partition{
1387 "ap-southeast-2": endpoint{}, 1644 "ap-southeast-2": endpoint{},
1388 "ca-central-1": endpoint{}, 1645 "ca-central-1": endpoint{},
1389 "eu-central-1": endpoint{}, 1646 "eu-central-1": endpoint{},
1647 "eu-north-1": endpoint{},
1390 "eu-west-1": endpoint{}, 1648 "eu-west-1": endpoint{},
1391 "eu-west-2": endpoint{}, 1649 "eu-west-2": endpoint{},
1392 "eu-west-3": endpoint{}, 1650 "eu-west-3": endpoint{},
@@ -1400,15 +1658,18 @@ var awsPartition = partition{
1400 "kinesisanalytics": service{ 1658 "kinesisanalytics": service{
1401 1659
1402 Endpoints: endpoints{ 1660 Endpoints: endpoints{
1403 "eu-west-1": endpoint{}, 1661 "eu-central-1": endpoint{},
1404 "us-east-1": endpoint{}, 1662 "eu-west-1": endpoint{},
1405 "us-west-2": endpoint{}, 1663 "us-east-1": endpoint{},
1664 "us-east-2": endpoint{},
1665 "us-west-2": endpoint{},
1406 }, 1666 },
1407 }, 1667 },
1408 "kinesisvideo": service{ 1668 "kinesisvideo": service{
1409 1669
1410 Endpoints: endpoints{ 1670 Endpoints: endpoints{
1411 "ap-northeast-1": endpoint{}, 1671 "ap-northeast-1": endpoint{},
1672 "ap-southeast-2": endpoint{},
1412 "eu-central-1": endpoint{}, 1673 "eu-central-1": endpoint{},
1413 "eu-west-1": endpoint{}, 1674 "eu-west-1": endpoint{},
1414 "us-east-1": endpoint{}, 1675 "us-east-1": endpoint{},
@@ -1418,6 +1679,13 @@ var awsPartition = partition{
1418 "kms": service{ 1679 "kms": service{
1419 1680
1420 Endpoints: endpoints{ 1681 Endpoints: endpoints{
1682 "ProdFips": endpoint{
1683 Hostname: "kms-fips.ca-central-1.amazonaws.com",
1684 CredentialScope: credentialScope{
1685 Region: "ca-central-1",
1686 },
1687 },
1688 "ap-east-1": endpoint{},
1421 "ap-northeast-1": endpoint{}, 1689 "ap-northeast-1": endpoint{},
1422 "ap-northeast-2": endpoint{}, 1690 "ap-northeast-2": endpoint{},
1423 "ap-south-1": endpoint{}, 1691 "ap-south-1": endpoint{},
@@ -1425,6 +1693,7 @@ var awsPartition = partition{
1425 "ap-southeast-2": endpoint{}, 1693 "ap-southeast-2": endpoint{},
1426 "ca-central-1": endpoint{}, 1694 "ca-central-1": endpoint{},
1427 "eu-central-1": endpoint{}, 1695 "eu-central-1": endpoint{},
1696 "eu-north-1": endpoint{},
1428 "eu-west-1": endpoint{}, 1697 "eu-west-1": endpoint{},
1429 "eu-west-2": endpoint{}, 1698 "eu-west-2": endpoint{},
1430 "eu-west-3": endpoint{}, 1699 "eu-west-3": endpoint{},
@@ -1438,6 +1707,7 @@ var awsPartition = partition{
1438 "lambda": service{ 1707 "lambda": service{
1439 1708
1440 Endpoints: endpoints{ 1709 Endpoints: endpoints{
1710 "ap-east-1": endpoint{},
1441 "ap-northeast-1": endpoint{}, 1711 "ap-northeast-1": endpoint{},
1442 "ap-northeast-2": endpoint{}, 1712 "ap-northeast-2": endpoint{},
1443 "ap-south-1": endpoint{}, 1713 "ap-south-1": endpoint{},
@@ -1445,6 +1715,7 @@ var awsPartition = partition{
1445 "ap-southeast-2": endpoint{}, 1715 "ap-southeast-2": endpoint{},
1446 "ca-central-1": endpoint{}, 1716 "ca-central-1": endpoint{},
1447 "eu-central-1": endpoint{}, 1717 "eu-central-1": endpoint{},
1718 "eu-north-1": endpoint{},
1448 "eu-west-1": endpoint{}, 1719 "eu-west-1": endpoint{},
1449 "eu-west-2": endpoint{}, 1720 "eu-west-2": endpoint{},
1450 "eu-west-3": endpoint{}, 1721 "eu-west-3": endpoint{},
@@ -1455,6 +1726,22 @@ var awsPartition = partition{
1455 "us-west-2": endpoint{}, 1726 "us-west-2": endpoint{},
1456 }, 1727 },
1457 }, 1728 },
1729 "license-manager": service{
1730
1731 Endpoints: endpoints{
1732 "ap-northeast-1": endpoint{},
1733 "ap-northeast-2": endpoint{},
1734 "ap-south-1": endpoint{},
1735 "ap-southeast-1": endpoint{},
1736 "ap-southeast-2": endpoint{},
1737 "eu-central-1": endpoint{},
1738 "eu-west-1": endpoint{},
1739 "eu-west-2": endpoint{},
1740 "us-east-1": endpoint{},
1741 "us-east-2": endpoint{},
1742 "us-west-2": endpoint{},
1743 },
1744 },
1458 "lightsail": service{ 1745 "lightsail": service{
1459 1746
1460 Endpoints: endpoints{ 1747 Endpoints: endpoints{
@@ -1476,6 +1763,7 @@ var awsPartition = partition{
1476 "logs": service{ 1763 "logs": service{
1477 1764
1478 Endpoints: endpoints{ 1765 Endpoints: endpoints{
1766 "ap-east-1": endpoint{},
1479 "ap-northeast-1": endpoint{}, 1767 "ap-northeast-1": endpoint{},
1480 "ap-northeast-2": endpoint{}, 1768 "ap-northeast-2": endpoint{},
1481 "ap-south-1": endpoint{}, 1769 "ap-south-1": endpoint{},
@@ -1483,6 +1771,7 @@ var awsPartition = partition{
1483 "ap-southeast-2": endpoint{}, 1771 "ap-southeast-2": endpoint{},
1484 "ca-central-1": endpoint{}, 1772 "ca-central-1": endpoint{},
1485 "eu-central-1": endpoint{}, 1773 "eu-central-1": endpoint{},
1774 "eu-north-1": endpoint{},
1486 "eu-west-1": endpoint{}, 1775 "eu-west-1": endpoint{},
1487 "eu-west-2": endpoint{}, 1776 "eu-west-2": endpoint{},
1488 "eu-west-3": endpoint{}, 1777 "eu-west-3": endpoint{},
@@ -1506,6 +1795,25 @@ var awsPartition = partition{
1506 "us-east-1": endpoint{}, 1795 "us-east-1": endpoint{},
1507 }, 1796 },
1508 }, 1797 },
1798 "mediaconnect": service{
1799
1800 Endpoints: endpoints{
1801 "ap-northeast-1": endpoint{},
1802 "ap-northeast-2": endpoint{},
1803 "ap-south-1": endpoint{},
1804 "ap-southeast-1": endpoint{},
1805 "ap-southeast-2": endpoint{},
1806 "eu-central-1": endpoint{},
1807 "eu-west-1": endpoint{},
1808 "eu-west-2": endpoint{},
1809 "eu-west-3": endpoint{},
1810 "sa-east-1": endpoint{},
1811 "us-east-1": endpoint{},
1812 "us-east-2": endpoint{},
1813 "us-west-1": endpoint{},
1814 "us-west-2": endpoint{},
1815 },
1816 },
1509 "mediaconvert": service{ 1817 "mediaconvert": service{
1510 1818
1511 Endpoints: endpoints{ 1819 Endpoints: endpoints{
@@ -1518,6 +1826,7 @@ var awsPartition = partition{
1518 "eu-central-1": endpoint{}, 1826 "eu-central-1": endpoint{},
1519 "eu-west-1": endpoint{}, 1827 "eu-west-1": endpoint{},
1520 "eu-west-2": endpoint{}, 1828 "eu-west-2": endpoint{},
1829 "eu-west-3": endpoint{},
1521 "sa-east-1": endpoint{}, 1830 "sa-east-1": endpoint{},
1522 "us-east-1": endpoint{}, 1831 "us-east-1": endpoint{},
1523 "us-east-2": endpoint{}, 1832 "us-east-2": endpoint{},
@@ -1530,6 +1839,7 @@ var awsPartition = partition{
1530 Endpoints: endpoints{ 1839 Endpoints: endpoints{
1531 "ap-northeast-1": endpoint{}, 1840 "ap-northeast-1": endpoint{},
1532 "ap-northeast-2": endpoint{}, 1841 "ap-northeast-2": endpoint{},
1842 "ap-south-1": endpoint{},
1533 "ap-southeast-1": endpoint{}, 1843 "ap-southeast-1": endpoint{},
1534 "ap-southeast-2": endpoint{}, 1844 "ap-southeast-2": endpoint{},
1535 "eu-central-1": endpoint{}, 1845 "eu-central-1": endpoint{},
@@ -1544,6 +1854,7 @@ var awsPartition = partition{
1544 Endpoints: endpoints{ 1854 Endpoints: endpoints{
1545 "ap-northeast-1": endpoint{}, 1855 "ap-northeast-1": endpoint{},
1546 "ap-northeast-2": endpoint{}, 1856 "ap-northeast-2": endpoint{},
1857 "ap-south-1": endpoint{},
1547 "ap-southeast-1": endpoint{}, 1858 "ap-southeast-1": endpoint{},
1548 "ap-southeast-2": endpoint{}, 1859 "ap-southeast-2": endpoint{},
1549 "eu-central-1": endpoint{}, 1860 "eu-central-1": endpoint{},
@@ -1551,6 +1862,7 @@ var awsPartition = partition{
1551 "eu-west-3": endpoint{}, 1862 "eu-west-3": endpoint{},
1552 "sa-east-1": endpoint{}, 1863 "sa-east-1": endpoint{},
1553 "us-east-1": endpoint{}, 1864 "us-east-1": endpoint{},
1865 "us-west-1": endpoint{},
1554 "us-west-2": endpoint{}, 1866 "us-west-2": endpoint{},
1555 }, 1867 },
1556 }, 1868 },
@@ -1558,6 +1870,7 @@ var awsPartition = partition{
1558 1870
1559 Endpoints: endpoints{ 1871 Endpoints: endpoints{
1560 "ap-northeast-1": endpoint{}, 1872 "ap-northeast-1": endpoint{},
1873 "ap-northeast-2": endpoint{},
1561 "ap-southeast-2": endpoint{}, 1874 "ap-southeast-2": endpoint{},
1562 "eu-central-1": endpoint{}, 1875 "eu-central-1": endpoint{},
1563 "eu-west-1": endpoint{}, 1876 "eu-west-1": endpoint{},
@@ -1572,6 +1885,7 @@ var awsPartition = partition{
1572 }, 1885 },
1573 }, 1886 },
1574 Endpoints: endpoints{ 1887 Endpoints: endpoints{
1888 "ap-east-1": endpoint{},
1575 "ap-northeast-1": endpoint{}, 1889 "ap-northeast-1": endpoint{},
1576 "ap-northeast-2": endpoint{}, 1890 "ap-northeast-2": endpoint{},
1577 "ap-south-1": endpoint{}, 1891 "ap-south-1": endpoint{},
@@ -1579,6 +1893,7 @@ var awsPartition = partition{
1579 "ap-southeast-2": endpoint{}, 1893 "ap-southeast-2": endpoint{},
1580 "ca-central-1": endpoint{}, 1894 "ca-central-1": endpoint{},
1581 "eu-central-1": endpoint{}, 1895 "eu-central-1": endpoint{},
1896 "eu-north-1": endpoint{},
1582 "eu-west-1": endpoint{}, 1897 "eu-west-1": endpoint{},
1583 "eu-west-2": endpoint{}, 1898 "eu-west-2": endpoint{},
1584 "eu-west-3": endpoint{}, 1899 "eu-west-3": endpoint{},
@@ -1618,6 +1933,7 @@ var awsPartition = partition{
1618 Protocols: []string{"http", "https"}, 1933 Protocols: []string{"http", "https"},
1619 }, 1934 },
1620 Endpoints: endpoints{ 1935 Endpoints: endpoints{
1936 "ap-east-1": endpoint{},
1621 "ap-northeast-1": endpoint{}, 1937 "ap-northeast-1": endpoint{},
1622 "ap-northeast-2": endpoint{}, 1938 "ap-northeast-2": endpoint{},
1623 "ap-south-1": endpoint{}, 1939 "ap-south-1": endpoint{},
@@ -1625,6 +1941,7 @@ var awsPartition = partition{
1625 "ap-southeast-2": endpoint{}, 1941 "ap-southeast-2": endpoint{},
1626 "ca-central-1": endpoint{}, 1942 "ca-central-1": endpoint{},
1627 "eu-central-1": endpoint{}, 1943 "eu-central-1": endpoint{},
1944 "eu-north-1": endpoint{},
1628 "eu-west-1": endpoint{}, 1945 "eu-west-1": endpoint{},
1629 "eu-west-2": endpoint{}, 1946 "eu-west-2": endpoint{},
1630 "eu-west-3": endpoint{}, 1947 "eu-west-3": endpoint{},
@@ -1635,6 +1952,22 @@ var awsPartition = partition{
1635 "us-west-2": endpoint{}, 1952 "us-west-2": endpoint{},
1636 }, 1953 },
1637 }, 1954 },
1955 "mq": service{
1956
1957 Endpoints: endpoints{
1958 "ap-northeast-1": endpoint{},
1959 "ap-northeast-2": endpoint{},
1960 "ap-southeast-1": endpoint{},
1961 "ap-southeast-2": endpoint{},
1962 "eu-central-1": endpoint{},
1963 "eu-west-1": endpoint{},
1964 "eu-west-2": endpoint{},
1965 "us-east-1": endpoint{},
1966 "us-east-2": endpoint{},
1967 "us-west-1": endpoint{},
1968 "us-west-2": endpoint{},
1969 },
1970 },
1638 "mturk-requester": service{ 1971 "mturk-requester": service{
1639 IsRegionalized: boxedFalse, 1972 IsRegionalized: boxedFalse,
1640 1973
@@ -1648,12 +1981,48 @@ var awsPartition = partition{
1648 "neptune": service{ 1981 "neptune": service{
1649 1982
1650 Endpoints: endpoints{ 1983 Endpoints: endpoints{
1984 "ap-northeast-1": endpoint{
1985 Hostname: "rds.ap-northeast-1.amazonaws.com",
1986 CredentialScope: credentialScope{
1987 Region: "ap-northeast-1",
1988 },
1989 },
1990 "ap-south-1": endpoint{
1991 Hostname: "rds.ap-south-1.amazonaws.com",
1992 CredentialScope: credentialScope{
1993 Region: "ap-south-1",
1994 },
1995 },
1996 "ap-southeast-1": endpoint{
1997 Hostname: "rds.ap-southeast-1.amazonaws.com",
1998 CredentialScope: credentialScope{
1999 Region: "ap-southeast-1",
2000 },
2001 },
2002 "ap-southeast-2": endpoint{
2003 Hostname: "rds.ap-southeast-2.amazonaws.com",
2004 CredentialScope: credentialScope{
2005 Region: "ap-southeast-2",
2006 },
2007 },
2008 "eu-central-1": endpoint{
2009 Hostname: "rds.eu-central-1.amazonaws.com",
2010 CredentialScope: credentialScope{
2011 Region: "eu-central-1",
2012 },
2013 },
1651 "eu-west-1": endpoint{ 2014 "eu-west-1": endpoint{
1652 Hostname: "rds.eu-west-1.amazonaws.com", 2015 Hostname: "rds.eu-west-1.amazonaws.com",
1653 CredentialScope: credentialScope{ 2016 CredentialScope: credentialScope{
1654 Region: "eu-west-1", 2017 Region: "eu-west-1",
1655 }, 2018 },
1656 }, 2019 },
2020 "eu-west-2": endpoint{
2021 Hostname: "rds.eu-west-2.amazonaws.com",
2022 CredentialScope: credentialScope{
2023 Region: "eu-west-2",
2024 },
2025 },
1657 "us-east-1": endpoint{ 2026 "us-east-1": endpoint{
1658 Hostname: "rds.us-east-1.amazonaws.com", 2027 Hostname: "rds.us-east-1.amazonaws.com",
1659 CredentialScope: credentialScope{ 2028 CredentialScope: credentialScope{
@@ -1728,7 +2097,12 @@ var awsPartition = partition{
1728 }, 2097 },
1729 }, 2098 },
1730 Endpoints: endpoints{ 2099 Endpoints: endpoints{
1731 "us-east-1": endpoint{}, 2100 "ap-south-1": endpoint{},
2101 "ap-southeast-2": endpoint{},
2102 "eu-central-1": endpoint{},
2103 "eu-west-1": endpoint{},
2104 "us-east-1": endpoint{},
2105 "us-west-2": endpoint{},
1732 }, 2106 },
1733 }, 2107 },
1734 "polly": service{ 2108 "polly": service{
@@ -1741,6 +2115,7 @@ var awsPartition = partition{
1741 "ap-southeast-2": endpoint{}, 2115 "ap-southeast-2": endpoint{},
1742 "ca-central-1": endpoint{}, 2116 "ca-central-1": endpoint{},
1743 "eu-central-1": endpoint{}, 2117 "eu-central-1": endpoint{},
2118 "eu-north-1": endpoint{},
1744 "eu-west-1": endpoint{}, 2119 "eu-west-1": endpoint{},
1745 "eu-west-2": endpoint{}, 2120 "eu-west-2": endpoint{},
1746 "eu-west-3": endpoint{}, 2121 "eu-west-3": endpoint{},
@@ -1754,6 +2129,7 @@ var awsPartition = partition{
1754 "rds": service{ 2129 "rds": service{
1755 2130
1756 Endpoints: endpoints{ 2131 Endpoints: endpoints{
2132 "ap-east-1": endpoint{},
1757 "ap-northeast-1": endpoint{}, 2133 "ap-northeast-1": endpoint{},
1758 "ap-northeast-2": endpoint{}, 2134 "ap-northeast-2": endpoint{},
1759 "ap-south-1": endpoint{}, 2135 "ap-south-1": endpoint{},
@@ -1761,6 +2137,7 @@ var awsPartition = partition{
1761 "ap-southeast-2": endpoint{}, 2137 "ap-southeast-2": endpoint{},
1762 "ca-central-1": endpoint{}, 2138 "ca-central-1": endpoint{},
1763 "eu-central-1": endpoint{}, 2139 "eu-central-1": endpoint{},
2140 "eu-north-1": endpoint{},
1764 "eu-west-1": endpoint{}, 2141 "eu-west-1": endpoint{},
1765 "eu-west-2": endpoint{}, 2142 "eu-west-2": endpoint{},
1766 "eu-west-3": endpoint{}, 2143 "eu-west-3": endpoint{},
@@ -1776,6 +2153,7 @@ var awsPartition = partition{
1776 "redshift": service{ 2153 "redshift": service{
1777 2154
1778 Endpoints: endpoints{ 2155 Endpoints: endpoints{
2156 "ap-east-1": endpoint{},
1779 "ap-northeast-1": endpoint{}, 2157 "ap-northeast-1": endpoint{},
1780 "ap-northeast-2": endpoint{}, 2158 "ap-northeast-2": endpoint{},
1781 "ap-south-1": endpoint{}, 2159 "ap-south-1": endpoint{},
@@ -1783,6 +2161,7 @@ var awsPartition = partition{
1783 "ap-southeast-2": endpoint{}, 2161 "ap-southeast-2": endpoint{},
1784 "ca-central-1": endpoint{}, 2162 "ca-central-1": endpoint{},
1785 "eu-central-1": endpoint{}, 2163 "eu-central-1": endpoint{},
2164 "eu-north-1": endpoint{},
1786 "eu-west-1": endpoint{}, 2165 "eu-west-1": endpoint{},
1787 "eu-west-2": endpoint{}, 2166 "eu-west-2": endpoint{},
1788 "eu-west-3": endpoint{}, 2167 "eu-west-3": endpoint{},
@@ -1797,6 +2176,8 @@ var awsPartition = partition{
1797 2176
1798 Endpoints: endpoints{ 2177 Endpoints: endpoints{
1799 "ap-northeast-1": endpoint{}, 2178 "ap-northeast-1": endpoint{},
2179 "ap-northeast-2": endpoint{},
2180 "ap-south-1": endpoint{},
1800 "ap-southeast-2": endpoint{}, 2181 "ap-southeast-2": endpoint{},
1801 "eu-west-1": endpoint{}, 2182 "eu-west-1": endpoint{},
1802 "us-east-1": endpoint{}, 2183 "us-east-1": endpoint{},
@@ -1807,6 +2188,7 @@ var awsPartition = partition{
1807 "resource-groups": service{ 2188 "resource-groups": service{
1808 2189
1809 Endpoints: endpoints{ 2190 Endpoints: endpoints{
2191 "ap-east-1": endpoint{},
1810 "ap-northeast-1": endpoint{}, 2192 "ap-northeast-1": endpoint{},
1811 "ap-northeast-2": endpoint{}, 2193 "ap-northeast-2": endpoint{},
1812 "ap-south-1": endpoint{}, 2194 "ap-south-1": endpoint{},
@@ -1814,8 +2196,10 @@ var awsPartition = partition{
1814 "ap-southeast-2": endpoint{}, 2196 "ap-southeast-2": endpoint{},
1815 "ca-central-1": endpoint{}, 2197 "ca-central-1": endpoint{},
1816 "eu-central-1": endpoint{}, 2198 "eu-central-1": endpoint{},
2199 "eu-north-1": endpoint{},
1817 "eu-west-1": endpoint{}, 2200 "eu-west-1": endpoint{},
1818 "eu-west-2": endpoint{}, 2201 "eu-west-2": endpoint{},
2202 "eu-west-3": endpoint{},
1819 "sa-east-1": endpoint{}, 2203 "sa-east-1": endpoint{},
1820 "us-east-1": endpoint{}, 2204 "us-east-1": endpoint{},
1821 "us-east-2": endpoint{}, 2205 "us-east-2": endpoint{},
@@ -1823,6 +2207,15 @@ var awsPartition = partition{
1823 "us-west-2": endpoint{}, 2207 "us-west-2": endpoint{},
1824 }, 2208 },
1825 }, 2209 },
2210 "robomaker": service{
2211
2212 Endpoints: endpoints{
2213 "ap-northeast-1": endpoint{},
2214 "eu-west-1": endpoint{},
2215 "us-east-1": endpoint{},
2216 "us-west-2": endpoint{},
2217 },
2218 },
1826 "route53": service{ 2219 "route53": service{
1827 PartitionEndpoint: "aws-global", 2220 PartitionEndpoint: "aws-global",
1828 IsRegionalized: boxedFalse, 2221 IsRegionalized: boxedFalse,
@@ -1842,6 +2235,27 @@ var awsPartition = partition{
1842 "us-east-1": endpoint{}, 2235 "us-east-1": endpoint{},
1843 }, 2236 },
1844 }, 2237 },
2238 "route53resolver": service{
2239 Defaults: endpoint{
2240 Protocols: []string{"https"},
2241 },
2242 Endpoints: endpoints{
2243 "ap-northeast-1": endpoint{},
2244 "ap-northeast-2": endpoint{},
2245 "ap-south-1": endpoint{},
2246 "ap-southeast-1": endpoint{},
2247 "ap-southeast-2": endpoint{},
2248 "ca-central-1": endpoint{},
2249 "eu-central-1": endpoint{},
2250 "eu-west-1": endpoint{},
2251 "eu-west-2": endpoint{},
2252 "eu-west-3": endpoint{},
2253 "us-east-1": endpoint{},
2254 "us-east-2": endpoint{},
2255 "us-west-1": endpoint{},
2256 "us-west-2": endpoint{},
2257 },
2258 },
1845 "runtime.lex": service{ 2259 "runtime.lex": service{
1846 Defaults: endpoint{ 2260 Defaults: endpoint{
1847 CredentialScope: credentialScope{ 2261 CredentialScope: credentialScope{
@@ -1858,9 +2272,17 @@ var awsPartition = partition{
1858 2272
1859 Endpoints: endpoints{ 2273 Endpoints: endpoints{
1860 "ap-northeast-1": endpoint{}, 2274 "ap-northeast-1": endpoint{},
2275 "ap-northeast-2": endpoint{},
2276 "ap-south-1": endpoint{},
2277 "ap-southeast-1": endpoint{},
2278 "ap-southeast-2": endpoint{},
2279 "ca-central-1": endpoint{},
2280 "eu-central-1": endpoint{},
1861 "eu-west-1": endpoint{}, 2281 "eu-west-1": endpoint{},
2282 "eu-west-2": endpoint{},
1862 "us-east-1": endpoint{}, 2283 "us-east-1": endpoint{},
1863 "us-east-2": endpoint{}, 2284 "us-east-2": endpoint{},
2285 "us-west-1": endpoint{},
1864 "us-west-2": endpoint{}, 2286 "us-west-2": endpoint{},
1865 }, 2287 },
1866 }, 2288 },
@@ -1875,6 +2297,7 @@ var awsPartition = partition{
1875 DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", 2297 DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}",
1876 }, 2298 },
1877 Endpoints: endpoints{ 2299 Endpoints: endpoints{
2300 "ap-east-1": endpoint{},
1878 "ap-northeast-1": endpoint{ 2301 "ap-northeast-1": endpoint{
1879 Hostname: "s3.ap-northeast-1.amazonaws.com", 2302 Hostname: "s3.ap-northeast-1.amazonaws.com",
1880 SignatureVersions: []string{"s3", "s3v4"}, 2303 SignatureVersions: []string{"s3", "s3v4"},
@@ -1891,6 +2314,7 @@ var awsPartition = partition{
1891 }, 2314 },
1892 "ca-central-1": endpoint{}, 2315 "ca-central-1": endpoint{},
1893 "eu-central-1": endpoint{}, 2316 "eu-central-1": endpoint{},
2317 "eu-north-1": endpoint{},
1894 "eu-west-1": endpoint{ 2318 "eu-west-1": endpoint{
1895 Hostname: "s3.eu-west-1.amazonaws.com", 2319 Hostname: "s3.eu-west-1.amazonaws.com",
1896 SignatureVersions: []string{"s3", "s3v4"}, 2320 SignatureVersions: []string{"s3", "s3v4"},
@@ -1923,15 +2347,155 @@ var awsPartition = partition{
1923 }, 2347 },
1924 }, 2348 },
1925 }, 2349 },
1926 "sagemaker": service{ 2350 "s3-control": service{
2351 Defaults: endpoint{
2352 Protocols: []string{"https"},
2353 SignatureVersions: []string{"s3v4"},
1927 2354
2355 HasDualStack: boxedTrue,
2356 DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}",
2357 },
1928 Endpoints: endpoints{ 2358 Endpoints: endpoints{
1929 "ap-northeast-1": endpoint{}, 2359 "ap-northeast-1": endpoint{
1930 "ap-northeast-2": endpoint{}, 2360 Hostname: "s3-control.ap-northeast-1.amazonaws.com",
1931 "eu-west-1": endpoint{}, 2361 SignatureVersions: []string{"s3v4"},
1932 "us-east-1": endpoint{}, 2362 CredentialScope: credentialScope{
1933 "us-east-2": endpoint{}, 2363 Region: "ap-northeast-1",
1934 "us-west-2": endpoint{}, 2364 },
2365 },
2366 "ap-northeast-2": endpoint{
2367 Hostname: "s3-control.ap-northeast-2.amazonaws.com",
2368 SignatureVersions: []string{"s3v4"},
2369 CredentialScope: credentialScope{
2370 Region: "ap-northeast-2",
2371 },
2372 },
2373 "ap-south-1": endpoint{
2374 Hostname: "s3-control.ap-south-1.amazonaws.com",
2375 SignatureVersions: []string{"s3v4"},
2376 CredentialScope: credentialScope{
2377 Region: "ap-south-1",
2378 },
2379 },
2380 "ap-southeast-1": endpoint{
2381 Hostname: "s3-control.ap-southeast-1.amazonaws.com",
2382 SignatureVersions: []string{"s3v4"},
2383 CredentialScope: credentialScope{
2384 Region: "ap-southeast-1",
2385 },
2386 },
2387 "ap-southeast-2": endpoint{
2388 Hostname: "s3-control.ap-southeast-2.amazonaws.com",
2389 SignatureVersions: []string{"s3v4"},
2390 CredentialScope: credentialScope{
2391 Region: "ap-southeast-2",
2392 },
2393 },
2394 "ca-central-1": endpoint{
2395 Hostname: "s3-control.ca-central-1.amazonaws.com",
2396 SignatureVersions: []string{"s3v4"},
2397 CredentialScope: credentialScope{
2398 Region: "ca-central-1",
2399 },
2400 },
2401 "eu-central-1": endpoint{
2402 Hostname: "s3-control.eu-central-1.amazonaws.com",
2403 SignatureVersions: []string{"s3v4"},
2404 CredentialScope: credentialScope{
2405 Region: "eu-central-1",
2406 },
2407 },
2408 "eu-north-1": endpoint{
2409 Hostname: "s3-control.eu-north-1.amazonaws.com",
2410 SignatureVersions: []string{"s3v4"},
2411 CredentialScope: credentialScope{
2412 Region: "eu-north-1",
2413 },
2414 },
2415 "eu-west-1": endpoint{
2416 Hostname: "s3-control.eu-west-1.amazonaws.com",
2417 SignatureVersions: []string{"s3v4"},
2418 CredentialScope: credentialScope{
2419 Region: "eu-west-1",
2420 },
2421 },
2422 "eu-west-2": endpoint{
2423 Hostname: "s3-control.eu-west-2.amazonaws.com",
2424 SignatureVersions: []string{"s3v4"},
2425 CredentialScope: credentialScope{
2426 Region: "eu-west-2",
2427 },
2428 },
2429 "eu-west-3": endpoint{
2430 Hostname: "s3-control.eu-west-3.amazonaws.com",
2431 SignatureVersions: []string{"s3v4"},
2432 CredentialScope: credentialScope{
2433 Region: "eu-west-3",
2434 },
2435 },
2436 "sa-east-1": endpoint{
2437 Hostname: "s3-control.sa-east-1.amazonaws.com",
2438 SignatureVersions: []string{"s3v4"},
2439 CredentialScope: credentialScope{
2440 Region: "sa-east-1",
2441 },
2442 },
2443 "us-east-1": endpoint{
2444 Hostname: "s3-control.us-east-1.amazonaws.com",
2445 SignatureVersions: []string{"s3v4"},
2446 CredentialScope: credentialScope{
2447 Region: "us-east-1",
2448 },
2449 },
2450 "us-east-1-fips": endpoint{
2451 Hostname: "s3-control-fips.us-east-1.amazonaws.com",
2452 SignatureVersions: []string{"s3v4"},
2453 CredentialScope: credentialScope{
2454 Region: "us-east-1",
2455 },
2456 },
2457 "us-east-2": endpoint{
2458 Hostname: "s3-control.us-east-2.amazonaws.com",
2459 SignatureVersions: []string{"s3v4"},
2460 CredentialScope: credentialScope{
2461 Region: "us-east-2",
2462 },
2463 },
2464 "us-east-2-fips": endpoint{
2465 Hostname: "s3-control-fips.us-east-2.amazonaws.com",
2466 SignatureVersions: []string{"s3v4"},
2467 CredentialScope: credentialScope{
2468 Region: "us-east-2",
2469 },
2470 },
2471 "us-west-1": endpoint{
2472 Hostname: "s3-control.us-west-1.amazonaws.com",
2473 SignatureVersions: []string{"s3v4"},
2474 CredentialScope: credentialScope{
2475 Region: "us-west-1",
2476 },
2477 },
2478 "us-west-1-fips": endpoint{
2479 Hostname: "s3-control-fips.us-west-1.amazonaws.com",
2480 SignatureVersions: []string{"s3v4"},
2481 CredentialScope: credentialScope{
2482 Region: "us-west-1",
2483 },
2484 },
2485 "us-west-2": endpoint{
2486 Hostname: "s3-control.us-west-2.amazonaws.com",
2487 SignatureVersions: []string{"s3v4"},
2488 CredentialScope: credentialScope{
2489 Region: "us-west-2",
2490 },
2491 },
2492 "us-west-2-fips": endpoint{
2493 Hostname: "s3-control-fips.us-west-2.amazonaws.com",
2494 SignatureVersions: []string{"s3v4"},
2495 CredentialScope: credentialScope{
2496 Region: "us-west-2",
2497 },
2498 },
1935 }, 2499 },
1936 }, 2500 },
1937 "sdb": service{ 2501 "sdb": service{
@@ -1962,8 +2526,54 @@ var awsPartition = partition{
1962 "ap-southeast-2": endpoint{}, 2526 "ap-southeast-2": endpoint{},
1963 "ca-central-1": endpoint{}, 2527 "ca-central-1": endpoint{},
1964 "eu-central-1": endpoint{}, 2528 "eu-central-1": endpoint{},
2529 "eu-north-1": endpoint{},
1965 "eu-west-1": endpoint{}, 2530 "eu-west-1": endpoint{},
1966 "eu-west-2": endpoint{}, 2531 "eu-west-2": endpoint{},
2532 "eu-west-3": endpoint{},
2533 "sa-east-1": endpoint{},
2534 "us-east-1": endpoint{},
2535 "us-east-1-fips": endpoint{
2536 Hostname: "secretsmanager-fips.us-east-1.amazonaws.com",
2537 CredentialScope: credentialScope{
2538 Region: "us-east-1",
2539 },
2540 },
2541 "us-east-2": endpoint{},
2542 "us-east-2-fips": endpoint{
2543 Hostname: "secretsmanager-fips.us-east-2.amazonaws.com",
2544 CredentialScope: credentialScope{
2545 Region: "us-east-2",
2546 },
2547 },
2548 "us-west-1": endpoint{},
2549 "us-west-1-fips": endpoint{
2550 Hostname: "secretsmanager-fips.us-west-1.amazonaws.com",
2551 CredentialScope: credentialScope{
2552 Region: "us-west-1",
2553 },
2554 },
2555 "us-west-2": endpoint{},
2556 "us-west-2-fips": endpoint{
2557 Hostname: "secretsmanager-fips.us-west-2.amazonaws.com",
2558 CredentialScope: credentialScope{
2559 Region: "us-west-2",
2560 },
2561 },
2562 },
2563 },
2564 "securityhub": service{
2565
2566 Endpoints: endpoints{
2567 "ap-northeast-1": endpoint{},
2568 "ap-northeast-2": endpoint{},
2569 "ap-south-1": endpoint{},
2570 "ap-southeast-1": endpoint{},
2571 "ap-southeast-2": endpoint{},
2572 "ca-central-1": endpoint{},
2573 "eu-central-1": endpoint{},
2574 "eu-west-1": endpoint{},
2575 "eu-west-2": endpoint{},
2576 "eu-west-3": endpoint{},
1967 "sa-east-1": endpoint{}, 2577 "sa-east-1": endpoint{},
1968 "us-east-1": endpoint{}, 2578 "us-east-1": endpoint{},
1969 "us-east-2": endpoint{}, 2579 "us-east-2": endpoint{},
@@ -1997,12 +2607,18 @@ var awsPartition = partition{
1997 "eu-central-1": endpoint{ 2607 "eu-central-1": endpoint{
1998 Protocols: []string{"https"}, 2608 Protocols: []string{"https"},
1999 }, 2609 },
2610 "eu-north-1": endpoint{
2611 Protocols: []string{"https"},
2612 },
2000 "eu-west-1": endpoint{ 2613 "eu-west-1": endpoint{
2001 Protocols: []string{"https"}, 2614 Protocols: []string{"https"},
2002 }, 2615 },
2003 "eu-west-2": endpoint{ 2616 "eu-west-2": endpoint{
2004 Protocols: []string{"https"}, 2617 Protocols: []string{"https"},
2005 }, 2618 },
2619 "eu-west-3": endpoint{
2620 Protocols: []string{"https"},
2621 },
2006 "sa-east-1": endpoint{ 2622 "sa-east-1": endpoint{
2007 Protocols: []string{"https"}, 2623 Protocols: []string{"https"},
2008 }, 2624 },
@@ -2030,30 +2646,65 @@ var awsPartition = partition{
2030 "ap-southeast-2": endpoint{}, 2646 "ap-southeast-2": endpoint{},
2031 "ca-central-1": endpoint{}, 2647 "ca-central-1": endpoint{},
2032 "eu-central-1": endpoint{}, 2648 "eu-central-1": endpoint{},
2649 "eu-north-1": endpoint{},
2033 "eu-west-1": endpoint{}, 2650 "eu-west-1": endpoint{},
2034 "eu-west-2": endpoint{}, 2651 "eu-west-2": endpoint{},
2035 "eu-west-3": endpoint{}, 2652 "eu-west-3": endpoint{},
2036 "sa-east-1": endpoint{}, 2653 "sa-east-1": endpoint{},
2037 "us-east-1": endpoint{}, 2654 "us-east-1": endpoint{},
2038 "us-east-2": endpoint{}, 2655 "us-east-1-fips": endpoint{
2039 "us-west-1": endpoint{}, 2656 Hostname: "servicecatalog-fips.us-east-1.amazonaws.com",
2040 "us-west-2": endpoint{}, 2657 CredentialScope: credentialScope{
2658 Region: "us-east-1",
2659 },
2660 },
2661 "us-east-2": endpoint{},
2662 "us-east-2-fips": endpoint{
2663 Hostname: "servicecatalog-fips.us-east-2.amazonaws.com",
2664 CredentialScope: credentialScope{
2665 Region: "us-east-2",
2666 },
2667 },
2668 "us-west-1": endpoint{},
2669 "us-west-1-fips": endpoint{
2670 Hostname: "servicecatalog-fips.us-west-1.amazonaws.com",
2671 CredentialScope: credentialScope{
2672 Region: "us-west-1",
2673 },
2674 },
2675 "us-west-2": endpoint{},
2676 "us-west-2-fips": endpoint{
2677 Hostname: "servicecatalog-fips.us-west-2.amazonaws.com",
2678 CredentialScope: credentialScope{
2679 Region: "us-west-2",
2680 },
2681 },
2041 }, 2682 },
2042 }, 2683 },
2043 "servicediscovery": service{ 2684 "servicediscovery": service{
2044 2685
2045 Endpoints: endpoints{ 2686 Endpoints: endpoints{
2046 "eu-west-1": endpoint{}, 2687 "ap-northeast-1": endpoint{},
2047 "us-east-1": endpoint{}, 2688 "ap-northeast-2": endpoint{},
2048 "us-east-2": endpoint{}, 2689 "ap-south-1": endpoint{},
2049 "us-west-1": endpoint{}, 2690 "ap-southeast-1": endpoint{},
2050 "us-west-2": endpoint{}, 2691 "ap-southeast-2": endpoint{},
2692 "ca-central-1": endpoint{},
2693 "eu-central-1": endpoint{},
2694 "eu-west-1": endpoint{},
2695 "eu-west-2": endpoint{},
2696 "eu-west-3": endpoint{},
2697 "sa-east-1": endpoint{},
2698 "us-east-1": endpoint{},
2699 "us-east-2": endpoint{},
2700 "us-west-1": endpoint{},
2701 "us-west-2": endpoint{},
2051 }, 2702 },
2052 }, 2703 },
2053 "shield": service{ 2704 "shield": service{
2054 IsRegionalized: boxedFalse, 2705 IsRegionalized: boxedFalse,
2055 Defaults: endpoint{ 2706 Defaults: endpoint{
2056 SSLCommonName: "Shield.us-east-1.amazonaws.com", 2707 SSLCommonName: "shield.us-east-1.amazonaws.com",
2057 Protocols: []string{"https"}, 2708 Protocols: []string{"https"},
2058 }, 2709 },
2059 Endpoints: endpoints{ 2710 Endpoints: endpoints{
@@ -2070,6 +2721,7 @@ var awsPartition = partition{
2070 "ap-southeast-2": endpoint{}, 2721 "ap-southeast-2": endpoint{},
2071 "ca-central-1": endpoint{}, 2722 "ca-central-1": endpoint{},
2072 "eu-central-1": endpoint{}, 2723 "eu-central-1": endpoint{},
2724 "eu-north-1": endpoint{},
2073 "eu-west-1": endpoint{}, 2725 "eu-west-1": endpoint{},
2074 "eu-west-2": endpoint{}, 2726 "eu-west-2": endpoint{},
2075 "eu-west-3": endpoint{}, 2727 "eu-west-3": endpoint{},
@@ -2104,6 +2756,7 @@ var awsPartition = partition{
2104 Protocols: []string{"http", "https"}, 2756 Protocols: []string{"http", "https"},
2105 }, 2757 },
2106 Endpoints: endpoints{ 2758 Endpoints: endpoints{
2759 "ap-east-1": endpoint{},
2107 "ap-northeast-1": endpoint{}, 2760 "ap-northeast-1": endpoint{},
2108 "ap-northeast-2": endpoint{}, 2761 "ap-northeast-2": endpoint{},
2109 "ap-south-1": endpoint{}, 2762 "ap-south-1": endpoint{},
@@ -2111,6 +2764,7 @@ var awsPartition = partition{
2111 "ap-southeast-2": endpoint{}, 2764 "ap-southeast-2": endpoint{},
2112 "ca-central-1": endpoint{}, 2765 "ca-central-1": endpoint{},
2113 "eu-central-1": endpoint{}, 2766 "eu-central-1": endpoint{},
2767 "eu-north-1": endpoint{},
2114 "eu-west-1": endpoint{}, 2768 "eu-west-1": endpoint{},
2115 "eu-west-2": endpoint{}, 2769 "eu-west-2": endpoint{},
2116 "eu-west-3": endpoint{}, 2770 "eu-west-3": endpoint{},
@@ -2127,6 +2781,7 @@ var awsPartition = partition{
2127 Protocols: []string{"http", "https"}, 2781 Protocols: []string{"http", "https"},
2128 }, 2782 },
2129 Endpoints: endpoints{ 2783 Endpoints: endpoints{
2784 "ap-east-1": endpoint{},
2130 "ap-northeast-1": endpoint{}, 2785 "ap-northeast-1": endpoint{},
2131 "ap-northeast-2": endpoint{}, 2786 "ap-northeast-2": endpoint{},
2132 "ap-south-1": endpoint{}, 2787 "ap-south-1": endpoint{},
@@ -2134,6 +2789,7 @@ var awsPartition = partition{
2134 "ap-southeast-2": endpoint{}, 2789 "ap-southeast-2": endpoint{},
2135 "ca-central-1": endpoint{}, 2790 "ca-central-1": endpoint{},
2136 "eu-central-1": endpoint{}, 2791 "eu-central-1": endpoint{},
2792 "eu-north-1": endpoint{},
2137 "eu-west-1": endpoint{}, 2793 "eu-west-1": endpoint{},
2138 "eu-west-2": endpoint{}, 2794 "eu-west-2": endpoint{},
2139 "eu-west-3": endpoint{}, 2795 "eu-west-3": endpoint{},
@@ -2173,6 +2829,7 @@ var awsPartition = partition{
2173 "ssm": service{ 2829 "ssm": service{
2174 2830
2175 Endpoints: endpoints{ 2831 Endpoints: endpoints{
2832 "ap-east-1": endpoint{},
2176 "ap-northeast-1": endpoint{}, 2833 "ap-northeast-1": endpoint{},
2177 "ap-northeast-2": endpoint{}, 2834 "ap-northeast-2": endpoint{},
2178 "ap-south-1": endpoint{}, 2835 "ap-south-1": endpoint{},
@@ -2180,6 +2837,7 @@ var awsPartition = partition{
2180 "ap-southeast-2": endpoint{}, 2837 "ap-southeast-2": endpoint{},
2181 "ca-central-1": endpoint{}, 2838 "ca-central-1": endpoint{},
2182 "eu-central-1": endpoint{}, 2839 "eu-central-1": endpoint{},
2840 "eu-north-1": endpoint{},
2183 "eu-west-1": endpoint{}, 2841 "eu-west-1": endpoint{},
2184 "eu-west-2": endpoint{}, 2842 "eu-west-2": endpoint{},
2185 "eu-west-3": endpoint{}, 2843 "eu-west-3": endpoint{},
@@ -2193,14 +2851,19 @@ var awsPartition = partition{
2193 "states": service{ 2851 "states": service{
2194 2852
2195 Endpoints: endpoints{ 2853 Endpoints: endpoints{
2854 "ap-east-1": endpoint{},
2196 "ap-northeast-1": endpoint{}, 2855 "ap-northeast-1": endpoint{},
2197 "ap-northeast-2": endpoint{}, 2856 "ap-northeast-2": endpoint{},
2857 "ap-south-1": endpoint{},
2198 "ap-southeast-1": endpoint{}, 2858 "ap-southeast-1": endpoint{},
2199 "ap-southeast-2": endpoint{}, 2859 "ap-southeast-2": endpoint{},
2200 "ca-central-1": endpoint{}, 2860 "ca-central-1": endpoint{},
2201 "eu-central-1": endpoint{}, 2861 "eu-central-1": endpoint{},
2862 "eu-north-1": endpoint{},
2202 "eu-west-1": endpoint{}, 2863 "eu-west-1": endpoint{},
2203 "eu-west-2": endpoint{}, 2864 "eu-west-2": endpoint{},
2865 "eu-west-3": endpoint{},
2866 "sa-east-1": endpoint{},
2204 "us-east-1": endpoint{}, 2867 "us-east-1": endpoint{},
2205 "us-east-2": endpoint{}, 2868 "us-east-2": endpoint{},
2206 "us-west-1": endpoint{}, 2869 "us-west-1": endpoint{},
@@ -2217,6 +2880,7 @@ var awsPartition = partition{
2217 "ap-southeast-2": endpoint{}, 2880 "ap-southeast-2": endpoint{},
2218 "ca-central-1": endpoint{}, 2881 "ca-central-1": endpoint{},
2219 "eu-central-1": endpoint{}, 2882 "eu-central-1": endpoint{},
2883 "eu-north-1": endpoint{},
2220 "eu-west-1": endpoint{}, 2884 "eu-west-1": endpoint{},
2221 "eu-west-2": endpoint{}, 2885 "eu-west-2": endpoint{},
2222 "eu-west-3": endpoint{}, 2886 "eu-west-3": endpoint{},
@@ -2242,6 +2906,7 @@ var awsPartition = partition{
2242 "ap-southeast-2": endpoint{}, 2906 "ap-southeast-2": endpoint{},
2243 "ca-central-1": endpoint{}, 2907 "ca-central-1": endpoint{},
2244 "eu-central-1": endpoint{}, 2908 "eu-central-1": endpoint{},
2909 "eu-north-1": endpoint{},
2245 "eu-west-1": endpoint{}, 2910 "eu-west-1": endpoint{},
2246 "eu-west-2": endpoint{}, 2911 "eu-west-2": endpoint{},
2247 "eu-west-3": endpoint{}, 2912 "eu-west-3": endpoint{},
@@ -2268,6 +2933,12 @@ var awsPartition = partition{
2268 }, 2933 },
2269 }, 2934 },
2270 Endpoints: endpoints{ 2935 Endpoints: endpoints{
2936 "ap-east-1": endpoint{
2937 Hostname: "sts.ap-east-1.amazonaws.com",
2938 CredentialScope: credentialScope{
2939 Region: "ap-east-1",
2940 },
2941 },
2271 "ap-northeast-1": endpoint{}, 2942 "ap-northeast-1": endpoint{},
2272 "ap-northeast-2": endpoint{ 2943 "ap-northeast-2": endpoint{
2273 Hostname: "sts.ap-northeast-2.amazonaws.com", 2944 Hostname: "sts.ap-northeast-2.amazonaws.com",
@@ -2281,6 +2952,7 @@ var awsPartition = partition{
2281 "aws-global": endpoint{}, 2952 "aws-global": endpoint{},
2282 "ca-central-1": endpoint{}, 2953 "ca-central-1": endpoint{},
2283 "eu-central-1": endpoint{}, 2954 "eu-central-1": endpoint{},
2955 "eu-north-1": endpoint{},
2284 "eu-west-1": endpoint{}, 2956 "eu-west-1": endpoint{},
2285 "eu-west-2": endpoint{}, 2957 "eu-west-2": endpoint{},
2286 "eu-west-3": endpoint{}, 2958 "eu-west-3": endpoint{},
@@ -2324,6 +2996,7 @@ var awsPartition = partition{
2324 "swf": service{ 2996 "swf": service{
2325 2997
2326 Endpoints: endpoints{ 2998 Endpoints: endpoints{
2999 "ap-east-1": endpoint{},
2327 "ap-northeast-1": endpoint{}, 3000 "ap-northeast-1": endpoint{},
2328 "ap-northeast-2": endpoint{}, 3001 "ap-northeast-2": endpoint{},
2329 "ap-south-1": endpoint{}, 3002 "ap-south-1": endpoint{},
@@ -2331,6 +3004,7 @@ var awsPartition = partition{
2331 "ap-southeast-2": endpoint{}, 3004 "ap-southeast-2": endpoint{},
2332 "ca-central-1": endpoint{}, 3005 "ca-central-1": endpoint{},
2333 "eu-central-1": endpoint{}, 3006 "eu-central-1": endpoint{},
3007 "eu-north-1": endpoint{},
2334 "eu-west-1": endpoint{}, 3008 "eu-west-1": endpoint{},
2335 "eu-west-2": endpoint{}, 3009 "eu-west-2": endpoint{},
2336 "eu-west-3": endpoint{}, 3010 "eu-west-3": endpoint{},
@@ -2344,6 +3018,7 @@ var awsPartition = partition{
2344 "tagging": service{ 3018 "tagging": service{
2345 3019
2346 Endpoints: endpoints{ 3020 Endpoints: endpoints{
3021 "ap-east-1": endpoint{},
2347 "ap-northeast-1": endpoint{}, 3022 "ap-northeast-1": endpoint{},
2348 "ap-northeast-2": endpoint{}, 3023 "ap-northeast-2": endpoint{},
2349 "ap-south-1": endpoint{}, 3024 "ap-south-1": endpoint{},
@@ -2351,6 +3026,7 @@ var awsPartition = partition{
2351 "ap-southeast-2": endpoint{}, 3026 "ap-southeast-2": endpoint{},
2352 "ca-central-1": endpoint{}, 3027 "ca-central-1": endpoint{},
2353 "eu-central-1": endpoint{}, 3028 "eu-central-1": endpoint{},
3029 "eu-north-1": endpoint{},
2354 "eu-west-1": endpoint{}, 3030 "eu-west-1": endpoint{},
2355 "eu-west-2": endpoint{}, 3031 "eu-west-2": endpoint{},
2356 "eu-west-3": endpoint{}, 3032 "eu-west-3": endpoint{},
@@ -2361,15 +3037,54 @@ var awsPartition = partition{
2361 "us-west-2": endpoint{}, 3037 "us-west-2": endpoint{},
2362 }, 3038 },
2363 }, 3039 },
3040 "transfer": service{
3041
3042 Endpoints: endpoints{
3043 "ap-northeast-1": endpoint{},
3044 "ap-northeast-2": endpoint{},
3045 "ap-south-1": endpoint{},
3046 "ap-southeast-1": endpoint{},
3047 "ap-southeast-2": endpoint{},
3048 "ca-central-1": endpoint{},
3049 "eu-central-1": endpoint{},
3050 "eu-west-1": endpoint{},
3051 "eu-west-2": endpoint{},
3052 "eu-west-3": endpoint{},
3053 "us-east-1": endpoint{},
3054 "us-east-2": endpoint{},
3055 "us-west-1": endpoint{},
3056 "us-west-2": endpoint{},
3057 },
3058 },
2364 "translate": service{ 3059 "translate": service{
2365 Defaults: endpoint{ 3060 Defaults: endpoint{
2366 Protocols: []string{"https"}, 3061 Protocols: []string{"https"},
2367 }, 3062 },
2368 Endpoints: endpoints{ 3063 Endpoints: endpoints{
2369 "eu-west-1": endpoint{}, 3064 "ap-northeast-2": endpoint{},
2370 "us-east-1": endpoint{}, 3065 "eu-central-1": endpoint{},
3066 "eu-west-1": endpoint{},
3067 "us-east-1": endpoint{},
3068 "us-east-1-fips": endpoint{
3069 Hostname: "translate-fips.us-east-1.amazonaws.com",
3070 CredentialScope: credentialScope{
3071 Region: "us-east-1",
3072 },
3073 },
2371 "us-east-2": endpoint{}, 3074 "us-east-2": endpoint{},
3075 "us-east-2-fips": endpoint{
3076 Hostname: "translate-fips.us-east-2.amazonaws.com",
3077 CredentialScope: credentialScope{
3078 Region: "us-east-2",
3079 },
3080 },
2372 "us-west-2": endpoint{}, 3081 "us-west-2": endpoint{},
3082 "us-west-2-fips": endpoint{
3083 Hostname: "translate-fips.us-west-2.amazonaws.com",
3084 CredentialScope: credentialScope{
3085 Region: "us-west-2",
3086 },
3087 },
2373 }, 3088 },
2374 }, 3089 },
2375 "waf": service{ 3090 "waf": service{
@@ -2389,9 +3104,13 @@ var awsPartition = partition{
2389 3104
2390 Endpoints: endpoints{ 3105 Endpoints: endpoints{
2391 "ap-northeast-1": endpoint{}, 3106 "ap-northeast-1": endpoint{},
3107 "ap-northeast-2": endpoint{},
3108 "ap-southeast-1": endpoint{},
2392 "ap-southeast-2": endpoint{}, 3109 "ap-southeast-2": endpoint{},
2393 "eu-central-1": endpoint{}, 3110 "eu-central-1": endpoint{},
3111 "eu-north-1": endpoint{},
2394 "eu-west-1": endpoint{}, 3112 "eu-west-1": endpoint{},
3113 "eu-west-2": endpoint{},
2395 "us-east-1": endpoint{}, 3114 "us-east-1": endpoint{},
2396 "us-east-2": endpoint{}, 3115 "us-east-2": endpoint{},
2397 "us-west-1": endpoint{}, 3116 "us-west-1": endpoint{},
@@ -2445,8 +3164,10 @@ var awsPartition = partition{
2445 "ap-southeast-2": endpoint{}, 3164 "ap-southeast-2": endpoint{},
2446 "ca-central-1": endpoint{}, 3165 "ca-central-1": endpoint{},
2447 "eu-central-1": endpoint{}, 3166 "eu-central-1": endpoint{},
3167 "eu-north-1": endpoint{},
2448 "eu-west-1": endpoint{}, 3168 "eu-west-1": endpoint{},
2449 "eu-west-2": endpoint{}, 3169 "eu-west-2": endpoint{},
3170 "eu-west-3": endpoint{},
2450 "sa-east-1": endpoint{}, 3171 "sa-east-1": endpoint{},
2451 "us-east-1": endpoint{}, 3172 "us-east-1": endpoint{},
2452 "us-east-2": endpoint{}, 3173 "us-east-2": endpoint{},
@@ -2486,6 +3207,23 @@ var awscnPartition = partition{
2486 }, 3207 },
2487 }, 3208 },
2488 Services: services{ 3209 Services: services{
3210 "api.ecr": service{
3211
3212 Endpoints: endpoints{
3213 "cn-north-1": endpoint{
3214 Hostname: "api.ecr.cn-north-1.amazonaws.com.cn",
3215 CredentialScope: credentialScope{
3216 Region: "cn-north-1",
3217 },
3218 },
3219 "cn-northwest-1": endpoint{
3220 Hostname: "api.ecr.cn-northwest-1.amazonaws.com.cn",
3221 CredentialScope: credentialScope{
3222 Region: "cn-northwest-1",
3223 },
3224 },
3225 },
3226 },
2489 "apigateway": service{ 3227 "apigateway": service{
2490 3228
2491 Endpoints: endpoints{ 3229 Endpoints: endpoints{
@@ -2495,7 +3233,7 @@ var awscnPartition = partition{
2495 }, 3233 },
2496 "application-autoscaling": service{ 3234 "application-autoscaling": service{
2497 Defaults: endpoint{ 3235 Defaults: endpoint{
2498 Hostname: "autoscaling.{region}.amazonaws.com", 3236 Hostname: "autoscaling.{region}.amazonaws.com.cn",
2499 Protocols: []string{"http", "https"}, 3237 Protocols: []string{"http", "https"},
2500 CredentialScope: credentialScope{ 3238 CredentialScope: credentialScope{
2501 Service: "application-autoscaling", 3239 Service: "application-autoscaling",
@@ -2522,6 +3260,20 @@ var awscnPartition = partition{
2522 "cn-northwest-1": endpoint{}, 3260 "cn-northwest-1": endpoint{},
2523 }, 3261 },
2524 }, 3262 },
3263 "cloudfront": service{
3264 PartitionEndpoint: "aws-cn-global",
3265 IsRegionalized: boxedFalse,
3266
3267 Endpoints: endpoints{
3268 "aws-cn-global": endpoint{
3269 Hostname: "cloudfront.cn-northwest-1.amazonaws.com.cn",
3270 Protocols: []string{"http", "https"},
3271 CredentialScope: credentialScope{
3272 Region: "cn-northwest-1",
3273 },
3274 },
3275 },
3276 },
2525 "cloudtrail": service{ 3277 "cloudtrail": service{
2526 3278
2527 Endpoints: endpoints{ 3279 Endpoints: endpoints{
@@ -2529,6 +3281,13 @@ var awscnPartition = partition{
2529 "cn-northwest-1": endpoint{}, 3281 "cn-northwest-1": endpoint{},
2530 }, 3282 },
2531 }, 3283 },
3284 "codebuild": service{
3285
3286 Endpoints: endpoints{
3287 "cn-north-1": endpoint{},
3288 "cn-northwest-1": endpoint{},
3289 },
3290 },
2532 "codedeploy": service{ 3291 "codedeploy": service{
2533 3292
2534 Endpoints: endpoints{ 3293 Endpoints: endpoints{
@@ -2556,6 +3315,13 @@ var awscnPartition = partition{
2556 "cn-northwest-1": endpoint{}, 3315 "cn-northwest-1": endpoint{},
2557 }, 3316 },
2558 }, 3317 },
3318 "dms": service{
3319
3320 Endpoints: endpoints{
3321 "cn-north-1": endpoint{},
3322 "cn-northwest-1": endpoint{},
3323 },
3324 },
2559 "ds": service{ 3325 "ds": service{
2560 3326
2561 Endpoints: endpoints{ 3327 Endpoints: endpoints{
@@ -2592,13 +3358,6 @@ var awscnPartition = partition{
2592 }, 3358 },
2593 }, 3359 },
2594 }, 3360 },
2595 "ecr": service{
2596
2597 Endpoints: endpoints{
2598 "cn-north-1": endpoint{},
2599 "cn-northwest-1": endpoint{},
2600 },
2601 },
2602 "ecs": service{ 3361 "ecs": service{
2603 3362
2604 Endpoints: endpoints{ 3363 Endpoints: endpoints{
@@ -2631,7 +3390,7 @@ var awscnPartition = partition{
2631 }, 3390 },
2632 "elasticmapreduce": service{ 3391 "elasticmapreduce": service{
2633 Defaults: endpoint{ 3392 Defaults: endpoint{
2634 Protocols: []string{"http", "https"}, 3393 Protocols: []string{"https"},
2635 }, 3394 },
2636 Endpoints: endpoints{ 3395 Endpoints: endpoints{
2637 "cn-north-1": endpoint{}, 3396 "cn-north-1": endpoint{},
@@ -2641,6 +3400,7 @@ var awscnPartition = partition{
2641 "es": service{ 3400 "es": service{
2642 3401
2643 Endpoints: endpoints{ 3402 Endpoints: endpoints{
3403 "cn-north-1": endpoint{},
2644 "cn-northwest-1": endpoint{}, 3404 "cn-northwest-1": endpoint{},
2645 }, 3405 },
2646 }, 3406 },
@@ -2651,6 +3411,19 @@ var awscnPartition = partition{
2651 "cn-northwest-1": endpoint{}, 3411 "cn-northwest-1": endpoint{},
2652 }, 3412 },
2653 }, 3413 },
3414 "firehose": service{
3415
3416 Endpoints: endpoints{
3417 "cn-north-1": endpoint{},
3418 "cn-northwest-1": endpoint{},
3419 },
3420 },
3421 "gamelift": service{
3422
3423 Endpoints: endpoints{
3424 "cn-north-1": endpoint{},
3425 },
3426 },
2654 "glacier": service{ 3427 "glacier": service{
2655 Defaults: endpoint{ 3428 Defaults: endpoint{
2656 Protocols: []string{"http", "https"}, 3429 Protocols: []string{"http", "https"},
@@ -2704,6 +3477,12 @@ var awscnPartition = partition{
2704 "cn-northwest-1": endpoint{}, 3477 "cn-northwest-1": endpoint{},
2705 }, 3478 },
2706 }, 3479 },
3480 "mediaconvert": service{
3481
3482 Endpoints: endpoints{
3483 "cn-northwest-1": endpoint{},
3484 },
3485 },
2707 "monitoring": service{ 3486 "monitoring": service{
2708 Defaults: endpoint{ 3487 Defaults: endpoint{
2709 Protocols: []string{"http", "https"}, 3488 Protocols: []string{"http", "https"},
@@ -2713,6 +3492,12 @@ var awscnPartition = partition{
2713 "cn-northwest-1": endpoint{}, 3492 "cn-northwest-1": endpoint{},
2714 }, 3493 },
2715 }, 3494 },
3495 "polly": service{
3496
3497 Endpoints: endpoints{
3498 "cn-northwest-1": endpoint{},
3499 },
3500 },
2716 "rds": service{ 3501 "rds": service{
2717 3502
2718 Endpoints: endpoints{ 3503 Endpoints: endpoints{
@@ -2737,6 +3522,28 @@ var awscnPartition = partition{
2737 "cn-northwest-1": endpoint{}, 3522 "cn-northwest-1": endpoint{},
2738 }, 3523 },
2739 }, 3524 },
3525 "s3-control": service{
3526 Defaults: endpoint{
3527 Protocols: []string{"https"},
3528 SignatureVersions: []string{"s3v4"},
3529 },
3530 Endpoints: endpoints{
3531 "cn-north-1": endpoint{
3532 Hostname: "s3-control.cn-north-1.amazonaws.com.cn",
3533 SignatureVersions: []string{"s3v4"},
3534 CredentialScope: credentialScope{
3535 Region: "cn-north-1",
3536 },
3537 },
3538 "cn-northwest-1": endpoint{
3539 Hostname: "s3-control.cn-northwest-1.amazonaws.com.cn",
3540 SignatureVersions: []string{"s3v4"},
3541 CredentialScope: credentialScope{
3542 Region: "cn-northwest-1",
3543 },
3544 },
3545 },
3546 },
2740 "sms": service{ 3547 "sms": service{
2741 3548
2742 Endpoints: endpoints{ 3549 Endpoints: endpoints{
@@ -2776,6 +3583,13 @@ var awscnPartition = partition{
2776 "cn-northwest-1": endpoint{}, 3583 "cn-northwest-1": endpoint{},
2777 }, 3584 },
2778 }, 3585 },
3586 "states": service{
3587
3588 Endpoints: endpoints{
3589 "cn-north-1": endpoint{},
3590 "cn-northwest-1": endpoint{},
3591 },
3592 },
2779 "storagegateway": service{ 3593 "storagegateway": service{
2780 3594
2781 Endpoints: endpoints{ 3595 Endpoints: endpoints{
@@ -2839,6 +3653,9 @@ var awsusgovPartition = partition{
2839 SignatureVersions: []string{"v4"}, 3653 SignatureVersions: []string{"v4"},
2840 }, 3654 },
2841 Regions: regions{ 3655 Regions: regions{
3656 "us-gov-east-1": region{
3657 Description: "AWS GovCloud (US-East)",
3658 },
2842 "us-gov-west-1": region{ 3659 "us-gov-west-1": region{
2843 Description: "AWS GovCloud (US)", 3660 Description: "AWS GovCloud (US)",
2844 }, 3661 },
@@ -2847,26 +3664,77 @@ var awsusgovPartition = partition{
2847 "acm": service{ 3664 "acm": service{
2848 3665
2849 Endpoints: endpoints{ 3666 Endpoints: endpoints{
3667 "us-gov-east-1": endpoint{},
3668 "us-gov-west-1": endpoint{},
3669 },
3670 },
3671 "api.ecr": service{
3672
3673 Endpoints: endpoints{
3674 "us-gov-east-1": endpoint{
3675 Hostname: "api.ecr.us-gov-east-1.amazonaws.com",
3676 CredentialScope: credentialScope{
3677 Region: "us-gov-east-1",
3678 },
3679 },
3680 "us-gov-west-1": endpoint{
3681 Hostname: "api.ecr.us-gov-west-1.amazonaws.com",
3682 CredentialScope: credentialScope{
3683 Region: "us-gov-west-1",
3684 },
3685 },
3686 },
3687 },
3688 "api.sagemaker": service{
3689
3690 Endpoints: endpoints{
2850 "us-gov-west-1": endpoint{}, 3691 "us-gov-west-1": endpoint{},
2851 }, 3692 },
2852 }, 3693 },
2853 "apigateway": service{ 3694 "apigateway": service{
2854 3695
2855 Endpoints: endpoints{ 3696 Endpoints: endpoints{
3697 "us-gov-east-1": endpoint{},
3698 "us-gov-west-1": endpoint{},
3699 },
3700 },
3701 "application-autoscaling": service{
3702 Defaults: endpoint{
3703 Hostname: "autoscaling.{region}.amazonaws.com",
3704 CredentialScope: credentialScope{
3705 Service: "application-autoscaling",
3706 },
3707 },
3708 Endpoints: endpoints{
3709 "us-gov-east-1": endpoint{},
3710 "us-gov-west-1": endpoint{},
3711 },
3712 },
3713 "athena": service{
3714
3715 Endpoints: endpoints{
2856 "us-gov-west-1": endpoint{}, 3716 "us-gov-west-1": endpoint{},
2857 }, 3717 },
2858 }, 3718 },
2859 "autoscaling": service{ 3719 "autoscaling": service{
2860 3720
2861 Endpoints: endpoints{ 3721 Endpoints: endpoints{
3722 "us-gov-east-1": endpoint{},
2862 "us-gov-west-1": endpoint{ 3723 "us-gov-west-1": endpoint{
2863 Protocols: []string{"http", "https"}, 3724 Protocols: []string{"http", "https"},
2864 }, 3725 },
2865 }, 3726 },
2866 }, 3727 },
3728 "clouddirectory": service{
3729
3730 Endpoints: endpoints{
3731 "us-gov-west-1": endpoint{},
3732 },
3733 },
2867 "cloudformation": service{ 3734 "cloudformation": service{
2868 3735
2869 Endpoints: endpoints{ 3736 Endpoints: endpoints{
3737 "us-gov-east-1": endpoint{},
2870 "us-gov-west-1": endpoint{}, 3738 "us-gov-west-1": endpoint{},
2871 }, 3739 },
2872 }, 3740 },
@@ -2883,42 +3751,81 @@ var awsusgovPartition = partition{
2883 }, 3751 },
2884 }, 3752 },
2885 Endpoints: endpoints{ 3753 Endpoints: endpoints{
3754 "us-gov-east-1": endpoint{},
2886 "us-gov-west-1": endpoint{}, 3755 "us-gov-west-1": endpoint{},
2887 }, 3756 },
2888 }, 3757 },
2889 "cloudtrail": service{ 3758 "cloudtrail": service{
2890 3759
2891 Endpoints: endpoints{ 3760 Endpoints: endpoints{
3761 "us-gov-east-1": endpoint{},
3762 "us-gov-west-1": endpoint{},
3763 },
3764 },
3765 "codecommit": service{
3766
3767 Endpoints: endpoints{
2892 "us-gov-west-1": endpoint{}, 3768 "us-gov-west-1": endpoint{},
2893 }, 3769 },
2894 }, 3770 },
2895 "codedeploy": service{ 3771 "codedeploy": service{
2896 3772
2897 Endpoints: endpoints{ 3773 Endpoints: endpoints{
3774 "us-gov-east-1": endpoint{},
3775 "us-gov-east-1-fips": endpoint{
3776 Hostname: "codedeploy-fips.us-gov-east-1.amazonaws.com",
3777 CredentialScope: credentialScope{
3778 Region: "us-gov-east-1",
3779 },
3780 },
3781 "us-gov-west-1": endpoint{},
3782 "us-gov-west-1-fips": endpoint{
3783 Hostname: "codedeploy-fips.us-gov-west-1.amazonaws.com",
3784 CredentialScope: credentialScope{
3785 Region: "us-gov-west-1",
3786 },
3787 },
3788 },
3789 },
3790 "comprehend": service{
3791 Defaults: endpoint{
3792 Protocols: []string{"https"},
3793 },
3794 Endpoints: endpoints{
2898 "us-gov-west-1": endpoint{}, 3795 "us-gov-west-1": endpoint{},
2899 }, 3796 },
2900 }, 3797 },
2901 "config": service{ 3798 "config": service{
2902 3799
2903 Endpoints: endpoints{ 3800 Endpoints: endpoints{
3801 "us-gov-east-1": endpoint{},
2904 "us-gov-west-1": endpoint{}, 3802 "us-gov-west-1": endpoint{},
2905 }, 3803 },
2906 }, 3804 },
2907 "directconnect": service{ 3805 "directconnect": service{
2908 3806
2909 Endpoints: endpoints{ 3807 Endpoints: endpoints{
3808 "us-gov-east-1": endpoint{},
2910 "us-gov-west-1": endpoint{}, 3809 "us-gov-west-1": endpoint{},
2911 }, 3810 },
2912 }, 3811 },
2913 "dms": service{ 3812 "dms": service{
2914 3813
2915 Endpoints: endpoints{ 3814 Endpoints: endpoints{
3815 "us-gov-east-1": endpoint{},
3816 "us-gov-west-1": endpoint{},
3817 },
3818 },
3819 "ds": service{
3820
3821 Endpoints: endpoints{
2916 "us-gov-west-1": endpoint{}, 3822 "us-gov-west-1": endpoint{},
2917 }, 3823 },
2918 }, 3824 },
2919 "dynamodb": service{ 3825 "dynamodb": service{
2920 3826
2921 Endpoints: endpoints{ 3827 Endpoints: endpoints{
3828 "us-gov-east-1": endpoint{},
2922 "us-gov-west-1": endpoint{}, 3829 "us-gov-west-1": endpoint{},
2923 "us-gov-west-1-fips": endpoint{ 3830 "us-gov-west-1-fips": endpoint{
2924 Hostname: "dynamodb.us-gov-west-1.amazonaws.com", 3831 Hostname: "dynamodb.us-gov-west-1.amazonaws.com",
@@ -2931,6 +3838,7 @@ var awsusgovPartition = partition{
2931 "ec2": service{ 3838 "ec2": service{
2932 3839
2933 Endpoints: endpoints{ 3840 Endpoints: endpoints{
3841 "us-gov-east-1": endpoint{},
2934 "us-gov-west-1": endpoint{}, 3842 "us-gov-west-1": endpoint{},
2935 }, 3843 },
2936 }, 3844 },
@@ -2945,25 +3853,34 @@ var awsusgovPartition = partition{
2945 }, 3853 },
2946 }, 3854 },
2947 }, 3855 },
2948 "ecr": service{ 3856 "ecs": service{
2949 3857
2950 Endpoints: endpoints{ 3858 Endpoints: endpoints{
3859 "us-gov-east-1": endpoint{},
2951 "us-gov-west-1": endpoint{}, 3860 "us-gov-west-1": endpoint{},
2952 }, 3861 },
2953 }, 3862 },
2954 "ecs": service{ 3863 "elasticache": service{
2955 3864
2956 Endpoints: endpoints{ 3865 Endpoints: endpoints{
3866 "fips": endpoint{
3867 Hostname: "elasticache-fips.us-gov-west-1.amazonaws.com",
3868 CredentialScope: credentialScope{
3869 Region: "us-gov-west-1",
3870 },
3871 },
3872 "us-gov-east-1": endpoint{},
2957 "us-gov-west-1": endpoint{}, 3873 "us-gov-west-1": endpoint{},
2958 }, 3874 },
2959 }, 3875 },
2960 "elasticache": service{ 3876 "elasticbeanstalk": service{
2961 3877
2962 Endpoints: endpoints{ 3878 Endpoints: endpoints{
3879 "us-gov-east-1": endpoint{},
2963 "us-gov-west-1": endpoint{}, 3880 "us-gov-west-1": endpoint{},
2964 }, 3881 },
2965 }, 3882 },
2966 "elasticbeanstalk": service{ 3883 "elasticfilesystem": service{
2967 3884
2968 Endpoints: endpoints{ 3885 Endpoints: endpoints{
2969 "us-gov-west-1": endpoint{}, 3886 "us-gov-west-1": endpoint{},
@@ -2972,6 +3889,7 @@ var awsusgovPartition = partition{
2972 "elasticloadbalancing": service{ 3889 "elasticloadbalancing": service{
2973 3890
2974 Endpoints: endpoints{ 3891 Endpoints: endpoints{
3892 "us-gov-east-1": endpoint{},
2975 "us-gov-west-1": endpoint{ 3893 "us-gov-west-1": endpoint{
2976 Protocols: []string{"http", "https"}, 3894 Protocols: []string{"http", "https"},
2977 }, 3895 },
@@ -2980,31 +3898,62 @@ var awsusgovPartition = partition{
2980 "elasticmapreduce": service{ 3898 "elasticmapreduce": service{
2981 3899
2982 Endpoints: endpoints{ 3900 Endpoints: endpoints{
3901 "us-gov-east-1": endpoint{},
2983 "us-gov-west-1": endpoint{ 3902 "us-gov-west-1": endpoint{
2984 Protocols: []string{"http", "https"}, 3903 Protocols: []string{"https"},
2985 }, 3904 },
2986 }, 3905 },
2987 }, 3906 },
2988 "es": service{ 3907 "es": service{
2989 3908
2990 Endpoints: endpoints{ 3909 Endpoints: endpoints{
3910 "fips": endpoint{
3911 Hostname: "es-fips.us-gov-west-1.amazonaws.com",
3912 CredentialScope: credentialScope{
3913 Region: "us-gov-west-1",
3914 },
3915 },
3916 "us-gov-east-1": endpoint{},
2991 "us-gov-west-1": endpoint{}, 3917 "us-gov-west-1": endpoint{},
2992 }, 3918 },
2993 }, 3919 },
2994 "events": service{ 3920 "events": service{
2995 3921
2996 Endpoints: endpoints{ 3922 Endpoints: endpoints{
3923 "us-gov-east-1": endpoint{},
3924 "us-gov-west-1": endpoint{},
3925 },
3926 },
3927 "firehose": service{
3928
3929 Endpoints: endpoints{
2997 "us-gov-west-1": endpoint{}, 3930 "us-gov-west-1": endpoint{},
2998 }, 3931 },
2999 }, 3932 },
3000 "glacier": service{ 3933 "glacier": service{
3001 3934
3002 Endpoints: endpoints{ 3935 Endpoints: endpoints{
3936 "us-gov-east-1": endpoint{},
3003 "us-gov-west-1": endpoint{ 3937 "us-gov-west-1": endpoint{
3004 Protocols: []string{"http", "https"}, 3938 Protocols: []string{"http", "https"},
3005 }, 3939 },
3006 }, 3940 },
3007 }, 3941 },
3942 "glue": service{
3943
3944 Endpoints: endpoints{
3945 "us-gov-west-1": endpoint{},
3946 },
3947 },
3948 "guardduty": service{
3949 IsRegionalized: boxedTrue,
3950 Defaults: endpoint{
3951 Protocols: []string{"https"},
3952 },
3953 Endpoints: endpoints{
3954 "us-gov-west-1": endpoint{},
3955 },
3956 },
3008 "iam": service{ 3957 "iam": service{
3009 PartitionEndpoint: "aws-us-gov-global", 3958 PartitionEndpoint: "aws-us-gov-global",
3010 IsRegionalized: boxedFalse, 3959 IsRegionalized: boxedFalse,
@@ -3021,30 +3970,64 @@ var awsusgovPartition = partition{
3021 "inspector": service{ 3970 "inspector": service{
3022 3971
3023 Endpoints: endpoints{ 3972 Endpoints: endpoints{
3973 "us-gov-east-1": endpoint{},
3974 "us-gov-west-1": endpoint{},
3975 },
3976 },
3977 "iot": service{
3978 Defaults: endpoint{
3979 CredentialScope: credentialScope{
3980 Service: "execute-api",
3981 },
3982 },
3983 Endpoints: endpoints{
3024 "us-gov-west-1": endpoint{}, 3984 "us-gov-west-1": endpoint{},
3025 }, 3985 },
3026 }, 3986 },
3027 "kinesis": service{ 3987 "kinesis": service{
3028 3988
3029 Endpoints: endpoints{ 3989 Endpoints: endpoints{
3990 "us-gov-east-1": endpoint{},
3030 "us-gov-west-1": endpoint{}, 3991 "us-gov-west-1": endpoint{},
3031 }, 3992 },
3032 }, 3993 },
3033 "kms": service{ 3994 "kms": service{
3034 3995
3035 Endpoints: endpoints{ 3996 Endpoints: endpoints{
3997 "ProdFips": endpoint{
3998 Hostname: "kms-fips.us-gov-west-1.amazonaws.com",
3999 CredentialScope: credentialScope{
4000 Region: "us-gov-west-1",
4001 },
4002 },
4003 "us-gov-east-1": endpoint{},
3036 "us-gov-west-1": endpoint{}, 4004 "us-gov-west-1": endpoint{},
3037 }, 4005 },
3038 }, 4006 },
3039 "lambda": service{ 4007 "lambda": service{
3040 4008
3041 Endpoints: endpoints{ 4009 Endpoints: endpoints{
4010 "us-gov-east-1": endpoint{},
4011 "us-gov-west-1": endpoint{},
4012 },
4013 },
4014 "license-manager": service{
4015
4016 Endpoints: endpoints{
4017 "us-gov-east-1": endpoint{},
3042 "us-gov-west-1": endpoint{}, 4018 "us-gov-west-1": endpoint{},
3043 }, 4019 },
3044 }, 4020 },
3045 "logs": service{ 4021 "logs": service{
3046 4022
3047 Endpoints: endpoints{ 4023 Endpoints: endpoints{
4024 "us-gov-east-1": endpoint{},
4025 "us-gov-west-1": endpoint{},
4026 },
4027 },
4028 "mediaconvert": service{
4029
4030 Endpoints: endpoints{
3048 "us-gov-west-1": endpoint{}, 4031 "us-gov-west-1": endpoint{},
3049 }, 4032 },
3050 }, 4033 },
@@ -3061,6 +4044,7 @@ var awsusgovPartition = partition{
3061 "monitoring": service{ 4044 "monitoring": service{
3062 4045
3063 Endpoints: endpoints{ 4046 Endpoints: endpoints{
4047 "us-gov-east-1": endpoint{},
3064 "us-gov-west-1": endpoint{}, 4048 "us-gov-west-1": endpoint{},
3065 }, 4049 },
3066 }, 4050 },
@@ -3073,12 +4057,14 @@ var awsusgovPartition = partition{
3073 "rds": service{ 4057 "rds": service{
3074 4058
3075 Endpoints: endpoints{ 4059 Endpoints: endpoints{
4060 "us-gov-east-1": endpoint{},
3076 "us-gov-west-1": endpoint{}, 4061 "us-gov-west-1": endpoint{},
3077 }, 4062 },
3078 }, 4063 },
3079 "redshift": service{ 4064 "redshift": service{
3080 4065
3081 Endpoints: endpoints{ 4066 Endpoints: endpoints{
4067 "us-gov-east-1": endpoint{},
3082 "us-gov-west-1": endpoint{}, 4068 "us-gov-west-1": endpoint{},
3083 }, 4069 },
3084 }, 4070 },
@@ -3088,6 +4074,12 @@ var awsusgovPartition = partition{
3088 "us-gov-west-1": endpoint{}, 4074 "us-gov-west-1": endpoint{},
3089 }, 4075 },
3090 }, 4076 },
4077 "runtime.sagemaker": service{
4078
4079 Endpoints: endpoints{
4080 "us-gov-west-1": endpoint{},
4081 },
4082 },
3091 "s3": service{ 4083 "s3": service{
3092 Defaults: endpoint{ 4084 Defaults: endpoint{
3093 SignatureVersions: []string{"s3", "s3v4"}, 4085 SignatureVersions: []string{"s3", "s3v4"},
@@ -3099,27 +4091,70 @@ var awsusgovPartition = partition{
3099 Region: "us-gov-west-1", 4091 Region: "us-gov-west-1",
3100 }, 4092 },
3101 }, 4093 },
4094 "us-gov-east-1": endpoint{
4095 Hostname: "s3.us-gov-east-1.amazonaws.com",
4096 Protocols: []string{"http", "https"},
4097 },
3102 "us-gov-west-1": endpoint{ 4098 "us-gov-west-1": endpoint{
3103 Hostname: "s3.us-gov-west-1.amazonaws.com", 4099 Hostname: "s3.us-gov-west-1.amazonaws.com",
3104 Protocols: []string{"http", "https"}, 4100 Protocols: []string{"http", "https"},
3105 }, 4101 },
3106 }, 4102 },
3107 }, 4103 },
4104 "s3-control": service{
4105 Defaults: endpoint{
4106 Protocols: []string{"https"},
4107 SignatureVersions: []string{"s3v4"},
4108 },
4109 Endpoints: endpoints{
4110 "us-gov-east-1": endpoint{
4111 Hostname: "s3-control.us-gov-east-1.amazonaws.com",
4112 SignatureVersions: []string{"s3v4"},
4113 CredentialScope: credentialScope{
4114 Region: "us-gov-east-1",
4115 },
4116 },
4117 "us-gov-east-1-fips": endpoint{
4118 Hostname: "s3-control-fips.us-gov-east-1.amazonaws.com",
4119 SignatureVersions: []string{"s3v4"},
4120 CredentialScope: credentialScope{
4121 Region: "us-gov-east-1",
4122 },
4123 },
4124 "us-gov-west-1": endpoint{
4125 Hostname: "s3-control.us-gov-west-1.amazonaws.com",
4126 SignatureVersions: []string{"s3v4"},
4127 CredentialScope: credentialScope{
4128 Region: "us-gov-west-1",
4129 },
4130 },
4131 "us-gov-west-1-fips": endpoint{
4132 Hostname: "s3-control-fips.us-gov-west-1.amazonaws.com",
4133 SignatureVersions: []string{"s3v4"},
4134 CredentialScope: credentialScope{
4135 Region: "us-gov-west-1",
4136 },
4137 },
4138 },
4139 },
3108 "sms": service{ 4140 "sms": service{
3109 4141
3110 Endpoints: endpoints{ 4142 Endpoints: endpoints{
4143 "us-gov-east-1": endpoint{},
3111 "us-gov-west-1": endpoint{}, 4144 "us-gov-west-1": endpoint{},
3112 }, 4145 },
3113 }, 4146 },
3114 "snowball": service{ 4147 "snowball": service{
3115 4148
3116 Endpoints: endpoints{ 4149 Endpoints: endpoints{
4150 "us-gov-east-1": endpoint{},
3117 "us-gov-west-1": endpoint{}, 4151 "us-gov-west-1": endpoint{},
3118 }, 4152 },
3119 }, 4153 },
3120 "sns": service{ 4154 "sns": service{
3121 4155
3122 Endpoints: endpoints{ 4156 Endpoints: endpoints{
4157 "us-gov-east-1": endpoint{},
3123 "us-gov-west-1": endpoint{ 4158 "us-gov-west-1": endpoint{
3124 Protocols: []string{"http", "https"}, 4159 Protocols: []string{"http", "https"},
3125 }, 4160 },
@@ -3128,6 +4163,7 @@ var awsusgovPartition = partition{
3128 "sqs": service{ 4163 "sqs": service{
3129 4164
3130 Endpoints: endpoints{ 4165 Endpoints: endpoints{
4166 "us-gov-east-1": endpoint{},
3131 "us-gov-west-1": endpoint{ 4167 "us-gov-west-1": endpoint{
3132 SSLCommonName: "{region}.queue.{dnsSuffix}", 4168 SSLCommonName: "{region}.queue.{dnsSuffix}",
3133 Protocols: []string{"http", "https"}, 4169 Protocols: []string{"http", "https"},
@@ -3137,6 +4173,14 @@ var awsusgovPartition = partition{
3137 "ssm": service{ 4173 "ssm": service{
3138 4174
3139 Endpoints: endpoints{ 4175 Endpoints: endpoints{
4176 "us-gov-east-1": endpoint{},
4177 "us-gov-west-1": endpoint{},
4178 },
4179 },
4180 "states": service{
4181
4182 Endpoints: endpoints{
4183 "us-gov-east-1": endpoint{},
3140 "us-gov-west-1": endpoint{}, 4184 "us-gov-west-1": endpoint{},
3141 }, 4185 },
3142 }, 4186 },
@@ -3153,6 +4197,7 @@ var awsusgovPartition = partition{
3153 }, 4197 },
3154 }, 4198 },
3155 Endpoints: endpoints{ 4199 Endpoints: endpoints{
4200 "us-gov-east-1": endpoint{},
3156 "us-gov-west-1": endpoint{}, 4201 "us-gov-west-1": endpoint{},
3157 "us-gov-west-1-fips": endpoint{ 4202 "us-gov-west-1-fips": endpoint{
3158 Hostname: "dynamodb.us-gov-west-1.amazonaws.com", 4203 Hostname: "dynamodb.us-gov-west-1.amazonaws.com",
@@ -3165,18 +4210,21 @@ var awsusgovPartition = partition{
3165 "sts": service{ 4210 "sts": service{
3166 4211
3167 Endpoints: endpoints{ 4212 Endpoints: endpoints{
4213 "us-gov-east-1": endpoint{},
3168 "us-gov-west-1": endpoint{}, 4214 "us-gov-west-1": endpoint{},
3169 }, 4215 },
3170 }, 4216 },
3171 "swf": service{ 4217 "swf": service{
3172 4218
3173 Endpoints: endpoints{ 4219 Endpoints: endpoints{
4220 "us-gov-east-1": endpoint{},
3174 "us-gov-west-1": endpoint{}, 4221 "us-gov-west-1": endpoint{},
3175 }, 4222 },
3176 }, 4223 },
3177 "tagging": service{ 4224 "tagging": service{
3178 4225
3179 Endpoints: endpoints{ 4226 Endpoints: endpoints{
4227 "us-gov-east-1": endpoint{},
3180 "us-gov-west-1": endpoint{}, 4228 "us-gov-west-1": endpoint{},
3181 }, 4229 },
3182 }, 4230 },
@@ -3186,6 +4234,24 @@ var awsusgovPartition = partition{
3186 }, 4234 },
3187 Endpoints: endpoints{ 4235 Endpoints: endpoints{
3188 "us-gov-west-1": endpoint{}, 4236 "us-gov-west-1": endpoint{},
4237 "us-gov-west-1-fips": endpoint{
4238 Hostname: "translate-fips.us-gov-west-1.amazonaws.com",
4239 CredentialScope: credentialScope{
4240 Region: "us-gov-west-1",
4241 },
4242 },
4243 },
4244 },
4245 "waf-regional": service{
4246
4247 Endpoints: endpoints{
4248 "us-gov-west-1": endpoint{},
4249 },
4250 },
4251 "workspaces": service{
4252
4253 Endpoints: endpoints{
4254 "us-gov-west-1": endpoint{},
3189 }, 4255 },
3190 }, 4256 },
3191 }, 4257 },
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go
new file mode 100644
index 0000000..000dd79
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go
@@ -0,0 +1,141 @@
1package endpoints
2
3// Service identifiers
4//
5// Deprecated: Use client package's EndpointID value instead of these
6// ServiceIDs. These IDs are not maintained, and are out of date.
7const (
8 A4bServiceID = "a4b" // A4b.
9 AcmServiceID = "acm" // Acm.
10 AcmPcaServiceID = "acm-pca" // AcmPca.
11 ApiMediatailorServiceID = "api.mediatailor" // ApiMediatailor.
12 ApiPricingServiceID = "api.pricing" // ApiPricing.
13 ApiSagemakerServiceID = "api.sagemaker" // ApiSagemaker.
14 ApigatewayServiceID = "apigateway" // Apigateway.
15 ApplicationAutoscalingServiceID = "application-autoscaling" // ApplicationAutoscaling.
16 Appstream2ServiceID = "appstream2" // Appstream2.
17 AppsyncServiceID = "appsync" // Appsync.
18 AthenaServiceID = "athena" // Athena.
19 AutoscalingServiceID = "autoscaling" // Autoscaling.
20 AutoscalingPlansServiceID = "autoscaling-plans" // AutoscalingPlans.
21 BatchServiceID = "batch" // Batch.
22 BudgetsServiceID = "budgets" // Budgets.
23 CeServiceID = "ce" // Ce.
24 ChimeServiceID = "chime" // Chime.
25 Cloud9ServiceID = "cloud9" // Cloud9.
26 ClouddirectoryServiceID = "clouddirectory" // Clouddirectory.
27 CloudformationServiceID = "cloudformation" // Cloudformation.
28 CloudfrontServiceID = "cloudfront" // Cloudfront.
29 CloudhsmServiceID = "cloudhsm" // Cloudhsm.
30 Cloudhsmv2ServiceID = "cloudhsmv2" // Cloudhsmv2.
31 CloudsearchServiceID = "cloudsearch" // Cloudsearch.
32 CloudtrailServiceID = "cloudtrail" // Cloudtrail.
33 CodebuildServiceID = "codebuild" // Codebuild.
34 CodecommitServiceID = "codecommit" // Codecommit.
35 CodedeployServiceID = "codedeploy" // Codedeploy.
36 CodepipelineServiceID = "codepipeline" // Codepipeline.
37 CodestarServiceID = "codestar" // Codestar.
38 CognitoIdentityServiceID = "cognito-identity" // CognitoIdentity.
39 CognitoIdpServiceID = "cognito-idp" // CognitoIdp.
40 CognitoSyncServiceID = "cognito-sync" // CognitoSync.
41 ComprehendServiceID = "comprehend" // Comprehend.
42 ConfigServiceID = "config" // Config.
43 CurServiceID = "cur" // Cur.
44 DatapipelineServiceID = "datapipeline" // Datapipeline.
45 DaxServiceID = "dax" // Dax.
46 DevicefarmServiceID = "devicefarm" // Devicefarm.
47 DirectconnectServiceID = "directconnect" // Directconnect.
48 DiscoveryServiceID = "discovery" // Discovery.
49 DmsServiceID = "dms" // Dms.
50 DsServiceID = "ds" // Ds.
51 DynamodbServiceID = "dynamodb" // Dynamodb.
52 Ec2ServiceID = "ec2" // Ec2.
53 Ec2metadataServiceID = "ec2metadata" // Ec2metadata.
54 EcrServiceID = "ecr" // Ecr.
55 EcsServiceID = "ecs" // Ecs.
56 ElasticacheServiceID = "elasticache" // Elasticache.
57 ElasticbeanstalkServiceID = "elasticbeanstalk" // Elasticbeanstalk.
58 ElasticfilesystemServiceID = "elasticfilesystem" // Elasticfilesystem.
59 ElasticloadbalancingServiceID = "elasticloadbalancing" // Elasticloadbalancing.
60 ElasticmapreduceServiceID = "elasticmapreduce" // Elasticmapreduce.
61 ElastictranscoderServiceID = "elastictranscoder" // Elastictranscoder.
62 EmailServiceID = "email" // Email.
63 EntitlementMarketplaceServiceID = "entitlement.marketplace" // EntitlementMarketplace.
64 EsServiceID = "es" // Es.
65 EventsServiceID = "events" // Events.
66 FirehoseServiceID = "firehose" // Firehose.
67 FmsServiceID = "fms" // Fms.
68 GameliftServiceID = "gamelift" // Gamelift.
69 GlacierServiceID = "glacier" // Glacier.
70 GlueServiceID = "glue" // Glue.
71 GreengrassServiceID = "greengrass" // Greengrass.
72 GuarddutyServiceID = "guardduty" // Guardduty.
73 HealthServiceID = "health" // Health.
74 IamServiceID = "iam" // Iam.
75 ImportexportServiceID = "importexport" // Importexport.
76 InspectorServiceID = "inspector" // Inspector.
77 IotServiceID = "iot" // Iot.
78 IotanalyticsServiceID = "iotanalytics" // Iotanalytics.
79 KinesisServiceID = "kinesis" // Kinesis.
80 KinesisanalyticsServiceID = "kinesisanalytics" // Kinesisanalytics.
81 KinesisvideoServiceID = "kinesisvideo" // Kinesisvideo.
82 KmsServiceID = "kms" // Kms.
83 LambdaServiceID = "lambda" // Lambda.
84 LightsailServiceID = "lightsail" // Lightsail.
85 LogsServiceID = "logs" // Logs.
86 MachinelearningServiceID = "machinelearning" // Machinelearning.
87 MarketplacecommerceanalyticsServiceID = "marketplacecommerceanalytics" // Marketplacecommerceanalytics.
88 MediaconvertServiceID = "mediaconvert" // Mediaconvert.
89 MedialiveServiceID = "medialive" // Medialive.
90 MediapackageServiceID = "mediapackage" // Mediapackage.
91 MediastoreServiceID = "mediastore" // Mediastore.
92 MeteringMarketplaceServiceID = "metering.marketplace" // MeteringMarketplace.
93 MghServiceID = "mgh" // Mgh.
94 MobileanalyticsServiceID = "mobileanalytics" // Mobileanalytics.
95 ModelsLexServiceID = "models.lex" // ModelsLex.
96 MonitoringServiceID = "monitoring" // Monitoring.
97 MturkRequesterServiceID = "mturk-requester" // MturkRequester.
98 NeptuneServiceID = "neptune" // Neptune.
99 OpsworksServiceID = "opsworks" // Opsworks.
100 OpsworksCmServiceID = "opsworks-cm" // OpsworksCm.
101 OrganizationsServiceID = "organizations" // Organizations.
102 PinpointServiceID = "pinpoint" // Pinpoint.
103 PollyServiceID = "polly" // Polly.
104 RdsServiceID = "rds" // Rds.
105 RedshiftServiceID = "redshift" // Redshift.
106 RekognitionServiceID = "rekognition" // Rekognition.
107 ResourceGroupsServiceID = "resource-groups" // ResourceGroups.
108 Route53ServiceID = "route53" // Route53.
109 Route53domainsServiceID = "route53domains" // Route53domains.
110 RuntimeLexServiceID = "runtime.lex" // RuntimeLex.
111 RuntimeSagemakerServiceID = "runtime.sagemaker" // RuntimeSagemaker.
112 S3ServiceID = "s3" // S3.
113 S3ControlServiceID = "s3-control" // S3Control.
114 SagemakerServiceID = "api.sagemaker" // Sagemaker.
115 SdbServiceID = "sdb" // Sdb.
116 SecretsmanagerServiceID = "secretsmanager" // Secretsmanager.
117 ServerlessrepoServiceID = "serverlessrepo" // Serverlessrepo.
118 ServicecatalogServiceID = "servicecatalog" // Servicecatalog.
119 ServicediscoveryServiceID = "servicediscovery" // Servicediscovery.
120 ShieldServiceID = "shield" // Shield.
121 SmsServiceID = "sms" // Sms.
122 SnowballServiceID = "snowball" // Snowball.
123 SnsServiceID = "sns" // Sns.
124 SqsServiceID = "sqs" // Sqs.
125 SsmServiceID = "ssm" // Ssm.
126 StatesServiceID = "states" // States.
127 StoragegatewayServiceID = "storagegateway" // Storagegateway.
128 StreamsDynamodbServiceID = "streams.dynamodb" // StreamsDynamodb.
129 StsServiceID = "sts" // Sts.
130 SupportServiceID = "support" // Support.
131 SwfServiceID = "swf" // Swf.
132 TaggingServiceID = "tagging" // Tagging.
133 TransferServiceID = "transfer" // Transfer.
134 TranslateServiceID = "translate" // Translate.
135 WafServiceID = "waf" // Waf.
136 WafRegionalServiceID = "waf-regional" // WafRegional.
137 WorkdocsServiceID = "workdocs" // Workdocs.
138 WorkmailServiceID = "workmail" // Workmail.
139 WorkspacesServiceID = "workspaces" // Workspaces.
140 XrayServiceID = "xray" // Xray.
141)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go
index e29c095..f82babf 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go
@@ -35,7 +35,7 @@ type Options struct {
35 // 35 //
36 // If resolving an endpoint on the partition list the provided region will 36 // If resolving an endpoint on the partition list the provided region will
37 // be used to determine which partition's domain name pattern to the service 37 // be used to determine which partition's domain name pattern to the service
38 // endpoint ID with. If both the service and region are unkonwn and resolving 38 // endpoint ID with. If both the service and region are unknown and resolving
39 // the endpoint on partition list an UnknownEndpointError error will be returned. 39 // the endpoint on partition list an UnknownEndpointError error will be returned.
40 // 40 //
41 // If resolving and endpoint on a partition specific resolver that partition's 41 // If resolving and endpoint on a partition specific resolver that partition's
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go
index 05e92df..0fdfcc5 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go
@@ -16,6 +16,10 @@ import (
16type CodeGenOptions struct { 16type CodeGenOptions struct {
17 // Options for how the model will be decoded. 17 // Options for how the model will be decoded.
18 DecodeModelOptions DecodeModelOptions 18 DecodeModelOptions DecodeModelOptions
19
20 // Disables code generation of the service endpoint prefix IDs defined in
21 // the model.
22 DisableGenerateServiceIDs bool
19} 23}
20 24
21// Set combines all of the option functions together 25// Set combines all of the option functions together
@@ -39,8 +43,16 @@ func CodeGenModel(modelFile io.Reader, outFile io.Writer, optFns ...func(*CodeGe
39 return err 43 return err
40 } 44 }
41 45
46 v := struct {
47 Resolver
48 CodeGenOptions
49 }{
50 Resolver: resolver,
51 CodeGenOptions: opts,
52 }
53
42 tmpl := template.Must(template.New("tmpl").Funcs(funcMap).Parse(v3Tmpl)) 54 tmpl := template.Must(template.New("tmpl").Funcs(funcMap).Parse(v3Tmpl))
43 if err := tmpl.ExecuteTemplate(outFile, "defaults", resolver); err != nil { 55 if err := tmpl.ExecuteTemplate(outFile, "defaults", v); err != nil {
44 return fmt.Errorf("failed to execute template, %v", err) 56 return fmt.Errorf("failed to execute template, %v", err)
45 } 57 }
46 58
@@ -166,15 +178,17 @@ import (
166 "regexp" 178 "regexp"
167) 179)
168 180
169 {{ template "partition consts" . }} 181 {{ template "partition consts" $.Resolver }}
170 182
171 {{ range $_, $partition := . }} 183 {{ range $_, $partition := $.Resolver }}
172 {{ template "partition region consts" $partition }} 184 {{ template "partition region consts" $partition }}
173 {{ end }} 185 {{ end }}
174 186
175 {{ template "service consts" . }} 187 {{ if not $.DisableGenerateServiceIDs -}}
188 {{ template "service consts" $.Resolver }}
189 {{- end }}
176 190
177 {{ template "endpoint resolvers" . }} 191 {{ template "endpoint resolvers" $.Resolver }}
178{{- end }} 192{{- end }}
179 193
180{{ define "partition consts" }} 194{{ define "partition consts" }}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/errors.go b/vendor/github.com/aws/aws-sdk-go/aws/errors.go
index 5766361..fa06f7a 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/errors.go
@@ -5,13 +5,9 @@ import "github.com/aws/aws-sdk-go/aws/awserr"
5var ( 5var (
6 // ErrMissingRegion is an error that is returned if region configuration is 6 // ErrMissingRegion is an error that is returned if region configuration is
7 // not found. 7 // not found.
8 //
9 // @readonly
10 ErrMissingRegion = awserr.New("MissingRegion", "could not find region configuration", nil) 8 ErrMissingRegion = awserr.New("MissingRegion", "could not find region configuration", nil)
11 9
12 // ErrMissingEndpoint is an error that is returned if an endpoint cannot be 10 // ErrMissingEndpoint is an error that is returned if an endpoint cannot be
13 // resolved for a service. 11 // resolved for a service.
14 //
15 // @readonly
16 ErrMissingEndpoint = awserr.New("MissingEndpoint", "'Endpoint' configuration is required for this service", nil) 12 ErrMissingEndpoint = awserr.New("MissingEndpoint", "'Endpoint' configuration is required for this service", nil)
17) 13)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go
index 605a72d..8ef8548 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go
@@ -19,6 +19,7 @@ type Handlers struct {
19 UnmarshalError HandlerList 19 UnmarshalError HandlerList
20 Retry HandlerList 20 Retry HandlerList
21 AfterRetry HandlerList 21 AfterRetry HandlerList
22 CompleteAttempt HandlerList
22 Complete HandlerList 23 Complete HandlerList
23} 24}
24 25
@@ -36,6 +37,7 @@ func (h *Handlers) Copy() Handlers {
36 UnmarshalMeta: h.UnmarshalMeta.copy(), 37 UnmarshalMeta: h.UnmarshalMeta.copy(),
37 Retry: h.Retry.copy(), 38 Retry: h.Retry.copy(),
38 AfterRetry: h.AfterRetry.copy(), 39 AfterRetry: h.AfterRetry.copy(),
40 CompleteAttempt: h.CompleteAttempt.copy(),
39 Complete: h.Complete.copy(), 41 Complete: h.Complete.copy(),
40 } 42 }
41} 43}
@@ -53,6 +55,7 @@ func (h *Handlers) Clear() {
53 h.ValidateResponse.Clear() 55 h.ValidateResponse.Clear()
54 h.Retry.Clear() 56 h.Retry.Clear()
55 h.AfterRetry.Clear() 57 h.AfterRetry.Clear()
58 h.CompleteAttempt.Clear()
56 h.Complete.Clear() 59 h.Complete.Clear()
57} 60}
58 61
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go
index 75f0fe0..8f2eb3e 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go
@@ -4,7 +4,6 @@ import (
4 "bytes" 4 "bytes"
5 "fmt" 5 "fmt"
6 "io" 6 "io"
7 "net"
8 "net/http" 7 "net/http"
9 "net/url" 8 "net/url"
10 "reflect" 9 "reflect"
@@ -122,7 +121,6 @@ func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers,
122 Handlers: handlers.Copy(), 121 Handlers: handlers.Copy(),
123 122
124 Retryer: retryer, 123 Retryer: retryer,
125 AttemptTime: time.Now(),
126 Time: time.Now(), 124 Time: time.Now(),
127 ExpireTime: 0, 125 ExpireTime: 0,
128 Operation: operation, 126 Operation: operation,
@@ -266,7 +264,9 @@ func (r *Request) SetReaderBody(reader io.ReadSeeker) {
266} 264}
267 265
268// Presign returns the request's signed URL. Error will be returned 266// Presign returns the request's signed URL. Error will be returned
269// if the signing fails. 267// if the signing fails. The expire parameter is only used for presigned Amazon
268// S3 API requests. All other AWS services will use a fixed expiration
269// time of 15 minutes.
270// 270//
271// It is invalid to create a presigned URL with a expire duration 0 or less. An 271// It is invalid to create a presigned URL with a expire duration 0 or less. An
272// error is returned if expire duration is 0 or less. 272// error is returned if expire duration is 0 or less.
@@ -283,7 +283,9 @@ func (r *Request) Presign(expire time.Duration) (string, error) {
283} 283}
284 284
285// PresignRequest behaves just like presign, with the addition of returning a 285// PresignRequest behaves just like presign, with the addition of returning a
286// set of headers that were signed. 286// set of headers that were signed. The expire parameter is only used for
287// presigned Amazon S3 API requests. All other AWS services will use a fixed
288// expiration time of 15 minutes.
287// 289//
288// It is invalid to create a presigned URL with a expire duration 0 or less. An 290// It is invalid to create a presigned URL with a expire duration 0 or less. An
289// error is returned if expire duration is 0 or less. 291// error is returned if expire duration is 0 or less.
@@ -462,80 +464,78 @@ func (r *Request) Send() error {
462 r.Handlers.Complete.Run(r) 464 r.Handlers.Complete.Run(r)
463 }() 465 }()
464 466
467 if err := r.Error; err != nil {
468 return err
469 }
470
465 for { 471 for {
472 r.Error = nil
466 r.AttemptTime = time.Now() 473 r.AttemptTime = time.Now()
467 if aws.BoolValue(r.Retryable) {
468 if r.Config.LogLevel.Matches(aws.LogDebugWithRequestRetries) {
469 r.Config.Logger.Log(fmt.Sprintf("DEBUG: Retrying Request %s/%s, attempt %d",
470 r.ClientInfo.ServiceName, r.Operation.Name, r.RetryCount))
471 }
472
473 // The previous http.Request will have a reference to the r.Body
474 // and the HTTP Client's Transport may still be reading from
475 // the request's body even though the Client's Do returned.
476 r.HTTPRequest = copyHTTPRequest(r.HTTPRequest, nil)
477 r.ResetBody()
478
479 // Closing response body to ensure that no response body is leaked
480 // between retry attempts.
481 if r.HTTPResponse != nil && r.HTTPResponse.Body != nil {
482 r.HTTPResponse.Body.Close()
483 }
484 }
485 474
486 r.Sign() 475 if err := r.Sign(); err != nil {
487 if r.Error != nil { 476 debugLogReqError(r, "Sign Request", false, err)
488 return r.Error 477 return err
489 } 478 }
490 479
491 r.Retryable = nil 480 if err := r.sendRequest(); err == nil {
492 481 return nil
493 r.Handlers.Send.Run(r) 482 } else if !shouldRetryCancel(r.Error) {
494 if r.Error != nil { 483 return err
495 if !shouldRetryCancel(r) { 484 } else {
496 return r.Error
497 }
498
499 err := r.Error
500 r.Handlers.Retry.Run(r) 485 r.Handlers.Retry.Run(r)
501 r.Handlers.AfterRetry.Run(r) 486 r.Handlers.AfterRetry.Run(r)
502 if r.Error != nil {
503 debugLogReqError(r, "Send Request", false, err)
504 return r.Error
505 }
506 debugLogReqError(r, "Send Request", true, err)
507 continue
508 }
509 r.Handlers.UnmarshalMeta.Run(r)
510 r.Handlers.ValidateResponse.Run(r)
511 if r.Error != nil {
512 r.Handlers.UnmarshalError.Run(r)
513 err := r.Error
514 487
515 r.Handlers.Retry.Run(r) 488 if r.Error != nil || !aws.BoolValue(r.Retryable) {
516 r.Handlers.AfterRetry.Run(r)
517 if r.Error != nil {
518 debugLogReqError(r, "Validate Response", false, err)
519 return r.Error 489 return r.Error
520 } 490 }
521 debugLogReqError(r, "Validate Response", true, err)
522 continue
523 }
524 491
525 r.Handlers.Unmarshal.Run(r) 492 r.prepareRetry()
526 if r.Error != nil {
527 err := r.Error
528 r.Handlers.Retry.Run(r)
529 r.Handlers.AfterRetry.Run(r)
530 if r.Error != nil {
531 debugLogReqError(r, "Unmarshal Response", false, err)
532 return r.Error
533 }
534 debugLogReqError(r, "Unmarshal Response", true, err)
535 continue 493 continue
536 } 494 }
495 }
496}
497
498func (r *Request) prepareRetry() {
499 if r.Config.LogLevel.Matches(aws.LogDebugWithRequestRetries) {
500 r.Config.Logger.Log(fmt.Sprintf("DEBUG: Retrying Request %s/%s, attempt %d",
501 r.ClientInfo.ServiceName, r.Operation.Name, r.RetryCount))
502 }
503
504 // The previous http.Request will have a reference to the r.Body
505 // and the HTTP Client's Transport may still be reading from
506 // the request's body even though the Client's Do returned.
507 r.HTTPRequest = copyHTTPRequest(r.HTTPRequest, nil)
508 r.ResetBody()
509
510 // Closing response body to ensure that no response body is leaked
511 // between retry attempts.
512 if r.HTTPResponse != nil && r.HTTPResponse.Body != nil {
513 r.HTTPResponse.Body.Close()
514 }
515}
516
517func (r *Request) sendRequest() (sendErr error) {
518 defer r.Handlers.CompleteAttempt.Run(r)
519
520 r.Retryable = nil
521 r.Handlers.Send.Run(r)
522 if r.Error != nil {
523 debugLogReqError(r, "Send Request", r.WillRetry(), r.Error)
524 return r.Error
525 }
537 526
538 break 527 r.Handlers.UnmarshalMeta.Run(r)
528 r.Handlers.ValidateResponse.Run(r)
529 if r.Error != nil {
530 r.Handlers.UnmarshalError.Run(r)
531 debugLogReqError(r, "Validate Response", r.WillRetry(), r.Error)
532 return r.Error
533 }
534
535 r.Handlers.Unmarshal.Run(r)
536 if r.Error != nil {
537 debugLogReqError(r, "Unmarshal Response", r.WillRetry(), r.Error)
538 return r.Error
539 } 539 }
540 540
541 return nil 541 return nil
@@ -561,30 +561,46 @@ func AddToUserAgent(r *Request, s string) {
561 r.HTTPRequest.Header.Set("User-Agent", s) 561 r.HTTPRequest.Header.Set("User-Agent", s)
562} 562}
563 563
564func shouldRetryCancel(r *Request) bool { 564type temporary interface {
565 awsErr, ok := r.Error.(awserr.Error) 565 Temporary() bool
566 timeoutErr := false 566}
567 errStr := r.Error.Error() 567
568 if ok { 568func shouldRetryCancel(err error) bool {
569 if awsErr.Code() == CanceledErrorCode { 569 switch err := err.(type) {
570 case awserr.Error:
571 if err.Code() == CanceledErrorCode {
570 return false 572 return false
571 } 573 }
572 err := awsErr.OrigErr() 574 return shouldRetryCancel(err.OrigErr())
573 netErr, netOK := err.(net.Error) 575 case *url.Error:
574 timeoutErr = netOK && netErr.Temporary() 576 if strings.Contains(err.Error(), "connection refused") {
575 if urlErr, ok := err.(*url.Error); !timeoutErr && ok { 577 // Refused connections should be retried as the service may not yet
576 errStr = urlErr.Err.Error() 578 // be running on the port. Go TCP dial considers refused
579 // connections as not temporary.
580 return true
581 }
582 // *url.Error only implements Temporary after golang 1.6 but since
583 // url.Error only wraps the error:
584 return shouldRetryCancel(err.Err)
585 case temporary:
586 // If the error is temporary, we want to allow continuation of the
587 // retry process
588 return err.Temporary()
589 case nil:
590 // `awserr.Error.OrigErr()` can be nil, meaning there was an error but
591 // because we don't know the cause, it is marked as retriable. See
592 // TestRequest4xxUnretryable for an example.
593 return true
594 default:
595 switch err.Error() {
596 case "net/http: request canceled",
597 "net/http: request canceled while waiting for connection":
598 // known 1.5 error case when an http request is cancelled
599 return false
577 } 600 }
601 // here we don't know the error; so we allow a retry.
602 return true
578 } 603 }
579
580 // There can be two types of canceled errors here.
581 // The first being a net.Error and the other being an error.
582 // If the request was timed out, we want to continue the retry
583 // process. Otherwise, return the canceled error.
584 return timeoutErr ||
585 (errStr != "net/http: request canceled" &&
586 errStr != "net/http: request canceled while waiting for connection")
587
588} 604}
589 605
590// SanitizeHostForHeader removes default port from host and updates request.Host 606// SanitizeHostForHeader removes default port from host and updates request.Host
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go b/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go
index 7d52702..d0aa54c 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go
@@ -38,8 +38,10 @@ var throttleCodes = map[string]struct{}{
38 "ThrottlingException": {}, 38 "ThrottlingException": {},
39 "RequestLimitExceeded": {}, 39 "RequestLimitExceeded": {},
40 "RequestThrottled": {}, 40 "RequestThrottled": {},
41 "RequestThrottledException": {},
41 "TooManyRequestsException": {}, // Lambda functions 42 "TooManyRequestsException": {}, // Lambda functions
42 "PriorRequestNotComplete": {}, // Route53 43 "PriorRequestNotComplete": {}, // Route53
44 "TransactionInProgressException": {},
43} 45}
44 46
45// credsExpiredCodes is a collection of error codes which signify the credentials 47// credsExpiredCodes is a collection of error codes which signify the credentials
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go b/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go
index 4012462..8630683 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go
@@ -17,6 +17,12 @@ const (
17 ParamMinValueErrCode = "ParamMinValueError" 17 ParamMinValueErrCode = "ParamMinValueError"
18 // ParamMinLenErrCode is the error code for fields without enough elements. 18 // ParamMinLenErrCode is the error code for fields without enough elements.
19 ParamMinLenErrCode = "ParamMinLenError" 19 ParamMinLenErrCode = "ParamMinLenError"
20 // ParamMaxLenErrCode is the error code for value being too long.
21 ParamMaxLenErrCode = "ParamMaxLenError"
22
23 // ParamFormatErrCode is the error code for a field with invalid
24 // format or characters.
25 ParamFormatErrCode = "ParamFormatInvalidError"
20) 26)
21 27
22// Validator provides a way for types to perform validation logic on their 28// Validator provides a way for types to perform validation logic on their
@@ -232,3 +238,49 @@ func NewErrParamMinLen(field string, min int) *ErrParamMinLen {
232func (e *ErrParamMinLen) MinLen() int { 238func (e *ErrParamMinLen) MinLen() int {
233 return e.min 239 return e.min
234} 240}
241
242// An ErrParamMaxLen represents a maximum length parameter error.
243type ErrParamMaxLen struct {
244 errInvalidParam
245 max int
246}
247
248// NewErrParamMaxLen creates a new maximum length parameter error.
249func NewErrParamMaxLen(field string, max int, value string) *ErrParamMaxLen {
250 return &ErrParamMaxLen{
251 errInvalidParam: errInvalidParam{
252 code: ParamMaxLenErrCode,
253 field: field,
254 msg: fmt.Sprintf("maximum size of %v, %v", max, value),
255 },
256 max: max,
257 }
258}
259
260// MaxLen returns the field's required minimum length.
261func (e *ErrParamMaxLen) MaxLen() int {
262 return e.max
263}
264
265// An ErrParamFormat represents a invalid format parameter error.
266type ErrParamFormat struct {
267 errInvalidParam
268 format string
269}
270
271// NewErrParamFormat creates a new invalid format parameter error.
272func NewErrParamFormat(field string, format, value string) *ErrParamFormat {
273 return &ErrParamFormat{
274 errInvalidParam: errInvalidParam{
275 code: ParamFormatErrCode,
276 field: field,
277 msg: fmt.Sprintf("format %v, %v", format, value),
278 },
279 format: format,
280 }
281}
282
283// Format returns the field's required format.
284func (e *ErrParamFormat) Format() string {
285 return e.format
286}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go
new file mode 100644
index 0000000..ea9ebb6
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go
@@ -0,0 +1,26 @@
1// +build go1.7
2
3package session
4
5import (
6 "net"
7 "net/http"
8 "time"
9)
10
11// Transport that should be used when a custom CA bundle is specified with the
12// SDK.
13func getCABundleTransport() *http.Transport {
14 return &http.Transport{
15 Proxy: http.ProxyFromEnvironment,
16 DialContext: (&net.Dialer{
17 Timeout: 30 * time.Second,
18 KeepAlive: 30 * time.Second,
19 DualStack: true,
20 }).DialContext,
21 MaxIdleConns: 100,
22 IdleConnTimeout: 90 * time.Second,
23 TLSHandshakeTimeout: 10 * time.Second,
24 ExpectContinueTimeout: 1 * time.Second,
25 }
26}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go
new file mode 100644
index 0000000..fec39df
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go
@@ -0,0 +1,22 @@
1// +build !go1.6,go1.5
2
3package session
4
5import (
6 "net"
7 "net/http"
8 "time"
9)
10
11// Transport that should be used when a custom CA bundle is specified with the
12// SDK.
13func getCABundleTransport() *http.Transport {
14 return &http.Transport{
15 Proxy: http.ProxyFromEnvironment,
16 Dial: (&net.Dialer{
17 Timeout: 30 * time.Second,
18 KeepAlive: 30 * time.Second,
19 }).Dial,
20 TLSHandshakeTimeout: 10 * time.Second,
21 }
22}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go
new file mode 100644
index 0000000..1c5a539
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go
@@ -0,0 +1,23 @@
1// +build !go1.7,go1.6
2
3package session
4
5import (
6 "net"
7 "net/http"
8 "time"
9)
10
11// Transport that should be used when a custom CA bundle is specified with the
12// SDK.
13func getCABundleTransport() *http.Transport {
14 return &http.Transport{
15 Proxy: http.ProxyFromEnvironment,
16 Dial: (&net.Dialer{
17 Timeout: 30 * time.Second,
18 KeepAlive: 30 * time.Second,
19 }).Dial,
20 TLSHandshakeTimeout: 10 * time.Second,
21 ExpectContinueTimeout: 1 * time.Second,
22 }
23}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go b/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
index 98d420f..38a7b05 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
@@ -99,7 +99,7 @@ handler logs every request and its payload made by a service client:
99 99
100 sess.Handlers.Send.PushFront(func(r *request.Request) { 100 sess.Handlers.Send.PushFront(func(r *request.Request) {
101 // Log every request made and its payload 101 // Log every request made and its payload
102 logger.Println("Request: %s/%s, Payload: %s", 102 logger.Printf("Request: %s/%s, Payload: %s",
103 r.ClientInfo.ServiceName, r.Operation, r.Params) 103 r.ClientInfo.ServiceName, r.Operation, r.Params)
104 }) 104 })
105 105
@@ -183,7 +183,7 @@ be returned when creating the session.
183 // from assumed role. 183 // from assumed role.
184 svc := s3.New(sess) 184 svc := s3.New(sess)
185 185
186To setup assume role outside of a session see the stscrds.AssumeRoleProvider 186To setup assume role outside of a session see the stscreds.AssumeRoleProvider
187documentation. 187documentation.
188 188
189Environment Variables 189Environment Variables
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
index 82e04d7..e3959b9 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
@@ -4,6 +4,7 @@ import (
4 "os" 4 "os"
5 "strconv" 5 "strconv"
6 6
7 "github.com/aws/aws-sdk-go/aws"
7 "github.com/aws/aws-sdk-go/aws/credentials" 8 "github.com/aws/aws-sdk-go/aws/credentials"
8 "github.com/aws/aws-sdk-go/aws/defaults" 9 "github.com/aws/aws-sdk-go/aws/defaults"
9) 10)
@@ -79,7 +80,7 @@ type envConfig struct {
79 // AWS_CONFIG_FILE=$HOME/my_shared_config 80 // AWS_CONFIG_FILE=$HOME/my_shared_config
80 SharedConfigFile string 81 SharedConfigFile string
81 82
82 // Sets the path to a custom Credentials Authroity (CA) Bundle PEM file 83 // Sets the path to a custom Credentials Authority (CA) Bundle PEM file
83 // that the SDK will use instead of the system's root CA bundle. 84 // that the SDK will use instead of the system's root CA bundle.
84 // Only use this if you want to configure the SDK to use a custom set 85 // Only use this if you want to configure the SDK to use a custom set
85 // of CAs. 86 // of CAs.
@@ -101,6 +102,12 @@ type envConfig struct {
101 CSMEnabled bool 102 CSMEnabled bool
102 CSMPort string 103 CSMPort string
103 CSMClientID string 104 CSMClientID string
105
106 enableEndpointDiscovery string
107 // Enables endpoint discovery via environment variables.
108 //
109 // AWS_ENABLE_ENDPOINT_DISCOVERY=true
110 EnableEndpointDiscovery *bool
104} 111}
105 112
106var ( 113var (
@@ -125,6 +132,10 @@ var (
125 "AWS_SESSION_TOKEN", 132 "AWS_SESSION_TOKEN",
126 } 133 }
127 134
135 enableEndpointDiscoveryEnvKey = []string{
136 "AWS_ENABLE_ENDPOINT_DISCOVERY",
137 }
138
128 regionEnvKeys = []string{ 139 regionEnvKeys = []string{
129 "AWS_REGION", 140 "AWS_REGION",
130 "AWS_DEFAULT_REGION", // Only read if AWS_SDK_LOAD_CONFIG is also set 141 "AWS_DEFAULT_REGION", // Only read if AWS_SDK_LOAD_CONFIG is also set
@@ -194,6 +205,12 @@ func envConfigLoad(enableSharedConfig bool) envConfig {
194 setFromEnvVal(&cfg.Region, regionKeys) 205 setFromEnvVal(&cfg.Region, regionKeys)
195 setFromEnvVal(&cfg.Profile, profileKeys) 206 setFromEnvVal(&cfg.Profile, profileKeys)
196 207
208 // endpoint discovery is in reference to it being enabled.
209 setFromEnvVal(&cfg.enableEndpointDiscovery, enableEndpointDiscoveryEnvKey)
210 if len(cfg.enableEndpointDiscovery) > 0 {
211 cfg.EnableEndpointDiscovery = aws.Bool(cfg.enableEndpointDiscovery != "false")
212 }
213
197 setFromEnvVal(&cfg.SharedCredentialsFile, sharedCredsFileEnvKey) 214 setFromEnvVal(&cfg.SharedCredentialsFile, sharedCredsFileEnvKey)
198 setFromEnvVal(&cfg.SharedConfigFile, sharedConfigFileEnvKey) 215 setFromEnvVal(&cfg.SharedConfigFile, sharedConfigFileEnvKey)
199 216
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go
index 51f3055..be4b5f0 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go
@@ -14,13 +14,32 @@ import (
14 "github.com/aws/aws-sdk-go/aws/client" 14 "github.com/aws/aws-sdk-go/aws/client"
15 "github.com/aws/aws-sdk-go/aws/corehandlers" 15 "github.com/aws/aws-sdk-go/aws/corehandlers"
16 "github.com/aws/aws-sdk-go/aws/credentials" 16 "github.com/aws/aws-sdk-go/aws/credentials"
17 "github.com/aws/aws-sdk-go/aws/credentials/processcreds"
17 "github.com/aws/aws-sdk-go/aws/credentials/stscreds" 18 "github.com/aws/aws-sdk-go/aws/credentials/stscreds"
18 "github.com/aws/aws-sdk-go/aws/csm" 19 "github.com/aws/aws-sdk-go/aws/csm"
19 "github.com/aws/aws-sdk-go/aws/defaults" 20 "github.com/aws/aws-sdk-go/aws/defaults"
20 "github.com/aws/aws-sdk-go/aws/endpoints" 21 "github.com/aws/aws-sdk-go/aws/endpoints"
21 "github.com/aws/aws-sdk-go/aws/request" 22 "github.com/aws/aws-sdk-go/aws/request"
23 "github.com/aws/aws-sdk-go/internal/shareddefaults"
22) 24)
23 25
26const (
27 // ErrCodeSharedConfig represents an error that occurs in the shared
28 // configuration logic
29 ErrCodeSharedConfig = "SharedConfigErr"
30)
31
32// ErrSharedConfigSourceCollision will be returned if a section contains both
33// source_profile and credential_source
34var ErrSharedConfigSourceCollision = awserr.New(ErrCodeSharedConfig, "only source profile or credential source can be specified, not both", nil)
35
36// ErrSharedConfigECSContainerEnvVarEmpty will be returned if the environment
37// variables are empty and Environment was set as the credential source
38var ErrSharedConfigECSContainerEnvVarEmpty = awserr.New(ErrCodeSharedConfig, "EcsContainer was specified as the credential_source, but 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' was not set", nil)
39
40// ErrSharedConfigInvalidCredSource will be returned if an invalid credential source was provided
41var ErrSharedConfigInvalidCredSource = awserr.New(ErrCodeSharedConfig, "credential source values must be EcsContainer, Ec2InstanceMetadata, or Environment", nil)
42
24// A Session provides a central location to create service clients from and 43// A Session provides a central location to create service clients from and
25// store configurations and request handlers for those services. 44// store configurations and request handlers for those services.
26// 45//
@@ -388,7 +407,10 @@ func loadCustomCABundle(s *Session, bundle io.Reader) error {
388 } 407 }
389 } 408 }
390 if t == nil { 409 if t == nil {
391 t = &http.Transport{} 410 // Nil transport implies `http.DefaultTransport` should be used. Since
411 // the SDK cannot modify, nor copy the `DefaultTransport` specifying
412 // the values the next closest behavior.
413 t = getCABundleTransport()
392 } 414 }
393 415
394 p, err := loadCertPool(bundle) 416 p, err := loadCertPool(bundle)
@@ -434,8 +456,67 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg share
434 } 456 }
435 } 457 }
436 458
459 if cfg.EnableEndpointDiscovery == nil {
460 if envCfg.EnableEndpointDiscovery != nil {
461 cfg.WithEndpointDiscovery(*envCfg.EnableEndpointDiscovery)
462 } else if envCfg.EnableSharedConfig && sharedCfg.EnableEndpointDiscovery != nil {
463 cfg.WithEndpointDiscovery(*sharedCfg.EnableEndpointDiscovery)
464 }
465 }
466
437 // Configure credentials if not already set 467 // Configure credentials if not already set
438 if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil { 468 if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil {
469
470 // inspect the profile to see if a credential source has been specified.
471 if envCfg.EnableSharedConfig && len(sharedCfg.AssumeRole.CredentialSource) > 0 {
472
473 // if both credential_source and source_profile have been set, return an error
474 // as this is undefined behavior.
475 if len(sharedCfg.AssumeRole.SourceProfile) > 0 {
476 return ErrSharedConfigSourceCollision
477 }
478
479 // valid credential source values
480 const (
481 credSourceEc2Metadata = "Ec2InstanceMetadata"
482 credSourceEnvironment = "Environment"
483 credSourceECSContainer = "EcsContainer"
484 )
485
486 switch sharedCfg.AssumeRole.CredentialSource {
487 case credSourceEc2Metadata:
488 cfgCp := *cfg
489 p := defaults.RemoteCredProvider(cfgCp, handlers)
490 cfgCp.Credentials = credentials.NewCredentials(p)
491
492 if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil {
493 // AssumeRole Token provider is required if doing Assume Role
494 // with MFA.
495 return AssumeRoleTokenProviderNotSetError{}
496 }
497
498 cfg.Credentials = assumeRoleCredentials(cfgCp, handlers, sharedCfg, sessOpts)
499 case credSourceEnvironment:
500 cfg.Credentials = credentials.NewStaticCredentialsFromCreds(
501 envCfg.Creds,
502 )
503 case credSourceECSContainer:
504 if len(os.Getenv(shareddefaults.ECSCredsProviderEnvVar)) == 0 {
505 return ErrSharedConfigECSContainerEnvVarEmpty
506 }
507
508 cfgCp := *cfg
509 p := defaults.RemoteCredProvider(cfgCp, handlers)
510 creds := credentials.NewCredentials(p)
511
512 cfg.Credentials = creds
513 default:
514 return ErrSharedConfigInvalidCredSource
515 }
516
517 return nil
518 }
519
439 if len(envCfg.Creds.AccessKeyID) > 0 { 520 if len(envCfg.Creds.AccessKeyID) > 0 {
440 cfg.Credentials = credentials.NewStaticCredentialsFromCreds( 521 cfg.Credentials = credentials.NewStaticCredentialsFromCreds(
441 envCfg.Creds, 522 envCfg.Creds,
@@ -445,36 +526,22 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg share
445 cfgCp.Credentials = credentials.NewStaticCredentialsFromCreds( 526 cfgCp.Credentials = credentials.NewStaticCredentialsFromCreds(
446 sharedCfg.AssumeRoleSource.Creds, 527 sharedCfg.AssumeRoleSource.Creds,
447 ) 528 )
529
448 if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil { 530 if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil {
449 // AssumeRole Token provider is required if doing Assume Role 531 // AssumeRole Token provider is required if doing Assume Role
450 // with MFA. 532 // with MFA.
451 return AssumeRoleTokenProviderNotSetError{} 533 return AssumeRoleTokenProviderNotSetError{}
452 } 534 }
453 cfg.Credentials = stscreds.NewCredentials( 535
454 &Session{ 536 cfg.Credentials = assumeRoleCredentials(cfgCp, handlers, sharedCfg, sessOpts)
455 Config: &cfgCp,
456 Handlers: handlers.Copy(),
457 },
458 sharedCfg.AssumeRole.RoleARN,
459 func(opt *stscreds.AssumeRoleProvider) {
460 opt.RoleSessionName = sharedCfg.AssumeRole.RoleSessionName
461
462 // Assume role with external ID
463 if len(sharedCfg.AssumeRole.ExternalID) > 0 {
464 opt.ExternalID = aws.String(sharedCfg.AssumeRole.ExternalID)
465 }
466
467 // Assume role with MFA
468 if len(sharedCfg.AssumeRole.MFASerial) > 0 {
469 opt.SerialNumber = aws.String(sharedCfg.AssumeRole.MFASerial)
470 opt.TokenProvider = sessOpts.AssumeRoleTokenProvider
471 }
472 },
473 )
474 } else if len(sharedCfg.Creds.AccessKeyID) > 0 { 537 } else if len(sharedCfg.Creds.AccessKeyID) > 0 {
475 cfg.Credentials = credentials.NewStaticCredentialsFromCreds( 538 cfg.Credentials = credentials.NewStaticCredentialsFromCreds(
476 sharedCfg.Creds, 539 sharedCfg.Creds,
477 ) 540 )
541 } else if len(sharedCfg.CredentialProcess) > 0 {
542 cfg.Credentials = processcreds.NewCredentials(
543 sharedCfg.CredentialProcess,
544 )
478 } else { 545 } else {
479 // Fallback to default credentials provider, include mock errors 546 // Fallback to default credentials provider, include mock errors
480 // for the credential chain so user can identify why credentials 547 // for the credential chain so user can identify why credentials
@@ -493,6 +560,30 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg share
493 return nil 560 return nil
494} 561}
495 562
563func assumeRoleCredentials(cfg aws.Config, handlers request.Handlers, sharedCfg sharedConfig, sessOpts Options) *credentials.Credentials {
564 return stscreds.NewCredentials(
565 &Session{
566 Config: &cfg,
567 Handlers: handlers.Copy(),
568 },
569 sharedCfg.AssumeRole.RoleARN,
570 func(opt *stscreds.AssumeRoleProvider) {
571 opt.RoleSessionName = sharedCfg.AssumeRole.RoleSessionName
572
573 // Assume role with external ID
574 if len(sharedCfg.AssumeRole.ExternalID) > 0 {
575 opt.ExternalID = aws.String(sharedCfg.AssumeRole.ExternalID)
576 }
577
578 // Assume role with MFA
579 if len(sharedCfg.AssumeRole.MFASerial) > 0 {
580 opt.SerialNumber = aws.String(sharedCfg.AssumeRole.MFASerial)
581 opt.TokenProvider = sessOpts.AssumeRoleTokenProvider
582 }
583 },
584 )
585}
586
496// AssumeRoleTokenProviderNotSetError is an error returned when creating a session when the 587// AssumeRoleTokenProviderNotSetError is an error returned when creating a session when the
497// MFAToken option is not set when shared config is configured load assume a 588// MFAToken option is not set when shared config is configured load assume a
498// role with an MFA token. 589// role with an MFA token.
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go
index 09c8e5b..7cb4402 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go
@@ -2,11 +2,11 @@ package session
2 2
3import ( 3import (
4 "fmt" 4 "fmt"
5 "io/ioutil"
6 5
7 "github.com/aws/aws-sdk-go/aws/awserr" 6 "github.com/aws/aws-sdk-go/aws/awserr"
8 "github.com/aws/aws-sdk-go/aws/credentials" 7 "github.com/aws/aws-sdk-go/aws/credentials"
9 "github.com/go-ini/ini" 8
9 "github.com/aws/aws-sdk-go/internal/ini"
10) 10)
11 11
12const ( 12const (
@@ -16,15 +16,21 @@ const (
16 sessionTokenKey = `aws_session_token` // optional 16 sessionTokenKey = `aws_session_token` // optional
17 17
18 // Assume Role Credentials group 18 // Assume Role Credentials group
19 roleArnKey = `role_arn` // group required 19 roleArnKey = `role_arn` // group required
20 sourceProfileKey = `source_profile` // group required 20 sourceProfileKey = `source_profile` // group required (or credential_source)
21 externalIDKey = `external_id` // optional 21 credentialSourceKey = `credential_source` // group required (or source_profile)
22 mfaSerialKey = `mfa_serial` // optional 22 externalIDKey = `external_id` // optional
23 roleSessionNameKey = `role_session_name` // optional 23 mfaSerialKey = `mfa_serial` // optional
24 roleSessionNameKey = `role_session_name` // optional
24 25
25 // Additional Config fields 26 // Additional Config fields
26 regionKey = `region` 27 regionKey = `region`
27 28
29 // endpoint discovery group
30 enableEndpointDiscoveryKey = `endpoint_discovery_enabled` // optional
31 // External Credential Process
32 credentialProcessKey = `credential_process`
33
28 // DefaultSharedConfigProfile is the default profile to be used when 34 // DefaultSharedConfigProfile is the default profile to be used when
29 // loading configuration from the config files if another profile name 35 // loading configuration from the config files if another profile name
30 // is not provided. 36 // is not provided.
@@ -32,11 +38,12 @@ const (
32) 38)
33 39
34type assumeRoleConfig struct { 40type assumeRoleConfig struct {
35 RoleARN string 41 RoleARN string
36 SourceProfile string 42 SourceProfile string
37 ExternalID string 43 CredentialSource string
38 MFASerial string 44 ExternalID string
39 RoleSessionName string 45 MFASerial string
46 RoleSessionName string
40} 47}
41 48
42// sharedConfig represents the configuration fields of the SDK config files. 49// sharedConfig represents the configuration fields of the SDK config files.
@@ -55,16 +62,25 @@ type sharedConfig struct {
55 AssumeRole assumeRoleConfig 62 AssumeRole assumeRoleConfig
56 AssumeRoleSource *sharedConfig 63 AssumeRoleSource *sharedConfig
57 64
65 // An external process to request credentials
66 CredentialProcess string
67
58 // Region is the region the SDK should use for looking up AWS service endpoints 68 // Region is the region the SDK should use for looking up AWS service endpoints
59 // and signing requests. 69 // and signing requests.
60 // 70 //
61 // region 71 // region
62 Region string 72 Region string
73
74 // EnableEndpointDiscovery can be enabled in the shared config by setting
75 // endpoint_discovery_enabled to true
76 //
77 // endpoint_discovery_enabled = true
78 EnableEndpointDiscovery *bool
63} 79}
64 80
65type sharedConfigFile struct { 81type sharedConfigFile struct {
66 Filename string 82 Filename string
67 IniData *ini.File 83 IniData ini.Sections
68} 84}
69 85
70// loadSharedConfig retrieves the configuration from the list of files 86// loadSharedConfig retrieves the configuration from the list of files
@@ -105,19 +121,16 @@ func loadSharedConfigIniFiles(filenames []string) ([]sharedConfigFile, error) {
105 files := make([]sharedConfigFile, 0, len(filenames)) 121 files := make([]sharedConfigFile, 0, len(filenames))
106 122
107 for _, filename := range filenames { 123 for _, filename := range filenames {
108 b, err := ioutil.ReadFile(filename) 124 sections, err := ini.OpenFile(filename)
109 if err != nil { 125 if aerr, ok := err.(awserr.Error); ok && aerr.Code() == ini.ErrCodeUnableToReadFile {
110 // Skip files which can't be opened and read for whatever reason 126 // Skip files which can't be opened and read for whatever reason
111 continue 127 continue
112 } 128 } else if err != nil {
113
114 f, err := ini.Load(b)
115 if err != nil {
116 return nil, SharedConfigLoadError{Filename: filename, Err: err} 129 return nil, SharedConfigLoadError{Filename: filename, Err: err}
117 } 130 }
118 131
119 files = append(files, sharedConfigFile{ 132 files = append(files, sharedConfigFile{
120 Filename: filename, IniData: f, 133 Filename: filename, IniData: sections,
121 }) 134 })
122 } 135 }
123 136
@@ -127,6 +140,13 @@ func loadSharedConfigIniFiles(filenames []string) ([]sharedConfigFile, error) {
127func (cfg *sharedConfig) setAssumeRoleSource(origProfile string, files []sharedConfigFile) error { 140func (cfg *sharedConfig) setAssumeRoleSource(origProfile string, files []sharedConfigFile) error {
128 var assumeRoleSrc sharedConfig 141 var assumeRoleSrc sharedConfig
129 142
143 if len(cfg.AssumeRole.CredentialSource) > 0 {
144 // setAssumeRoleSource is only called when source_profile is found.
145 // If both source_profile and credential_source are set, then
146 // ErrSharedConfigSourceCollision will be returned
147 return ErrSharedConfigSourceCollision
148 }
149
130 // Multiple level assume role chains are not support 150 // Multiple level assume role chains are not support
131 if cfg.AssumeRole.SourceProfile == origProfile { 151 if cfg.AssumeRole.SourceProfile == origProfile {
132 assumeRoleSrc = *cfg 152 assumeRoleSrc = *cfg
@@ -171,45 +191,59 @@ func (cfg *sharedConfig) setFromIniFiles(profile string, files []sharedConfigFil
171// if a config file only includes aws_access_key_id but no aws_secret_access_key 191// if a config file only includes aws_access_key_id but no aws_secret_access_key
172// the aws_access_key_id will be ignored. 192// the aws_access_key_id will be ignored.
173func (cfg *sharedConfig) setFromIniFile(profile string, file sharedConfigFile) error { 193func (cfg *sharedConfig) setFromIniFile(profile string, file sharedConfigFile) error {
174 section, err := file.IniData.GetSection(profile) 194 section, ok := file.IniData.GetSection(profile)
175 if err != nil { 195 if !ok {
176 // Fallback to to alternate profile name: profile <name> 196 // Fallback to to alternate profile name: profile <name>
177 section, err = file.IniData.GetSection(fmt.Sprintf("profile %s", profile)) 197 section, ok = file.IniData.GetSection(fmt.Sprintf("profile %s", profile))
178 if err != nil { 198 if !ok {
179 return SharedConfigProfileNotExistsError{Profile: profile, Err: err} 199 return SharedConfigProfileNotExistsError{Profile: profile, Err: nil}
180 } 200 }
181 } 201 }
182 202
183 // Shared Credentials 203 // Shared Credentials
184 akid := section.Key(accessKeyIDKey).String() 204 akid := section.String(accessKeyIDKey)
185 secret := section.Key(secretAccessKey).String() 205 secret := section.String(secretAccessKey)
186 if len(akid) > 0 && len(secret) > 0 { 206 if len(akid) > 0 && len(secret) > 0 {
187 cfg.Creds = credentials.Value{ 207 cfg.Creds = credentials.Value{
188 AccessKeyID: akid, 208 AccessKeyID: akid,
189 SecretAccessKey: secret, 209 SecretAccessKey: secret,
190 SessionToken: section.Key(sessionTokenKey).String(), 210 SessionToken: section.String(sessionTokenKey),
191 ProviderName: fmt.Sprintf("SharedConfigCredentials: %s", file.Filename), 211 ProviderName: fmt.Sprintf("SharedConfigCredentials: %s", file.Filename),
192 } 212 }
193 } 213 }
194 214
195 // Assume Role 215 // Assume Role
196 roleArn := section.Key(roleArnKey).String() 216 roleArn := section.String(roleArnKey)
197 srcProfile := section.Key(sourceProfileKey).String() 217 srcProfile := section.String(sourceProfileKey)
198 if len(roleArn) > 0 && len(srcProfile) > 0 { 218 credentialSource := section.String(credentialSourceKey)
219 hasSource := len(srcProfile) > 0 || len(credentialSource) > 0
220 if len(roleArn) > 0 && hasSource {
199 cfg.AssumeRole = assumeRoleConfig{ 221 cfg.AssumeRole = assumeRoleConfig{
200 RoleARN: roleArn, 222 RoleARN: roleArn,
201 SourceProfile: srcProfile, 223 SourceProfile: srcProfile,
202 ExternalID: section.Key(externalIDKey).String(), 224 CredentialSource: credentialSource,
203 MFASerial: section.Key(mfaSerialKey).String(), 225 ExternalID: section.String(externalIDKey),
204 RoleSessionName: section.Key(roleSessionNameKey).String(), 226 MFASerial: section.String(mfaSerialKey),
227 RoleSessionName: section.String(roleSessionNameKey),
205 } 228 }
206 } 229 }
207 230
231 // `credential_process`
232 if credProc := section.String(credentialProcessKey); len(credProc) > 0 {
233 cfg.CredentialProcess = credProc
234 }
235
208 // Region 236 // Region
209 if v := section.Key(regionKey).String(); len(v) > 0 { 237 if v := section.String(regionKey); len(v) > 0 {
210 cfg.Region = v 238 cfg.Region = v
211 } 239 }
212 240
241 // Endpoint discovery
242 if section.Has(enableEndpointDiscoveryKey) {
243 v := section.Bool(enableEndpointDiscoveryKey)
244 cfg.EnableEndpointDiscovery = &v
245 }
246
213 return nil 247 return nil
214} 248}
215 249
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go
index 8aa0681..523db79 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go
@@ -134,6 +134,7 @@ var requiredSignedHeaders = rules{
134 "X-Amz-Server-Side-Encryption-Customer-Key": struct{}{}, 134 "X-Amz-Server-Side-Encryption-Customer-Key": struct{}{},
135 "X-Amz-Server-Side-Encryption-Customer-Key-Md5": struct{}{}, 135 "X-Amz-Server-Side-Encryption-Customer-Key-Md5": struct{}{},
136 "X-Amz-Storage-Class": struct{}{}, 136 "X-Amz-Storage-Class": struct{}{},
137 "X-Amz-Tagging": struct{}{},
137 "X-Amz-Website-Redirect-Location": struct{}{}, 138 "X-Amz-Website-Redirect-Location": struct{}{},
138 "X-Amz-Content-Sha256": struct{}{}, 139 "X-Amz-Content-Sha256": struct{}{},
139 }, 140 },
@@ -181,7 +182,7 @@ type Signer struct {
181 // http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html 182 // http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
182 DisableURIPathEscaping bool 183 DisableURIPathEscaping bool
183 184
184 // Disales the automatical setting of the HTTP request's Body field with the 185 // Disables the automatical setting of the HTTP request's Body field with the
185 // io.ReadSeeker passed in to the signer. This is useful if you're using a 186 // io.ReadSeeker passed in to the signer. This is useful if you're using a
186 // custom wrapper around the body for the io.ReadSeeker and want to preserve 187 // custom wrapper around the body for the io.ReadSeeker and want to preserve
187 // the Body value on the Request.Body. 188 // the Body value on the Request.Body.
@@ -421,7 +422,7 @@ var SignRequestHandler = request.NamedHandler{
421// If the credentials of the request's config are set to 422// If the credentials of the request's config are set to
422// credentials.AnonymousCredentials the request will not be signed. 423// credentials.AnonymousCredentials the request will not be signed.
423func SignSDKRequest(req *request.Request) { 424func SignSDKRequest(req *request.Request) {
424 signSDKRequestWithCurrTime(req, time.Now) 425 SignSDKRequestWithCurrentTime(req, time.Now)
425} 426}
426 427
427// BuildNamedHandler will build a generic handler for signing. 428// BuildNamedHandler will build a generic handler for signing.
@@ -429,12 +430,15 @@ func BuildNamedHandler(name string, opts ...func(*Signer)) request.NamedHandler
429 return request.NamedHandler{ 430 return request.NamedHandler{
430 Name: name, 431 Name: name,
431 Fn: func(req *request.Request) { 432 Fn: func(req *request.Request) {
432 signSDKRequestWithCurrTime(req, time.Now, opts...) 433 SignSDKRequestWithCurrentTime(req, time.Now, opts...)
433 }, 434 },
434 } 435 }
435} 436}
436 437
437func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time, opts ...func(*Signer)) { 438// SignSDKRequestWithCurrentTime will sign the SDK's request using the time
439// function passed in. Behaves the same as SignSDKRequest with the exception
440// the request is signed with the value returned by the current time function.
441func SignSDKRequestWithCurrentTime(req *request.Request, curTimeFn func() time.Time, opts ...func(*Signer)) {
438 // If the request does not need to be signed ignore the signing of the 442 // If the request does not need to be signed ignore the signing of the
439 // request if the AnonymousCredentials object is used. 443 // request if the AnonymousCredentials object is used.
440 if req.Config.Credentials == credentials.AnonymousCredentials { 444 if req.Config.Credentials == credentials.AnonymousCredentials {
@@ -470,13 +474,9 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
470 opt(v4) 474 opt(v4)
471 } 475 }
472 476
473 signingTime := req.Time 477 curTime := curTimeFn()
474 if !req.LastSignedAt.IsZero() {
475 signingTime = req.LastSignedAt
476 }
477
478 signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(), 478 signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(),
479 name, region, req.ExpireTime, req.ExpireTime > 0, signingTime, 479 name, region, req.ExpireTime, req.ExpireTime > 0, curTime,
480 ) 480 )
481 if err != nil { 481 if err != nil {
482 req.Error = err 482 req.Error = err
@@ -485,7 +485,7 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
485 } 485 }
486 486
487 req.SignedHeaderVals = signedHeaders 487 req.SignedHeaderVals = signedHeaders
488 req.LastSignedAt = curTimeFn() 488 req.LastSignedAt = curTime
489} 489}
490 490
491const logSignInfoMsg = `DEBUG: Request Signature: 491const logSignInfoMsg = `DEBUG: Request Signature:
@@ -739,14 +739,22 @@ func makeSha256Reader(reader io.ReadSeeker) []byte {
739 start, _ := reader.Seek(0, sdkio.SeekCurrent) 739 start, _ := reader.Seek(0, sdkio.SeekCurrent)
740 defer reader.Seek(start, sdkio.SeekStart) 740 defer reader.Seek(start, sdkio.SeekStart)
741 741
742 io.Copy(hash, reader) 742 // Use CopyN to avoid allocating the 32KB buffer in io.Copy for bodies
743 // smaller than 32KB. Fall back to io.Copy if we fail to determine the size.
744 size, err := aws.SeekerLen(reader)
745 if err != nil {
746 io.Copy(hash, reader)
747 } else {
748 io.CopyN(hash, reader, size)
749 }
750
743 return hash.Sum(nil) 751 return hash.Sum(nil)
744} 752}
745 753
746const doubleSpace = " " 754const doubleSpace = " "
747 755
748// stripExcessSpaces will rewrite the passed in slice's string values to not 756// stripExcessSpaces will rewrite the passed in slice's string values to not
749// contain muliple side-by-side spaces. 757// contain multiple side-by-side spaces.
750func stripExcessSpaces(vals []string) { 758func stripExcessSpaces(vals []string) {
751 var j, k, l, m, spaces int 759 var j, k, l, m, spaces int
752 for i, str := range vals { 760 for i, str := range vals {
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go
index c4d155c..15ad9cf 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/version.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go
@@ -5,4 +5,4 @@ package aws
5const SDKName = "aws-sdk-go" 5const SDKName = "aws-sdk-go"
6 6
7// SDKVersion is the version of this SDK 7// SDKVersion is the version of this SDK
8const SDKVersion = "1.14.31" 8const SDKVersion = "1.19.18"
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go
new file mode 100644
index 0000000..e83a998
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go
@@ -0,0 +1,120 @@
1package ini
2
3// ASTKind represents different states in the parse table
4// and the type of AST that is being constructed
5type ASTKind int
6
7// ASTKind* is used in the parse table to transition between
8// the different states
9const (
10 ASTKindNone = ASTKind(iota)
11 ASTKindStart
12 ASTKindExpr
13 ASTKindEqualExpr
14 ASTKindStatement
15 ASTKindSkipStatement
16 ASTKindExprStatement
17 ASTKindSectionStatement
18 ASTKindNestedSectionStatement
19 ASTKindCompletedNestedSectionStatement
20 ASTKindCommentStatement
21 ASTKindCompletedSectionStatement
22)
23
24func (k ASTKind) String() string {
25 switch k {
26 case ASTKindNone:
27 return "none"
28 case ASTKindStart:
29 return "start"
30 case ASTKindExpr:
31 return "expr"
32 case ASTKindStatement:
33 return "stmt"
34 case ASTKindSectionStatement:
35 return "section_stmt"
36 case ASTKindExprStatement:
37 return "expr_stmt"
38 case ASTKindCommentStatement:
39 return "comment"
40 case ASTKindNestedSectionStatement:
41 return "nested_section_stmt"
42 case ASTKindCompletedSectionStatement:
43 return "completed_stmt"
44 case ASTKindSkipStatement:
45 return "skip"
46 default:
47 return ""
48 }
49}
50
51// AST interface allows us to determine what kind of node we
52// are on and casting may not need to be necessary.
53//
54// The root is always the first node in Children
55type AST struct {
56 Kind ASTKind
57 Root Token
58 RootToken bool
59 Children []AST
60}
61
62func newAST(kind ASTKind, root AST, children ...AST) AST {
63 return AST{
64 Kind: kind,
65 Children: append([]AST{root}, children...),
66 }
67}
68
69func newASTWithRootToken(kind ASTKind, root Token, children ...AST) AST {
70 return AST{
71 Kind: kind,
72 Root: root,
73 RootToken: true,
74 Children: children,
75 }
76}
77
78// AppendChild will append to the list of children an AST has.
79func (a *AST) AppendChild(child AST) {
80 a.Children = append(a.Children, child)
81}
82
83// GetRoot will return the root AST which can be the first entry
84// in the children list or a token.
85func (a *AST) GetRoot() AST {
86 if a.RootToken {
87 return *a
88 }
89
90 if len(a.Children) == 0 {
91 return AST{}
92 }
93
94 return a.Children[0]
95}
96
97// GetChildren will return the current AST's list of children
98func (a *AST) GetChildren() []AST {
99 if len(a.Children) == 0 {
100 return []AST{}
101 }
102
103 if a.RootToken {
104 return a.Children
105 }
106
107 return a.Children[1:]
108}
109
110// SetChildren will set and override all children of the AST.
111func (a *AST) SetChildren(children []AST) {
112 if a.RootToken {
113 a.Children = children
114 } else {
115 a.Children = append(a.Children[:1], children...)
116 }
117}
118
119// Start is used to indicate the starting state of the parse table.
120var Start = newAST(ASTKindStart, AST{})
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go
new file mode 100644
index 0000000..0895d53
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go
@@ -0,0 +1,11 @@
1package ini
2
3var commaRunes = []rune(",")
4
5func isComma(b rune) bool {
6 return b == ','
7}
8
9func newCommaToken() Token {
10 return newToken(TokenComma, commaRunes, NoneType)
11}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go
new file mode 100644
index 0000000..0b76999
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go
@@ -0,0 +1,35 @@
1package ini
2
3// isComment will return whether or not the next byte(s) is a
4// comment.
5func isComment(b []rune) bool {
6 if len(b) == 0 {
7 return false
8 }
9
10 switch b[0] {
11 case ';':
12 return true
13 case '#':
14 return true
15 }
16
17 return false
18}
19
20// newCommentToken will create a comment token and
21// return how many bytes were read.
22func newCommentToken(b []rune) (Token, int, error) {
23 i := 0
24 for ; i < len(b); i++ {
25 if b[i] == '\n' {
26 break
27 }
28
29 if len(b)-i > 2 && b[i] == '\r' && b[i+1] == '\n' {
30 break
31 }
32 }
33
34 return newToken(TokenComment, b[:i], NoneType), i, nil
35}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go
new file mode 100644
index 0000000..25ce0fe
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go
@@ -0,0 +1,29 @@
1// Package ini is an LL(1) parser for configuration files.
2//
3// Example:
4// sections, err := ini.OpenFile("/path/to/file")
5// if err != nil {
6// panic(err)
7// }
8//
9// profile := "foo"
10// section, ok := sections.GetSection(profile)
11// if !ok {
12// fmt.Printf("section %q could not be found", profile)
13// }
14//
15// Below is the BNF that describes this parser
16// Grammar:
17// stmt -> value stmt'
18// stmt' -> epsilon | op stmt
19// value -> number | string | boolean | quoted_string
20//
21// section -> [ section'
22// section' -> value section_close
23// section_close -> ]
24//
25// SkipState will skip (NL WS)+
26//
27// comment -> # comment' | ; comment'
28// comment' -> epsilon | value
29package ini
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go
new file mode 100644
index 0000000..04345a5
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go
@@ -0,0 +1,4 @@
1package ini
2
3// emptyToken is used to satisfy the Token interface
4var emptyToken = newToken(TokenNone, []rune{}, NoneType)
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go
new file mode 100644
index 0000000..91ba2a5
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go
@@ -0,0 +1,24 @@
1package ini
2
3// newExpression will return an expression AST.
4// Expr represents an expression
5//
6// grammar:
7// expr -> string | number
8func newExpression(tok Token) AST {
9 return newASTWithRootToken(ASTKindExpr, tok)
10}
11
12func newEqualExpr(left AST, tok Token) AST {
13 return newASTWithRootToken(ASTKindEqualExpr, tok, left)
14}
15
16// EqualExprKey will return a LHS value in the equal expr
17func EqualExprKey(ast AST) string {
18 children := ast.GetChildren()
19 if len(children) == 0 || ast.Kind != ASTKindEqualExpr {
20 return ""
21 }
22
23 return string(children[0].Root.Raw())
24}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go
new file mode 100644
index 0000000..8d462f7
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go
@@ -0,0 +1,17 @@
1// +build gofuzz
2
3package ini
4
5import (
6 "bytes"
7)
8
9func Fuzz(data []byte) int {
10 b := bytes.NewReader(data)
11
12 if _, err := Parse(b); err != nil {
13 return 0
14 }
15
16 return 1
17}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go
new file mode 100644
index 0000000..3b0ca7a
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go
@@ -0,0 +1,51 @@
1package ini
2
3import (
4 "io"
5 "os"
6
7 "github.com/aws/aws-sdk-go/aws/awserr"
8)
9
10// OpenFile takes a path to a given file, and will open and parse
11// that file.
12func OpenFile(path string) (Sections, error) {
13 f, err := os.Open(path)
14 if err != nil {
15 return Sections{}, awserr.New(ErrCodeUnableToReadFile, "unable to open file", err)
16 }
17 defer f.Close()
18
19 return Parse(f)
20}
21
22// Parse will parse the given file using the shared config
23// visitor.
24func Parse(f io.Reader) (Sections, error) {
25 tree, err := ParseAST(f)
26 if err != nil {
27 return Sections{}, err
28 }
29
30 v := NewDefaultVisitor()
31 if err = Walk(tree, v); err != nil {
32 return Sections{}, err
33 }
34
35 return v.Sections, nil
36}
37
38// ParseBytes will parse the given bytes and return the parsed sections.
39func ParseBytes(b []byte) (Sections, error) {
40 tree, err := ParseASTBytes(b)
41 if err != nil {
42 return Sections{}, err
43 }
44
45 v := NewDefaultVisitor()
46 if err = Walk(tree, v); err != nil {
47 return Sections{}, err
48 }
49
50 return v.Sections, nil
51}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go
new file mode 100644
index 0000000..582c024
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go
@@ -0,0 +1,165 @@
1package ini
2
3import (
4 "bytes"
5 "io"
6 "io/ioutil"
7
8 "github.com/aws/aws-sdk-go/aws/awserr"
9)
10
11const (
12 // ErrCodeUnableToReadFile is used when a file is failed to be
13 // opened or read from.
14 ErrCodeUnableToReadFile = "FailedRead"
15)
16
17// TokenType represents the various different tokens types
18type TokenType int
19
20func (t TokenType) String() string {
21 switch t {
22 case TokenNone:
23 return "none"
24 case TokenLit:
25 return "literal"
26 case TokenSep:
27 return "sep"
28 case TokenOp:
29 return "op"
30 case TokenWS:
31 return "ws"
32 case TokenNL:
33 return "newline"
34 case TokenComment:
35 return "comment"
36 case TokenComma:
37 return "comma"
38 default:
39 return ""
40 }
41}
42
43// TokenType enums
44const (
45 TokenNone = TokenType(iota)
46 TokenLit
47 TokenSep
48 TokenComma
49 TokenOp
50 TokenWS
51 TokenNL
52 TokenComment
53)
54
55type iniLexer struct{}
56
57// Tokenize will return a list of tokens during lexical analysis of the
58// io.Reader.
59func (l *iniLexer) Tokenize(r io.Reader) ([]Token, error) {
60 b, err := ioutil.ReadAll(r)
61 if err != nil {
62 return nil, awserr.New(ErrCodeUnableToReadFile, "unable to read file", err)
63 }
64
65 return l.tokenize(b)
66}
67
68func (l *iniLexer) tokenize(b []byte) ([]Token, error) {
69 runes := bytes.Runes(b)
70 var err error
71 n := 0
72 tokenAmount := countTokens(runes)
73 tokens := make([]Token, tokenAmount)
74 count := 0
75
76 for len(runes) > 0 && count < tokenAmount {
77 switch {
78 case isWhitespace(runes[0]):
79 tokens[count], n, err = newWSToken(runes)
80 case isComma(runes[0]):
81 tokens[count], n = newCommaToken(), 1
82 case isComment(runes):
83 tokens[count], n, err = newCommentToken(runes)
84 case isNewline(runes):
85 tokens[count], n, err = newNewlineToken(runes)
86 case isSep(runes):
87 tokens[count], n, err = newSepToken(runes)
88 case isOp(runes):
89 tokens[count], n, err = newOpToken(runes)
90 default:
91 tokens[count], n, err = newLitToken(runes)
92 }
93
94 if err != nil {
95 return nil, err
96 }
97
98 count++
99
100 runes = runes[n:]
101 }
102
103 return tokens[:count], nil
104}
105
106func countTokens(runes []rune) int {
107 count, n := 0, 0
108 var err error
109
110 for len(runes) > 0 {
111 switch {
112 case isWhitespace(runes[0]):
113 _, n, err = newWSToken(runes)
114 case isComma(runes[0]):
115 _, n = newCommaToken(), 1
116 case isComment(runes):
117 _, n, err = newCommentToken(runes)
118 case isNewline(runes):
119 _, n, err = newNewlineToken(runes)
120 case isSep(runes):
121 _, n, err = newSepToken(runes)
122 case isOp(runes):
123 _, n, err = newOpToken(runes)
124 default:
125 _, n, err = newLitToken(runes)
126 }
127
128 if err != nil {
129 return 0
130 }
131
132 count++
133 runes = runes[n:]
134 }
135
136 return count + 1
137}
138
139// Token indicates a metadata about a given value.
140type Token struct {
141 t TokenType
142 ValueType ValueType
143 base int
144 raw []rune
145}
146
147var emptyValue = Value{}
148
149func newToken(t TokenType, raw []rune, v ValueType) Token {
150 return Token{
151 t: t,
152 raw: raw,
153 ValueType: v,
154 }
155}
156
157// Raw return the raw runes that were consumed
158func (tok Token) Raw() []rune {
159 return tok.raw
160}
161
162// Type returns the token type
163func (tok Token) Type() TokenType {
164 return tok.t
165}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go
new file mode 100644
index 0000000..f997033
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go
@@ -0,0 +1,347 @@
1package ini
2
3import (
4 "fmt"
5 "io"
6)
7
8// State enums for the parse table
9const (
10 InvalidState = iota
11 // stmt -> value stmt'
12 StatementState
13 // stmt' -> MarkComplete | op stmt
14 StatementPrimeState
15 // value -> number | string | boolean | quoted_string
16 ValueState
17 // section -> [ section'
18 OpenScopeState
19 // section' -> value section_close
20 SectionState
21 // section_close -> ]
22 CloseScopeState
23 // SkipState will skip (NL WS)+
24 SkipState
25 // SkipTokenState will skip any token and push the previous
26 // state onto the stack.
27 SkipTokenState
28 // comment -> # comment' | ; comment'
29 // comment' -> MarkComplete | value
30 CommentState
31 // MarkComplete state will complete statements and move that
32 // to the completed AST list
33 MarkCompleteState
34 // TerminalState signifies that the tokens have been fully parsed
35 TerminalState
36)
37
38// parseTable is a state machine to dictate the grammar above.
39var parseTable = map[ASTKind]map[TokenType]int{
40 ASTKindStart: map[TokenType]int{
41 TokenLit: StatementState,
42 TokenSep: OpenScopeState,
43 TokenWS: SkipTokenState,
44 TokenNL: SkipTokenState,
45 TokenComment: CommentState,
46 TokenNone: TerminalState,
47 },
48 ASTKindCommentStatement: map[TokenType]int{
49 TokenLit: StatementState,
50 TokenSep: OpenScopeState,
51 TokenWS: SkipTokenState,
52 TokenNL: SkipTokenState,
53 TokenComment: CommentState,
54 TokenNone: MarkCompleteState,
55 },
56 ASTKindExpr: map[TokenType]int{
57 TokenOp: StatementPrimeState,
58 TokenLit: ValueState,
59 TokenSep: OpenScopeState,
60 TokenWS: ValueState,
61 TokenNL: SkipState,
62 TokenComment: CommentState,
63 TokenNone: MarkCompleteState,
64 },
65 ASTKindEqualExpr: map[TokenType]int{
66 TokenLit: ValueState,
67 TokenWS: SkipTokenState,
68 TokenNL: SkipState,
69 },
70 ASTKindStatement: map[TokenType]int{
71 TokenLit: SectionState,
72 TokenSep: CloseScopeState,
73 TokenWS: SkipTokenState,
74 TokenNL: SkipTokenState,
75 TokenComment: CommentState,
76 TokenNone: MarkCompleteState,
77 },
78 ASTKindExprStatement: map[TokenType]int{
79 TokenLit: ValueState,
80 TokenSep: OpenScopeState,
81 TokenOp: ValueState,
82 TokenWS: ValueState,
83 TokenNL: MarkCompleteState,
84 TokenComment: CommentState,
85 TokenNone: TerminalState,
86 TokenComma: SkipState,
87 },
88 ASTKindSectionStatement: map[TokenType]int{
89 TokenLit: SectionState,
90 TokenOp: SectionState,
91 TokenSep: CloseScopeState,
92 TokenWS: SectionState,
93 TokenNL: SkipTokenState,
94 },
95 ASTKindCompletedSectionStatement: map[TokenType]int{
96 TokenWS: SkipTokenState,
97 TokenNL: SkipTokenState,
98 TokenLit: StatementState,
99 TokenSep: OpenScopeState,
100 TokenComment: CommentState,
101 TokenNone: MarkCompleteState,
102 },
103 ASTKindSkipStatement: map[TokenType]int{
104 TokenLit: StatementState,
105 TokenSep: OpenScopeState,
106 TokenWS: SkipTokenState,
107 TokenNL: SkipTokenState,
108 TokenComment: CommentState,
109 TokenNone: TerminalState,
110 },
111}
112
113// ParseAST will parse input from an io.Reader using
114// an LL(1) parser.
115func ParseAST(r io.Reader) ([]AST, error) {
116 lexer := iniLexer{}
117 tokens, err := lexer.Tokenize(r)
118 if err != nil {
119 return []AST{}, err
120 }
121
122 return parse(tokens)
123}
124
125// ParseASTBytes will parse input from a byte slice using
126// an LL(1) parser.
127func ParseASTBytes(b []byte) ([]AST, error) {
128 lexer := iniLexer{}
129 tokens, err := lexer.tokenize(b)
130 if err != nil {
131 return []AST{}, err
132 }
133
134 return parse(tokens)
135}
136
137func parse(tokens []Token) ([]AST, error) {
138 start := Start
139 stack := newParseStack(3, len(tokens))
140
141 stack.Push(start)
142 s := newSkipper()
143
144loop:
145 for stack.Len() > 0 {
146 k := stack.Pop()
147
148 var tok Token
149 if len(tokens) == 0 {
150 // this occurs when all the tokens have been processed
151 // but reduction of what's left on the stack needs to
152 // occur.
153 tok = emptyToken
154 } else {
155 tok = tokens[0]
156 }
157
158 step := parseTable[k.Kind][tok.Type()]
159 if s.ShouldSkip(tok) {
160 // being in a skip state with no tokens will break out of
161 // the parse loop since there is nothing left to process.
162 if len(tokens) == 0 {
163 break loop
164 }
165
166 step = SkipTokenState
167 }
168
169 switch step {
170 case TerminalState:
171 // Finished parsing. Push what should be the last
172 // statement to the stack. If there is anything left
173 // on the stack, an error in parsing has occurred.
174 if k.Kind != ASTKindStart {
175 stack.MarkComplete(k)
176 }
177 break loop
178 case SkipTokenState:
179 // When skipping a token, the previous state was popped off the stack.
180 // To maintain the correct state, the previous state will be pushed
181 // onto the stack.
182 stack.Push(k)
183 case StatementState:
184 if k.Kind != ASTKindStart {
185 stack.MarkComplete(k)
186 }
187 expr := newExpression(tok)
188 stack.Push(expr)
189 case StatementPrimeState:
190 if tok.Type() != TokenOp {
191 stack.MarkComplete(k)
192 continue
193 }
194
195 if k.Kind != ASTKindExpr {
196 return nil, NewParseError(
197 fmt.Sprintf("invalid expression: expected Expr type, but found %T type", k),
198 )
199 }
200
201 k = trimSpaces(k)
202 expr := newEqualExpr(k, tok)
203 stack.Push(expr)
204 case ValueState:
205 // ValueState requires the previous state to either be an equal expression
206 // or an expression statement.
207 //
208 // This grammar occurs when the RHS is a number, word, or quoted string.
209 // equal_expr -> lit op equal_expr'
210 // equal_expr' -> number | string | quoted_string
211 // quoted_string -> " quoted_string'
212 // quoted_string' -> string quoted_string_end
213 // quoted_string_end -> "
214 //
215 // otherwise
216 // expr_stmt -> equal_expr (expr_stmt')*
217 // expr_stmt' -> ws S | op S | MarkComplete
218 // S -> equal_expr' expr_stmt'
219 switch k.Kind {
220 case ASTKindEqualExpr:
221 // assiging a value to some key
222 k.AppendChild(newExpression(tok))
223 stack.Push(newExprStatement(k))
224 case ASTKindExpr:
225 k.Root.raw = append(k.Root.raw, tok.Raw()...)
226 stack.Push(k)
227 case ASTKindExprStatement:
228 root := k.GetRoot()
229 children := root.GetChildren()
230 if len(children) == 0 {
231 return nil, NewParseError(
232 fmt.Sprintf("invalid expression: AST contains no children %s", k.Kind),
233 )
234 }
235
236 rhs := children[len(children)-1]
237
238 if rhs.Root.ValueType != QuotedStringType {
239 rhs.Root.ValueType = StringType
240 rhs.Root.raw = append(rhs.Root.raw, tok.Raw()...)
241
242 }
243
244 children[len(children)-1] = rhs
245 k.SetChildren(children)
246
247 stack.Push(k)
248 }
249 case OpenScopeState:
250 if !runeCompare(tok.Raw(), openBrace) {
251 return nil, NewParseError("expected '['")
252 }
253
254 stmt := newStatement()
255 stack.Push(stmt)
256 case CloseScopeState:
257 if !runeCompare(tok.Raw(), closeBrace) {
258 return nil, NewParseError("expected ']'")
259 }
260
261 k = trimSpaces(k)
262 stack.Push(newCompletedSectionStatement(k))
263 case SectionState:
264 var stmt AST
265
266 switch k.Kind {
267 case ASTKindStatement:
268 // If there are multiple literals inside of a scope declaration,
269 // then the current token's raw value will be appended to the Name.
270 //
271 // This handles cases like [ profile default ]
272 //
273 // k will represent a SectionStatement with the children representing
274 // the label of the section
275 stmt = newSectionStatement(tok)
276 case ASTKindSectionStatement:
277 k.Root.raw = append(k.Root.raw, tok.Raw()...)
278 stmt = k
279 default:
280 return nil, NewParseError(
281 fmt.Sprintf("invalid statement: expected statement: %v", k.Kind),
282 )
283 }
284
285 stack.Push(stmt)
286 case MarkCompleteState:
287 if k.Kind != ASTKindStart {
288 stack.MarkComplete(k)
289 }
290
291 if stack.Len() == 0 {
292 stack.Push(start)
293 }
294 case SkipState:
295 stack.Push(newSkipStatement(k))
296 s.Skip()
297 case CommentState:
298 if k.Kind == ASTKindStart {
299 stack.Push(k)
300 } else {
301 stack.MarkComplete(k)
302 }
303
304 stmt := newCommentStatement(tok)
305 stack.Push(stmt)
306 default:
307 return nil, NewParseError(fmt.Sprintf("invalid state with ASTKind %v and TokenType %v", k, tok))
308 }
309
310 if len(tokens) > 0 {
311 tokens = tokens[1:]
312 }
313 }
314
315 // this occurs when a statement has not been completed
316 if stack.top > 1 {
317 return nil, NewParseError(fmt.Sprintf("incomplete expression: %v", stack.container))
318 }
319
320 // returns a sublist which excludes the start symbol
321 return stack.List(), nil
322}
323
324// trimSpaces will trim spaces on the left and right hand side of
325// the literal.
326func trimSpaces(k AST) AST {
327 // trim left hand side of spaces
328 for i := 0; i < len(k.Root.raw); i++ {
329 if !isWhitespace(k.Root.raw[i]) {
330 break
331 }
332
333 k.Root.raw = k.Root.raw[1:]
334 i--
335 }
336
337 // trim right hand side of spaces
338 for i := len(k.Root.raw) - 1; i >= 0; i-- {
339 if !isWhitespace(k.Root.raw[i]) {
340 break
341 }
342
343 k.Root.raw = k.Root.raw[:len(k.Root.raw)-1]
344 }
345
346 return k
347}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go
new file mode 100644
index 0000000..24df543
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go
@@ -0,0 +1,324 @@
1package ini
2
3import (
4 "fmt"
5 "strconv"
6 "strings"
7)
8
9var (
10 runesTrue = []rune("true")
11 runesFalse = []rune("false")
12)
13
14var literalValues = [][]rune{
15 runesTrue,
16 runesFalse,
17}
18
19func isBoolValue(b []rune) bool {
20 for _, lv := range literalValues {
21 if isLitValue(lv, b) {
22 return true
23 }
24 }
25 return false
26}
27
28func isLitValue(want, have []rune) bool {
29 if len(have) < len(want) {
30 return false
31 }
32
33 for i := 0; i < len(want); i++ {
34 if want[i] != have[i] {
35 return false
36 }
37 }
38
39 return true
40}
41
42// isNumberValue will return whether not the leading characters in
43// a byte slice is a number. A number is delimited by whitespace or
44// the newline token.
45//
46// A number is defined to be in a binary, octal, decimal (int | float), hex format,
47// or in scientific notation.
48func isNumberValue(b []rune) bool {
49 negativeIndex := 0
50 helper := numberHelper{}
51 needDigit := false
52
53 for i := 0; i < len(b); i++ {
54 negativeIndex++
55
56 switch b[i] {
57 case '-':
58 if helper.IsNegative() || negativeIndex != 1 {
59 return false
60 }
61 helper.Determine(b[i])
62 needDigit = true
63 continue
64 case 'e', 'E':
65 if err := helper.Determine(b[i]); err != nil {
66 return false
67 }
68 negativeIndex = 0
69 needDigit = true
70 continue
71 case 'b':
72 if helper.numberFormat == hex {
73 break
74 }
75 fallthrough
76 case 'o', 'x':
77 needDigit = true
78 if i == 0 {
79 return false
80 }
81
82 fallthrough
83 case '.':
84 if err := helper.Determine(b[i]); err != nil {
85 return false
86 }
87 needDigit = true
88 continue
89 }
90
91 if i > 0 && (isNewline(b[i:]) || isWhitespace(b[i])) {
92 return !needDigit
93 }
94
95 if !helper.CorrectByte(b[i]) {
96 return false
97 }
98 needDigit = false
99 }
100
101 return !needDigit
102}
103
104func isValid(b []rune) (bool, int, error) {
105 if len(b) == 0 {
106 // TODO: should probably return an error
107 return false, 0, nil
108 }
109
110 return isValidRune(b[0]), 1, nil
111}
112
113func isValidRune(r rune) bool {
114 return r != ':' && r != '=' && r != '[' && r != ']' && r != ' ' && r != '\n'
115}
116
117// ValueType is an enum that will signify what type
118// the Value is
119type ValueType int
120
121func (v ValueType) String() string {
122 switch v {
123 case NoneType:
124 return "NONE"
125 case DecimalType:
126 return "FLOAT"
127 case IntegerType:
128 return "INT"
129 case StringType:
130 return "STRING"
131 case BoolType:
132 return "BOOL"
133 }
134
135 return ""
136}
137
138// ValueType enums
139const (
140 NoneType = ValueType(iota)
141 DecimalType
142 IntegerType
143 StringType
144 QuotedStringType
145 BoolType
146)
147
148// Value is a union container
149type Value struct {
150 Type ValueType
151 raw []rune
152
153 integer int64
154 decimal float64
155 boolean bool
156 str string
157}
158
159func newValue(t ValueType, base int, raw []rune) (Value, error) {
160 v := Value{
161 Type: t,
162 raw: raw,
163 }
164 var err error
165
166 switch t {
167 case DecimalType:
168 v.decimal, err = strconv.ParseFloat(string(raw), 64)
169 case IntegerType:
170 if base != 10 {
171 raw = raw[2:]
172 }
173
174 v.integer, err = strconv.ParseInt(string(raw), base, 64)
175 case StringType:
176 v.str = string(raw)
177 case QuotedStringType:
178 v.str = string(raw[1 : len(raw)-1])
179 case BoolType:
180 v.boolean = runeCompare(v.raw, runesTrue)
181 }
182
183 // issue 2253
184 //
185 // if the value trying to be parsed is too large, then we will use
186 // the 'StringType' and raw value instead.
187 if nerr, ok := err.(*strconv.NumError); ok && nerr.Err == strconv.ErrRange {
188 v.Type = StringType
189 v.str = string(raw)
190 err = nil
191 }
192
193 return v, err
194}
195
196// Append will append values and change the type to a string
197// type.
198func (v *Value) Append(tok Token) {
199 r := tok.Raw()
200 if v.Type != QuotedStringType {
201 v.Type = StringType
202 r = tok.raw[1 : len(tok.raw)-1]
203 }
204 if tok.Type() != TokenLit {
205 v.raw = append(v.raw, tok.Raw()...)
206 } else {
207 v.raw = append(v.raw, r...)
208 }
209}
210
211func (v Value) String() string {
212 switch v.Type {
213 case DecimalType:
214 return fmt.Sprintf("decimal: %f", v.decimal)
215 case IntegerType:
216 return fmt.Sprintf("integer: %d", v.integer)
217 case StringType:
218 return fmt.Sprintf("string: %s", string(v.raw))
219 case QuotedStringType:
220 return fmt.Sprintf("quoted string: %s", string(v.raw))
221 case BoolType:
222 return fmt.Sprintf("bool: %t", v.boolean)
223 default:
224 return "union not set"
225 }
226}
227
228func newLitToken(b []rune) (Token, int, error) {
229 n := 0
230 var err error
231
232 token := Token{}
233 if b[0] == '"' {
234 n, err = getStringValue(b)
235 if err != nil {
236 return token, n, err
237 }
238
239 token = newToken(TokenLit, b[:n], QuotedStringType)
240 } else if isNumberValue(b) {
241 var base int
242 base, n, err = getNumericalValue(b)
243 if err != nil {
244 return token, 0, err
245 }
246
247 value := b[:n]
248 vType := IntegerType
249 if contains(value, '.') || hasExponent(value) {
250 vType = DecimalType
251 }
252 token = newToken(TokenLit, value, vType)
253 token.base = base
254 } else if isBoolValue(b) {
255 n, err = getBoolValue(b)
256
257 token = newToken(TokenLit, b[:n], BoolType)
258 } else {
259 n, err = getValue(b)
260 token = newToken(TokenLit, b[:n], StringType)
261 }
262
263 return token, n, err
264}
265
266// IntValue returns an integer value
267func (v Value) IntValue() int64 {
268 return v.integer
269}
270
271// FloatValue returns a float value
272func (v Value) FloatValue() float64 {
273 return v.decimal
274}
275
276// BoolValue returns a bool value
277func (v Value) BoolValue() bool {
278 return v.boolean
279}
280
281func isTrimmable(r rune) bool {
282 switch r {
283 case '\n', ' ':
284 return true
285 }
286 return false
287}
288
289// StringValue returns the string value
290func (v Value) StringValue() string {
291 switch v.Type {
292 case StringType:
293 return strings.TrimFunc(string(v.raw), isTrimmable)
294 case QuotedStringType:
295 // preserve all characters in the quotes
296 return string(removeEscapedCharacters(v.raw[1 : len(v.raw)-1]))
297 default:
298 return strings.TrimFunc(string(v.raw), isTrimmable)
299 }
300}
301
302func contains(runes []rune, c rune) bool {
303 for i := 0; i < len(runes); i++ {
304 if runes[i] == c {
305 return true
306 }
307 }
308
309 return false
310}
311
312func runeCompare(v1 []rune, v2 []rune) bool {
313 if len(v1) != len(v2) {
314 return false
315 }
316
317 for i := 0; i < len(v1); i++ {
318 if v1[i] != v2[i] {
319 return false
320 }
321 }
322
323 return true
324}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go
new file mode 100644
index 0000000..e52ac39
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go
@@ -0,0 +1,30 @@
1package ini
2
3func isNewline(b []rune) bool {
4 if len(b) == 0 {
5 return false
6 }
7
8 if b[0] == '\n' {
9 return true
10 }
11
12 if len(b) < 2 {
13 return false
14 }
15
16 return b[0] == '\r' && b[1] == '\n'
17}
18
19func newNewlineToken(b []rune) (Token, int, error) {
20 i := 1
21 if b[0] == '\r' && isNewline(b[1:]) {
22 i++
23 }
24
25 if !isNewline([]rune(b[:i])) {
26 return emptyToken, 0, NewParseError("invalid new line token")
27 }
28
29 return newToken(TokenNL, b[:i], NoneType), i, nil
30}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go
new file mode 100644
index 0000000..a45c0bc
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go
@@ -0,0 +1,152 @@
1package ini
2
3import (
4 "bytes"
5 "fmt"
6 "strconv"
7)
8
9const (
10 none = numberFormat(iota)
11 binary
12 octal
13 decimal
14 hex
15 exponent
16)
17
18type numberFormat int
19
20// numberHelper is used to dictate what format a number is in
21// and what to do for negative values. Since -1e-4 is a valid
22// number, we cannot just simply check for duplicate negatives.
23type numberHelper struct {
24 numberFormat numberFormat
25
26 negative bool
27 negativeExponent bool
28}
29
30func (b numberHelper) Exists() bool {
31 return b.numberFormat != none
32}
33
34func (b numberHelper) IsNegative() bool {
35 return b.negative || b.negativeExponent
36}
37
38func (b *numberHelper) Determine(c rune) error {
39 if b.Exists() {
40 return NewParseError(fmt.Sprintf("multiple number formats: 0%v", string(c)))
41 }
42
43 switch c {
44 case 'b':
45 b.numberFormat = binary
46 case 'o':
47 b.numberFormat = octal
48 case 'x':
49 b.numberFormat = hex
50 case 'e', 'E':
51 b.numberFormat = exponent
52 case '-':
53 if b.numberFormat != exponent {
54 b.negative = true
55 } else {
56 b.negativeExponent = true
57 }
58 case '.':
59 b.numberFormat = decimal
60 default:
61 return NewParseError(fmt.Sprintf("invalid number character: %v", string(c)))
62 }
63
64 return nil
65}
66
67func (b numberHelper) CorrectByte(c rune) bool {
68 switch {
69 case b.numberFormat == binary:
70 if !isBinaryByte(c) {
71 return false
72 }
73 case b.numberFormat == octal:
74 if !isOctalByte(c) {
75 return false
76 }
77 case b.numberFormat == hex:
78 if !isHexByte(c) {
79 return false
80 }
81 case b.numberFormat == decimal:
82 if !isDigit(c) {
83 return false
84 }
85 case b.numberFormat == exponent:
86 if !isDigit(c) {
87 return false
88 }
89 case b.negativeExponent:
90 if !isDigit(c) {
91 return false
92 }
93 case b.negative:
94 if !isDigit(c) {
95 return false
96 }
97 default:
98 if !isDigit(c) {
99 return false
100 }
101 }
102
103 return true
104}
105
106func (b numberHelper) Base() int {
107 switch b.numberFormat {
108 case binary:
109 return 2
110 case octal:
111 return 8
112 case hex:
113 return 16
114 default:
115 return 10
116 }
117}
118
119func (b numberHelper) String() string {
120 buf := bytes.Buffer{}
121 i := 0
122
123 switch b.numberFormat {
124 case binary:
125 i++
126 buf.WriteString(strconv.Itoa(i) + ": binary format\n")
127 case octal:
128 i++
129 buf.WriteString(strconv.Itoa(i) + ": octal format\n")
130 case hex:
131 i++
132 buf.WriteString(strconv.Itoa(i) + ": hex format\n")
133 case exponent:
134 i++
135 buf.WriteString(strconv.Itoa(i) + ": exponent format\n")
136 default:
137 i++
138 buf.WriteString(strconv.Itoa(i) + ": integer format\n")
139 }
140
141 if b.negative {
142 i++
143 buf.WriteString(strconv.Itoa(i) + ": negative format\n")
144 }
145
146 if b.negativeExponent {
147 i++
148 buf.WriteString(strconv.Itoa(i) + ": negative exponent format\n")
149 }
150
151 return buf.String()
152}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go
new file mode 100644
index 0000000..8a84c7c
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go
@@ -0,0 +1,39 @@
1package ini
2
3import (
4 "fmt"
5)
6
7var (
8 equalOp = []rune("=")
9 equalColonOp = []rune(":")
10)
11
12func isOp(b []rune) bool {
13 if len(b) == 0 {
14 return false
15 }
16
17 switch b[0] {
18 case '=':
19 return true
20 case ':':
21 return true
22 default:
23 return false
24 }
25}
26
27func newOpToken(b []rune) (Token, int, error) {
28 tok := Token{}
29
30 switch b[0] {
31 case '=':
32 tok = newToken(TokenOp, equalOp, NoneType)
33 case ':':
34 tok = newToken(TokenOp, equalColonOp, NoneType)
35 default:
36 return tok, 0, NewParseError(fmt.Sprintf("unexpected op type, %v", b[0]))
37 }
38 return tok, 1, nil
39}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go
new file mode 100644
index 0000000..4572870
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go
@@ -0,0 +1,43 @@
1package ini
2
3import "fmt"
4
5const (
6 // ErrCodeParseError is returned when a parsing error
7 // has occurred.
8 ErrCodeParseError = "INIParseError"
9)
10
11// ParseError is an error which is returned during any part of
12// the parsing process.
13type ParseError struct {
14 msg string
15}
16
17// NewParseError will return a new ParseError where message
18// is the description of the error.
19func NewParseError(message string) *ParseError {
20 return &ParseError{
21 msg: message,
22 }
23}
24
25// Code will return the ErrCodeParseError
26func (err *ParseError) Code() string {
27 return ErrCodeParseError
28}
29
30// Message returns the error's message
31func (err *ParseError) Message() string {
32 return err.msg
33}
34
35// OrigError return nothing since there will never be any
36// original error.
37func (err *ParseError) OrigError() error {
38 return nil
39}
40
41func (err *ParseError) Error() string {
42 return fmt.Sprintf("%s: %s", err.Code(), err.Message())
43}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go
new file mode 100644
index 0000000..7f01cf7
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go
@@ -0,0 +1,60 @@
1package ini
2
3import (
4 "bytes"
5 "fmt"
6)
7
8// ParseStack is a stack that contains a container, the stack portion,
9// and the list which is the list of ASTs that have been successfully
10// parsed.
11type ParseStack struct {
12 top int
13 container []AST
14 list []AST
15 index int
16}
17
18func newParseStack(sizeContainer, sizeList int) ParseStack {
19 return ParseStack{
20 container: make([]AST, sizeContainer),
21 list: make([]AST, sizeList),
22 }
23}
24
25// Pop will return and truncate the last container element.
26func (s *ParseStack) Pop() AST {
27 s.top--
28 return s.container[s.top]
29}
30
31// Push will add the new AST to the container
32func (s *ParseStack) Push(ast AST) {
33 s.container[s.top] = ast
34 s.top++
35}
36
37// MarkComplete will append the AST to the list of completed statements
38func (s *ParseStack) MarkComplete(ast AST) {
39 s.list[s.index] = ast
40 s.index++
41}
42
43// List will return the completed statements
44func (s ParseStack) List() []AST {
45 return s.list[:s.index]
46}
47
48// Len will return the length of the container
49func (s *ParseStack) Len() int {
50 return s.top
51}
52
53func (s ParseStack) String() string {
54 buf := bytes.Buffer{}
55 for i, node := range s.list {
56 buf.WriteString(fmt.Sprintf("%d: %v\n", i+1, node))
57 }
58
59 return buf.String()
60}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go
new file mode 100644
index 0000000..f82095b
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go
@@ -0,0 +1,41 @@
1package ini
2
3import (
4 "fmt"
5)
6
7var (
8 emptyRunes = []rune{}
9)
10
11func isSep(b []rune) bool {
12 if len(b) == 0 {
13 return false
14 }
15
16 switch b[0] {
17 case '[', ']':
18 return true
19 default:
20 return false
21 }
22}
23
24var (
25 openBrace = []rune("[")
26 closeBrace = []rune("]")
27)
28
29func newSepToken(b []rune) (Token, int, error) {
30 tok := Token{}
31
32 switch b[0] {
33 case '[':
34 tok = newToken(TokenSep, openBrace, NoneType)
35 case ']':
36 tok = newToken(TokenSep, closeBrace, NoneType)
37 default:
38 return tok, 0, NewParseError(fmt.Sprintf("unexpected sep type, %v", b[0]))
39 }
40 return tok, 1, nil
41}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go
new file mode 100644
index 0000000..6bb6964
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go
@@ -0,0 +1,45 @@
1package ini
2
3// skipper is used to skip certain blocks of an ini file.
4// Currently skipper is used to skip nested blocks of ini
5// files. See example below
6//
7// [ foo ]
8// nested = ; this section will be skipped
9// a=b
10// c=d
11// bar=baz ; this will be included
12type skipper struct {
13 shouldSkip bool
14 TokenSet bool
15 prevTok Token
16}
17
18func newSkipper() skipper {
19 return skipper{
20 prevTok: emptyToken,
21 }
22}
23
24func (s *skipper) ShouldSkip(tok Token) bool {
25 if s.shouldSkip &&
26 s.prevTok.Type() == TokenNL &&
27 tok.Type() != TokenWS {
28
29 s.Continue()
30 return false
31 }
32 s.prevTok = tok
33
34 return s.shouldSkip
35}
36
37func (s *skipper) Skip() {
38 s.shouldSkip = true
39 s.prevTok = emptyToken
40}
41
42func (s *skipper) Continue() {
43 s.shouldSkip = false
44 s.prevTok = emptyToken
45}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go
new file mode 100644
index 0000000..18f3fe8
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go
@@ -0,0 +1,35 @@
1package ini
2
3// Statement is an empty AST mostly used for transitioning states.
4func newStatement() AST {
5 return newAST(ASTKindStatement, AST{})
6}
7
8// SectionStatement represents a section AST
9func newSectionStatement(tok Token) AST {
10 return newASTWithRootToken(ASTKindSectionStatement, tok)
11}
12
13// ExprStatement represents a completed expression AST
14func newExprStatement(ast AST) AST {
15 return newAST(ASTKindExprStatement, ast)
16}
17
18// CommentStatement represents a comment in the ini definition.
19//
20// grammar:
21// comment -> #comment' | ;comment'
22// comment' -> epsilon | value
23func newCommentStatement(tok Token) AST {
24 return newAST(ASTKindCommentStatement, newExpression(tok))
25}
26
27// CompletedSectionStatement represents a completed section
28func newCompletedSectionStatement(ast AST) AST {
29 return newAST(ASTKindCompletedSectionStatement, ast)
30}
31
32// SkipStatement is used to skip whole statements
33func newSkipStatement(ast AST) AST {
34 return newAST(ASTKindSkipStatement, ast)
35}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go
new file mode 100644
index 0000000..305999d
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go
@@ -0,0 +1,284 @@
1package ini
2
3import (
4 "fmt"
5)
6
7// getStringValue will return a quoted string and the amount
8// of bytes read
9//
10// an error will be returned if the string is not properly formatted
11func getStringValue(b []rune) (int, error) {
12 if b[0] != '"' {
13 return 0, NewParseError("strings must start with '\"'")
14 }
15
16 endQuote := false
17 i := 1
18
19 for ; i < len(b) && !endQuote; i++ {
20 if escaped := isEscaped(b[:i], b[i]); b[i] == '"' && !escaped {
21 endQuote = true
22 break
23 } else if escaped {
24 /*c, err := getEscapedByte(b[i])
25 if err != nil {
26 return 0, err
27 }
28
29 b[i-1] = c
30 b = append(b[:i], b[i+1:]...)
31 i--*/
32
33 continue
34 }
35 }
36
37 if !endQuote {
38 return 0, NewParseError("missing '\"' in string value")
39 }
40
41 return i + 1, nil
42}
43
44// getBoolValue will return a boolean and the amount
45// of bytes read
46//
47// an error will be returned if the boolean is not of a correct
48// value
49func getBoolValue(b []rune) (int, error) {
50 if len(b) < 4 {
51 return 0, NewParseError("invalid boolean value")
52 }
53
54 n := 0
55 for _, lv := range literalValues {
56 if len(lv) > len(b) {
57 continue
58 }
59
60 if isLitValue(lv, b) {
61 n = len(lv)
62 }
63 }
64
65 if n == 0 {
66 return 0, NewParseError("invalid boolean value")
67 }
68
69 return n, nil
70}
71
72// getNumericalValue will return a numerical string, the amount
73// of bytes read, and the base of the number
74//
75// an error will be returned if the number is not of a correct
76// value
77func getNumericalValue(b []rune) (int, int, error) {
78 if !isDigit(b[0]) {
79 return 0, 0, NewParseError("invalid digit value")
80 }
81
82 i := 0
83 helper := numberHelper{}
84
85loop:
86 for negativeIndex := 0; i < len(b); i++ {
87 negativeIndex++
88
89 if !isDigit(b[i]) {
90 switch b[i] {
91 case '-':
92 if helper.IsNegative() || negativeIndex != 1 {
93 return 0, 0, NewParseError("parse error '-'")
94 }
95
96 n := getNegativeNumber(b[i:])
97 i += (n - 1)
98 helper.Determine(b[i])
99 continue
100 case '.':
101 if err := helper.Determine(b[i]); err != nil {
102 return 0, 0, err
103 }
104 case 'e', 'E':
105 if err := helper.Determine(b[i]); err != nil {
106 return 0, 0, err
107 }
108
109 negativeIndex = 0
110 case 'b':
111 if helper.numberFormat == hex {
112 break
113 }
114 fallthrough
115 case 'o', 'x':
116 if i == 0 && b[i] != '0' {
117 return 0, 0, NewParseError("incorrect base format, expected leading '0'")
118 }
119
120 if i != 1 {
121 return 0, 0, NewParseError(fmt.Sprintf("incorrect base format found %s at %d index", string(b[i]), i))
122 }
123
124 if err := helper.Determine(b[i]); err != nil {
125 return 0, 0, err
126 }
127 default:
128 if isWhitespace(b[i]) {
129 break loop
130 }
131
132 if isNewline(b[i:]) {
133 break loop
134 }
135
136 if !(helper.numberFormat == hex && isHexByte(b[i])) {
137 if i+2 < len(b) && !isNewline(b[i:i+2]) {
138 return 0, 0, NewParseError("invalid numerical character")
139 } else if !isNewline([]rune{b[i]}) {
140 return 0, 0, NewParseError("invalid numerical character")
141 }
142
143 break loop
144 }
145 }
146 }
147 }
148
149 return helper.Base(), i, nil
150}
151
152// isDigit will return whether or not something is an integer
153func isDigit(b rune) bool {
154 return b >= '0' && b <= '9'
155}
156
157func hasExponent(v []rune) bool {
158 return contains(v, 'e') || contains(v, 'E')
159}
160
161func isBinaryByte(b rune) bool {
162 switch b {
163 case '0', '1':
164 return true
165 default:
166 return false
167 }
168}
169
170func isOctalByte(b rune) bool {
171 switch b {
172 case '0', '1', '2', '3', '4', '5', '6', '7':
173 return true
174 default:
175 return false
176 }
177}
178
179func isHexByte(b rune) bool {
180 if isDigit(b) {
181 return true
182 }
183 return (b >= 'A' && b <= 'F') ||
184 (b >= 'a' && b <= 'f')
185}
186
187func getValue(b []rune) (int, error) {
188 i := 0
189
190 for i < len(b) {
191 if isNewline(b[i:]) {
192 break
193 }
194
195 if isOp(b[i:]) {
196 break
197 }
198
199 valid, n, err := isValid(b[i:])
200 if err != nil {
201 return 0, err
202 }
203
204 if !valid {
205 break
206 }
207
208 i += n
209 }
210
211 return i, nil
212}
213
214// getNegativeNumber will return a negative number from a
215// byte slice. This will iterate through all characters until
216// a non-digit has been found.
217func getNegativeNumber(b []rune) int {
218 if b[0] != '-' {
219 return 0
220 }
221
222 i := 1
223 for ; i < len(b); i++ {
224 if !isDigit(b[i]) {
225 return i
226 }
227 }
228
229 return i
230}
231
232// isEscaped will return whether or not the character is an escaped
233// character.
234func isEscaped(value []rune, b rune) bool {
235 if len(value) == 0 {
236 return false
237 }
238
239 switch b {
240 case '\'': // single quote
241 case '"': // quote
242 case 'n': // newline
243 case 't': // tab
244 case '\\': // backslash
245 default:
246 return false
247 }
248
249 return value[len(value)-1] == '\\'
250}
251
252func getEscapedByte(b rune) (rune, error) {
253 switch b {
254 case '\'': // single quote
255 return '\'', nil
256 case '"': // quote
257 return '"', nil
258 case 'n': // newline
259 return '\n', nil
260 case 't': // table
261 return '\t', nil
262 case '\\': // backslash
263 return '\\', nil
264 default:
265 return b, NewParseError(fmt.Sprintf("invalid escaped character %c", b))
266 }
267}
268
269func removeEscapedCharacters(b []rune) []rune {
270 for i := 0; i < len(b); i++ {
271 if isEscaped(b[:i], b[i]) {
272 c, err := getEscapedByte(b[i])
273 if err != nil {
274 return b
275 }
276
277 b[i-1] = c
278 b = append(b[:i], b[i+1:]...)
279 i--
280 }
281 }
282
283 return b
284}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go
new file mode 100644
index 0000000..94841c3
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go
@@ -0,0 +1,166 @@
1package ini
2
3import (
4 "fmt"
5 "sort"
6)
7
8// Visitor is an interface used by walkers that will
9// traverse an array of ASTs.
10type Visitor interface {
11 VisitExpr(AST) error
12 VisitStatement(AST) error
13}
14
15// DefaultVisitor is used to visit statements and expressions
16// and ensure that they are both of the correct format.
17// In addition, upon visiting this will build sections and populate
18// the Sections field which can be used to retrieve profile
19// configuration.
20type DefaultVisitor struct {
21 scope string
22 Sections Sections
23}
24
25// NewDefaultVisitor return a DefaultVisitor
26func NewDefaultVisitor() *DefaultVisitor {
27 return &DefaultVisitor{
28 Sections: Sections{
29 container: map[string]Section{},
30 },
31 }
32}
33
34// VisitExpr visits expressions...
35func (v *DefaultVisitor) VisitExpr(expr AST) error {
36 t := v.Sections.container[v.scope]
37 if t.values == nil {
38 t.values = values{}
39 }
40
41 switch expr.Kind {
42 case ASTKindExprStatement:
43 opExpr := expr.GetRoot()
44 switch opExpr.Kind {
45 case ASTKindEqualExpr:
46 children := opExpr.GetChildren()
47 if len(children) <= 1 {
48 return NewParseError("unexpected token type")
49 }
50
51 rhs := children[1]
52
53 if rhs.Root.Type() != TokenLit {
54 return NewParseError("unexpected token type")
55 }
56
57 key := EqualExprKey(opExpr)
58 v, err := newValue(rhs.Root.ValueType, rhs.Root.base, rhs.Root.Raw())
59 if err != nil {
60 return err
61 }
62
63 t.values[key] = v
64 default:
65 return NewParseError(fmt.Sprintf("unsupported expression %v", expr))
66 }
67 default:
68 return NewParseError(fmt.Sprintf("unsupported expression %v", expr))
69 }
70
71 v.Sections.container[v.scope] = t
72 return nil
73}
74
75// VisitStatement visits statements...
76func (v *DefaultVisitor) VisitStatement(stmt AST) error {
77 switch stmt.Kind {
78 case ASTKindCompletedSectionStatement:
79 child := stmt.GetRoot()
80 if child.Kind != ASTKindSectionStatement {
81 return NewParseError(fmt.Sprintf("unsupported child statement: %T", child))
82 }
83
84 name := string(child.Root.Raw())
85 v.Sections.container[name] = Section{}
86 v.scope = name
87 default:
88 return NewParseError(fmt.Sprintf("unsupported statement: %s", stmt.Kind))
89 }
90
91 return nil
92}
93
94// Sections is a map of Section structures that represent
95// a configuration.
96type Sections struct {
97 container map[string]Section
98}
99
100// GetSection will return section p. If section p does not exist,
101// false will be returned in the second parameter.
102func (t Sections) GetSection(p string) (Section, bool) {
103 v, ok := t.container[p]
104 return v, ok
105}
106
107// values represents a map of union values.
108type values map[string]Value
109
110// List will return a list of all sections that were successfully
111// parsed.
112func (t Sections) List() []string {
113 keys := make([]string, len(t.container))
114 i := 0
115 for k := range t.container {
116 keys[i] = k
117 i++
118 }
119
120 sort.Strings(keys)
121 return keys
122}
123
124// Section contains a name and values. This represent
125// a sectioned entry in a configuration file.
126type Section struct {
127 Name string
128 values values
129}
130
131// Has will return whether or not an entry exists in a given section
132func (t Section) Has(k string) bool {
133 _, ok := t.values[k]
134 return ok
135}
136
137// ValueType will returned what type the union is set to. If
138// k was not found, the NoneType will be returned.
139func (t Section) ValueType(k string) (ValueType, bool) {
140 v, ok := t.values[k]
141 return v.Type, ok
142}
143
144// Bool returns a bool value at k
145func (t Section) Bool(k string) bool {
146 return t.values[k].BoolValue()
147}
148
149// Int returns an integer value at k
150func (t Section) Int(k string) int64 {
151 return t.values[k].IntValue()
152}
153
154// Float64 returns a float value at k
155func (t Section) Float64(k string) float64 {
156 return t.values[k].FloatValue()
157}
158
159// String returns the string value at k
160func (t Section) String(k string) string {
161 _, ok := t.values[k]
162 if !ok {
163 return ""
164 }
165 return t.values[k].StringValue()
166}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go
new file mode 100644
index 0000000..99915f7
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go
@@ -0,0 +1,25 @@
1package ini
2
3// Walk will traverse the AST using the v, the Visitor.
4func Walk(tree []AST, v Visitor) error {
5 for _, node := range tree {
6 switch node.Kind {
7 case ASTKindExpr,
8 ASTKindExprStatement:
9
10 if err := v.VisitExpr(node); err != nil {
11 return err
12 }
13 case ASTKindStatement,
14 ASTKindCompletedSectionStatement,
15 ASTKindNestedSectionStatement,
16 ASTKindCompletedNestedSectionStatement:
17
18 if err := v.VisitStatement(node); err != nil {
19 return err
20 }
21 }
22 }
23
24 return nil
25}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go
new file mode 100644
index 0000000..7ffb4ae
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go
@@ -0,0 +1,24 @@
1package ini
2
3import (
4 "unicode"
5)
6
7// isWhitespace will return whether or not the character is
8// a whitespace character.
9//
10// Whitespace is defined as a space or tab.
11func isWhitespace(c rune) bool {
12 return unicode.IsSpace(c) && c != '\n' && c != '\r'
13}
14
15func newWSToken(b []rune) (Token, int, error) {
16 i := 0
17 for ; i < len(b); i++ {
18 if !isWhitespace(b[i]) {
19 break
20 }
21 }
22
23 return newToken(TokenWS, b[:i], NoneType), i, nil
24}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go b/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go
new file mode 100644
index 0000000..0b9b0df
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go
@@ -0,0 +1,57 @@
1package s3err
2
3import (
4 "fmt"
5
6 "github.com/aws/aws-sdk-go/aws/awserr"
7 "github.com/aws/aws-sdk-go/aws/request"
8)
9
10// RequestFailure provides additional S3 specific metadata for the request
11// failure.
12type RequestFailure struct {
13 awserr.RequestFailure
14
15 hostID string
16}
17
18// NewRequestFailure returns a request failure error decordated with S3
19// specific metadata.
20func NewRequestFailure(err awserr.RequestFailure, hostID string) *RequestFailure {
21 return &RequestFailure{RequestFailure: err, hostID: hostID}
22}
23
24func (r RequestFailure) Error() string {
25 extra := fmt.Sprintf("status code: %d, request id: %s, host id: %s",
26 r.StatusCode(), r.RequestID(), r.hostID)
27 return awserr.SprintError(r.Code(), r.Message(), extra, r.OrigErr())
28}
29func (r RequestFailure) String() string {
30 return r.Error()
31}
32
33// HostID returns the HostID request response value.
34func (r RequestFailure) HostID() string {
35 return r.hostID
36}
37
38// RequestFailureWrapperHandler returns a handler to rap an
39// awserr.RequestFailure with the S3 request ID 2 from the response.
40func RequestFailureWrapperHandler() request.NamedHandler {
41 return request.NamedHandler{
42 Name: "awssdk.s3.errorHandler",
43 Fn: func(req *request.Request) {
44 reqErr, ok := req.Error.(awserr.RequestFailure)
45 if !ok || reqErr == nil {
46 return
47 }
48
49 hostID := req.HTTPResponse.Header.Get("X-Amz-Id-2")
50 if req.Error == nil {
51 return
52 }
53
54 req.Error = NewRequestFailure(reqErr, hostID)
55 },
56 }
57}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go
new file mode 100644
index 0000000..7da8a49
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go
@@ -0,0 +1,12 @@
1package shareddefaults
2
3const (
4 // ECSCredsProviderEnvVar is an environmental variable key used to
5 // determine which path needs to be hit.
6 ECSCredsProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
7)
8
9// ECSContainerCredentialsURI is the endpoint to retrieve container
10// credentials. This can be overridden to test to ensure the credential process
11// is behaving correctly.
12var ECSContainerCredentialsURI = "http://169.254.170.2"
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go
new file mode 100644
index 0000000..d7d42db
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go
@@ -0,0 +1,68 @@
1package protocol
2
3import (
4 "strings"
5
6 "github.com/aws/aws-sdk-go/aws/request"
7)
8
9// ValidateEndpointHostHandler is a request handler that will validate the
10// request endpoint's hosts is a valid RFC 3986 host.
11var ValidateEndpointHostHandler = request.NamedHandler{
12 Name: "awssdk.protocol.ValidateEndpointHostHandler",
13 Fn: func(r *request.Request) {
14 err := ValidateEndpointHost(r.Operation.Name, r.HTTPRequest.URL.Host)
15 if err != nil {
16 r.Error = err
17 }
18 },
19}
20
21// ValidateEndpointHost validates that the host string passed in is a valid RFC
22// 3986 host. Returns error if the host is not valid.
23func ValidateEndpointHost(opName, host string) error {
24 paramErrs := request.ErrInvalidParams{Context: opName}
25 labels := strings.Split(host, ".")
26
27 for i, label := range labels {
28 if i == len(labels)-1 && len(label) == 0 {
29 // Allow trailing dot for FQDN hosts.
30 continue
31 }
32
33 if !ValidHostLabel(label) {
34 paramErrs.Add(request.NewErrParamFormat(
35 "endpoint host label", "[a-zA-Z0-9-]{1,63}", label))
36 }
37 }
38
39 if len(host) > 255 {
40 paramErrs.Add(request.NewErrParamMaxLen(
41 "endpoint host", 255, host,
42 ))
43 }
44
45 if paramErrs.Len() > 0 {
46 return paramErrs
47 }
48 return nil
49}
50
51// ValidHostLabel returns if the label is a valid RFC 3986 host label.
52func ValidHostLabel(label string) bool {
53 if l := len(label); l == 0 || l > 63 {
54 return false
55 }
56 for _, r := range label {
57 switch {
58 case r >= '0' && r <= '9':
59 case r >= 'A' && r <= 'Z':
60 case r >= 'a' && r <= 'z':
61 case r == '-':
62 default:
63 return false
64 }
65 }
66
67 return true
68}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go
new file mode 100644
index 0000000..915b0fc
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go
@@ -0,0 +1,54 @@
1package protocol
2
3import (
4 "strings"
5
6 "github.com/aws/aws-sdk-go/aws"
7 "github.com/aws/aws-sdk-go/aws/request"
8)
9
10// HostPrefixHandlerName is the handler name for the host prefix request
11// handler.
12const HostPrefixHandlerName = "awssdk.endpoint.HostPrefixHandler"
13
14// NewHostPrefixHandler constructs a build handler
15func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) request.NamedHandler {
16 builder := HostPrefixBuilder{
17 Prefix: prefix,
18 LabelsFn: labelsFn,
19 }
20
21 return request.NamedHandler{
22 Name: HostPrefixHandlerName,
23 Fn: builder.Build,
24 }
25}
26
27// HostPrefixBuilder provides the request handler to expand and prepend
28// the host prefix into the operation's request endpoint host.
29type HostPrefixBuilder struct {
30 Prefix string
31 LabelsFn func() map[string]string
32}
33
34// Build updates the passed in Request with the HostPrefix template expanded.
35func (h HostPrefixBuilder) Build(r *request.Request) {
36 if aws.BoolValue(r.Config.DisableEndpointHostPrefix) {
37 return
38 }
39
40 var labels map[string]string
41 if h.LabelsFn != nil {
42 labels = h.LabelsFn()
43 }
44
45 prefix := h.Prefix
46 for name, value := range labels {
47 prefix = strings.Replace(prefix, "{"+name+"}", value, -1)
48 }
49
50 r.HTTPRequest.URL.Host = prefix + r.HTTPRequest.URL.Host
51 if len(r.HTTPRequest.Host) > 0 {
52 r.HTTPRequest.Host = prefix + r.HTTPRequest.Host
53 }
54}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go
index e0f4d5a..3495c73 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go
@@ -23,7 +23,11 @@ func Unmarshal(r *request.Request) {
23 decoder := xml.NewDecoder(r.HTTPResponse.Body) 23 decoder := xml.NewDecoder(r.HTTPResponse.Body)
24 err := xmlutil.UnmarshalXML(r.Data, decoder, r.Operation.Name+"Result") 24 err := xmlutil.UnmarshalXML(r.Data, decoder, r.Operation.Name+"Result")
25 if err != nil { 25 if err != nil {
26 r.Error = awserr.New("SerializationError", "failed decoding Query response", err) 26 r.Error = awserr.NewRequestFailure(
27 awserr.New("SerializationError", "failed decoding Query response", err),
28 r.HTTPResponse.StatusCode,
29 r.RequestID,
30 )
27 return 31 return
28 } 32 }
29 } 33 }
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go
index f214296..46d354e 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go
@@ -28,7 +28,11 @@ func UnmarshalError(r *request.Request) {
28 28
29 bodyBytes, err := ioutil.ReadAll(r.HTTPResponse.Body) 29 bodyBytes, err := ioutil.ReadAll(r.HTTPResponse.Body)
30 if err != nil { 30 if err != nil {
31 r.Error = awserr.New("SerializationError", "failed to read from query HTTP response body", err) 31 r.Error = awserr.NewRequestFailure(
32 awserr.New("SerializationError", "failed to read from query HTTP response body", err),
33 r.HTTPResponse.StatusCode,
34 r.RequestID,
35 )
32 return 36 return
33 } 37 }
34 38
@@ -61,6 +65,10 @@ func UnmarshalError(r *request.Request) {
61 } 65 }
62 66
63 // Failed to retrieve any error message from the response body 67 // Failed to retrieve any error message from the response body
64 r.Error = awserr.New("SerializationError", 68 r.Error = awserr.NewRequestFailure(
65 "failed to decode query XML error response", decodeErr) 69 awserr.New("SerializationError",
70 "failed to decode query XML error response", decodeErr),
71 r.HTTPResponse.StatusCode,
72 r.RequestID,
73 )
66} 74}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
index b34f525..b80f84f 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
@@ -155,6 +155,9 @@ func buildHeader(header *http.Header, v reflect.Value, name string, tag reflect.
155 return awserr.New("SerializationError", "failed to encode REST request", err) 155 return awserr.New("SerializationError", "failed to encode REST request", err)
156 } 156 }
157 157
158 name = strings.TrimSpace(name)
159 str = strings.TrimSpace(str)
160
158 header.Add(name, str) 161 header.Add(name, str)
159 162
160 return nil 163 return nil
@@ -170,8 +173,10 @@ func buildHeaderMap(header *http.Header, v reflect.Value, tag reflect.StructTag)
170 return awserr.New("SerializationError", "failed to encode REST request", err) 173 return awserr.New("SerializationError", "failed to encode REST request", err)
171 174
172 } 175 }
176 keyStr := strings.TrimSpace(key.String())
177 str = strings.TrimSpace(str)
173 178
174 header.Add(prefix+key.String(), str) 179 header.Add(prefix+keyStr, str)
175 } 180 }
176 return nil 181 return nil
177} 182}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go
index 7bdf4c8..b0f4e24 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go
@@ -36,7 +36,11 @@ func Build(r *request.Request) {
36 var buf bytes.Buffer 36 var buf bytes.Buffer
37 err := xmlutil.BuildXML(r.Params, xml.NewEncoder(&buf)) 37 err := xmlutil.BuildXML(r.Params, xml.NewEncoder(&buf))
38 if err != nil { 38 if err != nil {
39 r.Error = awserr.New("SerializationError", "failed to encode rest XML request", err) 39 r.Error = awserr.NewRequestFailure(
40 awserr.New("SerializationError", "failed to encode rest XML request", err),
41 r.HTTPResponse.StatusCode,
42 r.RequestID,
43 )
40 return 44 return
41 } 45 }
42 r.SetBufferBody(buf.Bytes()) 46 r.SetBufferBody(buf.Bytes())
@@ -50,7 +54,11 @@ func Unmarshal(r *request.Request) {
50 decoder := xml.NewDecoder(r.HTTPResponse.Body) 54 decoder := xml.NewDecoder(r.HTTPResponse.Body)
51 err := xmlutil.UnmarshalXML(r.Data, decoder, "") 55 err := xmlutil.UnmarshalXML(r.Data, decoder, "")
52 if err != nil { 56 if err != nil {
53 r.Error = awserr.New("SerializationError", "failed to decode REST XML response", err) 57 r.Error = awserr.NewRequestFailure(
58 awserr.New("SerializationError", "failed to decode REST XML response", err),
59 r.HTTPResponse.StatusCode,
60 r.RequestID,
61 )
54 return 62 return
55 } 63 }
56 } else { 64 } else {
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
index 07764c8..cf981fe 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
@@ -87,15 +87,13 @@ func (b *xmlBuilder) buildValue(value reflect.Value, current *XMLNode, tag refle
87 } 87 }
88} 88}
89 89
90// buildStruct adds a struct and its fields to the current XMLNode. All fields any any nested 90// buildStruct adds a struct and its fields to the current XMLNode. All fields and any nested
91// types are converted to XMLNodes also. 91// types are converted to XMLNodes also.
92func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag reflect.StructTag) error { 92func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag reflect.StructTag) error {
93 if !value.IsValid() { 93 if !value.IsValid() {
94 return nil 94 return nil
95 } 95 }
96 96
97 fieldAdded := false
98
99 // unwrap payloads 97 // unwrap payloads
100 if payload := tag.Get("payload"); payload != "" { 98 if payload := tag.Get("payload"); payload != "" {
101 field, _ := value.Type().FieldByName(payload) 99 field, _ := value.Type().FieldByName(payload)
@@ -123,6 +121,8 @@ func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag refl
123 child.Attr = append(child.Attr, ns) 121 child.Attr = append(child.Attr, ns)
124 } 122 }
125 123
124 var payloadFields, nonPayloadFields int
125
126 t := value.Type() 126 t := value.Type()
127 for i := 0; i < value.NumField(); i++ { 127 for i := 0; i < value.NumField(); i++ {
128 member := elemOf(value.Field(i)) 128 member := elemOf(value.Field(i))
@@ -137,8 +137,10 @@ func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag refl
137 137
138 mTag := field.Tag 138 mTag := field.Tag
139 if mTag.Get("location") != "" { // skip non-body members 139 if mTag.Get("location") != "" { // skip non-body members
140 nonPayloadFields++
140 continue 141 continue
141 } 142 }
143 payloadFields++
142 144
143 if protocol.CanSetIdempotencyToken(value.Field(i), field) { 145 if protocol.CanSetIdempotencyToken(value.Field(i), field) {
144 token := protocol.GetIdempotencyToken() 146 token := protocol.GetIdempotencyToken()
@@ -153,11 +155,11 @@ func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag refl
153 if err := b.buildValue(member, child, mTag); err != nil { 155 if err := b.buildValue(member, child, mTag); err != nil {
154 return err 156 return err
155 } 157 }
156
157 fieldAdded = true
158 } 158 }
159 159
160 if fieldAdded { // only append this child if we have one ore more valid members 160 // Only case where the child shape is not added is if the shape only contains
161 // non-payload fields, e.g headers/query.
162 if !(payloadFields == 0 && nonPayloadFields > 0) {
161 current.AddChild(child) 163 current.AddChild(child)
162 } 164 }
163 165
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
index 0e999ca..83a42d2 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
@@ -27,7 +27,7 @@ const opAbortMultipartUpload = "AbortMultipartUpload"
27// AbortMultipartUploadRequest generates a "aws/request.Request" representing the 27// AbortMultipartUploadRequest generates a "aws/request.Request" representing the
28// client's request for the AbortMultipartUpload operation. The "output" return 28// client's request for the AbortMultipartUpload operation. The "output" return
29// value will be populated with the request's response once the request completes 29// value will be populated with the request's response once the request completes
30// successfuly. 30// successfully.
31// 31//
32// Use "Send" method on the returned Request to send the API call to the service. 32// Use "Send" method on the returned Request to send the API call to the service.
33// the "output" return value is not valid until after Send returns without error. 33// the "output" return value is not valid until after Send returns without error.
@@ -110,7 +110,7 @@ const opCompleteMultipartUpload = "CompleteMultipartUpload"
110// CompleteMultipartUploadRequest generates a "aws/request.Request" representing the 110// CompleteMultipartUploadRequest generates a "aws/request.Request" representing the
111// client's request for the CompleteMultipartUpload operation. The "output" return 111// client's request for the CompleteMultipartUpload operation. The "output" return
112// value will be populated with the request's response once the request completes 112// value will be populated with the request's response once the request completes
113// successfuly. 113// successfully.
114// 114//
115// Use "Send" method on the returned Request to send the API call to the service. 115// Use "Send" method on the returned Request to send the API call to the service.
116// the "output" return value is not valid until after Send returns without error. 116// the "output" return value is not valid until after Send returns without error.
@@ -184,7 +184,7 @@ const opCopyObject = "CopyObject"
184// CopyObjectRequest generates a "aws/request.Request" representing the 184// CopyObjectRequest generates a "aws/request.Request" representing the
185// client's request for the CopyObject operation. The "output" return 185// client's request for the CopyObject operation. The "output" return
186// value will be populated with the request's response once the request completes 186// value will be populated with the request's response once the request completes
187// successfuly. 187// successfully.
188// 188//
189// Use "Send" method on the returned Request to send the API call to the service. 189// Use "Send" method on the returned Request to send the API call to the service.
190// the "output" return value is not valid until after Send returns without error. 190// the "output" return value is not valid until after Send returns without error.
@@ -264,7 +264,7 @@ const opCreateBucket = "CreateBucket"
264// CreateBucketRequest generates a "aws/request.Request" representing the 264// CreateBucketRequest generates a "aws/request.Request" representing the
265// client's request for the CreateBucket operation. The "output" return 265// client's request for the CreateBucket operation. The "output" return
266// value will be populated with the request's response once the request completes 266// value will be populated with the request's response once the request completes
267// successfuly. 267// successfully.
268// 268//
269// Use "Send" method on the returned Request to send the API call to the service. 269// Use "Send" method on the returned Request to send the API call to the service.
270// the "output" return value is not valid until after Send returns without error. 270// the "output" return value is not valid until after Send returns without error.
@@ -346,7 +346,7 @@ const opCreateMultipartUpload = "CreateMultipartUpload"
346// CreateMultipartUploadRequest generates a "aws/request.Request" representing the 346// CreateMultipartUploadRequest generates a "aws/request.Request" representing the
347// client's request for the CreateMultipartUpload operation. The "output" return 347// client's request for the CreateMultipartUpload operation. The "output" return
348// value will be populated with the request's response once the request completes 348// value will be populated with the request's response once the request completes
349// successfuly. 349// successfully.
350// 350//
351// Use "Send" method on the returned Request to send the API call to the service. 351// Use "Send" method on the returned Request to send the API call to the service.
352// the "output" return value is not valid until after Send returns without error. 352// the "output" return value is not valid until after Send returns without error.
@@ -426,7 +426,7 @@ const opDeleteBucket = "DeleteBucket"
426// DeleteBucketRequest generates a "aws/request.Request" representing the 426// DeleteBucketRequest generates a "aws/request.Request" representing the
427// client's request for the DeleteBucket operation. The "output" return 427// client's request for the DeleteBucket operation. The "output" return
428// value will be populated with the request's response once the request completes 428// value will be populated with the request's response once the request completes
429// successfuly. 429// successfully.
430// 430//
431// Use "Send" method on the returned Request to send the API call to the service. 431// Use "Send" method on the returned Request to send the API call to the service.
432// the "output" return value is not valid until after Send returns without error. 432// the "output" return value is not valid until after Send returns without error.
@@ -460,8 +460,7 @@ func (c *S3) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request
460 460
461 output = &DeleteBucketOutput{} 461 output = &DeleteBucketOutput{}
462 req = c.newRequest(op, input, output) 462 req = c.newRequest(op, input, output)
463 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 463 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
464 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
465 return 464 return
466} 465}
467 466
@@ -503,7 +502,7 @@ const opDeleteBucketAnalyticsConfiguration = "DeleteBucketAnalyticsConfiguration
503// DeleteBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the 502// DeleteBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the
504// client's request for the DeleteBucketAnalyticsConfiguration operation. The "output" return 503// client's request for the DeleteBucketAnalyticsConfiguration operation. The "output" return
505// value will be populated with the request's response once the request completes 504// value will be populated with the request's response once the request completes
506// successfuly. 505// successfully.
507// 506//
508// Use "Send" method on the returned Request to send the API call to the service. 507// Use "Send" method on the returned Request to send the API call to the service.
509// the "output" return value is not valid until after Send returns without error. 508// the "output" return value is not valid until after Send returns without error.
@@ -537,8 +536,7 @@ func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyt
537 536
538 output = &DeleteBucketAnalyticsConfigurationOutput{} 537 output = &DeleteBucketAnalyticsConfigurationOutput{}
539 req = c.newRequest(op, input, output) 538 req = c.newRequest(op, input, output)
540 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 539 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
541 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
542 return 540 return
543} 541}
544 542
@@ -580,7 +578,7 @@ const opDeleteBucketCors = "DeleteBucketCors"
580// DeleteBucketCorsRequest generates a "aws/request.Request" representing the 578// DeleteBucketCorsRequest generates a "aws/request.Request" representing the
581// client's request for the DeleteBucketCors operation. The "output" return 579// client's request for the DeleteBucketCors operation. The "output" return
582// value will be populated with the request's response once the request completes 580// value will be populated with the request's response once the request completes
583// successfuly. 581// successfully.
584// 582//
585// Use "Send" method on the returned Request to send the API call to the service. 583// Use "Send" method on the returned Request to send the API call to the service.
586// the "output" return value is not valid until after Send returns without error. 584// the "output" return value is not valid until after Send returns without error.
@@ -614,14 +612,13 @@ func (c *S3) DeleteBucketCorsRequest(input *DeleteBucketCorsInput) (req *request
614 612
615 output = &DeleteBucketCorsOutput{} 613 output = &DeleteBucketCorsOutput{}
616 req = c.newRequest(op, input, output) 614 req = c.newRequest(op, input, output)
617 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 615 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
618 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
619 return 616 return
620} 617}
621 618
622// DeleteBucketCors API operation for Amazon Simple Storage Service. 619// DeleteBucketCors API operation for Amazon Simple Storage Service.
623// 620//
624// Deletes the cors configuration information set for the bucket. 621// Deletes the CORS configuration information set for the bucket.
625// 622//
626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
627// with awserr.Error's Code and Message methods to get detailed information about 624// with awserr.Error's Code and Message methods to get detailed information about
@@ -656,7 +653,7 @@ const opDeleteBucketEncryption = "DeleteBucketEncryption"
656// DeleteBucketEncryptionRequest generates a "aws/request.Request" representing the 653// DeleteBucketEncryptionRequest generates a "aws/request.Request" representing the
657// client's request for the DeleteBucketEncryption operation. The "output" return 654// client's request for the DeleteBucketEncryption operation. The "output" return
658// value will be populated with the request's response once the request completes 655// value will be populated with the request's response once the request completes
659// successfuly. 656// successfully.
660// 657//
661// Use "Send" method on the returned Request to send the API call to the service. 658// Use "Send" method on the returned Request to send the API call to the service.
662// the "output" return value is not valid until after Send returns without error. 659// the "output" return value is not valid until after Send returns without error.
@@ -690,8 +687,7 @@ func (c *S3) DeleteBucketEncryptionRequest(input *DeleteBucketEncryptionInput) (
690 687
691 output = &DeleteBucketEncryptionOutput{} 688 output = &DeleteBucketEncryptionOutput{}
692 req = c.newRequest(op, input, output) 689 req = c.newRequest(op, input, output)
693 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 690 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
694 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
695 return 691 return
696} 692}
697 693
@@ -732,7 +728,7 @@ const opDeleteBucketInventoryConfiguration = "DeleteBucketInventoryConfiguration
732// DeleteBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the 728// DeleteBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the
733// client's request for the DeleteBucketInventoryConfiguration operation. The "output" return 729// client's request for the DeleteBucketInventoryConfiguration operation. The "output" return
734// value will be populated with the request's response once the request completes 730// value will be populated with the request's response once the request completes
735// successfuly. 731// successfully.
736// 732//
737// Use "Send" method on the returned Request to send the API call to the service. 733// Use "Send" method on the returned Request to send the API call to the service.
738// the "output" return value is not valid until after Send returns without error. 734// the "output" return value is not valid until after Send returns without error.
@@ -766,8 +762,7 @@ func (c *S3) DeleteBucketInventoryConfigurationRequest(input *DeleteBucketInvent
766 762
767 output = &DeleteBucketInventoryConfigurationOutput{} 763 output = &DeleteBucketInventoryConfigurationOutput{}
768 req = c.newRequest(op, input, output) 764 req = c.newRequest(op, input, output)
769 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 765 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
770 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
771 return 766 return
772} 767}
773 768
@@ -809,7 +804,7 @@ const opDeleteBucketLifecycle = "DeleteBucketLifecycle"
809// DeleteBucketLifecycleRequest generates a "aws/request.Request" representing the 804// DeleteBucketLifecycleRequest generates a "aws/request.Request" representing the
810// client's request for the DeleteBucketLifecycle operation. The "output" return 805// client's request for the DeleteBucketLifecycle operation. The "output" return
811// value will be populated with the request's response once the request completes 806// value will be populated with the request's response once the request completes
812// successfuly. 807// successfully.
813// 808//
814// Use "Send" method on the returned Request to send the API call to the service. 809// Use "Send" method on the returned Request to send the API call to the service.
815// the "output" return value is not valid until after Send returns without error. 810// the "output" return value is not valid until after Send returns without error.
@@ -843,8 +838,7 @@ func (c *S3) DeleteBucketLifecycleRequest(input *DeleteBucketLifecycleInput) (re
843 838
844 output = &DeleteBucketLifecycleOutput{} 839 output = &DeleteBucketLifecycleOutput{}
845 req = c.newRequest(op, input, output) 840 req = c.newRequest(op, input, output)
846 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 841 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
847 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
848 return 842 return
849} 843}
850 844
@@ -885,7 +879,7 @@ const opDeleteBucketMetricsConfiguration = "DeleteBucketMetricsConfiguration"
885// DeleteBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the 879// DeleteBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the
886// client's request for the DeleteBucketMetricsConfiguration operation. The "output" return 880// client's request for the DeleteBucketMetricsConfiguration operation. The "output" return
887// value will be populated with the request's response once the request completes 881// value will be populated with the request's response once the request completes
888// successfuly. 882// successfully.
889// 883//
890// Use "Send" method on the returned Request to send the API call to the service. 884// Use "Send" method on the returned Request to send the API call to the service.
891// the "output" return value is not valid until after Send returns without error. 885// the "output" return value is not valid until after Send returns without error.
@@ -919,8 +913,7 @@ func (c *S3) DeleteBucketMetricsConfigurationRequest(input *DeleteBucketMetricsC
919 913
920 output = &DeleteBucketMetricsConfigurationOutput{} 914 output = &DeleteBucketMetricsConfigurationOutput{}
921 req = c.newRequest(op, input, output) 915 req = c.newRequest(op, input, output)
922 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 916 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
923 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
924 return 917 return
925} 918}
926 919
@@ -962,7 +955,7 @@ const opDeleteBucketPolicy = "DeleteBucketPolicy"
962// DeleteBucketPolicyRequest generates a "aws/request.Request" representing the 955// DeleteBucketPolicyRequest generates a "aws/request.Request" representing the
963// client's request for the DeleteBucketPolicy operation. The "output" return 956// client's request for the DeleteBucketPolicy operation. The "output" return
964// value will be populated with the request's response once the request completes 957// value will be populated with the request's response once the request completes
965// successfuly. 958// successfully.
966// 959//
967// Use "Send" method on the returned Request to send the API call to the service. 960// Use "Send" method on the returned Request to send the API call to the service.
968// the "output" return value is not valid until after Send returns without error. 961// the "output" return value is not valid until after Send returns without error.
@@ -996,8 +989,7 @@ func (c *S3) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *req
996 989
997 output = &DeleteBucketPolicyOutput{} 990 output = &DeleteBucketPolicyOutput{}
998 req = c.newRequest(op, input, output) 991 req = c.newRequest(op, input, output)
999 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 992 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1000 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
1001 return 993 return
1002} 994}
1003 995
@@ -1038,7 +1030,7 @@ const opDeleteBucketReplication = "DeleteBucketReplication"
1038// DeleteBucketReplicationRequest generates a "aws/request.Request" representing the 1030// DeleteBucketReplicationRequest generates a "aws/request.Request" representing the
1039// client's request for the DeleteBucketReplication operation. The "output" return 1031// client's request for the DeleteBucketReplication operation. The "output" return
1040// value will be populated with the request's response once the request completes 1032// value will be populated with the request's response once the request completes
1041// successfuly. 1033// successfully.
1042// 1034//
1043// Use "Send" method on the returned Request to send the API call to the service. 1035// Use "Send" method on the returned Request to send the API call to the service.
1044// the "output" return value is not valid until after Send returns without error. 1036// the "output" return value is not valid until after Send returns without error.
@@ -1072,14 +1064,15 @@ func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput)
1072 1064
1073 output = &DeleteBucketReplicationOutput{} 1065 output = &DeleteBucketReplicationOutput{}
1074 req = c.newRequest(op, input, output) 1066 req = c.newRequest(op, input, output)
1075 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 1067 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1076 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
1077 return 1068 return
1078} 1069}
1079 1070
1080// DeleteBucketReplication API operation for Amazon Simple Storage Service. 1071// DeleteBucketReplication API operation for Amazon Simple Storage Service.
1081// 1072//
1082// Deletes the replication configuration from the bucket. 1073// Deletes the replication configuration from the bucket. For information about
1074// replication configuration, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
1075// in the Amazon S3 Developer Guide.
1083// 1076//
1084// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1077// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1085// with awserr.Error's Code and Message methods to get detailed information about 1078// with awserr.Error's Code and Message methods to get detailed information about
@@ -1114,7 +1107,7 @@ const opDeleteBucketTagging = "DeleteBucketTagging"
1114// DeleteBucketTaggingRequest generates a "aws/request.Request" representing the 1107// DeleteBucketTaggingRequest generates a "aws/request.Request" representing the
1115// client's request for the DeleteBucketTagging operation. The "output" return 1108// client's request for the DeleteBucketTagging operation. The "output" return
1116// value will be populated with the request's response once the request completes 1109// value will be populated with the request's response once the request completes
1117// successfuly. 1110// successfully.
1118// 1111//
1119// Use "Send" method on the returned Request to send the API call to the service. 1112// Use "Send" method on the returned Request to send the API call to the service.
1120// the "output" return value is not valid until after Send returns without error. 1113// the "output" return value is not valid until after Send returns without error.
@@ -1148,8 +1141,7 @@ func (c *S3) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *r
1148 1141
1149 output = &DeleteBucketTaggingOutput{} 1142 output = &DeleteBucketTaggingOutput{}
1150 req = c.newRequest(op, input, output) 1143 req = c.newRequest(op, input, output)
1151 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 1144 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1152 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
1153 return 1145 return
1154} 1146}
1155 1147
@@ -1190,7 +1182,7 @@ const opDeleteBucketWebsite = "DeleteBucketWebsite"
1190// DeleteBucketWebsiteRequest generates a "aws/request.Request" representing the 1182// DeleteBucketWebsiteRequest generates a "aws/request.Request" representing the
1191// client's request for the DeleteBucketWebsite operation. The "output" return 1183// client's request for the DeleteBucketWebsite operation. The "output" return
1192// value will be populated with the request's response once the request completes 1184// value will be populated with the request's response once the request completes
1193// successfuly. 1185// successfully.
1194// 1186//
1195// Use "Send" method on the returned Request to send the API call to the service. 1187// Use "Send" method on the returned Request to send the API call to the service.
1196// the "output" return value is not valid until after Send returns without error. 1188// the "output" return value is not valid until after Send returns without error.
@@ -1224,8 +1216,7 @@ func (c *S3) DeleteBucketWebsiteRequest(input *DeleteBucketWebsiteInput) (req *r
1224 1216
1225 output = &DeleteBucketWebsiteOutput{} 1217 output = &DeleteBucketWebsiteOutput{}
1226 req = c.newRequest(op, input, output) 1218 req = c.newRequest(op, input, output)
1227 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 1219 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1228 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
1229 return 1220 return
1230} 1221}
1231 1222
@@ -1266,7 +1257,7 @@ const opDeleteObject = "DeleteObject"
1266// DeleteObjectRequest generates a "aws/request.Request" representing the 1257// DeleteObjectRequest generates a "aws/request.Request" representing the
1267// client's request for the DeleteObject operation. The "output" return 1258// client's request for the DeleteObject operation. The "output" return
1268// value will be populated with the request's response once the request completes 1259// value will be populated with the request's response once the request completes
1269// successfuly. 1260// successfully.
1270// 1261//
1271// Use "Send" method on the returned Request to send the API call to the service. 1262// Use "Send" method on the returned Request to send the API call to the service.
1272// the "output" return value is not valid until after Send returns without error. 1263// the "output" return value is not valid until after Send returns without error.
@@ -1342,7 +1333,7 @@ const opDeleteObjectTagging = "DeleteObjectTagging"
1342// DeleteObjectTaggingRequest generates a "aws/request.Request" representing the 1333// DeleteObjectTaggingRequest generates a "aws/request.Request" representing the
1343// client's request for the DeleteObjectTagging operation. The "output" return 1334// client's request for the DeleteObjectTagging operation. The "output" return
1344// value will be populated with the request's response once the request completes 1335// value will be populated with the request's response once the request completes
1345// successfuly. 1336// successfully.
1346// 1337//
1347// Use "Send" method on the returned Request to send the API call to the service. 1338// Use "Send" method on the returned Request to send the API call to the service.
1348// the "output" return value is not valid until after Send returns without error. 1339// the "output" return value is not valid until after Send returns without error.
@@ -1416,7 +1407,7 @@ const opDeleteObjects = "DeleteObjects"
1416// DeleteObjectsRequest generates a "aws/request.Request" representing the 1407// DeleteObjectsRequest generates a "aws/request.Request" representing the
1417// client's request for the DeleteObjects operation. The "output" return 1408// client's request for the DeleteObjects operation. The "output" return
1418// value will be populated with the request's response once the request completes 1409// value will be populated with the request's response once the request completes
1419// successfuly. 1410// successfully.
1420// 1411//
1421// Use "Send" method on the returned Request to send the API call to the service. 1412// Use "Send" method on the returned Request to send the API call to the service.
1422// the "output" return value is not valid until after Send returns without error. 1413// the "output" return value is not valid until after Send returns without error.
@@ -1486,12 +1477,87 @@ func (c *S3) DeleteObjectsWithContext(ctx aws.Context, input *DeleteObjectsInput
1486 return out, req.Send() 1477 return out, req.Send()
1487} 1478}
1488 1479
1480const opDeletePublicAccessBlock = "DeletePublicAccessBlock"
1481
1482// DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the
1483// client's request for the DeletePublicAccessBlock operation. The "output" return
1484// value will be populated with the request's response once the request completes
1485// successfully.
1486//
1487// Use "Send" method on the returned Request to send the API call to the service.
1488// the "output" return value is not valid until after Send returns without error.
1489//
1490// See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock
1491// API call, and error handling.
1492//
1493// This method is useful when you want to inject custom logic or configuration
1494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1495//
1496//
1497// // Example sending a request using the DeletePublicAccessBlockRequest method.
1498// req, resp := client.DeletePublicAccessBlockRequest(params)
1499//
1500// err := req.Send()
1501// if err == nil { // resp is now filled
1502// fmt.Println(resp)
1503// }
1504//
1505// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock
1506func (c *S3) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) {
1507 op := &request.Operation{
1508 Name: opDeletePublicAccessBlock,
1509 HTTPMethod: "DELETE",
1510 HTTPPath: "/{Bucket}?publicAccessBlock",
1511 }
1512
1513 if input == nil {
1514 input = &DeletePublicAccessBlockInput{}
1515 }
1516
1517 output = &DeletePublicAccessBlockOutput{}
1518 req = c.newRequest(op, input, output)
1519 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1520 return
1521}
1522
1523// DeletePublicAccessBlock API operation for Amazon Simple Storage Service.
1524//
1525// Removes the PublicAccessBlock configuration from an Amazon S3 bucket.
1526//
1527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1528// with awserr.Error's Code and Message methods to get detailed information about
1529// the error.
1530//
1531// See the AWS API reference guide for Amazon Simple Storage Service's
1532// API operation DeletePublicAccessBlock for usage and error information.
1533// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock
1534func (c *S3) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) {
1535 req, out := c.DeletePublicAccessBlockRequest(input)
1536 return out, req.Send()
1537}
1538
1539// DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of
1540// the ability to pass a context and additional request options.
1541//
1542// See DeletePublicAccessBlock for details on how to use this API operation.
1543//
1544// The context must be non-nil and will be used for request cancellation. If
1545// the context is nil a panic will occur. In the future the SDK may create
1546// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1547// for more information on using Contexts.
1548func (c *S3) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) {
1549 req, out := c.DeletePublicAccessBlockRequest(input)
1550 req.SetContext(ctx)
1551 req.ApplyOptions(opts...)
1552 return out, req.Send()
1553}
1554
1489const opGetBucketAccelerateConfiguration = "GetBucketAccelerateConfiguration" 1555const opGetBucketAccelerateConfiguration = "GetBucketAccelerateConfiguration"
1490 1556
1491// GetBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the 1557// GetBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the
1492// client's request for the GetBucketAccelerateConfiguration operation. The "output" return 1558// client's request for the GetBucketAccelerateConfiguration operation. The "output" return
1493// value will be populated with the request's response once the request completes 1559// value will be populated with the request's response once the request completes
1494// successfuly. 1560// successfully.
1495// 1561//
1496// Use "Send" method on the returned Request to send the API call to the service. 1562// Use "Send" method on the returned Request to send the API call to the service.
1497// the "output" return value is not valid until after Send returns without error. 1563// the "output" return value is not valid until after Send returns without error.
@@ -1565,7 +1631,7 @@ const opGetBucketAcl = "GetBucketAcl"
1565// GetBucketAclRequest generates a "aws/request.Request" representing the 1631// GetBucketAclRequest generates a "aws/request.Request" representing the
1566// client's request for the GetBucketAcl operation. The "output" return 1632// client's request for the GetBucketAcl operation. The "output" return
1567// value will be populated with the request's response once the request completes 1633// value will be populated with the request's response once the request completes
1568// successfuly. 1634// successfully.
1569// 1635//
1570// Use "Send" method on the returned Request to send the API call to the service. 1636// Use "Send" method on the returned Request to send the API call to the service.
1571// the "output" return value is not valid until after Send returns without error. 1637// the "output" return value is not valid until after Send returns without error.
@@ -1639,7 +1705,7 @@ const opGetBucketAnalyticsConfiguration = "GetBucketAnalyticsConfiguration"
1639// GetBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the 1705// GetBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the
1640// client's request for the GetBucketAnalyticsConfiguration operation. The "output" return 1706// client's request for the GetBucketAnalyticsConfiguration operation. The "output" return
1641// value will be populated with the request's response once the request completes 1707// value will be populated with the request's response once the request completes
1642// successfuly. 1708// successfully.
1643// 1709//
1644// Use "Send" method on the returned Request to send the API call to the service. 1710// Use "Send" method on the returned Request to send the API call to the service.
1645// the "output" return value is not valid until after Send returns without error. 1711// the "output" return value is not valid until after Send returns without error.
@@ -1714,7 +1780,7 @@ const opGetBucketCors = "GetBucketCors"
1714// GetBucketCorsRequest generates a "aws/request.Request" representing the 1780// GetBucketCorsRequest generates a "aws/request.Request" representing the
1715// client's request for the GetBucketCors operation. The "output" return 1781// client's request for the GetBucketCors operation. The "output" return
1716// value will be populated with the request's response once the request completes 1782// value will be populated with the request's response once the request completes
1717// successfuly. 1783// successfully.
1718// 1784//
1719// Use "Send" method on the returned Request to send the API call to the service. 1785// Use "Send" method on the returned Request to send the API call to the service.
1720// the "output" return value is not valid until after Send returns without error. 1786// the "output" return value is not valid until after Send returns without error.
@@ -1753,7 +1819,7 @@ func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Reque
1753 1819
1754// GetBucketCors API operation for Amazon Simple Storage Service. 1820// GetBucketCors API operation for Amazon Simple Storage Service.
1755// 1821//
1756// Returns the cors configuration for the bucket. 1822// Returns the CORS configuration for the bucket.
1757// 1823//
1758// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1824// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1759// with awserr.Error's Code and Message methods to get detailed information about 1825// with awserr.Error's Code and Message methods to get detailed information about
@@ -1788,7 +1854,7 @@ const opGetBucketEncryption = "GetBucketEncryption"
1788// GetBucketEncryptionRequest generates a "aws/request.Request" representing the 1854// GetBucketEncryptionRequest generates a "aws/request.Request" representing the
1789// client's request for the GetBucketEncryption operation. The "output" return 1855// client's request for the GetBucketEncryption operation. The "output" return
1790// value will be populated with the request's response once the request completes 1856// value will be populated with the request's response once the request completes
1791// successfuly. 1857// successfully.
1792// 1858//
1793// Use "Send" method on the returned Request to send the API call to the service. 1859// Use "Send" method on the returned Request to send the API call to the service.
1794// the "output" return value is not valid until after Send returns without error. 1860// the "output" return value is not valid until after Send returns without error.
@@ -1862,7 +1928,7 @@ const opGetBucketInventoryConfiguration = "GetBucketInventoryConfiguration"
1862// GetBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the 1928// GetBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the
1863// client's request for the GetBucketInventoryConfiguration operation. The "output" return 1929// client's request for the GetBucketInventoryConfiguration operation. The "output" return
1864// value will be populated with the request's response once the request completes 1930// value will be populated with the request's response once the request completes
1865// successfuly. 1931// successfully.
1866// 1932//
1867// Use "Send" method on the returned Request to send the API call to the service. 1933// Use "Send" method on the returned Request to send the API call to the service.
1868// the "output" return value is not valid until after Send returns without error. 1934// the "output" return value is not valid until after Send returns without error.
@@ -1937,7 +2003,7 @@ const opGetBucketLifecycle = "GetBucketLifecycle"
1937// GetBucketLifecycleRequest generates a "aws/request.Request" representing the 2003// GetBucketLifecycleRequest generates a "aws/request.Request" representing the
1938// client's request for the GetBucketLifecycle operation. The "output" return 2004// client's request for the GetBucketLifecycle operation. The "output" return
1939// value will be populated with the request's response once the request completes 2005// value will be populated with the request's response once the request completes
1940// successfuly. 2006// successfully.
1941// 2007//
1942// Use "Send" method on the returned Request to send the API call to the service. 2008// Use "Send" method on the returned Request to send the API call to the service.
1943// the "output" return value is not valid until after Send returns without error. 2009// the "output" return value is not valid until after Send returns without error.
@@ -1958,6 +2024,8 @@ const opGetBucketLifecycle = "GetBucketLifecycle"
1958// } 2024// }
1959// 2025//
1960// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle 2026// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle
2027//
2028// Deprecated: GetBucketLifecycle has been deprecated
1961func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *request.Request, output *GetBucketLifecycleOutput) { 2029func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *request.Request, output *GetBucketLifecycleOutput) {
1962 if c.Client.Config.Logger != nil { 2030 if c.Client.Config.Logger != nil {
1963 c.Client.Config.Logger.Log("This operation, GetBucketLifecycle, has been deprecated") 2031 c.Client.Config.Logger.Log("This operation, GetBucketLifecycle, has been deprecated")
@@ -1979,7 +2047,7 @@ func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *req
1979 2047
1980// GetBucketLifecycle API operation for Amazon Simple Storage Service. 2048// GetBucketLifecycle API operation for Amazon Simple Storage Service.
1981// 2049//
1982// Deprecated, see the GetBucketLifecycleConfiguration operation. 2050// No longer used, see the GetBucketLifecycleConfiguration operation.
1983// 2051//
1984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2052// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1985// with awserr.Error's Code and Message methods to get detailed information about 2053// with awserr.Error's Code and Message methods to get detailed information about
@@ -1988,6 +2056,8 @@ func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *req
1988// See the AWS API reference guide for Amazon Simple Storage Service's 2056// See the AWS API reference guide for Amazon Simple Storage Service's
1989// API operation GetBucketLifecycle for usage and error information. 2057// API operation GetBucketLifecycle for usage and error information.
1990// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle 2058// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle
2059//
2060// Deprecated: GetBucketLifecycle has been deprecated
1991func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifecycleOutput, error) { 2061func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifecycleOutput, error) {
1992 req, out := c.GetBucketLifecycleRequest(input) 2062 req, out := c.GetBucketLifecycleRequest(input)
1993 return out, req.Send() 2063 return out, req.Send()
@@ -2002,6 +2072,8 @@ func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifec
2002// the context is nil a panic will occur. In the future the SDK may create 2072// the context is nil a panic will occur. In the future the SDK may create
2003// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2073// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2004// for more information on using Contexts. 2074// for more information on using Contexts.
2075//
2076// Deprecated: GetBucketLifecycleWithContext has been deprecated
2005func (c *S3) GetBucketLifecycleWithContext(ctx aws.Context, input *GetBucketLifecycleInput, opts ...request.Option) (*GetBucketLifecycleOutput, error) { 2077func (c *S3) GetBucketLifecycleWithContext(ctx aws.Context, input *GetBucketLifecycleInput, opts ...request.Option) (*GetBucketLifecycleOutput, error) {
2006 req, out := c.GetBucketLifecycleRequest(input) 2078 req, out := c.GetBucketLifecycleRequest(input)
2007 req.SetContext(ctx) 2079 req.SetContext(ctx)
@@ -2014,7 +2086,7 @@ const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration"
2014// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the 2086// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
2015// client's request for the GetBucketLifecycleConfiguration operation. The "output" return 2087// client's request for the GetBucketLifecycleConfiguration operation. The "output" return
2016// value will be populated with the request's response once the request completes 2088// value will be populated with the request's response once the request completes
2017// successfuly. 2089// successfully.
2018// 2090//
2019// Use "Send" method on the returned Request to send the API call to the service. 2091// Use "Send" method on the returned Request to send the API call to the service.
2020// the "output" return value is not valid until after Send returns without error. 2092// the "output" return value is not valid until after Send returns without error.
@@ -2088,7 +2160,7 @@ const opGetBucketLocation = "GetBucketLocation"
2088// GetBucketLocationRequest generates a "aws/request.Request" representing the 2160// GetBucketLocationRequest generates a "aws/request.Request" representing the
2089// client's request for the GetBucketLocation operation. The "output" return 2161// client's request for the GetBucketLocation operation. The "output" return
2090// value will be populated with the request's response once the request completes 2162// value will be populated with the request's response once the request completes
2091// successfuly. 2163// successfully.
2092// 2164//
2093// Use "Send" method on the returned Request to send the API call to the service. 2165// Use "Send" method on the returned Request to send the API call to the service.
2094// the "output" return value is not valid until after Send returns without error. 2166// the "output" return value is not valid until after Send returns without error.
@@ -2162,7 +2234,7 @@ const opGetBucketLogging = "GetBucketLogging"
2162// GetBucketLoggingRequest generates a "aws/request.Request" representing the 2234// GetBucketLoggingRequest generates a "aws/request.Request" representing the
2163// client's request for the GetBucketLogging operation. The "output" return 2235// client's request for the GetBucketLogging operation. The "output" return
2164// value will be populated with the request's response once the request completes 2236// value will be populated with the request's response once the request completes
2165// successfuly. 2237// successfully.
2166// 2238//
2167// Use "Send" method on the returned Request to send the API call to the service. 2239// Use "Send" method on the returned Request to send the API call to the service.
2168// the "output" return value is not valid until after Send returns without error. 2240// the "output" return value is not valid until after Send returns without error.
@@ -2237,7 +2309,7 @@ const opGetBucketMetricsConfiguration = "GetBucketMetricsConfiguration"
2237// GetBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the 2309// GetBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the
2238// client's request for the GetBucketMetricsConfiguration operation. The "output" return 2310// client's request for the GetBucketMetricsConfiguration operation. The "output" return
2239// value will be populated with the request's response once the request completes 2311// value will be populated with the request's response once the request completes
2240// successfuly. 2312// successfully.
2241// 2313//
2242// Use "Send" method on the returned Request to send the API call to the service. 2314// Use "Send" method on the returned Request to send the API call to the service.
2243// the "output" return value is not valid until after Send returns without error. 2315// the "output" return value is not valid until after Send returns without error.
@@ -2312,7 +2384,7 @@ const opGetBucketNotification = "GetBucketNotification"
2312// GetBucketNotificationRequest generates a "aws/request.Request" representing the 2384// GetBucketNotificationRequest generates a "aws/request.Request" representing the
2313// client's request for the GetBucketNotification operation. The "output" return 2385// client's request for the GetBucketNotification operation. The "output" return
2314// value will be populated with the request's response once the request completes 2386// value will be populated with the request's response once the request completes
2315// successfuly. 2387// successfully.
2316// 2388//
2317// Use "Send" method on the returned Request to send the API call to the service. 2389// Use "Send" method on the returned Request to send the API call to the service.
2318// the "output" return value is not valid until after Send returns without error. 2390// the "output" return value is not valid until after Send returns without error.
@@ -2333,6 +2405,8 @@ const opGetBucketNotification = "GetBucketNotification"
2333// } 2405// }
2334// 2406//
2335// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification 2407// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification
2408//
2409// Deprecated: GetBucketNotification has been deprecated
2336func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurationRequest) (req *request.Request, output *NotificationConfigurationDeprecated) { 2410func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurationRequest) (req *request.Request, output *NotificationConfigurationDeprecated) {
2337 if c.Client.Config.Logger != nil { 2411 if c.Client.Config.Logger != nil {
2338 c.Client.Config.Logger.Log("This operation, GetBucketNotification, has been deprecated") 2412 c.Client.Config.Logger.Log("This operation, GetBucketNotification, has been deprecated")
@@ -2354,7 +2428,7 @@ func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurat
2354 2428
2355// GetBucketNotification API operation for Amazon Simple Storage Service. 2429// GetBucketNotification API operation for Amazon Simple Storage Service.
2356// 2430//
2357// Deprecated, see the GetBucketNotificationConfiguration operation. 2431// No longer used, see the GetBucketNotificationConfiguration operation.
2358// 2432//
2359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2433// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2360// with awserr.Error's Code and Message methods to get detailed information about 2434// with awserr.Error's Code and Message methods to get detailed information about
@@ -2363,6 +2437,8 @@ func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurat
2363// See the AWS API reference guide for Amazon Simple Storage Service's 2437// See the AWS API reference guide for Amazon Simple Storage Service's
2364// API operation GetBucketNotification for usage and error information. 2438// API operation GetBucketNotification for usage and error information.
2365// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification 2439// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification
2440//
2441// Deprecated: GetBucketNotification has been deprecated
2366func (c *S3) GetBucketNotification(input *GetBucketNotificationConfigurationRequest) (*NotificationConfigurationDeprecated, error) { 2442func (c *S3) GetBucketNotification(input *GetBucketNotificationConfigurationRequest) (*NotificationConfigurationDeprecated, error) {
2367 req, out := c.GetBucketNotificationRequest(input) 2443 req, out := c.GetBucketNotificationRequest(input)
2368 return out, req.Send() 2444 return out, req.Send()
@@ -2377,6 +2453,8 @@ func (c *S3) GetBucketNotification(input *GetBucketNotificationConfigurationRequ
2377// the context is nil a panic will occur. In the future the SDK may create 2453// the context is nil a panic will occur. In the future the SDK may create
2378// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2379// for more information on using Contexts. 2455// for more information on using Contexts.
2456//
2457// Deprecated: GetBucketNotificationWithContext has been deprecated
2380func (c *S3) GetBucketNotificationWithContext(ctx aws.Context, input *GetBucketNotificationConfigurationRequest, opts ...request.Option) (*NotificationConfigurationDeprecated, error) { 2458func (c *S3) GetBucketNotificationWithContext(ctx aws.Context, input *GetBucketNotificationConfigurationRequest, opts ...request.Option) (*NotificationConfigurationDeprecated, error) {
2381 req, out := c.GetBucketNotificationRequest(input) 2459 req, out := c.GetBucketNotificationRequest(input)
2382 req.SetContext(ctx) 2460 req.SetContext(ctx)
@@ -2389,7 +2467,7 @@ const opGetBucketNotificationConfiguration = "GetBucketNotificationConfiguration
2389// GetBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the 2467// GetBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the
2390// client's request for the GetBucketNotificationConfiguration operation. The "output" return 2468// client's request for the GetBucketNotificationConfiguration operation. The "output" return
2391// value will be populated with the request's response once the request completes 2469// value will be populated with the request's response once the request completes
2392// successfuly. 2470// successfully.
2393// 2471//
2394// Use "Send" method on the returned Request to send the API call to the service. 2472// Use "Send" method on the returned Request to send the API call to the service.
2395// the "output" return value is not valid until after Send returns without error. 2473// the "output" return value is not valid until after Send returns without error.
@@ -2463,7 +2541,7 @@ const opGetBucketPolicy = "GetBucketPolicy"
2463// GetBucketPolicyRequest generates a "aws/request.Request" representing the 2541// GetBucketPolicyRequest generates a "aws/request.Request" representing the
2464// client's request for the GetBucketPolicy operation. The "output" return 2542// client's request for the GetBucketPolicy operation. The "output" return
2465// value will be populated with the request's response once the request completes 2543// value will be populated with the request's response once the request completes
2466// successfuly. 2544// successfully.
2467// 2545//
2468// Use "Send" method on the returned Request to send the API call to the service. 2546// Use "Send" method on the returned Request to send the API call to the service.
2469// the "output" return value is not valid until after Send returns without error. 2547// the "output" return value is not valid until after Send returns without error.
@@ -2532,12 +2610,87 @@ func (c *S3) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyI
2532 return out, req.Send() 2610 return out, req.Send()
2533} 2611}
2534 2612
2613const opGetBucketPolicyStatus = "GetBucketPolicyStatus"
2614
2615// GetBucketPolicyStatusRequest generates a "aws/request.Request" representing the
2616// client's request for the GetBucketPolicyStatus operation. The "output" return
2617// value will be populated with the request's response once the request completes
2618// successfully.
2619//
2620// Use "Send" method on the returned Request to send the API call to the service.
2621// the "output" return value is not valid until after Send returns without error.
2622//
2623// See GetBucketPolicyStatus for more information on using the GetBucketPolicyStatus
2624// API call, and error handling.
2625//
2626// This method is useful when you want to inject custom logic or configuration
2627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2628//
2629//
2630// // Example sending a request using the GetBucketPolicyStatusRequest method.
2631// req, resp := client.GetBucketPolicyStatusRequest(params)
2632//
2633// err := req.Send()
2634// if err == nil { // resp is now filled
2635// fmt.Println(resp)
2636// }
2637//
2638// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus
2639func (c *S3) GetBucketPolicyStatusRequest(input *GetBucketPolicyStatusInput) (req *request.Request, output *GetBucketPolicyStatusOutput) {
2640 op := &request.Operation{
2641 Name: opGetBucketPolicyStatus,
2642 HTTPMethod: "GET",
2643 HTTPPath: "/{Bucket}?policyStatus",
2644 }
2645
2646 if input == nil {
2647 input = &GetBucketPolicyStatusInput{}
2648 }
2649
2650 output = &GetBucketPolicyStatusOutput{}
2651 req = c.newRequest(op, input, output)
2652 return
2653}
2654
2655// GetBucketPolicyStatus API operation for Amazon Simple Storage Service.
2656//
2657// Retrieves the policy status for an Amazon S3 bucket, indicating whether the
2658// bucket is public.
2659//
2660// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2661// with awserr.Error's Code and Message methods to get detailed information about
2662// the error.
2663//
2664// See the AWS API reference guide for Amazon Simple Storage Service's
2665// API operation GetBucketPolicyStatus for usage and error information.
2666// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus
2667func (c *S3) GetBucketPolicyStatus(input *GetBucketPolicyStatusInput) (*GetBucketPolicyStatusOutput, error) {
2668 req, out := c.GetBucketPolicyStatusRequest(input)
2669 return out, req.Send()
2670}
2671
2672// GetBucketPolicyStatusWithContext is the same as GetBucketPolicyStatus with the addition of
2673// the ability to pass a context and additional request options.
2674//
2675// See GetBucketPolicyStatus for details on how to use this API operation.
2676//
2677// The context must be non-nil and will be used for request cancellation. If
2678// the context is nil a panic will occur. In the future the SDK may create
2679// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2680// for more information on using Contexts.
2681func (c *S3) GetBucketPolicyStatusWithContext(ctx aws.Context, input *GetBucketPolicyStatusInput, opts ...request.Option) (*GetBucketPolicyStatusOutput, error) {
2682 req, out := c.GetBucketPolicyStatusRequest(input)
2683 req.SetContext(ctx)
2684 req.ApplyOptions(opts...)
2685 return out, req.Send()
2686}
2687
2535const opGetBucketReplication = "GetBucketReplication" 2688const opGetBucketReplication = "GetBucketReplication"
2536 2689
2537// GetBucketReplicationRequest generates a "aws/request.Request" representing the 2690// GetBucketReplicationRequest generates a "aws/request.Request" representing the
2538// client's request for the GetBucketReplication operation. The "output" return 2691// client's request for the GetBucketReplication operation. The "output" return
2539// value will be populated with the request's response once the request completes 2692// value will be populated with the request's response once the request completes
2540// successfuly. 2693// successfully.
2541// 2694//
2542// Use "Send" method on the returned Request to send the API call to the service. 2695// Use "Send" method on the returned Request to send the API call to the service.
2543// the "output" return value is not valid until after Send returns without error. 2696// the "output" return value is not valid until after Send returns without error.
@@ -2578,6 +2731,10 @@ func (c *S3) GetBucketReplicationRequest(input *GetBucketReplicationInput) (req
2578// 2731//
2579// Returns the replication configuration of a bucket. 2732// Returns the replication configuration of a bucket.
2580// 2733//
2734// It can take a while to propagate the put or delete a replication configuration
2735// to all Amazon S3 systems. Therefore, a get request soon after put or delete
2736// can return a wrong result.
2737//
2581// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2738// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2582// with awserr.Error's Code and Message methods to get detailed information about 2739// with awserr.Error's Code and Message methods to get detailed information about
2583// the error. 2740// the error.
@@ -2611,7 +2768,7 @@ const opGetBucketRequestPayment = "GetBucketRequestPayment"
2611// GetBucketRequestPaymentRequest generates a "aws/request.Request" representing the 2768// GetBucketRequestPaymentRequest generates a "aws/request.Request" representing the
2612// client's request for the GetBucketRequestPayment operation. The "output" return 2769// client's request for the GetBucketRequestPayment operation. The "output" return
2613// value will be populated with the request's response once the request completes 2770// value will be populated with the request's response once the request completes
2614// successfuly. 2771// successfully.
2615// 2772//
2616// Use "Send" method on the returned Request to send the API call to the service. 2773// Use "Send" method on the returned Request to send the API call to the service.
2617// the "output" return value is not valid until after Send returns without error. 2774// the "output" return value is not valid until after Send returns without error.
@@ -2685,7 +2842,7 @@ const opGetBucketTagging = "GetBucketTagging"
2685// GetBucketTaggingRequest generates a "aws/request.Request" representing the 2842// GetBucketTaggingRequest generates a "aws/request.Request" representing the
2686// client's request for the GetBucketTagging operation. The "output" return 2843// client's request for the GetBucketTagging operation. The "output" return
2687// value will be populated with the request's response once the request completes 2844// value will be populated with the request's response once the request completes
2688// successfuly. 2845// successfully.
2689// 2846//
2690// Use "Send" method on the returned Request to send the API call to the service. 2847// Use "Send" method on the returned Request to send the API call to the service.
2691// the "output" return value is not valid until after Send returns without error. 2848// the "output" return value is not valid until after Send returns without error.
@@ -2759,7 +2916,7 @@ const opGetBucketVersioning = "GetBucketVersioning"
2759// GetBucketVersioningRequest generates a "aws/request.Request" representing the 2916// GetBucketVersioningRequest generates a "aws/request.Request" representing the
2760// client's request for the GetBucketVersioning operation. The "output" return 2917// client's request for the GetBucketVersioning operation. The "output" return
2761// value will be populated with the request's response once the request completes 2918// value will be populated with the request's response once the request completes
2762// successfuly. 2919// successfully.
2763// 2920//
2764// Use "Send" method on the returned Request to send the API call to the service. 2921// Use "Send" method on the returned Request to send the API call to the service.
2765// the "output" return value is not valid until after Send returns without error. 2922// the "output" return value is not valid until after Send returns without error.
@@ -2833,7 +2990,7 @@ const opGetBucketWebsite = "GetBucketWebsite"
2833// GetBucketWebsiteRequest generates a "aws/request.Request" representing the 2990// GetBucketWebsiteRequest generates a "aws/request.Request" representing the
2834// client's request for the GetBucketWebsite operation. The "output" return 2991// client's request for the GetBucketWebsite operation. The "output" return
2835// value will be populated with the request's response once the request completes 2992// value will be populated with the request's response once the request completes
2836// successfuly. 2993// successfully.
2837// 2994//
2838// Use "Send" method on the returned Request to send the API call to the service. 2995// Use "Send" method on the returned Request to send the API call to the service.
2839// the "output" return value is not valid until after Send returns without error. 2996// the "output" return value is not valid until after Send returns without error.
@@ -2907,7 +3064,7 @@ const opGetObject = "GetObject"
2907// GetObjectRequest generates a "aws/request.Request" representing the 3064// GetObjectRequest generates a "aws/request.Request" representing the
2908// client's request for the GetObject operation. The "output" return 3065// client's request for the GetObject operation. The "output" return
2909// value will be populated with the request's response once the request completes 3066// value will be populated with the request's response once the request completes
2910// successfuly. 3067// successfully.
2911// 3068//
2912// Use "Send" method on the returned Request to send the API call to the service. 3069// Use "Send" method on the returned Request to send the API call to the service.
2913// the "output" return value is not valid until after Send returns without error. 3070// the "output" return value is not valid until after Send returns without error.
@@ -2986,7 +3143,7 @@ const opGetObjectAcl = "GetObjectAcl"
2986// GetObjectAclRequest generates a "aws/request.Request" representing the 3143// GetObjectAclRequest generates a "aws/request.Request" representing the
2987// client's request for the GetObjectAcl operation. The "output" return 3144// client's request for the GetObjectAcl operation. The "output" return
2988// value will be populated with the request's response once the request completes 3145// value will be populated with the request's response once the request completes
2989// successfuly. 3146// successfully.
2990// 3147//
2991// Use "Send" method on the returned Request to send the API call to the service. 3148// Use "Send" method on the returned Request to send the API call to the service.
2992// the "output" return value is not valid until after Send returns without error. 3149// the "output" return value is not valid until after Send returns without error.
@@ -3060,12 +3217,236 @@ func (c *S3) GetObjectAclWithContext(ctx aws.Context, input *GetObjectAclInput,
3060 return out, req.Send() 3217 return out, req.Send()
3061} 3218}
3062 3219
3220const opGetObjectLegalHold = "GetObjectLegalHold"
3221
3222// GetObjectLegalHoldRequest generates a "aws/request.Request" representing the
3223// client's request for the GetObjectLegalHold operation. The "output" return
3224// value will be populated with the request's response once the request completes
3225// successfully.
3226//
3227// Use "Send" method on the returned Request to send the API call to the service.
3228// the "output" return value is not valid until after Send returns without error.
3229//
3230// See GetObjectLegalHold for more information on using the GetObjectLegalHold
3231// API call, and error handling.
3232//
3233// This method is useful when you want to inject custom logic or configuration
3234// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3235//
3236//
3237// // Example sending a request using the GetObjectLegalHoldRequest method.
3238// req, resp := client.GetObjectLegalHoldRequest(params)
3239//
3240// err := req.Send()
3241// if err == nil { // resp is now filled
3242// fmt.Println(resp)
3243// }
3244//
3245// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold
3246func (c *S3) GetObjectLegalHoldRequest(input *GetObjectLegalHoldInput) (req *request.Request, output *GetObjectLegalHoldOutput) {
3247 op := &request.Operation{
3248 Name: opGetObjectLegalHold,
3249 HTTPMethod: "GET",
3250 HTTPPath: "/{Bucket}/{Key+}?legal-hold",
3251 }
3252
3253 if input == nil {
3254 input = &GetObjectLegalHoldInput{}
3255 }
3256
3257 output = &GetObjectLegalHoldOutput{}
3258 req = c.newRequest(op, input, output)
3259 return
3260}
3261
3262// GetObjectLegalHold API operation for Amazon Simple Storage Service.
3263//
3264// Gets an object's current Legal Hold status.
3265//
3266// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3267// with awserr.Error's Code and Message methods to get detailed information about
3268// the error.
3269//
3270// See the AWS API reference guide for Amazon Simple Storage Service's
3271// API operation GetObjectLegalHold for usage and error information.
3272// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold
3273func (c *S3) GetObjectLegalHold(input *GetObjectLegalHoldInput) (*GetObjectLegalHoldOutput, error) {
3274 req, out := c.GetObjectLegalHoldRequest(input)
3275 return out, req.Send()
3276}
3277
3278// GetObjectLegalHoldWithContext is the same as GetObjectLegalHold with the addition of
3279// the ability to pass a context and additional request options.
3280//
3281// See GetObjectLegalHold for details on how to use this API operation.
3282//
3283// The context must be non-nil and will be used for request cancellation. If
3284// the context is nil a panic will occur. In the future the SDK may create
3285// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3286// for more information on using Contexts.
3287func (c *S3) GetObjectLegalHoldWithContext(ctx aws.Context, input *GetObjectLegalHoldInput, opts ...request.Option) (*GetObjectLegalHoldOutput, error) {
3288 req, out := c.GetObjectLegalHoldRequest(input)
3289 req.SetContext(ctx)
3290 req.ApplyOptions(opts...)
3291 return out, req.Send()
3292}
3293
3294const opGetObjectLockConfiguration = "GetObjectLockConfiguration"
3295
3296// GetObjectLockConfigurationRequest generates a "aws/request.Request" representing the
3297// client's request for the GetObjectLockConfiguration operation. The "output" return
3298// value will be populated with the request's response once the request completes
3299// successfully.
3300//
3301// Use "Send" method on the returned Request to send the API call to the service.
3302// the "output" return value is not valid until after Send returns without error.
3303//
3304// See GetObjectLockConfiguration for more information on using the GetObjectLockConfiguration
3305// API call, and error handling.
3306//
3307// This method is useful when you want to inject custom logic or configuration
3308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3309//
3310//
3311// // Example sending a request using the GetObjectLockConfigurationRequest method.
3312// req, resp := client.GetObjectLockConfigurationRequest(params)
3313//
3314// err := req.Send()
3315// if err == nil { // resp is now filled
3316// fmt.Println(resp)
3317// }
3318//
3319// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration
3320func (c *S3) GetObjectLockConfigurationRequest(input *GetObjectLockConfigurationInput) (req *request.Request, output *GetObjectLockConfigurationOutput) {
3321 op := &request.Operation{
3322 Name: opGetObjectLockConfiguration,
3323 HTTPMethod: "GET",
3324 HTTPPath: "/{Bucket}?object-lock",
3325 }
3326
3327 if input == nil {
3328 input = &GetObjectLockConfigurationInput{}
3329 }
3330
3331 output = &GetObjectLockConfigurationOutput{}
3332 req = c.newRequest(op, input, output)
3333 return
3334}
3335
3336// GetObjectLockConfiguration API operation for Amazon Simple Storage Service.
3337//
3338// Gets the Object Lock configuration for a bucket. The rule specified in the
3339// Object Lock configuration will be applied by default to every new object
3340// placed in the specified bucket.
3341//
3342// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3343// with awserr.Error's Code and Message methods to get detailed information about
3344// the error.
3345//
3346// See the AWS API reference guide for Amazon Simple Storage Service's
3347// API operation GetObjectLockConfiguration for usage and error information.
3348// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration
3349func (c *S3) GetObjectLockConfiguration(input *GetObjectLockConfigurationInput) (*GetObjectLockConfigurationOutput, error) {
3350 req, out := c.GetObjectLockConfigurationRequest(input)
3351 return out, req.Send()
3352}
3353
3354// GetObjectLockConfigurationWithContext is the same as GetObjectLockConfiguration with the addition of
3355// the ability to pass a context and additional request options.
3356//
3357// See GetObjectLockConfiguration for details on how to use this API operation.
3358//
3359// The context must be non-nil and will be used for request cancellation. If
3360// the context is nil a panic will occur. In the future the SDK may create
3361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3362// for more information on using Contexts.
3363func (c *S3) GetObjectLockConfigurationWithContext(ctx aws.Context, input *GetObjectLockConfigurationInput, opts ...request.Option) (*GetObjectLockConfigurationOutput, error) {
3364 req, out := c.GetObjectLockConfigurationRequest(input)
3365 req.SetContext(ctx)
3366 req.ApplyOptions(opts...)
3367 return out, req.Send()
3368}
3369
3370const opGetObjectRetention = "GetObjectRetention"
3371
3372// GetObjectRetentionRequest generates a "aws/request.Request" representing the
3373// client's request for the GetObjectRetention operation. The "output" return
3374// value will be populated with the request's response once the request completes
3375// successfully.
3376//
3377// Use "Send" method on the returned Request to send the API call to the service.
3378// the "output" return value is not valid until after Send returns without error.
3379//
3380// See GetObjectRetention for more information on using the GetObjectRetention
3381// API call, and error handling.
3382//
3383// This method is useful when you want to inject custom logic or configuration
3384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3385//
3386//
3387// // Example sending a request using the GetObjectRetentionRequest method.
3388// req, resp := client.GetObjectRetentionRequest(params)
3389//
3390// err := req.Send()
3391// if err == nil { // resp is now filled
3392// fmt.Println(resp)
3393// }
3394//
3395// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention
3396func (c *S3) GetObjectRetentionRequest(input *GetObjectRetentionInput) (req *request.Request, output *GetObjectRetentionOutput) {
3397 op := &request.Operation{
3398 Name: opGetObjectRetention,
3399 HTTPMethod: "GET",
3400 HTTPPath: "/{Bucket}/{Key+}?retention",
3401 }
3402
3403 if input == nil {
3404 input = &GetObjectRetentionInput{}
3405 }
3406
3407 output = &GetObjectRetentionOutput{}
3408 req = c.newRequest(op, input, output)
3409 return
3410}
3411
3412// GetObjectRetention API operation for Amazon Simple Storage Service.
3413//
3414// Retrieves an object's retention settings.
3415//
3416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3417// with awserr.Error's Code and Message methods to get detailed information about
3418// the error.
3419//
3420// See the AWS API reference guide for Amazon Simple Storage Service's
3421// API operation GetObjectRetention for usage and error information.
3422// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention
3423func (c *S3) GetObjectRetention(input *GetObjectRetentionInput) (*GetObjectRetentionOutput, error) {
3424 req, out := c.GetObjectRetentionRequest(input)
3425 return out, req.Send()
3426}
3427
3428// GetObjectRetentionWithContext is the same as GetObjectRetention with the addition of
3429// the ability to pass a context and additional request options.
3430//
3431// See GetObjectRetention for details on how to use this API operation.
3432//
3433// The context must be non-nil and will be used for request cancellation. If
3434// the context is nil a panic will occur. In the future the SDK may create
3435// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3436// for more information on using Contexts.
3437func (c *S3) GetObjectRetentionWithContext(ctx aws.Context, input *GetObjectRetentionInput, opts ...request.Option) (*GetObjectRetentionOutput, error) {
3438 req, out := c.GetObjectRetentionRequest(input)
3439 req.SetContext(ctx)
3440 req.ApplyOptions(opts...)
3441 return out, req.Send()
3442}
3443
3063const opGetObjectTagging = "GetObjectTagging" 3444const opGetObjectTagging = "GetObjectTagging"
3064 3445
3065// GetObjectTaggingRequest generates a "aws/request.Request" representing the 3446// GetObjectTaggingRequest generates a "aws/request.Request" representing the
3066// client's request for the GetObjectTagging operation. The "output" return 3447// client's request for the GetObjectTagging operation. The "output" return
3067// value will be populated with the request's response once the request completes 3448// value will be populated with the request's response once the request completes
3068// successfuly. 3449// successfully.
3069// 3450//
3070// Use "Send" method on the returned Request to send the API call to the service. 3451// Use "Send" method on the returned Request to send the API call to the service.
3071// the "output" return value is not valid until after Send returns without error. 3452// the "output" return value is not valid until after Send returns without error.
@@ -3139,7 +3520,7 @@ const opGetObjectTorrent = "GetObjectTorrent"
3139// GetObjectTorrentRequest generates a "aws/request.Request" representing the 3520// GetObjectTorrentRequest generates a "aws/request.Request" representing the
3140// client's request for the GetObjectTorrent operation. The "output" return 3521// client's request for the GetObjectTorrent operation. The "output" return
3141// value will be populated with the request's response once the request completes 3522// value will be populated with the request's response once the request completes
3142// successfuly. 3523// successfully.
3143// 3524//
3144// Use "Send" method on the returned Request to send the API call to the service. 3525// Use "Send" method on the returned Request to send the API call to the service.
3145// the "output" return value is not valid until after Send returns without error. 3526// the "output" return value is not valid until after Send returns without error.
@@ -3208,12 +3589,86 @@ func (c *S3) GetObjectTorrentWithContext(ctx aws.Context, input *GetObjectTorren
3208 return out, req.Send() 3589 return out, req.Send()
3209} 3590}
3210 3591
3592const opGetPublicAccessBlock = "GetPublicAccessBlock"
3593
3594// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the
3595// client's request for the GetPublicAccessBlock operation. The "output" return
3596// value will be populated with the request's response once the request completes
3597// successfully.
3598//
3599// Use "Send" method on the returned Request to send the API call to the service.
3600// the "output" return value is not valid until after Send returns without error.
3601//
3602// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock
3603// API call, and error handling.
3604//
3605// This method is useful when you want to inject custom logic or configuration
3606// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3607//
3608//
3609// // Example sending a request using the GetPublicAccessBlockRequest method.
3610// req, resp := client.GetPublicAccessBlockRequest(params)
3611//
3612// err := req.Send()
3613// if err == nil { // resp is now filled
3614// fmt.Println(resp)
3615// }
3616//
3617// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock
3618func (c *S3) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) {
3619 op := &request.Operation{
3620 Name: opGetPublicAccessBlock,
3621 HTTPMethod: "GET",
3622 HTTPPath: "/{Bucket}?publicAccessBlock",
3623 }
3624
3625 if input == nil {
3626 input = &GetPublicAccessBlockInput{}
3627 }
3628
3629 output = &GetPublicAccessBlockOutput{}
3630 req = c.newRequest(op, input, output)
3631 return
3632}
3633
3634// GetPublicAccessBlock API operation for Amazon Simple Storage Service.
3635//
3636// Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket.
3637//
3638// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3639// with awserr.Error's Code and Message methods to get detailed information about
3640// the error.
3641//
3642// See the AWS API reference guide for Amazon Simple Storage Service's
3643// API operation GetPublicAccessBlock for usage and error information.
3644// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock
3645func (c *S3) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) {
3646 req, out := c.GetPublicAccessBlockRequest(input)
3647 return out, req.Send()
3648}
3649
3650// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of
3651// the ability to pass a context and additional request options.
3652//
3653// See GetPublicAccessBlock for details on how to use this API operation.
3654//
3655// The context must be non-nil and will be used for request cancellation. If
3656// the context is nil a panic will occur. In the future the SDK may create
3657// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3658// for more information on using Contexts.
3659func (c *S3) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) {
3660 req, out := c.GetPublicAccessBlockRequest(input)
3661 req.SetContext(ctx)
3662 req.ApplyOptions(opts...)
3663 return out, req.Send()
3664}
3665
3211const opHeadBucket = "HeadBucket" 3666const opHeadBucket = "HeadBucket"
3212 3667
3213// HeadBucketRequest generates a "aws/request.Request" representing the 3668// HeadBucketRequest generates a "aws/request.Request" representing the
3214// client's request for the HeadBucket operation. The "output" return 3669// client's request for the HeadBucket operation. The "output" return
3215// value will be populated with the request's response once the request completes 3670// value will be populated with the request's response once the request completes
3216// successfuly. 3671// successfully.
3217// 3672//
3218// Use "Send" method on the returned Request to send the API call to the service. 3673// Use "Send" method on the returned Request to send the API call to the service.
3219// the "output" return value is not valid until after Send returns without error. 3674// the "output" return value is not valid until after Send returns without error.
@@ -3247,8 +3702,7 @@ func (c *S3) HeadBucketRequest(input *HeadBucketInput) (req *request.Request, ou
3247 3702
3248 output = &HeadBucketOutput{} 3703 output = &HeadBucketOutput{}
3249 req = c.newRequest(op, input, output) 3704 req = c.newRequest(op, input, output)
3250 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 3705 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3251 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3252 return 3706 return
3253} 3707}
3254 3708
@@ -3295,7 +3749,7 @@ const opHeadObject = "HeadObject"
3295// HeadObjectRequest generates a "aws/request.Request" representing the 3749// HeadObjectRequest generates a "aws/request.Request" representing the
3296// client's request for the HeadObject operation. The "output" return 3750// client's request for the HeadObject operation. The "output" return
3297// value will be populated with the request's response once the request completes 3751// value will be populated with the request's response once the request completes
3298// successfuly. 3752// successfully.
3299// 3753//
3300// Use "Send" method on the returned Request to send the API call to the service. 3754// Use "Send" method on the returned Request to send the API call to the service.
3301// the "output" return value is not valid until after Send returns without error. 3755// the "output" return value is not valid until after Send returns without error.
@@ -3374,7 +3828,7 @@ const opListBucketAnalyticsConfigurations = "ListBucketAnalyticsConfigurations"
3374// ListBucketAnalyticsConfigurationsRequest generates a "aws/request.Request" representing the 3828// ListBucketAnalyticsConfigurationsRequest generates a "aws/request.Request" representing the
3375// client's request for the ListBucketAnalyticsConfigurations operation. The "output" return 3829// client's request for the ListBucketAnalyticsConfigurations operation. The "output" return
3376// value will be populated with the request's response once the request completes 3830// value will be populated with the request's response once the request completes
3377// successfuly. 3831// successfully.
3378// 3832//
3379// Use "Send" method on the returned Request to send the API call to the service. 3833// Use "Send" method on the returned Request to send the API call to the service.
3380// the "output" return value is not valid until after Send returns without error. 3834// the "output" return value is not valid until after Send returns without error.
@@ -3448,7 +3902,7 @@ const opListBucketInventoryConfigurations = "ListBucketInventoryConfigurations"
3448// ListBucketInventoryConfigurationsRequest generates a "aws/request.Request" representing the 3902// ListBucketInventoryConfigurationsRequest generates a "aws/request.Request" representing the
3449// client's request for the ListBucketInventoryConfigurations operation. The "output" return 3903// client's request for the ListBucketInventoryConfigurations operation. The "output" return
3450// value will be populated with the request's response once the request completes 3904// value will be populated with the request's response once the request completes
3451// successfuly. 3905// successfully.
3452// 3906//
3453// Use "Send" method on the returned Request to send the API call to the service. 3907// Use "Send" method on the returned Request to send the API call to the service.
3454// the "output" return value is not valid until after Send returns without error. 3908// the "output" return value is not valid until after Send returns without error.
@@ -3522,7 +3976,7 @@ const opListBucketMetricsConfigurations = "ListBucketMetricsConfigurations"
3522// ListBucketMetricsConfigurationsRequest generates a "aws/request.Request" representing the 3976// ListBucketMetricsConfigurationsRequest generates a "aws/request.Request" representing the
3523// client's request for the ListBucketMetricsConfigurations operation. The "output" return 3977// client's request for the ListBucketMetricsConfigurations operation. The "output" return
3524// value will be populated with the request's response once the request completes 3978// value will be populated with the request's response once the request completes
3525// successfuly. 3979// successfully.
3526// 3980//
3527// Use "Send" method on the returned Request to send the API call to the service. 3981// Use "Send" method on the returned Request to send the API call to the service.
3528// the "output" return value is not valid until after Send returns without error. 3982// the "output" return value is not valid until after Send returns without error.
@@ -3596,7 +4050,7 @@ const opListBuckets = "ListBuckets"
3596// ListBucketsRequest generates a "aws/request.Request" representing the 4050// ListBucketsRequest generates a "aws/request.Request" representing the
3597// client's request for the ListBuckets operation. The "output" return 4051// client's request for the ListBuckets operation. The "output" return
3598// value will be populated with the request's response once the request completes 4052// value will be populated with the request's response once the request completes
3599// successfuly. 4053// successfully.
3600// 4054//
3601// Use "Send" method on the returned Request to send the API call to the service. 4055// Use "Send" method on the returned Request to send the API call to the service.
3602// the "output" return value is not valid until after Send returns without error. 4056// the "output" return value is not valid until after Send returns without error.
@@ -3670,7 +4124,7 @@ const opListMultipartUploads = "ListMultipartUploads"
3670// ListMultipartUploadsRequest generates a "aws/request.Request" representing the 4124// ListMultipartUploadsRequest generates a "aws/request.Request" representing the
3671// client's request for the ListMultipartUploads operation. The "output" return 4125// client's request for the ListMultipartUploads operation. The "output" return
3672// value will be populated with the request's response once the request completes 4126// value will be populated with the request's response once the request completes
3673// successfuly. 4127// successfully.
3674// 4128//
3675// Use "Send" method on the returned Request to send the API call to the service. 4129// Use "Send" method on the returned Request to send the API call to the service.
3676// the "output" return value is not valid until after Send returns without error. 4130// the "output" return value is not valid until after Send returns without error.
@@ -3800,7 +4254,7 @@ const opListObjectVersions = "ListObjectVersions"
3800// ListObjectVersionsRequest generates a "aws/request.Request" representing the 4254// ListObjectVersionsRequest generates a "aws/request.Request" representing the
3801// client's request for the ListObjectVersions operation. The "output" return 4255// client's request for the ListObjectVersions operation. The "output" return
3802// value will be populated with the request's response once the request completes 4256// value will be populated with the request's response once the request completes
3803// successfuly. 4257// successfully.
3804// 4258//
3805// Use "Send" method on the returned Request to send the API call to the service. 4259// Use "Send" method on the returned Request to send the API call to the service.
3806// the "output" return value is not valid until after Send returns without error. 4260// the "output" return value is not valid until after Send returns without error.
@@ -3930,7 +4384,7 @@ const opListObjects = "ListObjects"
3930// ListObjectsRequest generates a "aws/request.Request" representing the 4384// ListObjectsRequest generates a "aws/request.Request" representing the
3931// client's request for the ListObjects operation. The "output" return 4385// client's request for the ListObjects operation. The "output" return
3932// value will be populated with the request's response once the request completes 4386// value will be populated with the request's response once the request completes
3933// successfuly. 4387// successfully.
3934// 4388//
3935// Use "Send" method on the returned Request to send the API call to the service. 4389// Use "Send" method on the returned Request to send the API call to the service.
3936// the "output" return value is not valid until after Send returns without error. 4390// the "output" return value is not valid until after Send returns without error.
@@ -4067,7 +4521,7 @@ const opListObjectsV2 = "ListObjectsV2"
4067// ListObjectsV2Request generates a "aws/request.Request" representing the 4521// ListObjectsV2Request generates a "aws/request.Request" representing the
4068// client's request for the ListObjectsV2 operation. The "output" return 4522// client's request for the ListObjectsV2 operation. The "output" return
4069// value will be populated with the request's response once the request completes 4523// value will be populated with the request's response once the request completes
4070// successfuly. 4524// successfully.
4071// 4525//
4072// Use "Send" method on the returned Request to send the API call to the service. 4526// Use "Send" method on the returned Request to send the API call to the service.
4073// the "output" return value is not valid until after Send returns without error. 4527// the "output" return value is not valid until after Send returns without error.
@@ -4205,7 +4659,7 @@ const opListParts = "ListParts"
4205// ListPartsRequest generates a "aws/request.Request" representing the 4659// ListPartsRequest generates a "aws/request.Request" representing the
4206// client's request for the ListParts operation. The "output" return 4660// client's request for the ListParts operation. The "output" return
4207// value will be populated with the request's response once the request completes 4661// value will be populated with the request's response once the request completes
4208// successfuly. 4662// successfully.
4209// 4663//
4210// Use "Send" method on the returned Request to send the API call to the service. 4664// Use "Send" method on the returned Request to send the API call to the service.
4211// the "output" return value is not valid until after Send returns without error. 4665// the "output" return value is not valid until after Send returns without error.
@@ -4335,7 +4789,7 @@ const opPutBucketAccelerateConfiguration = "PutBucketAccelerateConfiguration"
4335// PutBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the 4789// PutBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the
4336// client's request for the PutBucketAccelerateConfiguration operation. The "output" return 4790// client's request for the PutBucketAccelerateConfiguration operation. The "output" return
4337// value will be populated with the request's response once the request completes 4791// value will be populated with the request's response once the request completes
4338// successfuly. 4792// successfully.
4339// 4793//
4340// Use "Send" method on the returned Request to send the API call to the service. 4794// Use "Send" method on the returned Request to send the API call to the service.
4341// the "output" return value is not valid until after Send returns without error. 4795// the "output" return value is not valid until after Send returns without error.
@@ -4369,8 +4823,7 @@ func (c *S3) PutBucketAccelerateConfigurationRequest(input *PutBucketAccelerateC
4369 4823
4370 output = &PutBucketAccelerateConfigurationOutput{} 4824 output = &PutBucketAccelerateConfigurationOutput{}
4371 req = c.newRequest(op, input, output) 4825 req = c.newRequest(op, input, output)
4372 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 4826 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4373 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4374 return 4827 return
4375} 4828}
4376 4829
@@ -4411,7 +4864,7 @@ const opPutBucketAcl = "PutBucketAcl"
4411// PutBucketAclRequest generates a "aws/request.Request" representing the 4864// PutBucketAclRequest generates a "aws/request.Request" representing the
4412// client's request for the PutBucketAcl operation. The "output" return 4865// client's request for the PutBucketAcl operation. The "output" return
4413// value will be populated with the request's response once the request completes 4866// value will be populated with the request's response once the request completes
4414// successfuly. 4867// successfully.
4415// 4868//
4416// Use "Send" method on the returned Request to send the API call to the service. 4869// Use "Send" method on the returned Request to send the API call to the service.
4417// the "output" return value is not valid until after Send returns without error. 4870// the "output" return value is not valid until after Send returns without error.
@@ -4445,8 +4898,7 @@ func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request
4445 4898
4446 output = &PutBucketAclOutput{} 4899 output = &PutBucketAclOutput{}
4447 req = c.newRequest(op, input, output) 4900 req = c.newRequest(op, input, output)
4448 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 4901 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4449 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4450 return 4902 return
4451} 4903}
4452 4904
@@ -4487,7 +4939,7 @@ const opPutBucketAnalyticsConfiguration = "PutBucketAnalyticsConfiguration"
4487// PutBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the 4939// PutBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the
4488// client's request for the PutBucketAnalyticsConfiguration operation. The "output" return 4940// client's request for the PutBucketAnalyticsConfiguration operation. The "output" return
4489// value will be populated with the request's response once the request completes 4941// value will be populated with the request's response once the request completes
4490// successfuly. 4942// successfully.
4491// 4943//
4492// Use "Send" method on the returned Request to send the API call to the service. 4944// Use "Send" method on the returned Request to send the API call to the service.
4493// the "output" return value is not valid until after Send returns without error. 4945// the "output" return value is not valid until after Send returns without error.
@@ -4521,8 +4973,7 @@ func (c *S3) PutBucketAnalyticsConfigurationRequest(input *PutBucketAnalyticsCon
4521 4973
4522 output = &PutBucketAnalyticsConfigurationOutput{} 4974 output = &PutBucketAnalyticsConfigurationOutput{}
4523 req = c.newRequest(op, input, output) 4975 req = c.newRequest(op, input, output)
4524 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 4976 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4525 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4526 return 4977 return
4527} 4978}
4528 4979
@@ -4564,7 +5015,7 @@ const opPutBucketCors = "PutBucketCors"
4564// PutBucketCorsRequest generates a "aws/request.Request" representing the 5015// PutBucketCorsRequest generates a "aws/request.Request" representing the
4565// client's request for the PutBucketCors operation. The "output" return 5016// client's request for the PutBucketCors operation. The "output" return
4566// value will be populated with the request's response once the request completes 5017// value will be populated with the request's response once the request completes
4567// successfuly. 5018// successfully.
4568// 5019//
4569// Use "Send" method on the returned Request to send the API call to the service. 5020// Use "Send" method on the returned Request to send the API call to the service.
4570// the "output" return value is not valid until after Send returns without error. 5021// the "output" return value is not valid until after Send returns without error.
@@ -4598,14 +5049,13 @@ func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Reque
4598 5049
4599 output = &PutBucketCorsOutput{} 5050 output = &PutBucketCorsOutput{}
4600 req = c.newRequest(op, input, output) 5051 req = c.newRequest(op, input, output)
4601 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5052 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4602 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4603 return 5053 return
4604} 5054}
4605 5055
4606// PutBucketCors API operation for Amazon Simple Storage Service. 5056// PutBucketCors API operation for Amazon Simple Storage Service.
4607// 5057//
4608// Sets the cors configuration for a bucket. 5058// Sets the CORS configuration for a bucket.
4609// 5059//
4610// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5060// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4611// with awserr.Error's Code and Message methods to get detailed information about 5061// with awserr.Error's Code and Message methods to get detailed information about
@@ -4640,7 +5090,7 @@ const opPutBucketEncryption = "PutBucketEncryption"
4640// PutBucketEncryptionRequest generates a "aws/request.Request" representing the 5090// PutBucketEncryptionRequest generates a "aws/request.Request" representing the
4641// client's request for the PutBucketEncryption operation. The "output" return 5091// client's request for the PutBucketEncryption operation. The "output" return
4642// value will be populated with the request's response once the request completes 5092// value will be populated with the request's response once the request completes
4643// successfuly. 5093// successfully.
4644// 5094//
4645// Use "Send" method on the returned Request to send the API call to the service. 5095// Use "Send" method on the returned Request to send the API call to the service.
4646// the "output" return value is not valid until after Send returns without error. 5096// the "output" return value is not valid until after Send returns without error.
@@ -4674,8 +5124,7 @@ func (c *S3) PutBucketEncryptionRequest(input *PutBucketEncryptionInput) (req *r
4674 5124
4675 output = &PutBucketEncryptionOutput{} 5125 output = &PutBucketEncryptionOutput{}
4676 req = c.newRequest(op, input, output) 5126 req = c.newRequest(op, input, output)
4677 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5127 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4678 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4679 return 5128 return
4680} 5129}
4681 5130
@@ -4717,7 +5166,7 @@ const opPutBucketInventoryConfiguration = "PutBucketInventoryConfiguration"
4717// PutBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the 5166// PutBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the
4718// client's request for the PutBucketInventoryConfiguration operation. The "output" return 5167// client's request for the PutBucketInventoryConfiguration operation. The "output" return
4719// value will be populated with the request's response once the request completes 5168// value will be populated with the request's response once the request completes
4720// successfuly. 5169// successfully.
4721// 5170//
4722// Use "Send" method on the returned Request to send the API call to the service. 5171// Use "Send" method on the returned Request to send the API call to the service.
4723// the "output" return value is not valid until after Send returns without error. 5172// the "output" return value is not valid until after Send returns without error.
@@ -4751,8 +5200,7 @@ func (c *S3) PutBucketInventoryConfigurationRequest(input *PutBucketInventoryCon
4751 5200
4752 output = &PutBucketInventoryConfigurationOutput{} 5201 output = &PutBucketInventoryConfigurationOutput{}
4753 req = c.newRequest(op, input, output) 5202 req = c.newRequest(op, input, output)
4754 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5203 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4755 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4756 return 5204 return
4757} 5205}
4758 5206
@@ -4794,7 +5242,7 @@ const opPutBucketLifecycle = "PutBucketLifecycle"
4794// PutBucketLifecycleRequest generates a "aws/request.Request" representing the 5242// PutBucketLifecycleRequest generates a "aws/request.Request" representing the
4795// client's request for the PutBucketLifecycle operation. The "output" return 5243// client's request for the PutBucketLifecycle operation. The "output" return
4796// value will be populated with the request's response once the request completes 5244// value will be populated with the request's response once the request completes
4797// successfuly. 5245// successfully.
4798// 5246//
4799// Use "Send" method on the returned Request to send the API call to the service. 5247// Use "Send" method on the returned Request to send the API call to the service.
4800// the "output" return value is not valid until after Send returns without error. 5248// the "output" return value is not valid until after Send returns without error.
@@ -4815,6 +5263,8 @@ const opPutBucketLifecycle = "PutBucketLifecycle"
4815// } 5263// }
4816// 5264//
4817// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle 5265// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle
5266//
5267// Deprecated: PutBucketLifecycle has been deprecated
4818func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *request.Request, output *PutBucketLifecycleOutput) { 5268func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *request.Request, output *PutBucketLifecycleOutput) {
4819 if c.Client.Config.Logger != nil { 5269 if c.Client.Config.Logger != nil {
4820 c.Client.Config.Logger.Log("This operation, PutBucketLifecycle, has been deprecated") 5270 c.Client.Config.Logger.Log("This operation, PutBucketLifecycle, has been deprecated")
@@ -4831,14 +5281,13 @@ func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *req
4831 5281
4832 output = &PutBucketLifecycleOutput{} 5282 output = &PutBucketLifecycleOutput{}
4833 req = c.newRequest(op, input, output) 5283 req = c.newRequest(op, input, output)
4834 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5284 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4835 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4836 return 5285 return
4837} 5286}
4838 5287
4839// PutBucketLifecycle API operation for Amazon Simple Storage Service. 5288// PutBucketLifecycle API operation for Amazon Simple Storage Service.
4840// 5289//
4841// Deprecated, see the PutBucketLifecycleConfiguration operation. 5290// No longer used, see the PutBucketLifecycleConfiguration operation.
4842// 5291//
4843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4844// with awserr.Error's Code and Message methods to get detailed information about 5293// with awserr.Error's Code and Message methods to get detailed information about
@@ -4847,6 +5296,8 @@ func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *req
4847// See the AWS API reference guide for Amazon Simple Storage Service's 5296// See the AWS API reference guide for Amazon Simple Storage Service's
4848// API operation PutBucketLifecycle for usage and error information. 5297// API operation PutBucketLifecycle for usage and error information.
4849// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle 5298// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle
5299//
5300// Deprecated: PutBucketLifecycle has been deprecated
4850func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifecycleOutput, error) { 5301func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifecycleOutput, error) {
4851 req, out := c.PutBucketLifecycleRequest(input) 5302 req, out := c.PutBucketLifecycleRequest(input)
4852 return out, req.Send() 5303 return out, req.Send()
@@ -4861,6 +5312,8 @@ func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifec
4861// the context is nil a panic will occur. In the future the SDK may create 5312// the context is nil a panic will occur. In the future the SDK may create
4862// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5313// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4863// for more information on using Contexts. 5314// for more information on using Contexts.
5315//
5316// Deprecated: PutBucketLifecycleWithContext has been deprecated
4864func (c *S3) PutBucketLifecycleWithContext(ctx aws.Context, input *PutBucketLifecycleInput, opts ...request.Option) (*PutBucketLifecycleOutput, error) { 5317func (c *S3) PutBucketLifecycleWithContext(ctx aws.Context, input *PutBucketLifecycleInput, opts ...request.Option) (*PutBucketLifecycleOutput, error) {
4865 req, out := c.PutBucketLifecycleRequest(input) 5318 req, out := c.PutBucketLifecycleRequest(input)
4866 req.SetContext(ctx) 5319 req.SetContext(ctx)
@@ -4873,7 +5326,7 @@ const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration"
4873// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the 5326// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
4874// client's request for the PutBucketLifecycleConfiguration operation. The "output" return 5327// client's request for the PutBucketLifecycleConfiguration operation. The "output" return
4875// value will be populated with the request's response once the request completes 5328// value will be populated with the request's response once the request completes
4876// successfuly. 5329// successfully.
4877// 5330//
4878// Use "Send" method on the returned Request to send the API call to the service. 5331// Use "Send" method on the returned Request to send the API call to the service.
4879// the "output" return value is not valid until after Send returns without error. 5332// the "output" return value is not valid until after Send returns without error.
@@ -4907,8 +5360,7 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon
4907 5360
4908 output = &PutBucketLifecycleConfigurationOutput{} 5361 output = &PutBucketLifecycleConfigurationOutput{}
4909 req = c.newRequest(op, input, output) 5362 req = c.newRequest(op, input, output)
4910 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5363 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4911 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4912 return 5364 return
4913} 5365}
4914 5366
@@ -4950,7 +5402,7 @@ const opPutBucketLogging = "PutBucketLogging"
4950// PutBucketLoggingRequest generates a "aws/request.Request" representing the 5402// PutBucketLoggingRequest generates a "aws/request.Request" representing the
4951// client's request for the PutBucketLogging operation. The "output" return 5403// client's request for the PutBucketLogging operation. The "output" return
4952// value will be populated with the request's response once the request completes 5404// value will be populated with the request's response once the request completes
4953// successfuly. 5405// successfully.
4954// 5406//
4955// Use "Send" method on the returned Request to send the API call to the service. 5407// Use "Send" method on the returned Request to send the API call to the service.
4956// the "output" return value is not valid until after Send returns without error. 5408// the "output" return value is not valid until after Send returns without error.
@@ -4984,8 +5436,7 @@ func (c *S3) PutBucketLoggingRequest(input *PutBucketLoggingInput) (req *request
4984 5436
4985 output = &PutBucketLoggingOutput{} 5437 output = &PutBucketLoggingOutput{}
4986 req = c.newRequest(op, input, output) 5438 req = c.newRequest(op, input, output)
4987 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5439 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4988 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4989 return 5440 return
4990} 5441}
4991 5442
@@ -5028,7 +5479,7 @@ const opPutBucketMetricsConfiguration = "PutBucketMetricsConfiguration"
5028// PutBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the 5479// PutBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the
5029// client's request for the PutBucketMetricsConfiguration operation. The "output" return 5480// client's request for the PutBucketMetricsConfiguration operation. The "output" return
5030// value will be populated with the request's response once the request completes 5481// value will be populated with the request's response once the request completes
5031// successfuly. 5482// successfully.
5032// 5483//
5033// Use "Send" method on the returned Request to send the API call to the service. 5484// Use "Send" method on the returned Request to send the API call to the service.
5034// the "output" return value is not valid until after Send returns without error. 5485// the "output" return value is not valid until after Send returns without error.
@@ -5062,8 +5513,7 @@ func (c *S3) PutBucketMetricsConfigurationRequest(input *PutBucketMetricsConfigu
5062 5513
5063 output = &PutBucketMetricsConfigurationOutput{} 5514 output = &PutBucketMetricsConfigurationOutput{}
5064 req = c.newRequest(op, input, output) 5515 req = c.newRequest(op, input, output)
5065 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5516 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5066 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5067 return 5517 return
5068} 5518}
5069 5519
@@ -5105,7 +5555,7 @@ const opPutBucketNotification = "PutBucketNotification"
5105// PutBucketNotificationRequest generates a "aws/request.Request" representing the 5555// PutBucketNotificationRequest generates a "aws/request.Request" representing the
5106// client's request for the PutBucketNotification operation. The "output" return 5556// client's request for the PutBucketNotification operation. The "output" return
5107// value will be populated with the request's response once the request completes 5557// value will be populated with the request's response once the request completes
5108// successfuly. 5558// successfully.
5109// 5559//
5110// Use "Send" method on the returned Request to send the API call to the service. 5560// Use "Send" method on the returned Request to send the API call to the service.
5111// the "output" return value is not valid until after Send returns without error. 5561// the "output" return value is not valid until after Send returns without error.
@@ -5126,6 +5576,8 @@ const opPutBucketNotification = "PutBucketNotification"
5126// } 5576// }
5127// 5577//
5128// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification 5578// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification
5579//
5580// Deprecated: PutBucketNotification has been deprecated
5129func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (req *request.Request, output *PutBucketNotificationOutput) { 5581func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (req *request.Request, output *PutBucketNotificationOutput) {
5130 if c.Client.Config.Logger != nil { 5582 if c.Client.Config.Logger != nil {
5131 c.Client.Config.Logger.Log("This operation, PutBucketNotification, has been deprecated") 5583 c.Client.Config.Logger.Log("This operation, PutBucketNotification, has been deprecated")
@@ -5142,14 +5594,13 @@ func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (re
5142 5594
5143 output = &PutBucketNotificationOutput{} 5595 output = &PutBucketNotificationOutput{}
5144 req = c.newRequest(op, input, output) 5596 req = c.newRequest(op, input, output)
5145 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5597 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5146 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5147 return 5598 return
5148} 5599}
5149 5600
5150// PutBucketNotification API operation for Amazon Simple Storage Service. 5601// PutBucketNotification API operation for Amazon Simple Storage Service.
5151// 5602//
5152// Deprecated, see the PutBucketNotificationConfiguraiton operation. 5603// No longer used, see the PutBucketNotificationConfiguration operation.
5153// 5604//
5154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5155// with awserr.Error's Code and Message methods to get detailed information about 5606// with awserr.Error's Code and Message methods to get detailed information about
@@ -5158,6 +5609,8 @@ func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (re
5158// See the AWS API reference guide for Amazon Simple Storage Service's 5609// See the AWS API reference guide for Amazon Simple Storage Service's
5159// API operation PutBucketNotification for usage and error information. 5610// API operation PutBucketNotification for usage and error information.
5160// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification 5611// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification
5612//
5613// Deprecated: PutBucketNotification has been deprecated
5161func (c *S3) PutBucketNotification(input *PutBucketNotificationInput) (*PutBucketNotificationOutput, error) { 5614func (c *S3) PutBucketNotification(input *PutBucketNotificationInput) (*PutBucketNotificationOutput, error) {
5162 req, out := c.PutBucketNotificationRequest(input) 5615 req, out := c.PutBucketNotificationRequest(input)
5163 return out, req.Send() 5616 return out, req.Send()
@@ -5172,6 +5625,8 @@ func (c *S3) PutBucketNotification(input *PutBucketNotificationInput) (*PutBucke
5172// the context is nil a panic will occur. In the future the SDK may create 5625// the context is nil a panic will occur. In the future the SDK may create
5173// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5174// for more information on using Contexts. 5627// for more information on using Contexts.
5628//
5629// Deprecated: PutBucketNotificationWithContext has been deprecated
5175func (c *S3) PutBucketNotificationWithContext(ctx aws.Context, input *PutBucketNotificationInput, opts ...request.Option) (*PutBucketNotificationOutput, error) { 5630func (c *S3) PutBucketNotificationWithContext(ctx aws.Context, input *PutBucketNotificationInput, opts ...request.Option) (*PutBucketNotificationOutput, error) {
5176 req, out := c.PutBucketNotificationRequest(input) 5631 req, out := c.PutBucketNotificationRequest(input)
5177 req.SetContext(ctx) 5632 req.SetContext(ctx)
@@ -5184,7 +5639,7 @@ const opPutBucketNotificationConfiguration = "PutBucketNotificationConfiguration
5184// PutBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the 5639// PutBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the
5185// client's request for the PutBucketNotificationConfiguration operation. The "output" return 5640// client's request for the PutBucketNotificationConfiguration operation. The "output" return
5186// value will be populated with the request's response once the request completes 5641// value will be populated with the request's response once the request completes
5187// successfuly. 5642// successfully.
5188// 5643//
5189// Use "Send" method on the returned Request to send the API call to the service. 5644// Use "Send" method on the returned Request to send the API call to the service.
5190// the "output" return value is not valid until after Send returns without error. 5645// the "output" return value is not valid until after Send returns without error.
@@ -5218,8 +5673,7 @@ func (c *S3) PutBucketNotificationConfigurationRequest(input *PutBucketNotificat
5218 5673
5219 output = &PutBucketNotificationConfigurationOutput{} 5674 output = &PutBucketNotificationConfigurationOutput{}
5220 req = c.newRequest(op, input, output) 5675 req = c.newRequest(op, input, output)
5221 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5676 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5222 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5223 return 5677 return
5224} 5678}
5225 5679
@@ -5260,7 +5714,7 @@ const opPutBucketPolicy = "PutBucketPolicy"
5260// PutBucketPolicyRequest generates a "aws/request.Request" representing the 5714// PutBucketPolicyRequest generates a "aws/request.Request" representing the
5261// client's request for the PutBucketPolicy operation. The "output" return 5715// client's request for the PutBucketPolicy operation. The "output" return
5262// value will be populated with the request's response once the request completes 5716// value will be populated with the request's response once the request completes
5263// successfuly. 5717// successfully.
5264// 5718//
5265// Use "Send" method on the returned Request to send the API call to the service. 5719// Use "Send" method on the returned Request to send the API call to the service.
5266// the "output" return value is not valid until after Send returns without error. 5720// the "output" return value is not valid until after Send returns without error.
@@ -5294,8 +5748,7 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R
5294 5748
5295 output = &PutBucketPolicyOutput{} 5749 output = &PutBucketPolicyOutput{}
5296 req = c.newRequest(op, input, output) 5750 req = c.newRequest(op, input, output)
5297 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5751 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5298 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5299 return 5752 return
5300} 5753}
5301 5754
@@ -5337,7 +5790,7 @@ const opPutBucketReplication = "PutBucketReplication"
5337// PutBucketReplicationRequest generates a "aws/request.Request" representing the 5790// PutBucketReplicationRequest generates a "aws/request.Request" representing the
5338// client's request for the PutBucketReplication operation. The "output" return 5791// client's request for the PutBucketReplication operation. The "output" return
5339// value will be populated with the request's response once the request completes 5792// value will be populated with the request's response once the request completes
5340// successfuly. 5793// successfully.
5341// 5794//
5342// Use "Send" method on the returned Request to send the API call to the service. 5795// Use "Send" method on the returned Request to send the API call to the service.
5343// the "output" return value is not valid until after Send returns without error. 5796// the "output" return value is not valid until after Send returns without error.
@@ -5371,15 +5824,15 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req
5371 5824
5372 output = &PutBucketReplicationOutput{} 5825 output = &PutBucketReplicationOutput{}
5373 req = c.newRequest(op, input, output) 5826 req = c.newRequest(op, input, output)
5374 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5827 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5375 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5376 return 5828 return
5377} 5829}
5378 5830
5379// PutBucketReplication API operation for Amazon Simple Storage Service. 5831// PutBucketReplication API operation for Amazon Simple Storage Service.
5380// 5832//
5381// Creates a new replication configuration (or replaces an existing one, if 5833// Creates a replication configuration or replaces an existing one. For more
5382// present). 5834// information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
5835// in the Amazon S3 Developer Guide.
5383// 5836//
5384// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5385// with awserr.Error's Code and Message methods to get detailed information about 5838// with awserr.Error's Code and Message methods to get detailed information about
@@ -5414,7 +5867,7 @@ const opPutBucketRequestPayment = "PutBucketRequestPayment"
5414// PutBucketRequestPaymentRequest generates a "aws/request.Request" representing the 5867// PutBucketRequestPaymentRequest generates a "aws/request.Request" representing the
5415// client's request for the PutBucketRequestPayment operation. The "output" return 5868// client's request for the PutBucketRequestPayment operation. The "output" return
5416// value will be populated with the request's response once the request completes 5869// value will be populated with the request's response once the request completes
5417// successfuly. 5870// successfully.
5418// 5871//
5419// Use "Send" method on the returned Request to send the API call to the service. 5872// Use "Send" method on the returned Request to send the API call to the service.
5420// the "output" return value is not valid until after Send returns without error. 5873// the "output" return value is not valid until after Send returns without error.
@@ -5448,8 +5901,7 @@ func (c *S3) PutBucketRequestPaymentRequest(input *PutBucketRequestPaymentInput)
5448 5901
5449 output = &PutBucketRequestPaymentOutput{} 5902 output = &PutBucketRequestPaymentOutput{}
5450 req = c.newRequest(op, input, output) 5903 req = c.newRequest(op, input, output)
5451 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5904 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5452 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5453 return 5905 return
5454} 5906}
5455 5907
@@ -5494,7 +5946,7 @@ const opPutBucketTagging = "PutBucketTagging"
5494// PutBucketTaggingRequest generates a "aws/request.Request" representing the 5946// PutBucketTaggingRequest generates a "aws/request.Request" representing the
5495// client's request for the PutBucketTagging operation. The "output" return 5947// client's request for the PutBucketTagging operation. The "output" return
5496// value will be populated with the request's response once the request completes 5948// value will be populated with the request's response once the request completes
5497// successfuly. 5949// successfully.
5498// 5950//
5499// Use "Send" method on the returned Request to send the API call to the service. 5951// Use "Send" method on the returned Request to send the API call to the service.
5500// the "output" return value is not valid until after Send returns without error. 5952// the "output" return value is not valid until after Send returns without error.
@@ -5528,8 +5980,7 @@ func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request
5528 5980
5529 output = &PutBucketTaggingOutput{} 5981 output = &PutBucketTaggingOutput{}
5530 req = c.newRequest(op, input, output) 5982 req = c.newRequest(op, input, output)
5531 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 5983 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5532 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5533 return 5984 return
5534} 5985}
5535 5986
@@ -5570,7 +6021,7 @@ const opPutBucketVersioning = "PutBucketVersioning"
5570// PutBucketVersioningRequest generates a "aws/request.Request" representing the 6021// PutBucketVersioningRequest generates a "aws/request.Request" representing the
5571// client's request for the PutBucketVersioning operation. The "output" return 6022// client's request for the PutBucketVersioning operation. The "output" return
5572// value will be populated with the request's response once the request completes 6023// value will be populated with the request's response once the request completes
5573// successfuly. 6024// successfully.
5574// 6025//
5575// Use "Send" method on the returned Request to send the API call to the service. 6026// Use "Send" method on the returned Request to send the API call to the service.
5576// the "output" return value is not valid until after Send returns without error. 6027// the "output" return value is not valid until after Send returns without error.
@@ -5604,8 +6055,7 @@ func (c *S3) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *r
5604 6055
5605 output = &PutBucketVersioningOutput{} 6056 output = &PutBucketVersioningOutput{}
5606 req = c.newRequest(op, input, output) 6057 req = c.newRequest(op, input, output)
5607 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 6058 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5608 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5609 return 6059 return
5610} 6060}
5611 6061
@@ -5647,7 +6097,7 @@ const opPutBucketWebsite = "PutBucketWebsite"
5647// PutBucketWebsiteRequest generates a "aws/request.Request" representing the 6097// PutBucketWebsiteRequest generates a "aws/request.Request" representing the
5648// client's request for the PutBucketWebsite operation. The "output" return 6098// client's request for the PutBucketWebsite operation. The "output" return
5649// value will be populated with the request's response once the request completes 6099// value will be populated with the request's response once the request completes
5650// successfuly. 6100// successfully.
5651// 6101//
5652// Use "Send" method on the returned Request to send the API call to the service. 6102// Use "Send" method on the returned Request to send the API call to the service.
5653// the "output" return value is not valid until after Send returns without error. 6103// the "output" return value is not valid until after Send returns without error.
@@ -5681,8 +6131,7 @@ func (c *S3) PutBucketWebsiteRequest(input *PutBucketWebsiteInput) (req *request
5681 6131
5682 output = &PutBucketWebsiteOutput{} 6132 output = &PutBucketWebsiteOutput{}
5683 req = c.newRequest(op, input, output) 6133 req = c.newRequest(op, input, output)
5684 req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) 6134 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5685 req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
5686 return 6135 return
5687} 6136}
5688 6137
@@ -5723,7 +6172,7 @@ const opPutObject = "PutObject"
5723// PutObjectRequest generates a "aws/request.Request" representing the 6172// PutObjectRequest generates a "aws/request.Request" representing the
5724// client's request for the PutObject operation. The "output" return 6173// client's request for the PutObject operation. The "output" return
5725// value will be populated with the request's response once the request completes 6174// value will be populated with the request's response once the request completes
5726// successfuly. 6175// successfully.
5727// 6176//
5728// Use "Send" method on the returned Request to send the API call to the service. 6177// Use "Send" method on the returned Request to send the API call to the service.
5729// the "output" return value is not valid until after Send returns without error. 6178// the "output" return value is not valid until after Send returns without error.
@@ -5797,7 +6246,7 @@ const opPutObjectAcl = "PutObjectAcl"
5797// PutObjectAclRequest generates a "aws/request.Request" representing the 6246// PutObjectAclRequest generates a "aws/request.Request" representing the
5798// client's request for the PutObjectAcl operation. The "output" return 6247// client's request for the PutObjectAcl operation. The "output" return
5799// value will be populated with the request's response once the request completes 6248// value will be populated with the request's response once the request completes
5800// successfuly. 6249// successfully.
5801// 6250//
5802// Use "Send" method on the returned Request to send the API call to the service. 6251// Use "Send" method on the returned Request to send the API call to the service.
5803// the "output" return value is not valid until after Send returns without error. 6252// the "output" return value is not valid until after Send returns without error.
@@ -5872,12 +6321,236 @@ func (c *S3) PutObjectAclWithContext(ctx aws.Context, input *PutObjectAclInput,
5872 return out, req.Send() 6321 return out, req.Send()
5873} 6322}
5874 6323
6324const opPutObjectLegalHold = "PutObjectLegalHold"
6325
6326// PutObjectLegalHoldRequest generates a "aws/request.Request" representing the
6327// client's request for the PutObjectLegalHold operation. The "output" return
6328// value will be populated with the request's response once the request completes
6329// successfully.
6330//
6331// Use "Send" method on the returned Request to send the API call to the service.
6332// the "output" return value is not valid until after Send returns without error.
6333//
6334// See PutObjectLegalHold for more information on using the PutObjectLegalHold
6335// API call, and error handling.
6336//
6337// This method is useful when you want to inject custom logic or configuration
6338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6339//
6340//
6341// // Example sending a request using the PutObjectLegalHoldRequest method.
6342// req, resp := client.PutObjectLegalHoldRequest(params)
6343//
6344// err := req.Send()
6345// if err == nil { // resp is now filled
6346// fmt.Println(resp)
6347// }
6348//
6349// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold
6350func (c *S3) PutObjectLegalHoldRequest(input *PutObjectLegalHoldInput) (req *request.Request, output *PutObjectLegalHoldOutput) {
6351 op := &request.Operation{
6352 Name: opPutObjectLegalHold,
6353 HTTPMethod: "PUT",
6354 HTTPPath: "/{Bucket}/{Key+}?legal-hold",
6355 }
6356
6357 if input == nil {
6358 input = &PutObjectLegalHoldInput{}
6359 }
6360
6361 output = &PutObjectLegalHoldOutput{}
6362 req = c.newRequest(op, input, output)
6363 return
6364}
6365
6366// PutObjectLegalHold API operation for Amazon Simple Storage Service.
6367//
6368// Applies a Legal Hold configuration to the specified object.
6369//
6370// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6371// with awserr.Error's Code and Message methods to get detailed information about
6372// the error.
6373//
6374// See the AWS API reference guide for Amazon Simple Storage Service's
6375// API operation PutObjectLegalHold for usage and error information.
6376// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold
6377func (c *S3) PutObjectLegalHold(input *PutObjectLegalHoldInput) (*PutObjectLegalHoldOutput, error) {
6378 req, out := c.PutObjectLegalHoldRequest(input)
6379 return out, req.Send()
6380}
6381
6382// PutObjectLegalHoldWithContext is the same as PutObjectLegalHold with the addition of
6383// the ability to pass a context and additional request options.
6384//
6385// See PutObjectLegalHold for details on how to use this API operation.
6386//
6387// The context must be non-nil and will be used for request cancellation. If
6388// the context is nil a panic will occur. In the future the SDK may create
6389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6390// for more information on using Contexts.
6391func (c *S3) PutObjectLegalHoldWithContext(ctx aws.Context, input *PutObjectLegalHoldInput, opts ...request.Option) (*PutObjectLegalHoldOutput, error) {
6392 req, out := c.PutObjectLegalHoldRequest(input)
6393 req.SetContext(ctx)
6394 req.ApplyOptions(opts...)
6395 return out, req.Send()
6396}
6397
6398const opPutObjectLockConfiguration = "PutObjectLockConfiguration"
6399
6400// PutObjectLockConfigurationRequest generates a "aws/request.Request" representing the
6401// client's request for the PutObjectLockConfiguration operation. The "output" return
6402// value will be populated with the request's response once the request completes
6403// successfully.
6404//
6405// Use "Send" method on the returned Request to send the API call to the service.
6406// the "output" return value is not valid until after Send returns without error.
6407//
6408// See PutObjectLockConfiguration for more information on using the PutObjectLockConfiguration
6409// API call, and error handling.
6410//
6411// This method is useful when you want to inject custom logic or configuration
6412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6413//
6414//
6415// // Example sending a request using the PutObjectLockConfigurationRequest method.
6416// req, resp := client.PutObjectLockConfigurationRequest(params)
6417//
6418// err := req.Send()
6419// if err == nil { // resp is now filled
6420// fmt.Println(resp)
6421// }
6422//
6423// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration
6424func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfigurationInput) (req *request.Request, output *PutObjectLockConfigurationOutput) {
6425 op := &request.Operation{
6426 Name: opPutObjectLockConfiguration,
6427 HTTPMethod: "PUT",
6428 HTTPPath: "/{Bucket}?object-lock",
6429 }
6430
6431 if input == nil {
6432 input = &PutObjectLockConfigurationInput{}
6433 }
6434
6435 output = &PutObjectLockConfigurationOutput{}
6436 req = c.newRequest(op, input, output)
6437 return
6438}
6439
6440// PutObjectLockConfiguration API operation for Amazon Simple Storage Service.
6441//
6442// Places an Object Lock configuration on the specified bucket. The rule specified
6443// in the Object Lock configuration will be applied by default to every new
6444// object placed in the specified bucket.
6445//
6446// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6447// with awserr.Error's Code and Message methods to get detailed information about
6448// the error.
6449//
6450// See the AWS API reference guide for Amazon Simple Storage Service's
6451// API operation PutObjectLockConfiguration for usage and error information.
6452// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration
6453func (c *S3) PutObjectLockConfiguration(input *PutObjectLockConfigurationInput) (*PutObjectLockConfigurationOutput, error) {
6454 req, out := c.PutObjectLockConfigurationRequest(input)
6455 return out, req.Send()
6456}
6457
6458// PutObjectLockConfigurationWithContext is the same as PutObjectLockConfiguration with the addition of
6459// the ability to pass a context and additional request options.
6460//
6461// See PutObjectLockConfiguration for details on how to use this API operation.
6462//
6463// The context must be non-nil and will be used for request cancellation. If
6464// the context is nil a panic will occur. In the future the SDK may create
6465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6466// for more information on using Contexts.
6467func (c *S3) PutObjectLockConfigurationWithContext(ctx aws.Context, input *PutObjectLockConfigurationInput, opts ...request.Option) (*PutObjectLockConfigurationOutput, error) {
6468 req, out := c.PutObjectLockConfigurationRequest(input)
6469 req.SetContext(ctx)
6470 req.ApplyOptions(opts...)
6471 return out, req.Send()
6472}
6473
6474const opPutObjectRetention = "PutObjectRetention"
6475
6476// PutObjectRetentionRequest generates a "aws/request.Request" representing the
6477// client's request for the PutObjectRetention operation. The "output" return
6478// value will be populated with the request's response once the request completes
6479// successfully.
6480//
6481// Use "Send" method on the returned Request to send the API call to the service.
6482// the "output" return value is not valid until after Send returns without error.
6483//
6484// See PutObjectRetention for more information on using the PutObjectRetention
6485// API call, and error handling.
6486//
6487// This method is useful when you want to inject custom logic or configuration
6488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6489//
6490//
6491// // Example sending a request using the PutObjectRetentionRequest method.
6492// req, resp := client.PutObjectRetentionRequest(params)
6493//
6494// err := req.Send()
6495// if err == nil { // resp is now filled
6496// fmt.Println(resp)
6497// }
6498//
6499// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention
6500func (c *S3) PutObjectRetentionRequest(input *PutObjectRetentionInput) (req *request.Request, output *PutObjectRetentionOutput) {
6501 op := &request.Operation{
6502 Name: opPutObjectRetention,
6503 HTTPMethod: "PUT",
6504 HTTPPath: "/{Bucket}/{Key+}?retention",
6505 }
6506
6507 if input == nil {
6508 input = &PutObjectRetentionInput{}
6509 }
6510
6511 output = &PutObjectRetentionOutput{}
6512 req = c.newRequest(op, input, output)
6513 return
6514}
6515
6516// PutObjectRetention API operation for Amazon Simple Storage Service.
6517//
6518// Places an Object Retention configuration on an object.
6519//
6520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6521// with awserr.Error's Code and Message methods to get detailed information about
6522// the error.
6523//
6524// See the AWS API reference guide for Amazon Simple Storage Service's
6525// API operation PutObjectRetention for usage and error information.
6526// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention
6527func (c *S3) PutObjectRetention(input *PutObjectRetentionInput) (*PutObjectRetentionOutput, error) {
6528 req, out := c.PutObjectRetentionRequest(input)
6529 return out, req.Send()
6530}
6531
6532// PutObjectRetentionWithContext is the same as PutObjectRetention with the addition of
6533// the ability to pass a context and additional request options.
6534//
6535// See PutObjectRetention for details on how to use this API operation.
6536//
6537// The context must be non-nil and will be used for request cancellation. If
6538// the context is nil a panic will occur. In the future the SDK may create
6539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6540// for more information on using Contexts.
6541func (c *S3) PutObjectRetentionWithContext(ctx aws.Context, input *PutObjectRetentionInput, opts ...request.Option) (*PutObjectRetentionOutput, error) {
6542 req, out := c.PutObjectRetentionRequest(input)
6543 req.SetContext(ctx)
6544 req.ApplyOptions(opts...)
6545 return out, req.Send()
6546}
6547
5875const opPutObjectTagging = "PutObjectTagging" 6548const opPutObjectTagging = "PutObjectTagging"
5876 6549
5877// PutObjectTaggingRequest generates a "aws/request.Request" representing the 6550// PutObjectTaggingRequest generates a "aws/request.Request" representing the
5878// client's request for the PutObjectTagging operation. The "output" return 6551// client's request for the PutObjectTagging operation. The "output" return
5879// value will be populated with the request's response once the request completes 6552// value will be populated with the request's response once the request completes
5880// successfuly. 6553// successfully.
5881// 6554//
5882// Use "Send" method on the returned Request to send the API call to the service. 6555// Use "Send" method on the returned Request to send the API call to the service.
5883// the "output" return value is not valid until after Send returns without error. 6556// the "output" return value is not valid until after Send returns without error.
@@ -5946,12 +6619,88 @@ func (c *S3) PutObjectTaggingWithContext(ctx aws.Context, input *PutObjectTaggin
5946 return out, req.Send() 6619 return out, req.Send()
5947} 6620}
5948 6621
6622const opPutPublicAccessBlock = "PutPublicAccessBlock"
6623
6624// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the
6625// client's request for the PutPublicAccessBlock operation. The "output" return
6626// value will be populated with the request's response once the request completes
6627// successfully.
6628//
6629// Use "Send" method on the returned Request to send the API call to the service.
6630// the "output" return value is not valid until after Send returns without error.
6631//
6632// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock
6633// API call, and error handling.
6634//
6635// This method is useful when you want to inject custom logic or configuration
6636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6637//
6638//
6639// // Example sending a request using the PutPublicAccessBlockRequest method.
6640// req, resp := client.PutPublicAccessBlockRequest(params)
6641//
6642// err := req.Send()
6643// if err == nil { // resp is now filled
6644// fmt.Println(resp)
6645// }
6646//
6647// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock
6648func (c *S3) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) {
6649 op := &request.Operation{
6650 Name: opPutPublicAccessBlock,
6651 HTTPMethod: "PUT",
6652 HTTPPath: "/{Bucket}?publicAccessBlock",
6653 }
6654
6655 if input == nil {
6656 input = &PutPublicAccessBlockInput{}
6657 }
6658
6659 output = &PutPublicAccessBlockOutput{}
6660 req = c.newRequest(op, input, output)
6661 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6662 return
6663}
6664
6665// PutPublicAccessBlock API operation for Amazon Simple Storage Service.
6666//
6667// Creates or modifies the PublicAccessBlock configuration for an Amazon S3
6668// bucket.
6669//
6670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6671// with awserr.Error's Code and Message methods to get detailed information about
6672// the error.
6673//
6674// See the AWS API reference guide for Amazon Simple Storage Service's
6675// API operation PutPublicAccessBlock for usage and error information.
6676// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock
6677func (c *S3) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) {
6678 req, out := c.PutPublicAccessBlockRequest(input)
6679 return out, req.Send()
6680}
6681
6682// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of
6683// the ability to pass a context and additional request options.
6684//
6685// See PutPublicAccessBlock for details on how to use this API operation.
6686//
6687// The context must be non-nil and will be used for request cancellation. If
6688// the context is nil a panic will occur. In the future the SDK may create
6689// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6690// for more information on using Contexts.
6691func (c *S3) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) {
6692 req, out := c.PutPublicAccessBlockRequest(input)
6693 req.SetContext(ctx)
6694 req.ApplyOptions(opts...)
6695 return out, req.Send()
6696}
6697
5949const opRestoreObject = "RestoreObject" 6698const opRestoreObject = "RestoreObject"
5950 6699
5951// RestoreObjectRequest generates a "aws/request.Request" representing the 6700// RestoreObjectRequest generates a "aws/request.Request" representing the
5952// client's request for the RestoreObject operation. The "output" return 6701// client's request for the RestoreObject operation. The "output" return
5953// value will be populated with the request's response once the request completes 6702// value will be populated with the request's response once the request completes
5954// successfuly. 6703// successfully.
5955// 6704//
5956// Use "Send" method on the returned Request to send the API call to the service. 6705// Use "Send" method on the returned Request to send the API call to the service.
5957// the "output" return value is not valid until after Send returns without error. 6706// the "output" return value is not valid until after Send returns without error.
@@ -6030,7 +6779,7 @@ const opSelectObjectContent = "SelectObjectContent"
6030// SelectObjectContentRequest generates a "aws/request.Request" representing the 6779// SelectObjectContentRequest generates a "aws/request.Request" representing the
6031// client's request for the SelectObjectContent operation. The "output" return 6780// client's request for the SelectObjectContent operation. The "output" return
6032// value will be populated with the request's response once the request completes 6781// value will be populated with the request's response once the request completes
6033// successfuly. 6782// successfully.
6034// 6783//
6035// Use "Send" method on the returned Request to send the API call to the service. 6784// Use "Send" method on the returned Request to send the API call to the service.
6036// the "output" return value is not valid until after Send returns without error. 6785// the "output" return value is not valid until after Send returns without error.
@@ -6112,7 +6861,7 @@ const opUploadPart = "UploadPart"
6112// UploadPartRequest generates a "aws/request.Request" representing the 6861// UploadPartRequest generates a "aws/request.Request" representing the
6113// client's request for the UploadPart operation. The "output" return 6862// client's request for the UploadPart operation. The "output" return
6114// value will be populated with the request's response once the request completes 6863// value will be populated with the request's response once the request completes
6115// successfuly. 6864// successfully.
6116// 6865//
6117// Use "Send" method on the returned Request to send the API call to the service. 6866// Use "Send" method on the returned Request to send the API call to the service.
6118// the "output" return value is not valid until after Send returns without error. 6867// the "output" return value is not valid until after Send returns without error.
@@ -6192,7 +6941,7 @@ const opUploadPartCopy = "UploadPartCopy"
6192// UploadPartCopyRequest generates a "aws/request.Request" representing the 6941// UploadPartCopyRequest generates a "aws/request.Request" representing the
6193// client's request for the UploadPartCopy operation. The "output" return 6942// client's request for the UploadPartCopy operation. The "output" return
6194// value will be populated with the request's response once the request completes 6943// value will be populated with the request's response once the request completes
6195// successfuly. 6944// successfully.
6196// 6945//
6197// Use "Send" method on the returned Request to send the API call to the service. 6946// Use "Send" method on the returned Request to send the API call to the service.
6198// the "output" return value is not valid until after Send returns without error. 6947// the "output" return value is not valid until after Send returns without error.
@@ -6322,6 +7071,9 @@ func (s *AbortMultipartUploadInput) Validate() error {
6322 if s.Bucket == nil { 7071 if s.Bucket == nil {
6323 invalidParams.Add(request.NewErrParamRequired("Bucket")) 7072 invalidParams.Add(request.NewErrParamRequired("Bucket"))
6324 } 7073 }
7074 if s.Bucket != nil && len(*s.Bucket) < 1 {
7075 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
7076 }
6325 if s.Key == nil { 7077 if s.Key == nil {
6326 invalidParams.Add(request.NewErrParamRequired("Key")) 7078 invalidParams.Add(request.NewErrParamRequired("Key"))
6327 } 7079 }
@@ -6467,7 +7219,7 @@ func (s *AccessControlPolicy) SetOwner(v *Owner) *AccessControlPolicy {
6467 return s 7219 return s
6468} 7220}
6469 7221
6470// Container for information regarding the access control for replicas. 7222// A container for information about access control for replicas.
6471type AccessControlTranslation struct { 7223type AccessControlTranslation struct {
6472 _ struct{} `type:"structure"` 7224 _ struct{} `type:"structure"`
6473 7225
@@ -7072,11 +7824,11 @@ type CSVInput struct {
7072 // to TRUE may lower performance. 7824 // to TRUE may lower performance.
7073 AllowQuotedRecordDelimiter *bool `type:"boolean"` 7825 AllowQuotedRecordDelimiter *bool `type:"boolean"`
7074 7826
7075 // Single character used to indicate a row should be ignored when present at 7827 // The single character used to indicate a row should be ignored when present
7076 // the start of a row. 7828 // at the start of a row.
7077 Comments *string `type:"string"` 7829 Comments *string `type:"string"`
7078 7830
7079 // Value used to separate individual fields in a record. 7831 // The value used to separate individual fields in a record.
7080 FieldDelimiter *string `type:"string"` 7832 FieldDelimiter *string `type:"string"`
7081 7833
7082 // Describes the first line of input. Valid values: None, Ignore, Use. 7834 // Describes the first line of input. Valid values: None, Ignore, Use.
@@ -7085,11 +7837,11 @@ type CSVInput struct {
7085 // Value used for escaping where the field delimiter is part of the value. 7837 // Value used for escaping where the field delimiter is part of the value.
7086 QuoteCharacter *string `type:"string"` 7838 QuoteCharacter *string `type:"string"`
7087 7839
7088 // Single character used for escaping the quote character inside an already 7840 // The single character used for escaping the quote character inside an already
7089 // escaped value. 7841 // escaped value.
7090 QuoteEscapeCharacter *string `type:"string"` 7842 QuoteEscapeCharacter *string `type:"string"`
7091 7843
7092 // Value used to separate individual records. 7844 // The value used to separate individual records.
7093 RecordDelimiter *string `type:"string"` 7845 RecordDelimiter *string `type:"string"`
7094} 7846}
7095 7847
@@ -7149,20 +7901,20 @@ func (s *CSVInput) SetRecordDelimiter(v string) *CSVInput {
7149type CSVOutput struct { 7901type CSVOutput struct {
7150 _ struct{} `type:"structure"` 7902 _ struct{} `type:"structure"`
7151 7903
7152 // Value used to separate individual fields in a record. 7904 // The value used to separate individual fields in a record.
7153 FieldDelimiter *string `type:"string"` 7905 FieldDelimiter *string `type:"string"`
7154 7906
7155 // Value used for escaping where the field delimiter is part of the value. 7907 // The value used for escaping where the field delimiter is part of the value.
7156 QuoteCharacter *string `type:"string"` 7908 QuoteCharacter *string `type:"string"`
7157 7909
7158 // Single character used for escaping the quote character inside an already 7910 // Th single character used for escaping the quote character inside an already
7159 // escaped value. 7911 // escaped value.
7160 QuoteEscapeCharacter *string `type:"string"` 7912 QuoteEscapeCharacter *string `type:"string"`
7161 7913
7162 // Indicates whether or not all output fields should be quoted. 7914 // Indicates whether or not all output fields should be quoted.
7163 QuoteFields *string `type:"string" enum:"QuoteFields"` 7915 QuoteFields *string `type:"string" enum:"QuoteFields"`
7164 7916
7165 // Value used to separate individual records. 7917 // The value used to separate individual records.
7166 RecordDelimiter *string `type:"string"` 7918 RecordDelimiter *string `type:"string"`
7167} 7919}
7168 7920
@@ -7211,12 +7963,14 @@ type CloudFunctionConfiguration struct {
7211 7963
7212 CloudFunction *string `type:"string"` 7964 CloudFunction *string `type:"string"`
7213 7965
7214 // Bucket event for which to send notifications. 7966 // The bucket event for which to send notifications.
7967 //
7968 // Deprecated: Event has been deprecated
7215 Event *string `deprecated:"true" type:"string" enum:"Event"` 7969 Event *string `deprecated:"true" type:"string" enum:"Event"`
7216 7970
7217 Events []*string `locationName:"Event" type:"list" flattened:"true"` 7971 Events []*string `locationName:"Event" type:"list" flattened:"true"`
7218 7972
7219 // Optional unique identifier for configurations in a notification configuration. 7973 // An optional unique identifier for configurations in a notification configuration.
7220 // If you don't provide one, Amazon S3 will assign an ID. 7974 // If you don't provide one, Amazon S3 will assign an ID.
7221 Id *string `type:"string"` 7975 Id *string `type:"string"`
7222 7976
@@ -7322,6 +8076,9 @@ func (s *CompleteMultipartUploadInput) Validate() error {
7322 if s.Bucket == nil { 8076 if s.Bucket == nil {
7323 invalidParams.Add(request.NewErrParamRequired("Bucket")) 8077 invalidParams.Add(request.NewErrParamRequired("Bucket"))
7324 } 8078 }
8079 if s.Bucket != nil && len(*s.Bucket) < 1 {
8080 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
8081 }
7325 if s.Key == nil { 8082 if s.Key == nil {
7326 invalidParams.Add(request.NewErrParamRequired("Key")) 8083 invalidParams.Add(request.NewErrParamRequired("Key"))
7327 } 8084 }
@@ -7397,7 +8154,7 @@ type CompleteMultipartUploadOutput struct {
7397 8154
7398 // If present, specifies the ID of the AWS Key Management Service (KMS) master 8155 // If present, specifies the ID of the AWS Key Management Service (KMS) master
7399 // encryption key that was used for the object. 8156 // encryption key that was used for the object.
7400 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 8157 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
7401 8158
7402 // The Server-side encryption algorithm used when storing this object in S3 8159 // The Server-side encryption algorithm used when storing this object in S3
7403 // (e.g., AES256, aws:kms). 8160 // (e.g., AES256, aws:kms).
@@ -7652,7 +8409,7 @@ type CopyObjectInput struct {
7652 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt 8409 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
7653 // the source object. The encryption key provided in this header must be one 8410 // the source object. The encryption key provided in this header must be one
7654 // that was used when the source object was created. 8411 // that was used when the source object was created.
7655 CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string"` 8412 CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
7656 8413
7657 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 8414 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
7658 // Amazon S3 uses this header for a message integrity check to ensure the encryption 8415 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -7684,6 +8441,15 @@ type CopyObjectInput struct {
7684 // with metadata provided in the request. 8441 // with metadata provided in the request.
7685 MetadataDirective *string `location:"header" locationName:"x-amz-metadata-directive" type:"string" enum:"MetadataDirective"` 8442 MetadataDirective *string `location:"header" locationName:"x-amz-metadata-directive" type:"string" enum:"MetadataDirective"`
7686 8443
8444 // Specifies whether you want to apply a Legal Hold to the copied object.
8445 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
8446
8447 // The Object Lock mode that you want to apply to the copied object.
8448 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
8449
8450 // The date and time when you want the copied object's Object Lock to expire.
8451 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
8452
7687 // Confirms that the requester knows that she or he will be charged for the 8453 // Confirms that the requester knows that she or he will be charged for the
7688 // request. Bucket owners need not specify this parameter in their requests. 8454 // request. Bucket owners need not specify this parameter in their requests.
7689 // Documentation on downloading objects from requester pays buckets can be found 8455 // Documentation on downloading objects from requester pays buckets can be found
@@ -7698,7 +8464,7 @@ type CopyObjectInput struct {
7698 // does not store the encryption key. The key must be appropriate for use with 8464 // does not store the encryption key. The key must be appropriate for use with
7699 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 8465 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
7700 // header. 8466 // header.
7701 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 8467 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
7702 8468
7703 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 8469 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
7704 // Amazon S3 uses this header for a message integrity check to ensure the encryption 8470 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -7709,7 +8475,7 @@ type CopyObjectInput struct {
7709 // requests for an object protected by AWS KMS will fail if not made via SSL 8475 // requests for an object protected by AWS KMS will fail if not made via SSL
7710 // or using SigV4. Documentation on configuring any of the officially supported 8476 // or using SigV4. Documentation on configuring any of the officially supported
7711 // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version 8477 // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
7712 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 8478 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
7713 8479
7714 // The Server-side encryption algorithm used when storing this object in S3 8480 // The Server-side encryption algorithm used when storing this object in S3
7715 // (e.g., AES256, aws:kms). 8481 // (e.g., AES256, aws:kms).
@@ -7749,6 +8515,9 @@ func (s *CopyObjectInput) Validate() error {
7749 if s.Bucket == nil { 8515 if s.Bucket == nil {
7750 invalidParams.Add(request.NewErrParamRequired("Bucket")) 8516 invalidParams.Add(request.NewErrParamRequired("Bucket"))
7751 } 8517 }
8518 if s.Bucket != nil && len(*s.Bucket) < 1 {
8519 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
8520 }
7752 if s.CopySource == nil { 8521 if s.CopySource == nil {
7753 invalidParams.Add(request.NewErrParamRequired("CopySource")) 8522 invalidParams.Add(request.NewErrParamRequired("CopySource"))
7754 } 8523 }
@@ -7917,6 +8686,24 @@ func (s *CopyObjectInput) SetMetadataDirective(v string) *CopyObjectInput {
7917 return s 8686 return s
7918} 8687}
7919 8688
8689// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
8690func (s *CopyObjectInput) SetObjectLockLegalHoldStatus(v string) *CopyObjectInput {
8691 s.ObjectLockLegalHoldStatus = &v
8692 return s
8693}
8694
8695// SetObjectLockMode sets the ObjectLockMode field's value.
8696func (s *CopyObjectInput) SetObjectLockMode(v string) *CopyObjectInput {
8697 s.ObjectLockMode = &v
8698 return s
8699}
8700
8701// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
8702func (s *CopyObjectInput) SetObjectLockRetainUntilDate(v time.Time) *CopyObjectInput {
8703 s.ObjectLockRetainUntilDate = &v
8704 return s
8705}
8706
7920// SetRequestPayer sets the RequestPayer field's value. 8707// SetRequestPayer sets the RequestPayer field's value.
7921func (s *CopyObjectInput) SetRequestPayer(v string) *CopyObjectInput { 8708func (s *CopyObjectInput) SetRequestPayer(v string) *CopyObjectInput {
7922 s.RequestPayer = &v 8709 s.RequestPayer = &v
@@ -8010,7 +8797,7 @@ type CopyObjectOutput struct {
8010 8797
8011 // If present, specifies the ID of the AWS Key Management Service (KMS) master 8798 // If present, specifies the ID of the AWS Key Management Service (KMS) master
8012 // encryption key that was used for the object. 8799 // encryption key that was used for the object.
8013 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 8800 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
8014 8801
8015 // The Server-side encryption algorithm used when storing this object in S3 8802 // The Server-side encryption algorithm used when storing this object in S3
8016 // (e.g., AES256, aws:kms). 8803 // (e.g., AES256, aws:kms).
@@ -8150,7 +8937,7 @@ type CreateBucketConfiguration struct {
8150 _ struct{} `type:"structure"` 8937 _ struct{} `type:"structure"`
8151 8938
8152 // Specifies the region where the bucket will be created. If you don't specify 8939 // Specifies the region where the bucket will be created. If you don't specify
8153 // a region, the bucket will be created in US Standard. 8940 // a region, the bucket is created in US East (N. Virginia) Region (us-east-1).
8154 LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` 8941 LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"`
8155} 8942}
8156 8943
@@ -8196,6 +8983,9 @@ type CreateBucketInput struct {
8196 8983
8197 // Allows grantee to write the ACL for the applicable bucket. 8984 // Allows grantee to write the ACL for the applicable bucket.
8198 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 8985 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
8986
8987 // Specifies whether you want S3 Object Lock to be enabled for the new bucket.
8988 ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
8199} 8989}
8200 8990
8201// String returns the string representation 8991// String returns the string representation
@@ -8214,6 +9004,9 @@ func (s *CreateBucketInput) Validate() error {
8214 if s.Bucket == nil { 9004 if s.Bucket == nil {
8215 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9005 invalidParams.Add(request.NewErrParamRequired("Bucket"))
8216 } 9006 }
9007 if s.Bucket != nil && len(*s.Bucket) < 1 {
9008 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9009 }
8217 9010
8218 if invalidParams.Len() > 0 { 9011 if invalidParams.Len() > 0 {
8219 return invalidParams 9012 return invalidParams
@@ -8276,6 +9069,12 @@ func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput {
8276 return s 9069 return s
8277} 9070}
8278 9071
9072// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value.
9073func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput {
9074 s.ObjectLockEnabledForBucket = &v
9075 return s
9076}
9077
8279type CreateBucketOutput struct { 9078type CreateBucketOutput struct {
8280 _ struct{} `type:"structure"` 9079 _ struct{} `type:"structure"`
8281 9080
@@ -8345,6 +9144,15 @@ type CreateMultipartUploadInput struct {
8345 // A map of metadata to store with the object in S3. 9144 // A map of metadata to store with the object in S3.
8346 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 9145 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"`
8347 9146
9147 // Specifies whether you want to apply a Legal Hold to the uploaded object.
9148 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
9149
9150 // Specifies the Object Lock mode that you want to apply to the uploaded object.
9151 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
9152
9153 // Specifies the date and time when you want the Object Lock to expire.
9154 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
9155
8348 // Confirms that the requester knows that she or he will be charged for the 9156 // Confirms that the requester knows that she or he will be charged for the
8349 // request. Bucket owners need not specify this parameter in their requests. 9157 // request. Bucket owners need not specify this parameter in their requests.
8350 // Documentation on downloading objects from requester pays buckets can be found 9158 // Documentation on downloading objects from requester pays buckets can be found
@@ -8359,7 +9167,7 @@ type CreateMultipartUploadInput struct {
8359 // does not store the encryption key. The key must be appropriate for use with 9167 // does not store the encryption key. The key must be appropriate for use with
8360 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 9168 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
8361 // header. 9169 // header.
8362 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 9170 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
8363 9171
8364 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 9172 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
8365 // Amazon S3 uses this header for a message integrity check to ensure the encryption 9173 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -8370,7 +9178,7 @@ type CreateMultipartUploadInput struct {
8370 // requests for an object protected by AWS KMS will fail if not made via SSL 9178 // requests for an object protected by AWS KMS will fail if not made via SSL
8371 // or using SigV4. Documentation on configuring any of the officially supported 9179 // or using SigV4. Documentation on configuring any of the officially supported
8372 // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version 9180 // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
8373 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 9181 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
8374 9182
8375 // The Server-side encryption algorithm used when storing this object in S3 9183 // The Server-side encryption algorithm used when storing this object in S3
8376 // (e.g., AES256, aws:kms). 9184 // (e.g., AES256, aws:kms).
@@ -8404,6 +9212,9 @@ func (s *CreateMultipartUploadInput) Validate() error {
8404 if s.Bucket == nil { 9212 if s.Bucket == nil {
8405 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9213 invalidParams.Add(request.NewErrParamRequired("Bucket"))
8406 } 9214 }
9215 if s.Bucket != nil && len(*s.Bucket) < 1 {
9216 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9217 }
8407 if s.Key == nil { 9218 if s.Key == nil {
8408 invalidParams.Add(request.NewErrParamRequired("Key")) 9219 invalidParams.Add(request.NewErrParamRequired("Key"))
8409 } 9220 }
@@ -8508,6 +9319,24 @@ func (s *CreateMultipartUploadInput) SetMetadata(v map[string]*string) *CreateMu
8508 return s 9319 return s
8509} 9320}
8510 9321
9322// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
9323func (s *CreateMultipartUploadInput) SetObjectLockLegalHoldStatus(v string) *CreateMultipartUploadInput {
9324 s.ObjectLockLegalHoldStatus = &v
9325 return s
9326}
9327
9328// SetObjectLockMode sets the ObjectLockMode field's value.
9329func (s *CreateMultipartUploadInput) SetObjectLockMode(v string) *CreateMultipartUploadInput {
9330 s.ObjectLockMode = &v
9331 return s
9332}
9333
9334// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
9335func (s *CreateMultipartUploadInput) SetObjectLockRetainUntilDate(v time.Time) *CreateMultipartUploadInput {
9336 s.ObjectLockRetainUntilDate = &v
9337 return s
9338}
9339
8511// SetRequestPayer sets the RequestPayer field's value. 9340// SetRequestPayer sets the RequestPayer field's value.
8512func (s *CreateMultipartUploadInput) SetRequestPayer(v string) *CreateMultipartUploadInput { 9341func (s *CreateMultipartUploadInput) SetRequestPayer(v string) *CreateMultipartUploadInput {
8513 s.RequestPayer = &v 9342 s.RequestPayer = &v
@@ -8601,7 +9430,7 @@ type CreateMultipartUploadOutput struct {
8601 9430
8602 // If present, specifies the ID of the AWS Key Management Service (KMS) master 9431 // If present, specifies the ID of the AWS Key Management Service (KMS) master
8603 // encryption key that was used for the object. 9432 // encryption key that was used for the object.
8604 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 9433 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
8605 9434
8606 // The Server-side encryption algorithm used when storing this object in S3 9435 // The Server-side encryption algorithm used when storing this object in S3
8607 // (e.g., AES256, aws:kms). 9436 // (e.g., AES256, aws:kms).
@@ -8688,6 +9517,50 @@ func (s *CreateMultipartUploadOutput) SetUploadId(v string) *CreateMultipartUplo
8688 return s 9517 return s
8689} 9518}
8690 9519
9520// The container element for specifying the default Object Lock retention settings
9521// for new objects placed in the specified bucket.
9522type DefaultRetention struct {
9523 _ struct{} `type:"structure"`
9524
9525 // The number of days that you want to specify for the default retention period.
9526 Days *int64 `type:"integer"`
9527
9528 // The default Object Lock retention mode you want to apply to new objects placed
9529 // in the specified bucket.
9530 Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
9531
9532 // The number of years that you want to specify for the default retention period.
9533 Years *int64 `type:"integer"`
9534}
9535
9536// String returns the string representation
9537func (s DefaultRetention) String() string {
9538 return awsutil.Prettify(s)
9539}
9540
9541// GoString returns the string representation
9542func (s DefaultRetention) GoString() string {
9543 return s.String()
9544}
9545
9546// SetDays sets the Days field's value.
9547func (s *DefaultRetention) SetDays(v int64) *DefaultRetention {
9548 s.Days = &v
9549 return s
9550}
9551
9552// SetMode sets the Mode field's value.
9553func (s *DefaultRetention) SetMode(v string) *DefaultRetention {
9554 s.Mode = &v
9555 return s
9556}
9557
9558// SetYears sets the Years field's value.
9559func (s *DefaultRetention) SetYears(v int64) *DefaultRetention {
9560 s.Years = &v
9561 return s
9562}
9563
8691type Delete struct { 9564type Delete struct {
8692 _ struct{} `type:"structure"` 9565 _ struct{} `type:"structure"`
8693 9566
@@ -8774,6 +9647,9 @@ func (s *DeleteBucketAnalyticsConfigurationInput) Validate() error {
8774 if s.Bucket == nil { 9647 if s.Bucket == nil {
8775 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9648 invalidParams.Add(request.NewErrParamRequired("Bucket"))
8776 } 9649 }
9650 if s.Bucket != nil && len(*s.Bucket) < 1 {
9651 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9652 }
8777 if s.Id == nil { 9653 if s.Id == nil {
8778 invalidParams.Add(request.NewErrParamRequired("Id")) 9654 invalidParams.Add(request.NewErrParamRequired("Id"))
8779 } 9655 }
@@ -8840,6 +9716,9 @@ func (s *DeleteBucketCorsInput) Validate() error {
8840 if s.Bucket == nil { 9716 if s.Bucket == nil {
8841 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9717 invalidParams.Add(request.NewErrParamRequired("Bucket"))
8842 } 9718 }
9719 if s.Bucket != nil && len(*s.Bucket) < 1 {
9720 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9721 }
8843 9722
8844 if invalidParams.Len() > 0 { 9723 if invalidParams.Len() > 0 {
8845 return invalidParams 9724 return invalidParams
@@ -8900,6 +9779,9 @@ func (s *DeleteBucketEncryptionInput) Validate() error {
8900 if s.Bucket == nil { 9779 if s.Bucket == nil {
8901 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9780 invalidParams.Add(request.NewErrParamRequired("Bucket"))
8902 } 9781 }
9782 if s.Bucket != nil && len(*s.Bucket) < 1 {
9783 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9784 }
8903 9785
8904 if invalidParams.Len() > 0 { 9786 if invalidParams.Len() > 0 {
8905 return invalidParams 9787 return invalidParams
@@ -8957,6 +9839,9 @@ func (s *DeleteBucketInput) Validate() error {
8957 if s.Bucket == nil { 9839 if s.Bucket == nil {
8958 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9840 invalidParams.Add(request.NewErrParamRequired("Bucket"))
8959 } 9841 }
9842 if s.Bucket != nil && len(*s.Bucket) < 1 {
9843 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9844 }
8960 9845
8961 if invalidParams.Len() > 0 { 9846 if invalidParams.Len() > 0 {
8962 return invalidParams 9847 return invalidParams
@@ -9007,6 +9892,9 @@ func (s *DeleteBucketInventoryConfigurationInput) Validate() error {
9007 if s.Bucket == nil { 9892 if s.Bucket == nil {
9008 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9893 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9009 } 9894 }
9895 if s.Bucket != nil && len(*s.Bucket) < 1 {
9896 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9897 }
9010 if s.Id == nil { 9898 if s.Id == nil {
9011 invalidParams.Add(request.NewErrParamRequired("Id")) 9899 invalidParams.Add(request.NewErrParamRequired("Id"))
9012 } 9900 }
@@ -9073,6 +9961,9 @@ func (s *DeleteBucketLifecycleInput) Validate() error {
9073 if s.Bucket == nil { 9961 if s.Bucket == nil {
9074 invalidParams.Add(request.NewErrParamRequired("Bucket")) 9962 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9075 } 9963 }
9964 if s.Bucket != nil && len(*s.Bucket) < 1 {
9965 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9966 }
9076 9967
9077 if invalidParams.Len() > 0 { 9968 if invalidParams.Len() > 0 {
9078 return invalidParams 9969 return invalidParams
@@ -9137,6 +10028,9 @@ func (s *DeleteBucketMetricsConfigurationInput) Validate() error {
9137 if s.Bucket == nil { 10028 if s.Bucket == nil {
9138 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10029 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9139 } 10030 }
10031 if s.Bucket != nil && len(*s.Bucket) < 1 {
10032 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10033 }
9140 if s.Id == nil { 10034 if s.Id == nil {
9141 invalidParams.Add(request.NewErrParamRequired("Id")) 10035 invalidParams.Add(request.NewErrParamRequired("Id"))
9142 } 10036 }
@@ -9217,6 +10111,9 @@ func (s *DeleteBucketPolicyInput) Validate() error {
9217 if s.Bucket == nil { 10111 if s.Bucket == nil {
9218 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10112 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9219 } 10113 }
10114 if s.Bucket != nil && len(*s.Bucket) < 1 {
10115 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10116 }
9220 10117
9221 if invalidParams.Len() > 0 { 10118 if invalidParams.Len() > 0 {
9222 return invalidParams 10119 return invalidParams
@@ -9254,6 +10151,11 @@ func (s DeleteBucketPolicyOutput) GoString() string {
9254type DeleteBucketReplicationInput struct { 10151type DeleteBucketReplicationInput struct {
9255 _ struct{} `type:"structure"` 10152 _ struct{} `type:"structure"`
9256 10153
10154 // The bucket name.
10155 //
10156 // It can take a while to propagate the deletion of a replication configuration
10157 // to all Amazon S3 systems.
10158 //
9257 // Bucket is a required field 10159 // Bucket is a required field
9258 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 10160 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
9259} 10161}
@@ -9274,6 +10176,9 @@ func (s *DeleteBucketReplicationInput) Validate() error {
9274 if s.Bucket == nil { 10176 if s.Bucket == nil {
9275 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10177 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9276 } 10178 }
10179 if s.Bucket != nil && len(*s.Bucket) < 1 {
10180 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10181 }
9277 10182
9278 if invalidParams.Len() > 0 { 10183 if invalidParams.Len() > 0 {
9279 return invalidParams 10184 return invalidParams
@@ -9331,6 +10236,9 @@ func (s *DeleteBucketTaggingInput) Validate() error {
9331 if s.Bucket == nil { 10236 if s.Bucket == nil {
9332 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10237 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9333 } 10238 }
10239 if s.Bucket != nil && len(*s.Bucket) < 1 {
10240 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10241 }
9334 10242
9335 if invalidParams.Len() > 0 { 10243 if invalidParams.Len() > 0 {
9336 return invalidParams 10244 return invalidParams
@@ -9388,6 +10296,9 @@ func (s *DeleteBucketWebsiteInput) Validate() error {
9388 if s.Bucket == nil { 10296 if s.Bucket == nil {
9389 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10297 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9390 } 10298 }
10299 if s.Bucket != nil && len(*s.Bucket) < 1 {
10300 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10301 }
9391 10302
9392 if invalidParams.Len() > 0 { 10303 if invalidParams.Len() > 0 {
9393 return invalidParams 10304 return invalidParams
@@ -9481,12 +10392,43 @@ func (s *DeleteMarkerEntry) SetVersionId(v string) *DeleteMarkerEntry {
9481 return s 10392 return s
9482} 10393}
9483 10394
10395// Specifies whether Amazon S3 should replicate delete makers.
10396type DeleteMarkerReplication struct {
10397 _ struct{} `type:"structure"`
10398
10399 // The status of the delete marker replication.
10400 //
10401 // In the current implementation, Amazon S3 doesn't replicate the delete markers.
10402 // The status must be Disabled.
10403 Status *string `type:"string" enum:"DeleteMarkerReplicationStatus"`
10404}
10405
10406// String returns the string representation
10407func (s DeleteMarkerReplication) String() string {
10408 return awsutil.Prettify(s)
10409}
10410
10411// GoString returns the string representation
10412func (s DeleteMarkerReplication) GoString() string {
10413 return s.String()
10414}
10415
10416// SetStatus sets the Status field's value.
10417func (s *DeleteMarkerReplication) SetStatus(v string) *DeleteMarkerReplication {
10418 s.Status = &v
10419 return s
10420}
10421
9484type DeleteObjectInput struct { 10422type DeleteObjectInput struct {
9485 _ struct{} `type:"structure"` 10423 _ struct{} `type:"structure"`
9486 10424
9487 // Bucket is a required field 10425 // Bucket is a required field
9488 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 10426 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
9489 10427
10428 // Indicates whether S3 Object Lock should bypass Governance-mode restrictions
10429 // to process this operation.
10430 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
10431
9490 // Key is a required field 10432 // Key is a required field
9491 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 10433 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
9492 10434
@@ -9520,6 +10462,9 @@ func (s *DeleteObjectInput) Validate() error {
9520 if s.Bucket == nil { 10462 if s.Bucket == nil {
9521 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10463 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9522 } 10464 }
10465 if s.Bucket != nil && len(*s.Bucket) < 1 {
10466 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10467 }
9523 if s.Key == nil { 10468 if s.Key == nil {
9524 invalidParams.Add(request.NewErrParamRequired("Key")) 10469 invalidParams.Add(request.NewErrParamRequired("Key"))
9525 } 10470 }
@@ -9546,6 +10491,12 @@ func (s *DeleteObjectInput) getBucket() (v string) {
9546 return *s.Bucket 10491 return *s.Bucket
9547} 10492}
9548 10493
10494// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
10495func (s *DeleteObjectInput) SetBypassGovernanceRetention(v bool) *DeleteObjectInput {
10496 s.BypassGovernanceRetention = &v
10497 return s
10498}
10499
9549// SetKey sets the Key field's value. 10500// SetKey sets the Key field's value.
9550func (s *DeleteObjectInput) SetKey(v string) *DeleteObjectInput { 10501func (s *DeleteObjectInput) SetKey(v string) *DeleteObjectInput {
9551 s.Key = &v 10502 s.Key = &v
@@ -9643,6 +10594,9 @@ func (s *DeleteObjectTaggingInput) Validate() error {
9643 if s.Bucket == nil { 10594 if s.Bucket == nil {
9644 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10595 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9645 } 10596 }
10597 if s.Bucket != nil && len(*s.Bucket) < 1 {
10598 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10599 }
9646 if s.Key == nil { 10600 if s.Key == nil {
9647 invalidParams.Add(request.NewErrParamRequired("Key")) 10601 invalidParams.Add(request.NewErrParamRequired("Key"))
9648 } 10602 }
@@ -9710,6 +10664,11 @@ type DeleteObjectsInput struct {
9710 // Bucket is a required field 10664 // Bucket is a required field
9711 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 10665 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
9712 10666
10667 // Specifies whether you want to delete this object even if it has a Governance-type
10668 // Object Lock in place. You must have sufficient permissions to perform this
10669 // operation.
10670 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
10671
9713 // Delete is a required field 10672 // Delete is a required field
9714 Delete *Delete `locationName:"Delete" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 10673 Delete *Delete `locationName:"Delete" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
9715 10674
@@ -9740,6 +10699,9 @@ func (s *DeleteObjectsInput) Validate() error {
9740 if s.Bucket == nil { 10699 if s.Bucket == nil {
9741 invalidParams.Add(request.NewErrParamRequired("Bucket")) 10700 invalidParams.Add(request.NewErrParamRequired("Bucket"))
9742 } 10701 }
10702 if s.Bucket != nil && len(*s.Bucket) < 1 {
10703 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10704 }
9743 if s.Delete == nil { 10705 if s.Delete == nil {
9744 invalidParams.Add(request.NewErrParamRequired("Delete")) 10706 invalidParams.Add(request.NewErrParamRequired("Delete"))
9745 } 10707 }
@@ -9768,6 +10730,12 @@ func (s *DeleteObjectsInput) getBucket() (v string) {
9768 return *s.Bucket 10730 return *s.Bucket
9769} 10731}
9770 10732
10733// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
10734func (s *DeleteObjectsInput) SetBypassGovernanceRetention(v bool) *DeleteObjectsInput {
10735 s.BypassGovernanceRetention = &v
10736 return s
10737}
10738
9771// SetDelete sets the Delete field's value. 10739// SetDelete sets the Delete field's value.
9772func (s *DeleteObjectsInput) SetDelete(v *Delete) *DeleteObjectsInput { 10740func (s *DeleteObjectsInput) SetDelete(v *Delete) *DeleteObjectsInput {
9773 s.Delete = v 10741 s.Delete = v
@@ -9826,6 +10794,68 @@ func (s *DeleteObjectsOutput) SetRequestCharged(v string) *DeleteObjectsOutput {
9826 return s 10794 return s
9827} 10795}
9828 10796
10797type DeletePublicAccessBlockInput struct {
10798 _ struct{} `type:"structure"`
10799
10800 // The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.
10801 //
10802 // Bucket is a required field
10803 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
10804}
10805
10806// String returns the string representation
10807func (s DeletePublicAccessBlockInput) String() string {
10808 return awsutil.Prettify(s)
10809}
10810
10811// GoString returns the string representation
10812func (s DeletePublicAccessBlockInput) GoString() string {
10813 return s.String()
10814}
10815
10816// Validate inspects the fields of the type to determine if they are valid.
10817func (s *DeletePublicAccessBlockInput) Validate() error {
10818 invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"}
10819 if s.Bucket == nil {
10820 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10821 }
10822 if s.Bucket != nil && len(*s.Bucket) < 1 {
10823 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
10824 }
10825
10826 if invalidParams.Len() > 0 {
10827 return invalidParams
10828 }
10829 return nil
10830}
10831
10832// SetBucket sets the Bucket field's value.
10833func (s *DeletePublicAccessBlockInput) SetBucket(v string) *DeletePublicAccessBlockInput {
10834 s.Bucket = &v
10835 return s
10836}
10837
10838func (s *DeletePublicAccessBlockInput) getBucket() (v string) {
10839 if s.Bucket == nil {
10840 return v
10841 }
10842 return *s.Bucket
10843}
10844
10845type DeletePublicAccessBlockOutput struct {
10846 _ struct{} `type:"structure"`
10847}
10848
10849// String returns the string representation
10850func (s DeletePublicAccessBlockOutput) String() string {
10851 return awsutil.Prettify(s)
10852}
10853
10854// GoString returns the string representation
10855func (s DeletePublicAccessBlockOutput) GoString() string {
10856 return s.String()
10857}
10858
9829type DeletedObject struct { 10859type DeletedObject struct {
9830 _ struct{} `type:"structure"` 10860 _ struct{} `type:"structure"`
9831 10861
@@ -9872,27 +10902,43 @@ func (s *DeletedObject) SetVersionId(v string) *DeletedObject {
9872 return s 10902 return s
9873} 10903}
9874 10904
9875// Container for replication destination information. 10905// A container for information about the replication destination.
9876type Destination struct { 10906type Destination struct {
9877 _ struct{} `type:"structure"` 10907 _ struct{} `type:"structure"`
9878 10908
9879 // Container for information regarding the access control for replicas. 10909 // A container for information about access control for replicas.
10910 //
10911 // Use this element only in a cross-account scenario where source and destination
10912 // bucket owners are not the same to change replica ownership to the AWS account
10913 // that owns the destination bucket. If you don't add this element to the replication
10914 // configuration, the replicas are owned by same AWS account that owns the source
10915 // object.
9880 AccessControlTranslation *AccessControlTranslation `type:"structure"` 10916 AccessControlTranslation *AccessControlTranslation `type:"structure"`
9881 10917
9882 // Account ID of the destination bucket. Currently this is only being verified 10918 // The account ID of the destination bucket. Currently, Amazon S3 verifies this
9883 // if Access Control Translation is enabled 10919 // value only if Access Control Translation is enabled.
10920 //
10921 // In a cross-account scenario, if you change replica ownership to the AWS account
10922 // that owns the destination bucket by adding the AccessControlTranslation element,
10923 // this is the account ID of the owner of the destination bucket.
9884 Account *string `type:"string"` 10924 Account *string `type:"string"`
9885 10925
9886 // Amazon resource name (ARN) of the bucket where you want Amazon S3 to store 10926 // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to
9887 // replicas of the object identified by the rule. 10927 // store replicas of the object identified by the rule.
10928 //
10929 // If there are multiple rules in your replication configuration, all rules
10930 // must specify the same bucket as the destination. A replication configuration
10931 // can replicate objects to only one destination bucket.
9888 // 10932 //
9889 // Bucket is a required field 10933 // Bucket is a required field
9890 Bucket *string `type:"string" required:"true"` 10934 Bucket *string `type:"string" required:"true"`
9891 10935
9892 // Container for information regarding encryption based configuration for replicas. 10936 // A container that provides information about encryption. If SourceSelectionCriteria
10937 // is specified, you must specify this element.
9893 EncryptionConfiguration *EncryptionConfiguration `type:"structure"` 10938 EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
9894 10939
9895 // The class of storage used to store the object. 10940 // The class of storage used to store the object. By default Amazon S3 uses
10941 // storage class of the source object when creating a replica.
9896 StorageClass *string `type:"string" enum:"StorageClass"` 10942 StorageClass *string `type:"string" enum:"StorageClass"`
9897} 10943}
9898 10944
@@ -9978,7 +11024,7 @@ type Encryption struct {
9978 11024
9979 // If the encryption type is aws:kms, this optional value specifies the AWS 11025 // If the encryption type is aws:kms, this optional value specifies the AWS
9980 // KMS key ID to use for encryption of job results. 11026 // KMS key ID to use for encryption of job results.
9981 KMSKeyId *string `type:"string"` 11027 KMSKeyId *string `type:"string" sensitive:"true"`
9982} 11028}
9983 11029
9984// String returns the string representation 11030// String returns the string representation
@@ -10022,11 +11068,13 @@ func (s *Encryption) SetKMSKeyId(v string) *Encryption {
10022 return s 11068 return s
10023} 11069}
10024 11070
10025// Container for information regarding encryption based configuration for replicas. 11071// A container for information about the encryption-based configuration for
11072// replicas.
10026type EncryptionConfiguration struct { 11073type EncryptionConfiguration struct {
10027 _ struct{} `type:"structure"` 11074 _ struct{} `type:"structure"`
10028 11075
10029 // The id of the KMS key used to encrypt the replica object. 11076 // The ID of the AWS KMS key for the AWS Region where the destination bucket
11077 // resides. Amazon S3 uses this key to encrypt the replica object.
10030 ReplicaKmsKeyID *string `type:"string"` 11078 ReplicaKmsKeyID *string `type:"string"`
10031} 11079}
10032 11080
@@ -10159,14 +11207,15 @@ func (s *ErrorDocument) SetKey(v string) *ErrorDocument {
10159 return s 11207 return s
10160} 11208}
10161 11209
10162// Container for key value pair that defines the criteria for the filter rule. 11210// A container for a key value pair that defines the criteria for the filter
11211// rule.
10163type FilterRule struct { 11212type FilterRule struct {
10164 _ struct{} `type:"structure"` 11213 _ struct{} `type:"structure"`
10165 11214
10166 // Object key name prefix or suffix identifying one or more objects to which 11215 // The object key name prefix or suffix identifying one or more objects to which
10167 // the filtering rule applies. Maximum prefix length can be up to 1,024 characters. 11216 // the filtering rule applies. The maximum prefix length is 1,024 characters.
10168 // Overlapping prefixes and suffixes are not supported. For more information, 11217 // Overlapping prefixes and suffixes are not supported. For more information,
10169 // go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 11218 // see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
10170 // in the Amazon Simple Storage Service Developer Guide. 11219 // in the Amazon Simple Storage Service Developer Guide.
10171 Name *string `type:"string" enum:"FilterRuleName"` 11220 Name *string `type:"string" enum:"FilterRuleName"`
10172 11221
@@ -10220,6 +11269,9 @@ func (s *GetBucketAccelerateConfigurationInput) Validate() error {
10220 if s.Bucket == nil { 11269 if s.Bucket == nil {
10221 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11270 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10222 } 11271 }
11272 if s.Bucket != nil && len(*s.Bucket) < 1 {
11273 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11274 }
10223 11275
10224 if invalidParams.Len() > 0 { 11276 if invalidParams.Len() > 0 {
10225 return invalidParams 11277 return invalidParams
@@ -10286,6 +11338,9 @@ func (s *GetBucketAclInput) Validate() error {
10286 if s.Bucket == nil { 11338 if s.Bucket == nil {
10287 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11339 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10288 } 11340 }
11341 if s.Bucket != nil && len(*s.Bucket) < 1 {
11342 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11343 }
10289 11344
10290 if invalidParams.Len() > 0 { 11345 if invalidParams.Len() > 0 {
10291 return invalidParams 11346 return invalidParams
@@ -10367,6 +11422,9 @@ func (s *GetBucketAnalyticsConfigurationInput) Validate() error {
10367 if s.Bucket == nil { 11422 if s.Bucket == nil {
10368 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11423 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10369 } 11424 }
11425 if s.Bucket != nil && len(*s.Bucket) < 1 {
11426 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11427 }
10370 if s.Id == nil { 11428 if s.Id == nil {
10371 invalidParams.Add(request.NewErrParamRequired("Id")) 11429 invalidParams.Add(request.NewErrParamRequired("Id"))
10372 } 11430 }
@@ -10442,6 +11500,9 @@ func (s *GetBucketCorsInput) Validate() error {
10442 if s.Bucket == nil { 11500 if s.Bucket == nil {
10443 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11501 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10444 } 11502 }
11503 if s.Bucket != nil && len(*s.Bucket) < 1 {
11504 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11505 }
10445 11506
10446 if invalidParams.Len() > 0 { 11507 if invalidParams.Len() > 0 {
10447 return invalidParams 11508 return invalidParams
@@ -10510,6 +11571,9 @@ func (s *GetBucketEncryptionInput) Validate() error {
10510 if s.Bucket == nil { 11571 if s.Bucket == nil {
10511 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11572 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10512 } 11573 }
11574 if s.Bucket != nil && len(*s.Bucket) < 1 {
11575 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11576 }
10513 11577
10514 if invalidParams.Len() > 0 { 11578 if invalidParams.Len() > 0 {
10515 return invalidParams 11579 return invalidParams
@@ -10584,6 +11648,9 @@ func (s *GetBucketInventoryConfigurationInput) Validate() error {
10584 if s.Bucket == nil { 11648 if s.Bucket == nil {
10585 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11649 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10586 } 11650 }
11651 if s.Bucket != nil && len(*s.Bucket) < 1 {
11652 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11653 }
10587 if s.Id == nil { 11654 if s.Id == nil {
10588 invalidParams.Add(request.NewErrParamRequired("Id")) 11655 invalidParams.Add(request.NewErrParamRequired("Id"))
10589 } 11656 }
@@ -10659,6 +11726,9 @@ func (s *GetBucketLifecycleConfigurationInput) Validate() error {
10659 if s.Bucket == nil { 11726 if s.Bucket == nil {
10660 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11727 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10661 } 11728 }
11729 if s.Bucket != nil && len(*s.Bucket) < 1 {
11730 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11731 }
10662 11732
10663 if invalidParams.Len() > 0 { 11733 if invalidParams.Len() > 0 {
10664 return invalidParams 11734 return invalidParams
@@ -10724,6 +11794,9 @@ func (s *GetBucketLifecycleInput) Validate() error {
10724 if s.Bucket == nil { 11794 if s.Bucket == nil {
10725 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11795 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10726 } 11796 }
11797 if s.Bucket != nil && len(*s.Bucket) < 1 {
11798 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11799 }
10727 11800
10728 if invalidParams.Len() > 0 { 11801 if invalidParams.Len() > 0 {
10729 return invalidParams 11802 return invalidParams
@@ -10789,6 +11862,9 @@ func (s *GetBucketLocationInput) Validate() error {
10789 if s.Bucket == nil { 11862 if s.Bucket == nil {
10790 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11863 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10791 } 11864 }
11865 if s.Bucket != nil && len(*s.Bucket) < 1 {
11866 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11867 }
10792 11868
10793 if invalidParams.Len() > 0 { 11869 if invalidParams.Len() > 0 {
10794 return invalidParams 11870 return invalidParams
@@ -10854,6 +11930,9 @@ func (s *GetBucketLoggingInput) Validate() error {
10854 if s.Bucket == nil { 11930 if s.Bucket == nil {
10855 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11931 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10856 } 11932 }
11933 if s.Bucket != nil && len(*s.Bucket) < 1 {
11934 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
11935 }
10857 11936
10858 if invalidParams.Len() > 0 { 11937 if invalidParams.Len() > 0 {
10859 return invalidParams 11938 return invalidParams
@@ -10929,6 +12008,9 @@ func (s *GetBucketMetricsConfigurationInput) Validate() error {
10929 if s.Bucket == nil { 12008 if s.Bucket == nil {
10930 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12009 invalidParams.Add(request.NewErrParamRequired("Bucket"))
10931 } 12010 }
12011 if s.Bucket != nil && len(*s.Bucket) < 1 {
12012 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12013 }
10932 if s.Id == nil { 12014 if s.Id == nil {
10933 invalidParams.Add(request.NewErrParamRequired("Id")) 12015 invalidParams.Add(request.NewErrParamRequired("Id"))
10934 } 12016 }
@@ -11006,6 +12088,9 @@ func (s *GetBucketNotificationConfigurationRequest) Validate() error {
11006 if s.Bucket == nil { 12088 if s.Bucket == nil {
11007 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12089 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11008 } 12090 }
12091 if s.Bucket != nil && len(*s.Bucket) < 1 {
12092 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12093 }
11009 12094
11010 if invalidParams.Len() > 0 { 12095 if invalidParams.Len() > 0 {
11011 return invalidParams 12096 return invalidParams
@@ -11049,6 +12134,9 @@ func (s *GetBucketPolicyInput) Validate() error {
11049 if s.Bucket == nil { 12134 if s.Bucket == nil {
11050 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12135 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11051 } 12136 }
12137 if s.Bucket != nil && len(*s.Bucket) < 1 {
12138 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12139 }
11052 12140
11053 if invalidParams.Len() > 0 { 12141 if invalidParams.Len() > 0 {
11054 return invalidParams 12142 return invalidParams
@@ -11092,6 +12180,77 @@ func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput {
11092 return s 12180 return s
11093} 12181}
11094 12182
12183type GetBucketPolicyStatusInput struct {
12184 _ struct{} `type:"structure"`
12185
12186 // The name of the Amazon S3 bucket whose policy status you want to retrieve.
12187 //
12188 // Bucket is a required field
12189 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
12190}
12191
12192// String returns the string representation
12193func (s GetBucketPolicyStatusInput) String() string {
12194 return awsutil.Prettify(s)
12195}
12196
12197// GoString returns the string representation
12198func (s GetBucketPolicyStatusInput) GoString() string {
12199 return s.String()
12200}
12201
12202// Validate inspects the fields of the type to determine if they are valid.
12203func (s *GetBucketPolicyStatusInput) Validate() error {
12204 invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyStatusInput"}
12205 if s.Bucket == nil {
12206 invalidParams.Add(request.NewErrParamRequired("Bucket"))
12207 }
12208 if s.Bucket != nil && len(*s.Bucket) < 1 {
12209 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12210 }
12211
12212 if invalidParams.Len() > 0 {
12213 return invalidParams
12214 }
12215 return nil
12216}
12217
12218// SetBucket sets the Bucket field's value.
12219func (s *GetBucketPolicyStatusInput) SetBucket(v string) *GetBucketPolicyStatusInput {
12220 s.Bucket = &v
12221 return s
12222}
12223
12224func (s *GetBucketPolicyStatusInput) getBucket() (v string) {
12225 if s.Bucket == nil {
12226 return v
12227 }
12228 return *s.Bucket
12229}
12230
12231type GetBucketPolicyStatusOutput struct {
12232 _ struct{} `type:"structure" payload:"PolicyStatus"`
12233
12234 // The policy status for the specified bucket.
12235 PolicyStatus *PolicyStatus `type:"structure"`
12236}
12237
12238// String returns the string representation
12239func (s GetBucketPolicyStatusOutput) String() string {
12240 return awsutil.Prettify(s)
12241}
12242
12243// GoString returns the string representation
12244func (s GetBucketPolicyStatusOutput) GoString() string {
12245 return s.String()
12246}
12247
12248// SetPolicyStatus sets the PolicyStatus field's value.
12249func (s *GetBucketPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetBucketPolicyStatusOutput {
12250 s.PolicyStatus = v
12251 return s
12252}
12253
11095type GetBucketReplicationInput struct { 12254type GetBucketReplicationInput struct {
11096 _ struct{} `type:"structure"` 12255 _ struct{} `type:"structure"`
11097 12256
@@ -11115,6 +12274,9 @@ func (s *GetBucketReplicationInput) Validate() error {
11115 if s.Bucket == nil { 12274 if s.Bucket == nil {
11116 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12275 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11117 } 12276 }
12277 if s.Bucket != nil && len(*s.Bucket) < 1 {
12278 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12279 }
11118 12280
11119 if invalidParams.Len() > 0 { 12281 if invalidParams.Len() > 0 {
11120 return invalidParams 12282 return invalidParams
@@ -11138,8 +12300,8 @@ func (s *GetBucketReplicationInput) getBucket() (v string) {
11138type GetBucketReplicationOutput struct { 12300type GetBucketReplicationOutput struct {
11139 _ struct{} `type:"structure" payload:"ReplicationConfiguration"` 12301 _ struct{} `type:"structure" payload:"ReplicationConfiguration"`
11140 12302
11141 // Container for replication rules. You can add as many as 1,000 rules. Total 12303 // A container for replication rules. You can add up to 1,000 rules. The maximum
11142 // replication configuration size can be up to 2 MB. 12304 // size of a replication configuration is 2 MB.
11143 ReplicationConfiguration *ReplicationConfiguration `type:"structure"` 12305 ReplicationConfiguration *ReplicationConfiguration `type:"structure"`
11144} 12306}
11145 12307
@@ -11182,6 +12344,9 @@ func (s *GetBucketRequestPaymentInput) Validate() error {
11182 if s.Bucket == nil { 12344 if s.Bucket == nil {
11183 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12345 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11184 } 12346 }
12347 if s.Bucket != nil && len(*s.Bucket) < 1 {
12348 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12349 }
11185 12350
11186 if invalidParams.Len() > 0 { 12351 if invalidParams.Len() > 0 {
11187 return invalidParams 12352 return invalidParams
@@ -11248,6 +12413,9 @@ func (s *GetBucketTaggingInput) Validate() error {
11248 if s.Bucket == nil { 12413 if s.Bucket == nil {
11249 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12414 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11250 } 12415 }
12416 if s.Bucket != nil && len(*s.Bucket) < 1 {
12417 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12418 }
11251 12419
11252 if invalidParams.Len() > 0 { 12420 if invalidParams.Len() > 0 {
11253 return invalidParams 12421 return invalidParams
@@ -11314,6 +12482,9 @@ func (s *GetBucketVersioningInput) Validate() error {
11314 if s.Bucket == nil { 12482 if s.Bucket == nil {
11315 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12483 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11316 } 12484 }
12485 if s.Bucket != nil && len(*s.Bucket) < 1 {
12486 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12487 }
11317 12488
11318 if invalidParams.Len() > 0 { 12489 if invalidParams.Len() > 0 {
11319 return invalidParams 12490 return invalidParams
@@ -11391,6 +12562,9 @@ func (s *GetBucketWebsiteInput) Validate() error {
11391 if s.Bucket == nil { 12562 if s.Bucket == nil {
11392 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12563 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11393 } 12564 }
12565 if s.Bucket != nil && len(*s.Bucket) < 1 {
12566 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12567 }
11394 12568
11395 if invalidParams.Len() > 0 { 12569 if invalidParams.Len() > 0 {
11396 return invalidParams 12570 return invalidParams
@@ -11492,6 +12666,9 @@ func (s *GetObjectAclInput) Validate() error {
11492 if s.Bucket == nil { 12666 if s.Bucket == nil {
11493 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12667 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11494 } 12668 }
12669 if s.Bucket != nil && len(*s.Bucket) < 1 {
12670 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12671 }
11495 if s.Key == nil { 12672 if s.Key == nil {
11496 invalidParams.Add(request.NewErrParamRequired("Key")) 12673 invalidParams.Add(request.NewErrParamRequired("Key"))
11497 } 12674 }
@@ -11643,7 +12820,7 @@ type GetObjectInput struct {
11643 // does not store the encryption key. The key must be appropriate for use with 12820 // does not store the encryption key. The key must be appropriate for use with
11644 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 12821 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
11645 // header. 12822 // header.
11646 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 12823 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
11647 12824
11648 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 12825 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
11649 // Amazon S3 uses this header for a message integrity check to ensure the encryption 12826 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -11670,6 +12847,9 @@ func (s *GetObjectInput) Validate() error {
11670 if s.Bucket == nil { 12847 if s.Bucket == nil {
11671 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12848 invalidParams.Add(request.NewErrParamRequired("Bucket"))
11672 } 12849 }
12850 if s.Bucket != nil && len(*s.Bucket) < 1 {
12851 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12852 }
11673 if s.Key == nil { 12853 if s.Key == nil {
11674 invalidParams.Add(request.NewErrParamRequired("Key")) 12854 invalidParams.Add(request.NewErrParamRequired("Key"))
11675 } 12855 }
@@ -11811,6 +12991,186 @@ func (s *GetObjectInput) SetVersionId(v string) *GetObjectInput {
11811 return s 12991 return s
11812} 12992}
11813 12993
12994type GetObjectLegalHoldInput struct {
12995 _ struct{} `type:"structure"`
12996
12997 // The bucket containing the object whose Legal Hold status you want to retrieve.
12998 //
12999 // Bucket is a required field
13000 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
13001
13002 // The key name for the object whose Legal Hold status you want to retrieve.
13003 //
13004 // Key is a required field
13005 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
13006
13007 // Confirms that the requester knows that she or he will be charged for the
13008 // request. Bucket owners need not specify this parameter in their requests.
13009 // Documentation on downloading objects from requester pays buckets can be found
13010 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
13011 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
13012
13013 // The version ID of the object whose Legal Hold status you want to retrieve.
13014 VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
13015}
13016
13017// String returns the string representation
13018func (s GetObjectLegalHoldInput) String() string {
13019 return awsutil.Prettify(s)
13020}
13021
13022// GoString returns the string representation
13023func (s GetObjectLegalHoldInput) GoString() string {
13024 return s.String()
13025}
13026
13027// Validate inspects the fields of the type to determine if they are valid.
13028func (s *GetObjectLegalHoldInput) Validate() error {
13029 invalidParams := request.ErrInvalidParams{Context: "GetObjectLegalHoldInput"}
13030 if s.Bucket == nil {
13031 invalidParams.Add(request.NewErrParamRequired("Bucket"))
13032 }
13033 if s.Bucket != nil && len(*s.Bucket) < 1 {
13034 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
13035 }
13036 if s.Key == nil {
13037 invalidParams.Add(request.NewErrParamRequired("Key"))
13038 }
13039 if s.Key != nil && len(*s.Key) < 1 {
13040 invalidParams.Add(request.NewErrParamMinLen("Key", 1))
13041 }
13042
13043 if invalidParams.Len() > 0 {
13044 return invalidParams
13045 }
13046 return nil
13047}
13048
13049// SetBucket sets the Bucket field's value.
13050func (s *GetObjectLegalHoldInput) SetBucket(v string) *GetObjectLegalHoldInput {
13051 s.Bucket = &v
13052 return s
13053}
13054
13055func (s *GetObjectLegalHoldInput) getBucket() (v string) {
13056 if s.Bucket == nil {
13057 return v
13058 }
13059 return *s.Bucket
13060}
13061
13062// SetKey sets the Key field's value.
13063func (s *GetObjectLegalHoldInput) SetKey(v string) *GetObjectLegalHoldInput {
13064 s.Key = &v
13065 return s
13066}
13067
13068// SetRequestPayer sets the RequestPayer field's value.
13069func (s *GetObjectLegalHoldInput) SetRequestPayer(v string) *GetObjectLegalHoldInput {
13070 s.RequestPayer = &v
13071 return s
13072}
13073
13074// SetVersionId sets the VersionId field's value.
13075func (s *GetObjectLegalHoldInput) SetVersionId(v string) *GetObjectLegalHoldInput {
13076 s.VersionId = &v
13077 return s
13078}
13079
13080type GetObjectLegalHoldOutput struct {
13081 _ struct{} `type:"structure" payload:"LegalHold"`
13082
13083 // The current Legal Hold status for the specified object.
13084 LegalHold *ObjectLockLegalHold `type:"structure"`
13085}
13086
13087// String returns the string representation
13088func (s GetObjectLegalHoldOutput) String() string {
13089 return awsutil.Prettify(s)
13090}
13091
13092// GoString returns the string representation
13093func (s GetObjectLegalHoldOutput) GoString() string {
13094 return s.String()
13095}
13096
13097// SetLegalHold sets the LegalHold field's value.
13098func (s *GetObjectLegalHoldOutput) SetLegalHold(v *ObjectLockLegalHold) *GetObjectLegalHoldOutput {
13099 s.LegalHold = v
13100 return s
13101}
13102
13103type GetObjectLockConfigurationInput struct {
13104 _ struct{} `type:"structure"`
13105
13106 // The bucket whose Object Lock configuration you want to retrieve.
13107 //
13108 // Bucket is a required field
13109 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
13110}
13111
13112// String returns the string representation
13113func (s GetObjectLockConfigurationInput) String() string {
13114 return awsutil.Prettify(s)
13115}
13116
13117// GoString returns the string representation
13118func (s GetObjectLockConfigurationInput) GoString() string {
13119 return s.String()
13120}
13121
13122// Validate inspects the fields of the type to determine if they are valid.
13123func (s *GetObjectLockConfigurationInput) Validate() error {
13124 invalidParams := request.ErrInvalidParams{Context: "GetObjectLockConfigurationInput"}
13125 if s.Bucket == nil {
13126 invalidParams.Add(request.NewErrParamRequired("Bucket"))
13127 }
13128 if s.Bucket != nil && len(*s.Bucket) < 1 {
13129 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
13130 }
13131
13132 if invalidParams.Len() > 0 {
13133 return invalidParams
13134 }
13135 return nil
13136}
13137
13138// SetBucket sets the Bucket field's value.
13139func (s *GetObjectLockConfigurationInput) SetBucket(v string) *GetObjectLockConfigurationInput {
13140 s.Bucket = &v
13141 return s
13142}
13143
13144func (s *GetObjectLockConfigurationInput) getBucket() (v string) {
13145 if s.Bucket == nil {
13146 return v
13147 }
13148 return *s.Bucket
13149}
13150
13151type GetObjectLockConfigurationOutput struct {
13152 _ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
13153
13154 // The specified bucket's Object Lock configuration.
13155 ObjectLockConfiguration *ObjectLockConfiguration `type:"structure"`
13156}
13157
13158// String returns the string representation
13159func (s GetObjectLockConfigurationOutput) String() string {
13160 return awsutil.Prettify(s)
13161}
13162
13163// GoString returns the string representation
13164func (s GetObjectLockConfigurationOutput) GoString() string {
13165 return s.String()
13166}
13167
13168// SetObjectLockConfiguration sets the ObjectLockConfiguration field's value.
13169func (s *GetObjectLockConfigurationOutput) SetObjectLockConfiguration(v *ObjectLockConfiguration) *GetObjectLockConfigurationOutput {
13170 s.ObjectLockConfiguration = v
13171 return s
13172}
13173
11814type GetObjectOutput struct { 13174type GetObjectOutput struct {
11815 _ struct{} `type:"structure" payload:"Body"` 13175 _ struct{} `type:"structure" payload:"Body"`
11816 13176
@@ -11871,6 +13231,16 @@ type GetObjectOutput struct {
11871 // you can create metadata whose values are not legal HTTP headers. 13231 // you can create metadata whose values are not legal HTTP headers.
11872 MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"` 13232 MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"`
11873 13233
13234 // Indicates whether this object has an active legal hold. This field is only
13235 // returned if you have permission to view an object's legal hold status.
13236 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
13237
13238 // The Object Lock mode currently in place for this object.
13239 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
13240
13241 // The date and time when this object's Object Lock will expire.
13242 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
13243
11874 // The count of parts this object has. 13244 // The count of parts this object has.
11875 PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"` 13245 PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"`
11876 13246
@@ -11896,7 +13266,7 @@ type GetObjectOutput struct {
11896 13266
11897 // If present, specifies the ID of the AWS Key Management Service (KMS) master 13267 // If present, specifies the ID of the AWS Key Management Service (KMS) master
11898 // encryption key that was used for the object. 13268 // encryption key that was used for the object.
11899 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 13269 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
11900 13270
11901 // The Server-side encryption algorithm used when storing this object in S3 13271 // The Server-side encryption algorithm used when storing this object in S3
11902 // (e.g., AES256, aws:kms). 13272 // (e.g., AES256, aws:kms).
@@ -12022,6 +13392,24 @@ func (s *GetObjectOutput) SetMissingMeta(v int64) *GetObjectOutput {
12022 return s 13392 return s
12023} 13393}
12024 13394
13395// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
13396func (s *GetObjectOutput) SetObjectLockLegalHoldStatus(v string) *GetObjectOutput {
13397 s.ObjectLockLegalHoldStatus = &v
13398 return s
13399}
13400
13401// SetObjectLockMode sets the ObjectLockMode field's value.
13402func (s *GetObjectOutput) SetObjectLockMode(v string) *GetObjectOutput {
13403 s.ObjectLockMode = &v
13404 return s
13405}
13406
13407// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
13408func (s *GetObjectOutput) SetObjectLockRetainUntilDate(v time.Time) *GetObjectOutput {
13409 s.ObjectLockRetainUntilDate = &v
13410 return s
13411}
13412
12025// SetPartsCount sets the PartsCount field's value. 13413// SetPartsCount sets the PartsCount field's value.
12026func (s *GetObjectOutput) SetPartsCount(v int64) *GetObjectOutput { 13414func (s *GetObjectOutput) SetPartsCount(v int64) *GetObjectOutput {
12027 s.PartsCount = &v 13415 s.PartsCount = &v
@@ -12094,6 +13482,115 @@ func (s *GetObjectOutput) SetWebsiteRedirectLocation(v string) *GetObjectOutput
12094 return s 13482 return s
12095} 13483}
12096 13484
13485type GetObjectRetentionInput struct {
13486 _ struct{} `type:"structure"`
13487
13488 // The bucket containing the object whose retention settings you want to retrieve.
13489 //
13490 // Bucket is a required field
13491 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
13492
13493 // The key name for the object whose retention settings you want to retrieve.
13494 //
13495 // Key is a required field
13496 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
13497
13498 // Confirms that the requester knows that she or he will be charged for the
13499 // request. Bucket owners need not specify this parameter in their requests.
13500 // Documentation on downloading objects from requester pays buckets can be found
13501 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
13502 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
13503
13504 // The version ID for the object whose retention settings you want to retrieve.
13505 VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
13506}
13507
13508// String returns the string representation
13509func (s GetObjectRetentionInput) String() string {
13510 return awsutil.Prettify(s)
13511}
13512
13513// GoString returns the string representation
13514func (s GetObjectRetentionInput) GoString() string {
13515 return s.String()
13516}
13517
13518// Validate inspects the fields of the type to determine if they are valid.
13519func (s *GetObjectRetentionInput) Validate() error {
13520 invalidParams := request.ErrInvalidParams{Context: "GetObjectRetentionInput"}
13521 if s.Bucket == nil {
13522 invalidParams.Add(request.NewErrParamRequired("Bucket"))
13523 }
13524 if s.Bucket != nil && len(*s.Bucket) < 1 {
13525 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
13526 }
13527 if s.Key == nil {
13528 invalidParams.Add(request.NewErrParamRequired("Key"))
13529 }
13530 if s.Key != nil && len(*s.Key) < 1 {
13531 invalidParams.Add(request.NewErrParamMinLen("Key", 1))
13532 }
13533
13534 if invalidParams.Len() > 0 {
13535 return invalidParams
13536 }
13537 return nil
13538}
13539
13540// SetBucket sets the Bucket field's value.
13541func (s *GetObjectRetentionInput) SetBucket(v string) *GetObjectRetentionInput {
13542 s.Bucket = &v
13543 return s
13544}
13545
13546func (s *GetObjectRetentionInput) getBucket() (v string) {
13547 if s.Bucket == nil {
13548 return v
13549 }
13550 return *s.Bucket
13551}
13552
13553// SetKey sets the Key field's value.
13554func (s *GetObjectRetentionInput) SetKey(v string) *GetObjectRetentionInput {
13555 s.Key = &v
13556 return s
13557}
13558
13559// SetRequestPayer sets the RequestPayer field's value.
13560func (s *GetObjectRetentionInput) SetRequestPayer(v string) *GetObjectRetentionInput {
13561 s.RequestPayer = &v
13562 return s
13563}
13564
13565// SetVersionId sets the VersionId field's value.
13566func (s *GetObjectRetentionInput) SetVersionId(v string) *GetObjectRetentionInput {
13567 s.VersionId = &v
13568 return s
13569}
13570
13571type GetObjectRetentionOutput struct {
13572 _ struct{} `type:"structure" payload:"Retention"`
13573
13574 // The container element for an object's retention settings.
13575 Retention *ObjectLockRetention `type:"structure"`
13576}
13577
13578// String returns the string representation
13579func (s GetObjectRetentionOutput) String() string {
13580 return awsutil.Prettify(s)
13581}
13582
13583// GoString returns the string representation
13584func (s GetObjectRetentionOutput) GoString() string {
13585 return s.String()
13586}
13587
13588// SetRetention sets the Retention field's value.
13589func (s *GetObjectRetentionOutput) SetRetention(v *ObjectLockRetention) *GetObjectRetentionOutput {
13590 s.Retention = v
13591 return s
13592}
13593
12097type GetObjectTaggingInput struct { 13594type GetObjectTaggingInput struct {
12098 _ struct{} `type:"structure"` 13595 _ struct{} `type:"structure"`
12099 13596
@@ -12122,6 +13619,9 @@ func (s *GetObjectTaggingInput) Validate() error {
12122 if s.Bucket == nil { 13619 if s.Bucket == nil {
12123 invalidParams.Add(request.NewErrParamRequired("Bucket")) 13620 invalidParams.Add(request.NewErrParamRequired("Bucket"))
12124 } 13621 }
13622 if s.Bucket != nil && len(*s.Bucket) < 1 {
13623 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
13624 }
12125 if s.Key == nil { 13625 if s.Key == nil {
12126 invalidParams.Add(request.NewErrParamRequired("Key")) 13626 invalidParams.Add(request.NewErrParamRequired("Key"))
12127 } 13627 }
@@ -12223,6 +13723,9 @@ func (s *GetObjectTorrentInput) Validate() error {
12223 if s.Bucket == nil { 13723 if s.Bucket == nil {
12224 invalidParams.Add(request.NewErrParamRequired("Bucket")) 13724 invalidParams.Add(request.NewErrParamRequired("Bucket"))
12225 } 13725 }
13726 if s.Bucket != nil && len(*s.Bucket) < 1 {
13727 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
13728 }
12226 if s.Key == nil { 13729 if s.Key == nil {
12227 invalidParams.Add(request.NewErrParamRequired("Key")) 13730 invalidParams.Add(request.NewErrParamRequired("Key"))
12228 } 13731 }
@@ -12293,6 +13796,79 @@ func (s *GetObjectTorrentOutput) SetRequestCharged(v string) *GetObjectTorrentOu
12293 return s 13796 return s
12294} 13797}
12295 13798
13799type GetPublicAccessBlockInput struct {
13800 _ struct{} `type:"structure"`
13801
13802 // The name of the Amazon S3 bucket whose PublicAccessBlock configuration you
13803 // want to retrieve.
13804 //
13805 // Bucket is a required field
13806 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
13807}
13808
13809// String returns the string representation
13810func (s GetPublicAccessBlockInput) String() string {
13811 return awsutil.Prettify(s)
13812}
13813
13814// GoString returns the string representation
13815func (s GetPublicAccessBlockInput) GoString() string {
13816 return s.String()
13817}
13818
13819// Validate inspects the fields of the type to determine if they are valid.
13820func (s *GetPublicAccessBlockInput) Validate() error {
13821 invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"}
13822 if s.Bucket == nil {
13823 invalidParams.Add(request.NewErrParamRequired("Bucket"))
13824 }
13825 if s.Bucket != nil && len(*s.Bucket) < 1 {
13826 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
13827 }
13828
13829 if invalidParams.Len() > 0 {
13830 return invalidParams
13831 }
13832 return nil
13833}
13834
13835// SetBucket sets the Bucket field's value.
13836func (s *GetPublicAccessBlockInput) SetBucket(v string) *GetPublicAccessBlockInput {
13837 s.Bucket = &v
13838 return s
13839}
13840
13841func (s *GetPublicAccessBlockInput) getBucket() (v string) {
13842 if s.Bucket == nil {
13843 return v
13844 }
13845 return *s.Bucket
13846}
13847
13848type GetPublicAccessBlockOutput struct {
13849 _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
13850
13851 // The PublicAccessBlock configuration currently in effect for this Amazon S3
13852 // bucket.
13853 PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
13854}
13855
13856// String returns the string representation
13857func (s GetPublicAccessBlockOutput) String() string {
13858 return awsutil.Prettify(s)
13859}
13860
13861// GoString returns the string representation
13862func (s GetPublicAccessBlockOutput) GoString() string {
13863 return s.String()
13864}
13865
13866// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
13867func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput {
13868 s.PublicAccessBlockConfiguration = v
13869 return s
13870}
13871
12296type GlacierJobParameters struct { 13872type GlacierJobParameters struct {
12297 _ struct{} `type:"structure"` 13873 _ struct{} `type:"structure"`
12298 13874
@@ -12474,6 +14050,9 @@ func (s *HeadBucketInput) Validate() error {
12474 if s.Bucket == nil { 14050 if s.Bucket == nil {
12475 invalidParams.Add(request.NewErrParamRequired("Bucket")) 14051 invalidParams.Add(request.NewErrParamRequired("Bucket"))
12476 } 14052 }
14053 if s.Bucket != nil && len(*s.Bucket) < 1 {
14054 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
14055 }
12477 14056
12478 if invalidParams.Len() > 0 { 14057 if invalidParams.Len() > 0 {
12479 return invalidParams 14058 return invalidParams
@@ -12557,7 +14136,7 @@ type HeadObjectInput struct {
12557 // does not store the encryption key. The key must be appropriate for use with 14136 // does not store the encryption key. The key must be appropriate for use with
12558 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 14137 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
12559 // header. 14138 // header.
12560 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 14139 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
12561 14140
12562 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 14141 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
12563 // Amazon S3 uses this header for a message integrity check to ensure the encryption 14142 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -12584,6 +14163,9 @@ func (s *HeadObjectInput) Validate() error {
12584 if s.Bucket == nil { 14163 if s.Bucket == nil {
12585 invalidParams.Add(request.NewErrParamRequired("Bucket")) 14164 invalidParams.Add(request.NewErrParamRequired("Bucket"))
12586 } 14165 }
14166 if s.Bucket != nil && len(*s.Bucket) < 1 {
14167 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
14168 }
12587 if s.Key == nil { 14169 if s.Key == nil {
12588 invalidParams.Add(request.NewErrParamRequired("Key")) 14170 invalidParams.Add(request.NewErrParamRequired("Key"))
12589 } 14171 }
@@ -12743,6 +14325,15 @@ type HeadObjectOutput struct {
12743 // you can create metadata whose values are not legal HTTP headers. 14325 // you can create metadata whose values are not legal HTTP headers.
12744 MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"` 14326 MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"`
12745 14327
14328 // The Legal Hold status for the specified object.
14329 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
14330
14331 // The Object Lock mode currently in place for this object.
14332 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
14333
14334 // The date and time when this object's Object Lock will expire.
14335 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
14336
12746 // The count of parts this object has. 14337 // The count of parts this object has.
12747 PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"` 14338 PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"`
12748 14339
@@ -12768,7 +14359,7 @@ type HeadObjectOutput struct {
12768 14359
12769 // If present, specifies the ID of the AWS Key Management Service (KMS) master 14360 // If present, specifies the ID of the AWS Key Management Service (KMS) master
12770 // encryption key that was used for the object. 14361 // encryption key that was used for the object.
12771 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 14362 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
12772 14363
12773 // The Server-side encryption algorithm used when storing this object in S3 14364 // The Server-side encryption algorithm used when storing this object in S3
12774 // (e.g., AES256, aws:kms). 14365 // (e.g., AES256, aws:kms).
@@ -12879,6 +14470,24 @@ func (s *HeadObjectOutput) SetMissingMeta(v int64) *HeadObjectOutput {
12879 return s 14470 return s
12880} 14471}
12881 14472
14473// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
14474func (s *HeadObjectOutput) SetObjectLockLegalHoldStatus(v string) *HeadObjectOutput {
14475 s.ObjectLockLegalHoldStatus = &v
14476 return s
14477}
14478
14479// SetObjectLockMode sets the ObjectLockMode field's value.
14480func (s *HeadObjectOutput) SetObjectLockMode(v string) *HeadObjectOutput {
14481 s.ObjectLockMode = &v
14482 return s
14483}
14484
14485// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
14486func (s *HeadObjectOutput) SetObjectLockRetainUntilDate(v time.Time) *HeadObjectOutput {
14487 s.ObjectLockRetainUntilDate = &v
14488 return s
14489}
14490
12882// SetPartsCount sets the PartsCount field's value. 14491// SetPartsCount sets the PartsCount field's value.
12883func (s *HeadObjectOutput) SetPartsCount(v int64) *HeadObjectOutput { 14492func (s *HeadObjectOutput) SetPartsCount(v int64) *HeadObjectOutput {
12884 s.PartsCount = &v 14493 s.PartsCount = &v
@@ -13032,6 +14641,9 @@ type InputSerialization struct {
13032 14641
13033 // Specifies JSON as object's input serialization format. 14642 // Specifies JSON as object's input serialization format.
13034 JSON *JSONInput `type:"structure"` 14643 JSON *JSONInput `type:"structure"`
14644
14645 // Specifies Parquet as object's input serialization format.
14646 Parquet *ParquetInput `type:"structure"`
13035} 14647}
13036 14648
13037// String returns the string representation 14649// String returns the string representation
@@ -13062,6 +14674,12 @@ func (s *InputSerialization) SetJSON(v *JSONInput) *InputSerialization {
13062 return s 14674 return s
13063} 14675}
13064 14676
14677// SetParquet sets the Parquet field's value.
14678func (s *InputSerialization) SetParquet(v *ParquetInput) *InputSerialization {
14679 s.Parquet = v
14680 return s
14681}
14682
13065type InventoryConfiguration struct { 14683type InventoryConfiguration struct {
13066 _ struct{} `type:"structure"` 14684 _ struct{} `type:"structure"`
13067 14685
@@ -13239,10 +14857,10 @@ func (s *InventoryDestination) SetS3BucketDestination(v *InventoryS3BucketDestin
13239type InventoryEncryption struct { 14857type InventoryEncryption struct {
13240 _ struct{} `type:"structure"` 14858 _ struct{} `type:"structure"`
13241 14859
13242 // Specifies the use of SSE-KMS to encrypt delievered Inventory reports. 14860 // Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
13243 SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"` 14861 SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"`
13244 14862
13245 // Specifies the use of SSE-S3 to encrypt delievered Inventory reports. 14863 // Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
13246 SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"` 14864 SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"`
13247} 14865}
13248 14866
@@ -13498,12 +15116,12 @@ func (s *JSONOutput) SetRecordDelimiter(v string) *JSONOutput {
13498 return s 15116 return s
13499} 15117}
13500 15118
13501// Container for object key name prefix and suffix filtering rules. 15119// A container for object key name prefix and suffix filtering rules.
13502type KeyFilter struct { 15120type KeyFilter struct {
13503 _ struct{} `type:"structure"` 15121 _ struct{} `type:"structure"`
13504 15122
13505 // A list of containers for key value pair that defines the criteria for the 15123 // A list of containers for the key value pair that defines the criteria for
13506 // filter rule. 15124 // the filter rule.
13507 FilterRules []*FilterRule `locationName:"FilterRule" type:"list" flattened:"true"` 15125 FilterRules []*FilterRule `locationName:"FilterRule" type:"list" flattened:"true"`
13508} 15126}
13509 15127
@@ -13523,24 +15141,24 @@ func (s *KeyFilter) SetFilterRules(v []*FilterRule) *KeyFilter {
13523 return s 15141 return s
13524} 15142}
13525 15143
13526// Container for specifying the AWS Lambda notification configuration. 15144// A container for specifying the configuration for AWS Lambda notifications.
13527type LambdaFunctionConfiguration struct { 15145type LambdaFunctionConfiguration struct {
13528 _ struct{} `type:"structure"` 15146 _ struct{} `type:"structure"`
13529 15147
13530 // Events is a required field 15148 // Events is a required field
13531 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 15149 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
13532 15150
13533 // Container for object key name filtering rules. For information about key 15151 // A container for object key name filtering rules. For information about key
13534 // name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 15152 // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
13535 // in the Amazon Simple Storage Service Developer Guide. 15153 // in the Amazon Simple Storage Service Developer Guide.
13536 Filter *NotificationConfigurationFilter `type:"structure"` 15154 Filter *NotificationConfigurationFilter `type:"structure"`
13537 15155
13538 // Optional unique identifier for configurations in a notification configuration. 15156 // An optional unique identifier for configurations in a notification configuration.
13539 // If you don't provide one, Amazon S3 will assign an ID. 15157 // If you don't provide one, Amazon S3 will assign an ID.
13540 Id *string `type:"string"` 15158 Id *string `type:"string"`
13541 15159
13542 // Lambda cloud function ARN that Amazon S3 can invoke when it detects events 15160 // The Amazon Resource Name (ARN) of the Lambda cloud function that Amazon S3
13543 // of the specified type. 15161 // can invoke when it detects events of the specified type.
13544 // 15162 //
13545 // LambdaFunctionArn is a required field 15163 // LambdaFunctionArn is a required field
13546 LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"` 15164 LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"`
@@ -13714,7 +15332,9 @@ type LifecycleRule struct {
13714 NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationName:"NoncurrentVersionTransition" type:"list" flattened:"true"` 15332 NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationName:"NoncurrentVersionTransition" type:"list" flattened:"true"`
13715 15333
13716 // Prefix identifying one or more objects to which the rule applies. This is 15334 // Prefix identifying one or more objects to which the rule applies. This is
13717 // deprecated; use Filter instead. 15335 // No longer used; use Filter instead.
15336 //
15337 // Deprecated: Prefix has been deprecated
13718 Prefix *string `deprecated:"true" type:"string"` 15338 Prefix *string `deprecated:"true" type:"string"`
13719 15339
13720 // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule 15340 // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
@@ -13957,6 +15577,9 @@ func (s *ListBucketAnalyticsConfigurationsInput) Validate() error {
13957 if s.Bucket == nil { 15577 if s.Bucket == nil {
13958 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15578 invalidParams.Add(request.NewErrParamRequired("Bucket"))
13959 } 15579 }
15580 if s.Bucket != nil && len(*s.Bucket) < 1 {
15581 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
15582 }
13960 15583
13961 if invalidParams.Len() > 0 { 15584 if invalidParams.Len() > 0 {
13962 return invalidParams 15585 return invalidParams
@@ -14068,6 +15691,9 @@ func (s *ListBucketInventoryConfigurationsInput) Validate() error {
14068 if s.Bucket == nil { 15691 if s.Bucket == nil {
14069 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15692 invalidParams.Add(request.NewErrParamRequired("Bucket"))
14070 } 15693 }
15694 if s.Bucket != nil && len(*s.Bucket) < 1 {
15695 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
15696 }
14071 15697
14072 if invalidParams.Len() > 0 { 15698 if invalidParams.Len() > 0 {
14073 return invalidParams 15699 return invalidParams
@@ -14179,6 +15805,9 @@ func (s *ListBucketMetricsConfigurationsInput) Validate() error {
14179 if s.Bucket == nil { 15805 if s.Bucket == nil {
14180 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15806 invalidParams.Add(request.NewErrParamRequired("Bucket"))
14181 } 15807 }
15808 if s.Bucket != nil && len(*s.Bucket) < 1 {
15809 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
15810 }
14182 15811
14183 if invalidParams.Len() > 0 { 15812 if invalidParams.Len() > 0 {
14184 return invalidParams 15813 return invalidParams
@@ -14357,6 +15986,9 @@ func (s *ListMultipartUploadsInput) Validate() error {
14357 if s.Bucket == nil { 15986 if s.Bucket == nil {
14358 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15987 invalidParams.Add(request.NewErrParamRequired("Bucket"))
14359 } 15988 }
15989 if s.Bucket != nil && len(*s.Bucket) < 1 {
15990 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
15991 }
14360 15992
14361 if invalidParams.Len() > 0 { 15993 if invalidParams.Len() > 0 {
14362 return invalidParams 15994 return invalidParams
@@ -14593,6 +16225,9 @@ func (s *ListObjectVersionsInput) Validate() error {
14593 if s.Bucket == nil { 16225 if s.Bucket == nil {
14594 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16226 invalidParams.Add(request.NewErrParamRequired("Bucket"))
14595 } 16227 }
16228 if s.Bucket != nil && len(*s.Bucket) < 1 {
16229 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
16230 }
14596 16231
14597 if invalidParams.Len() > 0 { 16232 if invalidParams.Len() > 0 {
14598 return invalidParams 16233 return invalidParams
@@ -14825,6 +16460,9 @@ func (s *ListObjectsInput) Validate() error {
14825 if s.Bucket == nil { 16460 if s.Bucket == nil {
14826 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16461 invalidParams.Add(request.NewErrParamRequired("Bucket"))
14827 } 16462 }
16463 if s.Bucket != nil && len(*s.Bucket) < 1 {
16464 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
16465 }
14828 16466
14829 if invalidParams.Len() > 0 { 16467 if invalidParams.Len() > 0 {
14830 return invalidParams 16468 return invalidParams
@@ -15042,6 +16680,9 @@ func (s *ListObjectsV2Input) Validate() error {
15042 if s.Bucket == nil { 16680 if s.Bucket == nil {
15043 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16681 invalidParams.Add(request.NewErrParamRequired("Bucket"))
15044 } 16682 }
16683 if s.Bucket != nil && len(*s.Bucket) < 1 {
16684 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
16685 }
15045 16686
15046 if invalidParams.Len() > 0 { 16687 if invalidParams.Len() > 0 {
15047 return invalidParams 16688 return invalidParams
@@ -15287,6 +16928,9 @@ func (s *ListPartsInput) Validate() error {
15287 if s.Bucket == nil { 16928 if s.Bucket == nil {
15288 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16929 invalidParams.Add(request.NewErrParamRequired("Bucket"))
15289 } 16930 }
16931 if s.Bucket != nil && len(*s.Bucket) < 1 {
16932 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
16933 }
15290 if s.Key == nil { 16934 if s.Key == nil {
15291 invalidParams.Add(request.NewErrParamRequired("Key")) 16935 invalidParams.Add(request.NewErrParamRequired("Key"))
15292 } 16936 }
@@ -15980,8 +17624,8 @@ type NoncurrentVersionExpiration struct {
15980 // Specifies the number of days an object is noncurrent before Amazon S3 can 17624 // Specifies the number of days an object is noncurrent before Amazon S3 can
15981 // perform the associated action. For information about the noncurrent days 17625 // perform the associated action. For information about the noncurrent days
15982 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent 17626 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
15983 // (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) in 17627 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)
15984 // the Amazon Simple Storage Service Developer Guide. 17628 // in the Amazon Simple Storage Service Developer Guide.
15985 NoncurrentDays *int64 `type:"integer"` 17629 NoncurrentDays *int64 `type:"integer"`
15986} 17630}
15987 17631
@@ -16002,19 +17646,20 @@ func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVers
16002} 17646}
16003 17647
16004// Container for the transition rule that describes when noncurrent objects 17648// Container for the transition rule that describes when noncurrent objects
16005// transition to the STANDARD_IA, ONEZONE_IA or GLACIER storage class. If your 17649// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or
16006// bucket is versioning-enabled (or versioning is suspended), you can set this 17650// DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
16007// action to request that Amazon S3 transition noncurrent object versions to 17651// is suspended), you can set this action to request that Amazon S3 transition
16008// the STANDARD_IA, ONEZONE_IA or GLACIER storage class at a specific period 17652// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
16009// in the object's lifetime. 17653// GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's
17654// lifetime.
16010type NoncurrentVersionTransition struct { 17655type NoncurrentVersionTransition struct {
16011 _ struct{} `type:"structure"` 17656 _ struct{} `type:"structure"`
16012 17657
16013 // Specifies the number of days an object is noncurrent before Amazon S3 can 17658 // Specifies the number of days an object is noncurrent before Amazon S3 can
16014 // perform the associated action. For information about the noncurrent days 17659 // perform the associated action. For information about the noncurrent days
16015 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent 17660 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
16016 // (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) in 17661 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)
16017 // the Amazon Simple Storage Service Developer Guide. 17662 // in the Amazon Simple Storage Service Developer Guide.
16018 NoncurrentDays *int64 `type:"integer"` 17663 NoncurrentDays *int64 `type:"integer"`
16019 17664
16020 // The class of storage used to store the object. 17665 // The class of storage used to store the object.
@@ -16043,8 +17688,8 @@ func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersi
16043 return s 17688 return s
16044} 17689}
16045 17690
16046// Container for specifying the notification configuration of the bucket. If 17691// A container for specifying the notification configuration of the bucket.
16047// this element is empty, notifications are turned off on the bucket. 17692// If this element is empty, notifications are turned off for the bucket.
16048type NotificationConfiguration struct { 17693type NotificationConfiguration struct {
16049 _ struct{} `type:"structure"` 17694 _ struct{} `type:"structure"`
16050 17695
@@ -16161,13 +17806,13 @@ func (s *NotificationConfigurationDeprecated) SetTopicConfiguration(v *TopicConf
16161 return s 17806 return s
16162} 17807}
16163 17808
16164// Container for object key name filtering rules. For information about key 17809// A container for object key name filtering rules. For information about key
16165// name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 17810// name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
16166// in the Amazon Simple Storage Service Developer Guide. 17811// in the Amazon Simple Storage Service Developer Guide.
16167type NotificationConfigurationFilter struct { 17812type NotificationConfigurationFilter struct {
16168 _ struct{} `type:"structure"` 17813 _ struct{} `type:"structure"`
16169 17814
16170 // Container for object key name prefix and suffix filtering rules. 17815 // A container for object key name prefix and suffix filtering rules.
16171 Key *KeyFilter `locationName:"S3Key" type:"structure"` 17816 Key *KeyFilter `locationName:"S3Key" type:"structure"`
16172} 17817}
16173 17818
@@ -16300,6 +17945,121 @@ func (s *ObjectIdentifier) SetVersionId(v string) *ObjectIdentifier {
16300 return s 17945 return s
16301} 17946}
16302 17947
17948// The container element for Object Lock configuration parameters.
17949type ObjectLockConfiguration struct {
17950 _ struct{} `type:"structure"`
17951
17952 // Indicates whether this bucket has an Object Lock configuration enabled.
17953 ObjectLockEnabled *string `type:"string" enum:"ObjectLockEnabled"`
17954
17955 // The Object Lock rule in place for the specified object.
17956 Rule *ObjectLockRule `type:"structure"`
17957}
17958
17959// String returns the string representation
17960func (s ObjectLockConfiguration) String() string {
17961 return awsutil.Prettify(s)
17962}
17963
17964// GoString returns the string representation
17965func (s ObjectLockConfiguration) GoString() string {
17966 return s.String()
17967}
17968
17969// SetObjectLockEnabled sets the ObjectLockEnabled field's value.
17970func (s *ObjectLockConfiguration) SetObjectLockEnabled(v string) *ObjectLockConfiguration {
17971 s.ObjectLockEnabled = &v
17972 return s
17973}
17974
17975// SetRule sets the Rule field's value.
17976func (s *ObjectLockConfiguration) SetRule(v *ObjectLockRule) *ObjectLockConfiguration {
17977 s.Rule = v
17978 return s
17979}
17980
17981// A Legal Hold configuration for an object.
17982type ObjectLockLegalHold struct {
17983 _ struct{} `type:"structure"`
17984
17985 // Indicates whether the specified object has a Legal Hold in place.
17986 Status *string `type:"string" enum:"ObjectLockLegalHoldStatus"`
17987}
17988
17989// String returns the string representation
17990func (s ObjectLockLegalHold) String() string {
17991 return awsutil.Prettify(s)
17992}
17993
17994// GoString returns the string representation
17995func (s ObjectLockLegalHold) GoString() string {
17996 return s.String()
17997}
17998
17999// SetStatus sets the Status field's value.
18000func (s *ObjectLockLegalHold) SetStatus(v string) *ObjectLockLegalHold {
18001 s.Status = &v
18002 return s
18003}
18004
18005// A Retention configuration for an object.
18006type ObjectLockRetention struct {
18007 _ struct{} `type:"structure"`
18008
18009 // Indicates the Retention mode for the specified object.
18010 Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
18011
18012 // The date on which this Object Lock Retention will expire.
18013 RetainUntilDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
18014}
18015
18016// String returns the string representation
18017func (s ObjectLockRetention) String() string {
18018 return awsutil.Prettify(s)
18019}
18020
18021// GoString returns the string representation
18022func (s ObjectLockRetention) GoString() string {
18023 return s.String()
18024}
18025
18026// SetMode sets the Mode field's value.
18027func (s *ObjectLockRetention) SetMode(v string) *ObjectLockRetention {
18028 s.Mode = &v
18029 return s
18030}
18031
18032// SetRetainUntilDate sets the RetainUntilDate field's value.
18033func (s *ObjectLockRetention) SetRetainUntilDate(v time.Time) *ObjectLockRetention {
18034 s.RetainUntilDate = &v
18035 return s
18036}
18037
18038// The container element for an Object Lock rule.
18039type ObjectLockRule struct {
18040 _ struct{} `type:"structure"`
18041
18042 // The default retention period that you want to apply to new objects placed
18043 // in the specified bucket.
18044 DefaultRetention *DefaultRetention `type:"structure"`
18045}
18046
18047// String returns the string representation
18048func (s ObjectLockRule) String() string {
18049 return awsutil.Prettify(s)
18050}
18051
18052// GoString returns the string representation
18053func (s ObjectLockRule) GoString() string {
18054 return s.String()
18055}
18056
18057// SetDefaultRetention sets the DefaultRetention field's value.
18058func (s *ObjectLockRule) SetDefaultRetention(v *DefaultRetention) *ObjectLockRule {
18059 s.DefaultRetention = v
18060 return s
18061}
18062
16303type ObjectVersion struct { 18063type ObjectVersion struct {
16304 _ struct{} `type:"structure"` 18064 _ struct{} `type:"structure"`
16305 18065
@@ -16487,6 +18247,20 @@ func (s *Owner) SetID(v string) *Owner {
16487 return s 18247 return s
16488} 18248}
16489 18249
18250type ParquetInput struct {
18251 _ struct{} `type:"structure"`
18252}
18253
18254// String returns the string representation
18255func (s ParquetInput) String() string {
18256 return awsutil.Prettify(s)
18257}
18258
18259// GoString returns the string representation
18260func (s ParquetInput) GoString() string {
18261 return s.String()
18262}
18263
16490type Part struct { 18264type Part struct {
16491 _ struct{} `type:"structure"` 18265 _ struct{} `type:"structure"`
16492 18266
@@ -16500,7 +18274,7 @@ type Part struct {
16500 // 10,000. 18274 // 10,000.
16501 PartNumber *int64 `type:"integer"` 18275 PartNumber *int64 `type:"integer"`
16502 18276
16503 // Size of the uploaded part data. 18277 // Size in bytes of the uploaded part data.
16504 Size *int64 `type:"integer"` 18278 Size *int64 `type:"integer"`
16505} 18279}
16506 18280
@@ -16538,16 +18312,41 @@ func (s *Part) SetSize(v int64) *Part {
16538 return s 18312 return s
16539} 18313}
16540 18314
18315// The container element for a bucket's policy status.
18316type PolicyStatus struct {
18317 _ struct{} `type:"structure"`
18318
18319 // The policy status for this bucket. TRUE indicates that this bucket is public.
18320 // FALSE indicates that the bucket is not public.
18321 IsPublic *bool `locationName:"IsPublic" type:"boolean"`
18322}
18323
18324// String returns the string representation
18325func (s PolicyStatus) String() string {
18326 return awsutil.Prettify(s)
18327}
18328
18329// GoString returns the string representation
18330func (s PolicyStatus) GoString() string {
18331 return s.String()
18332}
18333
18334// SetIsPublic sets the IsPublic field's value.
18335func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus {
18336 s.IsPublic = &v
18337 return s
18338}
18339
16541type Progress struct { 18340type Progress struct {
16542 _ struct{} `type:"structure"` 18341 _ struct{} `type:"structure"`
16543 18342
16544 // Current number of uncompressed object bytes processed. 18343 // The current number of uncompressed object bytes processed.
16545 BytesProcessed *int64 `type:"long"` 18344 BytesProcessed *int64 `type:"long"`
16546 18345
16547 // Current number of bytes of records payload data returned. 18346 // The current number of bytes of records payload data returned.
16548 BytesReturned *int64 `type:"long"` 18347 BytesReturned *int64 `type:"long"`
16549 18348
16550 // Current number of object bytes scanned. 18349 // The current number of object bytes scanned.
16551 BytesScanned *int64 `type:"long"` 18350 BytesScanned *int64 `type:"long"`
16552} 18351}
16553 18352
@@ -16619,6 +18418,81 @@ func (s *ProgressEvent) UnmarshalEvent(
16619 return nil 18418 return nil
16620} 18419}
16621 18420
18421type PublicAccessBlockConfiguration struct {
18422 _ struct{} `type:"structure"`
18423
18424 // Specifies whether Amazon S3 should block public access control lists (ACLs)
18425 // for this bucket and objects in this bucket. Setting this element to TRUE
18426 // causes the following behavior:
18427 //
18428 // * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is
18429 // public.
18430 //
18431 // * PUT Object calls fail if the request includes a public ACL.
18432 //
18433 // Enabling this setting doesn't affect existing policies or ACLs.
18434 BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"`
18435
18436 // Specifies whether Amazon S3 should block public bucket policies for this
18437 // bucket. Setting this element to TRUE causes Amazon S3 to reject calls to
18438 // PUT Bucket policy if the specified bucket policy allows public access.
18439 //
18440 // Enabling this setting doesn't affect existing bucket policies.
18441 BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"`
18442
18443 // Specifies whether Amazon S3 should ignore public ACLs for this bucket and
18444 // objects in this bucket. Setting this element to TRUE causes Amazon S3 to
18445 // ignore all public ACLs on this bucket and objects in this bucket.
18446 //
18447 // Enabling this setting doesn't affect the persistence of any existing ACLs
18448 // and doesn't prevent new public ACLs from being set.
18449 IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"`
18450
18451 // Specifies whether Amazon S3 should restrict public bucket policies for this
18452 // bucket. Setting this element to TRUE restricts access to this bucket to only
18453 // AWS services and authorized users within this account if the bucket has a
18454 // public policy.
18455 //
18456 // Enabling this setting doesn't affect previously stored bucket policies, except
18457 // that public and cross-account access within any public bucket policy, including
18458 // non-public delegation to specific accounts, is blocked.
18459 RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"`
18460}
18461
18462// String returns the string representation
18463func (s PublicAccessBlockConfiguration) String() string {
18464 return awsutil.Prettify(s)
18465}
18466
18467// GoString returns the string representation
18468func (s PublicAccessBlockConfiguration) GoString() string {
18469 return s.String()
18470}
18471
18472// SetBlockPublicAcls sets the BlockPublicAcls field's value.
18473func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration {
18474 s.BlockPublicAcls = &v
18475 return s
18476}
18477
18478// SetBlockPublicPolicy sets the BlockPublicPolicy field's value.
18479func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration {
18480 s.BlockPublicPolicy = &v
18481 return s
18482}
18483
18484// SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
18485func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration {
18486 s.IgnorePublicAcls = &v
18487 return s
18488}
18489
18490// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
18491func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration {
18492 s.RestrictPublicBuckets = &v
18493 return s
18494}
18495
16622type PutBucketAccelerateConfigurationInput struct { 18496type PutBucketAccelerateConfigurationInput struct {
16623 _ struct{} `type:"structure" payload:"AccelerateConfiguration"` 18497 _ struct{} `type:"structure" payload:"AccelerateConfiguration"`
16624 18498
@@ -16652,6 +18526,9 @@ func (s *PutBucketAccelerateConfigurationInput) Validate() error {
16652 if s.Bucket == nil { 18526 if s.Bucket == nil {
16653 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18527 invalidParams.Add(request.NewErrParamRequired("Bucket"))
16654 } 18528 }
18529 if s.Bucket != nil && len(*s.Bucket) < 1 {
18530 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
18531 }
16655 18532
16656 if invalidParams.Len() > 0 { 18533 if invalidParams.Len() > 0 {
16657 return invalidParams 18534 return invalidParams
@@ -16736,6 +18613,9 @@ func (s *PutBucketAclInput) Validate() error {
16736 if s.Bucket == nil { 18613 if s.Bucket == nil {
16737 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18614 invalidParams.Add(request.NewErrParamRequired("Bucket"))
16738 } 18615 }
18616 if s.Bucket != nil && len(*s.Bucket) < 1 {
18617 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
18618 }
16739 if s.AccessControlPolicy != nil { 18619 if s.AccessControlPolicy != nil {
16740 if err := s.AccessControlPolicy.Validate(); err != nil { 18620 if err := s.AccessControlPolicy.Validate(); err != nil {
16741 invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams)) 18621 invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams))
@@ -16855,6 +18735,9 @@ func (s *PutBucketAnalyticsConfigurationInput) Validate() error {
16855 if s.Bucket == nil { 18735 if s.Bucket == nil {
16856 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18736 invalidParams.Add(request.NewErrParamRequired("Bucket"))
16857 } 18737 }
18738 if s.Bucket != nil && len(*s.Bucket) < 1 {
18739 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
18740 }
16858 if s.Id == nil { 18741 if s.Id == nil {
16859 invalidParams.Add(request.NewErrParamRequired("Id")) 18742 invalidParams.Add(request.NewErrParamRequired("Id"))
16860 } 18743 }
@@ -16935,6 +18818,9 @@ func (s *PutBucketCorsInput) Validate() error {
16935 if s.Bucket == nil { 18818 if s.Bucket == nil {
16936 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18819 invalidParams.Add(request.NewErrParamRequired("Bucket"))
16937 } 18820 }
18821 if s.Bucket != nil && len(*s.Bucket) < 1 {
18822 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
18823 }
16938 if s.CORSConfiguration == nil { 18824 if s.CORSConfiguration == nil {
16939 invalidParams.Add(request.NewErrParamRequired("CORSConfiguration")) 18825 invalidParams.Add(request.NewErrParamRequired("CORSConfiguration"))
16940 } 18826 }
@@ -17015,6 +18901,9 @@ func (s *PutBucketEncryptionInput) Validate() error {
17015 if s.Bucket == nil { 18901 if s.Bucket == nil {
17016 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18902 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17017 } 18903 }
18904 if s.Bucket != nil && len(*s.Bucket) < 1 {
18905 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
18906 }
17018 if s.ServerSideEncryptionConfiguration == nil { 18907 if s.ServerSideEncryptionConfiguration == nil {
17019 invalidParams.Add(request.NewErrParamRequired("ServerSideEncryptionConfiguration")) 18908 invalidParams.Add(request.NewErrParamRequired("ServerSideEncryptionConfiguration"))
17020 } 18909 }
@@ -17098,6 +18987,9 @@ func (s *PutBucketInventoryConfigurationInput) Validate() error {
17098 if s.Bucket == nil { 18987 if s.Bucket == nil {
17099 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18988 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17100 } 18989 }
18990 if s.Bucket != nil && len(*s.Bucket) < 1 {
18991 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
18992 }
17101 if s.Id == nil { 18993 if s.Id == nil {
17102 invalidParams.Add(request.NewErrParamRequired("Id")) 18994 invalidParams.Add(request.NewErrParamRequired("Id"))
17103 } 18995 }
@@ -17180,6 +19072,9 @@ func (s *PutBucketLifecycleConfigurationInput) Validate() error {
17180 if s.Bucket == nil { 19072 if s.Bucket == nil {
17181 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19073 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17182 } 19074 }
19075 if s.Bucket != nil && len(*s.Bucket) < 1 {
19076 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19077 }
17183 if s.LifecycleConfiguration != nil { 19078 if s.LifecycleConfiguration != nil {
17184 if err := s.LifecycleConfiguration.Validate(); err != nil { 19079 if err := s.LifecycleConfiguration.Validate(); err != nil {
17185 invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams)) 19080 invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
@@ -17250,6 +19145,9 @@ func (s *PutBucketLifecycleInput) Validate() error {
17250 if s.Bucket == nil { 19145 if s.Bucket == nil {
17251 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19146 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17252 } 19147 }
19148 if s.Bucket != nil && len(*s.Bucket) < 1 {
19149 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19150 }
17253 if s.LifecycleConfiguration != nil { 19151 if s.LifecycleConfiguration != nil {
17254 if err := s.LifecycleConfiguration.Validate(); err != nil { 19152 if err := s.LifecycleConfiguration.Validate(); err != nil {
17255 invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams)) 19153 invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
@@ -17321,6 +19219,9 @@ func (s *PutBucketLoggingInput) Validate() error {
17321 if s.Bucket == nil { 19219 if s.Bucket == nil {
17322 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19220 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17323 } 19221 }
19222 if s.Bucket != nil && len(*s.Bucket) < 1 {
19223 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19224 }
17324 if s.BucketLoggingStatus == nil { 19225 if s.BucketLoggingStatus == nil {
17325 invalidParams.Add(request.NewErrParamRequired("BucketLoggingStatus")) 19226 invalidParams.Add(request.NewErrParamRequired("BucketLoggingStatus"))
17326 } 19227 }
@@ -17404,6 +19305,9 @@ func (s *PutBucketMetricsConfigurationInput) Validate() error {
17404 if s.Bucket == nil { 19305 if s.Bucket == nil {
17405 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19306 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17406 } 19307 }
19308 if s.Bucket != nil && len(*s.Bucket) < 1 {
19309 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19310 }
17407 if s.Id == nil { 19311 if s.Id == nil {
17408 invalidParams.Add(request.NewErrParamRequired("Id")) 19312 invalidParams.Add(request.NewErrParamRequired("Id"))
17409 } 19313 }
@@ -17467,8 +19371,8 @@ type PutBucketNotificationConfigurationInput struct {
17467 // Bucket is a required field 19371 // Bucket is a required field
17468 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19372 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
17469 19373
17470 // Container for specifying the notification configuration of the bucket. If 19374 // A container for specifying the notification configuration of the bucket.
17471 // this element is empty, notifications are turned off on the bucket. 19375 // If this element is empty, notifications are turned off for the bucket.
17472 // 19376 //
17473 // NotificationConfiguration is a required field 19377 // NotificationConfiguration is a required field
17474 NotificationConfiguration *NotificationConfiguration `locationName:"NotificationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 19378 NotificationConfiguration *NotificationConfiguration `locationName:"NotificationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
@@ -17490,6 +19394,9 @@ func (s *PutBucketNotificationConfigurationInput) Validate() error {
17490 if s.Bucket == nil { 19394 if s.Bucket == nil {
17491 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19395 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17492 } 19396 }
19397 if s.Bucket != nil && len(*s.Bucket) < 1 {
19398 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19399 }
17493 if s.NotificationConfiguration == nil { 19400 if s.NotificationConfiguration == nil {
17494 invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration")) 19401 invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration"))
17495 } 19402 }
@@ -17564,6 +19471,9 @@ func (s *PutBucketNotificationInput) Validate() error {
17564 if s.Bucket == nil { 19471 if s.Bucket == nil {
17565 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19472 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17566 } 19473 }
19474 if s.Bucket != nil && len(*s.Bucket) < 1 {
19475 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19476 }
17567 if s.NotificationConfiguration == nil { 19477 if s.NotificationConfiguration == nil {
17568 invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration")) 19478 invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration"))
17569 } 19479 }
@@ -17639,6 +19549,9 @@ func (s *PutBucketPolicyInput) Validate() error {
17639 if s.Bucket == nil { 19549 if s.Bucket == nil {
17640 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19550 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17641 } 19551 }
19552 if s.Bucket != nil && len(*s.Bucket) < 1 {
19553 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19554 }
17642 if s.Policy == nil { 19555 if s.Policy == nil {
17643 invalidParams.Add(request.NewErrParamRequired("Policy")) 19556 invalidParams.Add(request.NewErrParamRequired("Policy"))
17644 } 19557 }
@@ -17694,8 +19607,8 @@ type PutBucketReplicationInput struct {
17694 // Bucket is a required field 19607 // Bucket is a required field
17695 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19608 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
17696 19609
17697 // Container for replication rules. You can add as many as 1,000 rules. Total 19610 // A container for replication rules. You can add up to 1,000 rules. The maximum
17698 // replication configuration size can be up to 2 MB. 19611 // size of a replication configuration is 2 MB.
17699 // 19612 //
17700 // ReplicationConfiguration is a required field 19613 // ReplicationConfiguration is a required field
17701 ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 19614 ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
@@ -17717,6 +19630,9 @@ func (s *PutBucketReplicationInput) Validate() error {
17717 if s.Bucket == nil { 19630 if s.Bucket == nil {
17718 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19631 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17719 } 19632 }
19633 if s.Bucket != nil && len(*s.Bucket) < 1 {
19634 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19635 }
17720 if s.ReplicationConfiguration == nil { 19636 if s.ReplicationConfiguration == nil {
17721 invalidParams.Add(request.NewErrParamRequired("ReplicationConfiguration")) 19637 invalidParams.Add(request.NewErrParamRequired("ReplicationConfiguration"))
17722 } 19638 }
@@ -17791,6 +19707,9 @@ func (s *PutBucketRequestPaymentInput) Validate() error {
17791 if s.Bucket == nil { 19707 if s.Bucket == nil {
17792 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19708 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17793 } 19709 }
19710 if s.Bucket != nil && len(*s.Bucket) < 1 {
19711 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19712 }
17794 if s.RequestPaymentConfiguration == nil { 19713 if s.RequestPaymentConfiguration == nil {
17795 invalidParams.Add(request.NewErrParamRequired("RequestPaymentConfiguration")) 19714 invalidParams.Add(request.NewErrParamRequired("RequestPaymentConfiguration"))
17796 } 19715 }
@@ -17865,6 +19784,9 @@ func (s *PutBucketTaggingInput) Validate() error {
17865 if s.Bucket == nil { 19784 if s.Bucket == nil {
17866 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19785 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17867 } 19786 }
19787 if s.Bucket != nil && len(*s.Bucket) < 1 {
19788 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19789 }
17868 if s.Tagging == nil { 19790 if s.Tagging == nil {
17869 invalidParams.Add(request.NewErrParamRequired("Tagging")) 19791 invalidParams.Add(request.NewErrParamRequired("Tagging"))
17870 } 19792 }
@@ -17943,6 +19865,9 @@ func (s *PutBucketVersioningInput) Validate() error {
17943 if s.Bucket == nil { 19865 if s.Bucket == nil {
17944 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19866 invalidParams.Add(request.NewErrParamRequired("Bucket"))
17945 } 19867 }
19868 if s.Bucket != nil && len(*s.Bucket) < 1 {
19869 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19870 }
17946 if s.VersioningConfiguration == nil { 19871 if s.VersioningConfiguration == nil {
17947 invalidParams.Add(request.NewErrParamRequired("VersioningConfiguration")) 19872 invalidParams.Add(request.NewErrParamRequired("VersioningConfiguration"))
17948 } 19873 }
@@ -18018,6 +19943,9 @@ func (s *PutBucketWebsiteInput) Validate() error {
18018 if s.Bucket == nil { 19943 if s.Bucket == nil {
18019 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19944 invalidParams.Add(request.NewErrParamRequired("Bucket"))
18020 } 19945 }
19946 if s.Bucket != nil && len(*s.Bucket) < 1 {
19947 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
19948 }
18021 if s.WebsiteConfiguration == nil { 19949 if s.WebsiteConfiguration == nil {
18022 invalidParams.Add(request.NewErrParamRequired("WebsiteConfiguration")) 19950 invalidParams.Add(request.NewErrParamRequired("WebsiteConfiguration"))
18023 } 19951 }
@@ -18122,6 +20050,9 @@ func (s *PutObjectAclInput) Validate() error {
18122 if s.Bucket == nil { 20050 if s.Bucket == nil {
18123 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20051 invalidParams.Add(request.NewErrParamRequired("Bucket"))
18124 } 20052 }
20053 if s.Bucket != nil && len(*s.Bucket) < 1 {
20054 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
20055 }
18125 if s.Key == nil { 20056 if s.Key == nil {
18126 invalidParams.Add(request.NewErrParamRequired("Key")) 20057 invalidParams.Add(request.NewErrParamRequired("Key"))
18127 } 20058 }
@@ -18269,7 +20200,8 @@ type PutObjectInput struct {
18269 // body cannot be determined automatically. 20200 // body cannot be determined automatically.
18270 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 20201 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"`
18271 20202
18272 // The base64-encoded 128-bit MD5 digest of the part data. 20203 // The base64-encoded 128-bit MD5 digest of the part data. This parameter is
20204 // auto-populated when using the command from the CLI
18273 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` 20205 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"`
18274 20206
18275 // A standard MIME type describing the format of the object data. 20207 // A standard MIME type describing the format of the object data.
@@ -18298,6 +20230,15 @@ type PutObjectInput struct {
18298 // A map of metadata to store with the object in S3. 20230 // A map of metadata to store with the object in S3.
18299 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 20231 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"`
18300 20232
20233 // The Legal Hold status that you want to apply to the specified object.
20234 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
20235
20236 // The Object Lock mode that you want to apply to this object.
20237 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
20238
20239 // The date and time when you want this object's Object Lock to expire.
20240 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
20241
18301 // Confirms that the requester knows that she or he will be charged for the 20242 // Confirms that the requester knows that she or he will be charged for the
18302 // request. Bucket owners need not specify this parameter in their requests. 20243 // request. Bucket owners need not specify this parameter in their requests.
18303 // Documentation on downloading objects from requester pays buckets can be found 20244 // Documentation on downloading objects from requester pays buckets can be found
@@ -18312,7 +20253,7 @@ type PutObjectInput struct {
18312 // does not store the encryption key. The key must be appropriate for use with 20253 // does not store the encryption key. The key must be appropriate for use with
18313 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 20254 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
18314 // header. 20255 // header.
18315 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 20256 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
18316 20257
18317 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 20258 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
18318 // Amazon S3 uses this header for a message integrity check to ensure the encryption 20259 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -18323,7 +20264,7 @@ type PutObjectInput struct {
18323 // requests for an object protected by AWS KMS will fail if not made via SSL 20264 // requests for an object protected by AWS KMS will fail if not made via SSL
18324 // or using SigV4. Documentation on configuring any of the officially supported 20265 // or using SigV4. Documentation on configuring any of the officially supported
18325 // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version 20266 // AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
18326 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 20267 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
18327 20268
18328 // The Server-side encryption algorithm used when storing this object in S3 20269 // The Server-side encryption algorithm used when storing this object in S3
18329 // (e.g., AES256, aws:kms). 20270 // (e.g., AES256, aws:kms).
@@ -18332,7 +20273,8 @@ type PutObjectInput struct {
18332 // The type of storage to use for the object. Defaults to 'STANDARD'. 20273 // The type of storage to use for the object. Defaults to 'STANDARD'.
18333 StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` 20274 StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"`
18334 20275
18335 // The tag-set for the object. The tag-set must be encoded as URL Query parameters 20276 // The tag-set for the object. The tag-set must be encoded as URL Query parameters.
20277 // (For example, "Key1=Value1")
18336 Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` 20278 Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"`
18337 20279
18338 // If the bucket is configured as a website, redirects requests for this object 20280 // If the bucket is configured as a website, redirects requests for this object
@@ -18357,6 +20299,9 @@ func (s *PutObjectInput) Validate() error {
18357 if s.Bucket == nil { 20299 if s.Bucket == nil {
18358 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20300 invalidParams.Add(request.NewErrParamRequired("Bucket"))
18359 } 20301 }
20302 if s.Bucket != nil && len(*s.Bucket) < 1 {
20303 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
20304 }
18360 if s.Key == nil { 20305 if s.Key == nil {
18361 invalidParams.Add(request.NewErrParamRequired("Key")) 20306 invalidParams.Add(request.NewErrParamRequired("Key"))
18362 } 20307 }
@@ -18479,6 +20424,24 @@ func (s *PutObjectInput) SetMetadata(v map[string]*string) *PutObjectInput {
18479 return s 20424 return s
18480} 20425}
18481 20426
20427// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
20428func (s *PutObjectInput) SetObjectLockLegalHoldStatus(v string) *PutObjectInput {
20429 s.ObjectLockLegalHoldStatus = &v
20430 return s
20431}
20432
20433// SetObjectLockMode sets the ObjectLockMode field's value.
20434func (s *PutObjectInput) SetObjectLockMode(v string) *PutObjectInput {
20435 s.ObjectLockMode = &v
20436 return s
20437}
20438
20439// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
20440func (s *PutObjectInput) SetObjectLockRetainUntilDate(v time.Time) *PutObjectInput {
20441 s.ObjectLockRetainUntilDate = &v
20442 return s
20443}
20444
18482// SetRequestPayer sets the RequestPayer field's value. 20445// SetRequestPayer sets the RequestPayer field's value.
18483func (s *PutObjectInput) SetRequestPayer(v string) *PutObjectInput { 20446func (s *PutObjectInput) SetRequestPayer(v string) *PutObjectInput {
18484 s.RequestPayer = &v 20447 s.RequestPayer = &v
@@ -18540,6 +20503,228 @@ func (s *PutObjectInput) SetWebsiteRedirectLocation(v string) *PutObjectInput {
18540 return s 20503 return s
18541} 20504}
18542 20505
20506type PutObjectLegalHoldInput struct {
20507 _ struct{} `type:"structure" payload:"LegalHold"`
20508
20509 // The bucket containing the object that you want to place a Legal Hold on.
20510 //
20511 // Bucket is a required field
20512 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
20513
20514 // The key name for the object that you want to place a Legal Hold on.
20515 //
20516 // Key is a required field
20517 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
20518
20519 // Container element for the Legal Hold configuration you want to apply to the
20520 // specified object.
20521 LegalHold *ObjectLockLegalHold `locationName:"LegalHold" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
20522
20523 // Confirms that the requester knows that she or he will be charged for the
20524 // request. Bucket owners need not specify this parameter in their requests.
20525 // Documentation on downloading objects from requester pays buckets can be found
20526 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
20527 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
20528
20529 // The version ID of the object that you want to place a Legal Hold on.
20530 VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
20531}
20532
20533// String returns the string representation
20534func (s PutObjectLegalHoldInput) String() string {
20535 return awsutil.Prettify(s)
20536}
20537
20538// GoString returns the string representation
20539func (s PutObjectLegalHoldInput) GoString() string {
20540 return s.String()
20541}
20542
20543// Validate inspects the fields of the type to determine if they are valid.
20544func (s *PutObjectLegalHoldInput) Validate() error {
20545 invalidParams := request.ErrInvalidParams{Context: "PutObjectLegalHoldInput"}
20546 if s.Bucket == nil {
20547 invalidParams.Add(request.NewErrParamRequired("Bucket"))
20548 }
20549 if s.Bucket != nil && len(*s.Bucket) < 1 {
20550 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
20551 }
20552 if s.Key == nil {
20553 invalidParams.Add(request.NewErrParamRequired("Key"))
20554 }
20555 if s.Key != nil && len(*s.Key) < 1 {
20556 invalidParams.Add(request.NewErrParamMinLen("Key", 1))
20557 }
20558
20559 if invalidParams.Len() > 0 {
20560 return invalidParams
20561 }
20562 return nil
20563}
20564
20565// SetBucket sets the Bucket field's value.
20566func (s *PutObjectLegalHoldInput) SetBucket(v string) *PutObjectLegalHoldInput {
20567 s.Bucket = &v
20568 return s
20569}
20570
20571func (s *PutObjectLegalHoldInput) getBucket() (v string) {
20572 if s.Bucket == nil {
20573 return v
20574 }
20575 return *s.Bucket
20576}
20577
20578// SetKey sets the Key field's value.
20579func (s *PutObjectLegalHoldInput) SetKey(v string) *PutObjectLegalHoldInput {
20580 s.Key = &v
20581 return s
20582}
20583
20584// SetLegalHold sets the LegalHold field's value.
20585func (s *PutObjectLegalHoldInput) SetLegalHold(v *ObjectLockLegalHold) *PutObjectLegalHoldInput {
20586 s.LegalHold = v
20587 return s
20588}
20589
20590// SetRequestPayer sets the RequestPayer field's value.
20591func (s *PutObjectLegalHoldInput) SetRequestPayer(v string) *PutObjectLegalHoldInput {
20592 s.RequestPayer = &v
20593 return s
20594}
20595
20596// SetVersionId sets the VersionId field's value.
20597func (s *PutObjectLegalHoldInput) SetVersionId(v string) *PutObjectLegalHoldInput {
20598 s.VersionId = &v
20599 return s
20600}
20601
20602type PutObjectLegalHoldOutput struct {
20603 _ struct{} `type:"structure"`
20604
20605 // If present, indicates that the requester was successfully charged for the
20606 // request.
20607 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"`
20608}
20609
20610// String returns the string representation
20611func (s PutObjectLegalHoldOutput) String() string {
20612 return awsutil.Prettify(s)
20613}
20614
20615// GoString returns the string representation
20616func (s PutObjectLegalHoldOutput) GoString() string {
20617 return s.String()
20618}
20619
20620// SetRequestCharged sets the RequestCharged field's value.
20621func (s *PutObjectLegalHoldOutput) SetRequestCharged(v string) *PutObjectLegalHoldOutput {
20622 s.RequestCharged = &v
20623 return s
20624}
20625
20626type PutObjectLockConfigurationInput struct {
20627 _ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
20628
20629 // The bucket whose Object Lock configuration you want to create or replace.
20630 //
20631 // Bucket is a required field
20632 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
20633
20634 // The Object Lock configuration that you want to apply to the specified bucket.
20635 ObjectLockConfiguration *ObjectLockConfiguration `locationName:"ObjectLockConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
20636
20637 // Confirms that the requester knows that she or he will be charged for the
20638 // request. Bucket owners need not specify this parameter in their requests.
20639 // Documentation on downloading objects from requester pays buckets can be found
20640 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
20641 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
20642
20643 // A token to allow Object Lock to be enabled for an existing bucket.
20644 Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"`
20645}
20646
20647// String returns the string representation
20648func (s PutObjectLockConfigurationInput) String() string {
20649 return awsutil.Prettify(s)
20650}
20651
20652// GoString returns the string representation
20653func (s PutObjectLockConfigurationInput) GoString() string {
20654 return s.String()
20655}
20656
20657// Validate inspects the fields of the type to determine if they are valid.
20658func (s *PutObjectLockConfigurationInput) Validate() error {
20659 invalidParams := request.ErrInvalidParams{Context: "PutObjectLockConfigurationInput"}
20660 if s.Bucket == nil {
20661 invalidParams.Add(request.NewErrParamRequired("Bucket"))
20662 }
20663 if s.Bucket != nil && len(*s.Bucket) < 1 {
20664 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
20665 }
20666
20667 if invalidParams.Len() > 0 {
20668 return invalidParams
20669 }
20670 return nil
20671}
20672
20673// SetBucket sets the Bucket field's value.
20674func (s *PutObjectLockConfigurationInput) SetBucket(v string) *PutObjectLockConfigurationInput {
20675 s.Bucket = &v
20676 return s
20677}
20678
20679func (s *PutObjectLockConfigurationInput) getBucket() (v string) {
20680 if s.Bucket == nil {
20681 return v
20682 }
20683 return *s.Bucket
20684}
20685
20686// SetObjectLockConfiguration sets the ObjectLockConfiguration field's value.
20687func (s *PutObjectLockConfigurationInput) SetObjectLockConfiguration(v *ObjectLockConfiguration) *PutObjectLockConfigurationInput {
20688 s.ObjectLockConfiguration = v
20689 return s
20690}
20691
20692// SetRequestPayer sets the RequestPayer field's value.
20693func (s *PutObjectLockConfigurationInput) SetRequestPayer(v string) *PutObjectLockConfigurationInput {
20694 s.RequestPayer = &v
20695 return s
20696}
20697
20698// SetToken sets the Token field's value.
20699func (s *PutObjectLockConfigurationInput) SetToken(v string) *PutObjectLockConfigurationInput {
20700 s.Token = &v
20701 return s
20702}
20703
20704type PutObjectLockConfigurationOutput struct {
20705 _ struct{} `type:"structure"`
20706
20707 // If present, indicates that the requester was successfully charged for the
20708 // request.
20709 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"`
20710}
20711
20712// String returns the string representation
20713func (s PutObjectLockConfigurationOutput) String() string {
20714 return awsutil.Prettify(s)
20715}
20716
20717// GoString returns the string representation
20718func (s PutObjectLockConfigurationOutput) GoString() string {
20719 return s.String()
20720}
20721
20722// SetRequestCharged sets the RequestCharged field's value.
20723func (s *PutObjectLockConfigurationOutput) SetRequestCharged(v string) *PutObjectLockConfigurationOutput {
20724 s.RequestCharged = &v
20725 return s
20726}
20727
18543type PutObjectOutput struct { 20728type PutObjectOutput struct {
18544 _ struct{} `type:"structure"` 20729 _ struct{} `type:"structure"`
18545 20730
@@ -18566,7 +20751,7 @@ type PutObjectOutput struct {
18566 20751
18567 // If present, specifies the ID of the AWS Key Management Service (KMS) master 20752 // If present, specifies the ID of the AWS Key Management Service (KMS) master
18568 // encryption key that was used for the object. 20753 // encryption key that was used for the object.
18569 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 20754 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
18570 20755
18571 // The Server-side encryption algorithm used when storing this object in S3 20756 // The Server-side encryption algorithm used when storing this object in S3
18572 // (e.g., AES256, aws:kms). 20757 // (e.g., AES256, aws:kms).
@@ -18634,6 +20819,137 @@ func (s *PutObjectOutput) SetVersionId(v string) *PutObjectOutput {
18634 return s 20819 return s
18635} 20820}
18636 20821
20822type PutObjectRetentionInput struct {
20823 _ struct{} `type:"structure" payload:"Retention"`
20824
20825 // The bucket that contains the object you want to apply this Object Retention
20826 // configuration to.
20827 //
20828 // Bucket is a required field
20829 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
20830
20831 // Indicates whether this operation should bypass Governance-mode restrictions.j
20832 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
20833
20834 // The key name for the object that you want to apply this Object Retention
20835 // configuration to.
20836 //
20837 // Key is a required field
20838 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
20839
20840 // Confirms that the requester knows that she or he will be charged for the
20841 // request. Bucket owners need not specify this parameter in their requests.
20842 // Documentation on downloading objects from requester pays buckets can be found
20843 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
20844 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
20845
20846 // The container element for the Object Retention configuration.
20847 Retention *ObjectLockRetention `locationName:"Retention" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
20848
20849 // The version ID for the object that you want to apply this Object Retention
20850 // configuration to.
20851 VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
20852}
20853
20854// String returns the string representation
20855func (s PutObjectRetentionInput) String() string {
20856 return awsutil.Prettify(s)
20857}
20858
20859// GoString returns the string representation
20860func (s PutObjectRetentionInput) GoString() string {
20861 return s.String()
20862}
20863
20864// Validate inspects the fields of the type to determine if they are valid.
20865func (s *PutObjectRetentionInput) Validate() error {
20866 invalidParams := request.ErrInvalidParams{Context: "PutObjectRetentionInput"}
20867 if s.Bucket == nil {
20868 invalidParams.Add(request.NewErrParamRequired("Bucket"))
20869 }
20870 if s.Bucket != nil && len(*s.Bucket) < 1 {
20871 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
20872 }
20873 if s.Key == nil {
20874 invalidParams.Add(request.NewErrParamRequired("Key"))
20875 }
20876 if s.Key != nil && len(*s.Key) < 1 {
20877 invalidParams.Add(request.NewErrParamMinLen("Key", 1))
20878 }
20879
20880 if invalidParams.Len() > 0 {
20881 return invalidParams
20882 }
20883 return nil
20884}
20885
20886// SetBucket sets the Bucket field's value.
20887func (s *PutObjectRetentionInput) SetBucket(v string) *PutObjectRetentionInput {
20888 s.Bucket = &v
20889 return s
20890}
20891
20892func (s *PutObjectRetentionInput) getBucket() (v string) {
20893 if s.Bucket == nil {
20894 return v
20895 }
20896 return *s.Bucket
20897}
20898
20899// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
20900func (s *PutObjectRetentionInput) SetBypassGovernanceRetention(v bool) *PutObjectRetentionInput {
20901 s.BypassGovernanceRetention = &v
20902 return s
20903}
20904
20905// SetKey sets the Key field's value.
20906func (s *PutObjectRetentionInput) SetKey(v string) *PutObjectRetentionInput {
20907 s.Key = &v
20908 return s
20909}
20910
20911// SetRequestPayer sets the RequestPayer field's value.
20912func (s *PutObjectRetentionInput) SetRequestPayer(v string) *PutObjectRetentionInput {
20913 s.RequestPayer = &v
20914 return s
20915}
20916
20917// SetRetention sets the Retention field's value.
20918func (s *PutObjectRetentionInput) SetRetention(v *ObjectLockRetention) *PutObjectRetentionInput {
20919 s.Retention = v
20920 return s
20921}
20922
20923// SetVersionId sets the VersionId field's value.
20924func (s *PutObjectRetentionInput) SetVersionId(v string) *PutObjectRetentionInput {
20925 s.VersionId = &v
20926 return s
20927}
20928
20929type PutObjectRetentionOutput struct {
20930 _ struct{} `type:"structure"`
20931
20932 // If present, indicates that the requester was successfully charged for the
20933 // request.
20934 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"`
20935}
20936
20937// String returns the string representation
20938func (s PutObjectRetentionOutput) String() string {
20939 return awsutil.Prettify(s)
20940}
20941
20942// GoString returns the string representation
20943func (s PutObjectRetentionOutput) GoString() string {
20944 return s.String()
20945}
20946
20947// SetRequestCharged sets the RequestCharged field's value.
20948func (s *PutObjectRetentionOutput) SetRequestCharged(v string) *PutObjectRetentionOutput {
20949 s.RequestCharged = &v
20950 return s
20951}
20952
18637type PutObjectTaggingInput struct { 20953type PutObjectTaggingInput struct {
18638 _ struct{} `type:"structure" payload:"Tagging"` 20954 _ struct{} `type:"structure" payload:"Tagging"`
18639 20955
@@ -18665,6 +20981,9 @@ func (s *PutObjectTaggingInput) Validate() error {
18665 if s.Bucket == nil { 20981 if s.Bucket == nil {
18666 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20982 invalidParams.Add(request.NewErrParamRequired("Bucket"))
18667 } 20983 }
20984 if s.Bucket != nil && len(*s.Bucket) < 1 {
20985 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
20986 }
18668 if s.Key == nil { 20987 if s.Key == nil {
18669 invalidParams.Add(request.NewErrParamRequired("Key")) 20988 invalidParams.Add(request.NewErrParamRequired("Key"))
18670 } 20989 }
@@ -18739,25 +21058,107 @@ func (s *PutObjectTaggingOutput) SetVersionId(v string) *PutObjectTaggingOutput
18739 return s 21058 return s
18740} 21059}
18741 21060
18742// Container for specifying an configuration when you want Amazon S3 to publish 21061type PutPublicAccessBlockInput struct {
18743// events to an Amazon Simple Queue Service (Amazon SQS) queue. 21062 _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
21063
21064 // The name of the Amazon S3 bucket whose PublicAccessBlock configuration you
21065 // want to set.
21066 //
21067 // Bucket is a required field
21068 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
21069
21070 // The PublicAccessBlock configuration that you want to apply to this Amazon
21071 // S3 bucket. You can enable the configuration options in any combination. For
21072 // more information about when Amazon S3 considers a bucket or object public,
21073 // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
21074 // in the Amazon Simple Storage Service Developer Guide.
21075 //
21076 // PublicAccessBlockConfiguration is a required field
21077 PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
21078}
21079
21080// String returns the string representation
21081func (s PutPublicAccessBlockInput) String() string {
21082 return awsutil.Prettify(s)
21083}
21084
21085// GoString returns the string representation
21086func (s PutPublicAccessBlockInput) GoString() string {
21087 return s.String()
21088}
21089
21090// Validate inspects the fields of the type to determine if they are valid.
21091func (s *PutPublicAccessBlockInput) Validate() error {
21092 invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"}
21093 if s.Bucket == nil {
21094 invalidParams.Add(request.NewErrParamRequired("Bucket"))
21095 }
21096 if s.Bucket != nil && len(*s.Bucket) < 1 {
21097 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
21098 }
21099 if s.PublicAccessBlockConfiguration == nil {
21100 invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration"))
21101 }
21102
21103 if invalidParams.Len() > 0 {
21104 return invalidParams
21105 }
21106 return nil
21107}
21108
21109// SetBucket sets the Bucket field's value.
21110func (s *PutPublicAccessBlockInput) SetBucket(v string) *PutPublicAccessBlockInput {
21111 s.Bucket = &v
21112 return s
21113}
21114
21115func (s *PutPublicAccessBlockInput) getBucket() (v string) {
21116 if s.Bucket == nil {
21117 return v
21118 }
21119 return *s.Bucket
21120}
21121
21122// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
21123func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput {
21124 s.PublicAccessBlockConfiguration = v
21125 return s
21126}
21127
21128type PutPublicAccessBlockOutput struct {
21129 _ struct{} `type:"structure"`
21130}
21131
21132// String returns the string representation
21133func (s PutPublicAccessBlockOutput) String() string {
21134 return awsutil.Prettify(s)
21135}
21136
21137// GoString returns the string representation
21138func (s PutPublicAccessBlockOutput) GoString() string {
21139 return s.String()
21140}
21141
21142// A container for specifying the configuration for publication of messages
21143// to an Amazon Simple Queue Service (Amazon SQS) queue.when Amazon S3 detects
21144// specified events.
18744type QueueConfiguration struct { 21145type QueueConfiguration struct {
18745 _ struct{} `type:"structure"` 21146 _ struct{} `type:"structure"`
18746 21147
18747 // Events is a required field 21148 // Events is a required field
18748 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 21149 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
18749 21150
18750 // Container for object key name filtering rules. For information about key 21151 // A container for object key name filtering rules. For information about key
18751 // name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 21152 // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
18752 // in the Amazon Simple Storage Service Developer Guide. 21153 // in the Amazon Simple Storage Service Developer Guide.
18753 Filter *NotificationConfigurationFilter `type:"structure"` 21154 Filter *NotificationConfigurationFilter `type:"structure"`
18754 21155
18755 // Optional unique identifier for configurations in a notification configuration. 21156 // An optional unique identifier for configurations in a notification configuration.
18756 // If you don't provide one, Amazon S3 will assign an ID. 21157 // If you don't provide one, Amazon S3 will assign an ID.
18757 Id *string `type:"string"` 21158 Id *string `type:"string"`
18758 21159
18759 // Amazon SQS queue ARN to which Amazon S3 will publish a message when it detects 21160 // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3
18760 // events of specified type. 21161 // will publish a message when it detects events of the specified type.
18761 // 21162 //
18762 // QueueArn is a required field 21163 // QueueArn is a required field
18763 QueueArn *string `locationName:"Queue" type:"string" required:"true"` 21164 QueueArn *string `locationName:"Queue" type:"string" required:"true"`
@@ -18816,12 +21217,14 @@ func (s *QueueConfiguration) SetQueueArn(v string) *QueueConfiguration {
18816type QueueConfigurationDeprecated struct { 21217type QueueConfigurationDeprecated struct {
18817 _ struct{} `type:"structure"` 21218 _ struct{} `type:"structure"`
18818 21219
18819 // Bucket event for which to send notifications. 21220 // The bucket event for which to send notifications.
21221 //
21222 // Deprecated: Event has been deprecated
18820 Event *string `deprecated:"true" type:"string" enum:"Event"` 21223 Event *string `deprecated:"true" type:"string" enum:"Event"`
18821 21224
18822 Events []*string `locationName:"Event" type:"list" flattened:"true"` 21225 Events []*string `locationName:"Event" type:"list" flattened:"true"`
18823 21226
18824 // Optional unique identifier for configurations in a notification configuration. 21227 // An optional unique identifier for configurations in a notification configuration.
18825 // If you don't provide one, Amazon S3 will assign an ID. 21228 // If you don't provide one, Amazon S3 will assign an ID.
18826 Id *string `type:"string"` 21229 Id *string `type:"string"`
18827 21230
@@ -19017,19 +21420,19 @@ func (s *RedirectAllRequestsTo) SetProtocol(v string) *RedirectAllRequestsTo {
19017 return s 21420 return s
19018} 21421}
19019 21422
19020// Container for replication rules. You can add as many as 1,000 rules. Total 21423// A container for replication rules. You can add up to 1,000 rules. The maximum
19021// replication configuration size can be up to 2 MB. 21424// size of a replication configuration is 2 MB.
19022type ReplicationConfiguration struct { 21425type ReplicationConfiguration struct {
19023 _ struct{} `type:"structure"` 21426 _ struct{} `type:"structure"`
19024 21427
19025 // Amazon Resource Name (ARN) of an IAM role for Amazon S3 to assume when replicating 21428 // The Amazon Resource Name (ARN) of the AWS Identity and Access Management
19026 // the objects. 21429 // (IAM) role that Amazon S3 can assume when replicating the objects.
19027 // 21430 //
19028 // Role is a required field 21431 // Role is a required field
19029 Role *string `type:"string" required:"true"` 21432 Role *string `type:"string" required:"true"`
19030 21433
19031 // Container for information about a particular replication rule. Replication 21434 // A container for one or more replication rules. A replication configuration
19032 // configuration must have at least one rule and can contain up to 1,000 rules. 21435 // must have at least one rule and can contain a maximum of 1,000 rules.
19033 // 21436 //
19034 // Rules is a required field 21437 // Rules is a required field
19035 Rules []*ReplicationRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` 21438 Rules []*ReplicationRule `locationName:"Rule" type:"list" flattened:"true" required:"true"`
@@ -19083,29 +21486,57 @@ func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationCo
19083 return s 21486 return s
19084} 21487}
19085 21488
19086// Container for information about a particular replication rule. 21489// A container for information about a specific replication rule.
19087type ReplicationRule struct { 21490type ReplicationRule struct {
19088 _ struct{} `type:"structure"` 21491 _ struct{} `type:"structure"`
19089 21492
19090 // Container for replication destination information. 21493 // Specifies whether Amazon S3 should replicate delete makers.
21494 DeleteMarkerReplication *DeleteMarkerReplication `type:"structure"`
21495
21496 // A container for information about the replication destination.
19091 // 21497 //
19092 // Destination is a required field 21498 // Destination is a required field
19093 Destination *Destination `type:"structure" required:"true"` 21499 Destination *Destination `type:"structure" required:"true"`
19094 21500
19095 // Unique identifier for the rule. The value cannot be longer than 255 characters. 21501 // A filter that identifies the subset of objects to which the replication rule
21502 // applies. A Filter must specify exactly one Prefix, Tag, or an And child element.
21503 Filter *ReplicationRuleFilter `type:"structure"`
21504
21505 // A unique identifier for the rule. The maximum value is 255 characters.
19096 ID *string `type:"string"` 21506 ID *string `type:"string"`
19097 21507
19098 // Object keyname prefix identifying one or more objects to which the rule applies. 21508 // An object keyname prefix that identifies the object or objects to which the
19099 // Maximum prefix length can be up to 1,024 characters. Overlapping prefixes 21509 // rule applies. The maximum prefix length is 1,024 characters.
19100 // are not supported.
19101 // 21510 //
19102 // Prefix is a required field 21511 // Deprecated: Prefix has been deprecated
19103 Prefix *string `type:"string" required:"true"` 21512 Prefix *string `deprecated:"true" type:"string"`
19104 21513
19105 // Container for filters that define which source objects should be replicated. 21514 // The priority associated with the rule. If you specify multiple rules in a
21515 // replication configuration, Amazon S3 prioritizes the rules to prevent conflicts
21516 // when filtering. If two or more rules identify the same object based on a
21517 // specified filter, the rule with higher priority takes precedence. For example:
21518 //
21519 // * Same object quality prefix based filter criteria If prefixes you specified
21520 // in multiple rules overlap
21521 //
21522 // * Same object qualify tag based filter criteria specified in multiple
21523 // rules
21524 //
21525 // For more information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
21526 // in the Amazon S3 Developer Guide.
21527 Priority *int64 `type:"integer"`
21528
21529 // A container that describes additional filters for identifying the source
21530 // objects that you want to replicate. You can choose to enable or disable the
21531 // replication of these objects. Currently, Amazon S3 supports only the filter
21532 // that you can specify for objects created with server-side encryption using
21533 // an AWS KMS-Managed Key (SSE-KMS).
21534 //
21535 // If you want Amazon S3 to replicate objects created with server-side encryption
21536 // using AWS KMS-Managed Keys.
19106 SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"` 21537 SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"`
19107 21538
19108 // The rule is ignored if status is not Enabled. 21539 // If status isn't enabled, the rule is ignored.
19109 // 21540 //
19110 // Status is a required field 21541 // Status is a required field
19111 Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"` 21542 Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"`
@@ -19127,9 +21558,6 @@ func (s *ReplicationRule) Validate() error {
19127 if s.Destination == nil { 21558 if s.Destination == nil {
19128 invalidParams.Add(request.NewErrParamRequired("Destination")) 21559 invalidParams.Add(request.NewErrParamRequired("Destination"))
19129 } 21560 }
19130 if s.Prefix == nil {
19131 invalidParams.Add(request.NewErrParamRequired("Prefix"))
19132 }
19133 if s.Status == nil { 21561 if s.Status == nil {
19134 invalidParams.Add(request.NewErrParamRequired("Status")) 21562 invalidParams.Add(request.NewErrParamRequired("Status"))
19135 } 21563 }
@@ -19138,6 +21566,11 @@ func (s *ReplicationRule) Validate() error {
19138 invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) 21566 invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
19139 } 21567 }
19140 } 21568 }
21569 if s.Filter != nil {
21570 if err := s.Filter.Validate(); err != nil {
21571 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
21572 }
21573 }
19141 if s.SourceSelectionCriteria != nil { 21574 if s.SourceSelectionCriteria != nil {
19142 if err := s.SourceSelectionCriteria.Validate(); err != nil { 21575 if err := s.SourceSelectionCriteria.Validate(); err != nil {
19143 invalidParams.AddNested("SourceSelectionCriteria", err.(request.ErrInvalidParams)) 21576 invalidParams.AddNested("SourceSelectionCriteria", err.(request.ErrInvalidParams))
@@ -19150,12 +21583,24 @@ func (s *ReplicationRule) Validate() error {
19150 return nil 21583 return nil
19151} 21584}
19152 21585
21586// SetDeleteMarkerReplication sets the DeleteMarkerReplication field's value.
21587func (s *ReplicationRule) SetDeleteMarkerReplication(v *DeleteMarkerReplication) *ReplicationRule {
21588 s.DeleteMarkerReplication = v
21589 return s
21590}
21591
19153// SetDestination sets the Destination field's value. 21592// SetDestination sets the Destination field's value.
19154func (s *ReplicationRule) SetDestination(v *Destination) *ReplicationRule { 21593func (s *ReplicationRule) SetDestination(v *Destination) *ReplicationRule {
19155 s.Destination = v 21594 s.Destination = v
19156 return s 21595 return s
19157} 21596}
19158 21597
21598// SetFilter sets the Filter field's value.
21599func (s *ReplicationRule) SetFilter(v *ReplicationRuleFilter) *ReplicationRule {
21600 s.Filter = v
21601 return s
21602}
21603
19159// SetID sets the ID field's value. 21604// SetID sets the ID field's value.
19160func (s *ReplicationRule) SetID(v string) *ReplicationRule { 21605func (s *ReplicationRule) SetID(v string) *ReplicationRule {
19161 s.ID = &v 21606 s.ID = &v
@@ -19168,6 +21613,12 @@ func (s *ReplicationRule) SetPrefix(v string) *ReplicationRule {
19168 return s 21613 return s
19169} 21614}
19170 21615
21616// SetPriority sets the Priority field's value.
21617func (s *ReplicationRule) SetPriority(v int64) *ReplicationRule {
21618 s.Priority = &v
21619 return s
21620}
21621
19171// SetSourceSelectionCriteria sets the SourceSelectionCriteria field's value. 21622// SetSourceSelectionCriteria sets the SourceSelectionCriteria field's value.
19172func (s *ReplicationRule) SetSourceSelectionCriteria(v *SourceSelectionCriteria) *ReplicationRule { 21623func (s *ReplicationRule) SetSourceSelectionCriteria(v *SourceSelectionCriteria) *ReplicationRule {
19173 s.SourceSelectionCriteria = v 21624 s.SourceSelectionCriteria = v
@@ -19180,6 +21631,130 @@ func (s *ReplicationRule) SetStatus(v string) *ReplicationRule {
19180 return s 21631 return s
19181} 21632}
19182 21633
21634type ReplicationRuleAndOperator struct {
21635 _ struct{} `type:"structure"`
21636
21637 Prefix *string `type:"string"`
21638
21639 Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"`
21640}
21641
21642// String returns the string representation
21643func (s ReplicationRuleAndOperator) String() string {
21644 return awsutil.Prettify(s)
21645}
21646
21647// GoString returns the string representation
21648func (s ReplicationRuleAndOperator) GoString() string {
21649 return s.String()
21650}
21651
21652// Validate inspects the fields of the type to determine if they are valid.
21653func (s *ReplicationRuleAndOperator) Validate() error {
21654 invalidParams := request.ErrInvalidParams{Context: "ReplicationRuleAndOperator"}
21655 if s.Tags != nil {
21656 for i, v := range s.Tags {
21657 if v == nil {
21658 continue
21659 }
21660 if err := v.Validate(); err != nil {
21661 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
21662 }
21663 }
21664 }
21665
21666 if invalidParams.Len() > 0 {
21667 return invalidParams
21668 }
21669 return nil
21670}
21671
21672// SetPrefix sets the Prefix field's value.
21673func (s *ReplicationRuleAndOperator) SetPrefix(v string) *ReplicationRuleAndOperator {
21674 s.Prefix = &v
21675 return s
21676}
21677
21678// SetTags sets the Tags field's value.
21679func (s *ReplicationRuleAndOperator) SetTags(v []*Tag) *ReplicationRuleAndOperator {
21680 s.Tags = v
21681 return s
21682}
21683
21684// A filter that identifies the subset of objects to which the replication rule
21685// applies. A Filter must specify exactly one Prefix, Tag, or an And child element.
21686type ReplicationRuleFilter struct {
21687 _ struct{} `type:"structure"`
21688
21689 // A container for specifying rule filters. The filters determine the subset
21690 // of objects to which the rule applies. This element is required only if you
21691 // specify more than one filter. For example:
21692 //
21693 // * If you specify both a Prefix and a Tag filter, wrap these filters in
21694 // an And tag.
21695 //
21696 // * If you specify a filter based on multiple tags, wrap the Tag elements
21697 // in an And tag.
21698 And *ReplicationRuleAndOperator `type:"structure"`
21699
21700 // An object keyname prefix that identifies the subset of objects to which the
21701 // rule applies.
21702 Prefix *string `type:"string"`
21703
21704 // A container for specifying a tag key and value.
21705 //
21706 // The rule applies only to objects that have the tag in their tag set.
21707 Tag *Tag `type:"structure"`
21708}
21709
21710// String returns the string representation
21711func (s ReplicationRuleFilter) String() string {
21712 return awsutil.Prettify(s)
21713}
21714
21715// GoString returns the string representation
21716func (s ReplicationRuleFilter) GoString() string {
21717 return s.String()
21718}
21719
21720// Validate inspects the fields of the type to determine if they are valid.
21721func (s *ReplicationRuleFilter) Validate() error {
21722 invalidParams := request.ErrInvalidParams{Context: "ReplicationRuleFilter"}
21723 if s.And != nil {
21724 if err := s.And.Validate(); err != nil {
21725 invalidParams.AddNested("And", err.(request.ErrInvalidParams))
21726 }
21727 }
21728 if s.Tag != nil {
21729 if err := s.Tag.Validate(); err != nil {
21730 invalidParams.AddNested("Tag", err.(request.ErrInvalidParams))
21731 }
21732 }
21733
21734 if invalidParams.Len() > 0 {
21735 return invalidParams
21736 }
21737 return nil
21738}
21739
21740// SetAnd sets the And field's value.
21741func (s *ReplicationRuleFilter) SetAnd(v *ReplicationRuleAndOperator) *ReplicationRuleFilter {
21742 s.And = v
21743 return s
21744}
21745
21746// SetPrefix sets the Prefix field's value.
21747func (s *ReplicationRuleFilter) SetPrefix(v string) *ReplicationRuleFilter {
21748 s.Prefix = &v
21749 return s
21750}
21751
21752// SetTag sets the Tag field's value.
21753func (s *ReplicationRuleFilter) SetTag(v *Tag) *ReplicationRuleFilter {
21754 s.Tag = v
21755 return s
21756}
21757
19183type RequestPaymentConfiguration struct { 21758type RequestPaymentConfiguration struct {
19184 _ struct{} `type:"structure"` 21759 _ struct{} `type:"structure"`
19185 21760
@@ -19279,6 +21854,9 @@ func (s *RestoreObjectInput) Validate() error {
19279 if s.Bucket == nil { 21854 if s.Bucket == nil {
19280 invalidParams.Add(request.NewErrParamRequired("Bucket")) 21855 invalidParams.Add(request.NewErrParamRequired("Bucket"))
19281 } 21856 }
21857 if s.Bucket != nil && len(*s.Bucket) < 1 {
21858 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
21859 }
19282 if s.Key == nil { 21860 if s.Key == nil {
19283 invalidParams.Add(request.NewErrParamRequired("Key")) 21861 invalidParams.Add(request.NewErrParamRequired("Key"))
19284 } 21862 }
@@ -19484,7 +22062,7 @@ type RoutingRule struct {
19484 22062
19485 // Container for redirect information. You can redirect requests to another 22063 // Container for redirect information. You can redirect requests to another
19486 // host, to another page, or with another protocol. In the event of an error, 22064 // host, to another page, or with another protocol. In the event of an error,
19487 // you can can specify a different error code to return. 22065 // you can specify a different error code to return.
19488 // 22066 //
19489 // Redirect is a required field 22067 // Redirect is a required field
19490 Redirect *Redirect `type:"structure" required:"true"` 22068 Redirect *Redirect `type:"structure" required:"true"`
@@ -19545,11 +22123,12 @@ type Rule struct {
19545 NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` 22123 NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
19546 22124
19547 // Container for the transition rule that describes when noncurrent objects 22125 // Container for the transition rule that describes when noncurrent objects
19548 // transition to the STANDARD_IA, ONEZONE_IA or GLACIER storage class. If your 22126 // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or
19549 // bucket is versioning-enabled (or versioning is suspended), you can set this 22127 // DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
19550 // action to request that Amazon S3 transition noncurrent object versions to 22128 // is suspended), you can set this action to request that Amazon S3 transition
19551 // the STANDARD_IA, ONEZONE_IA or GLACIER storage class at a specific period 22129 // noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
19552 // in the object's lifetime. 22130 // GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's
22131 // lifetime.
19553 NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"` 22132 NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"`
19554 22133
19555 // Prefix identifying one or more objects to which the rule applies. 22134 // Prefix identifying one or more objects to which the rule applies.
@@ -19640,7 +22219,7 @@ func (s *Rule) SetTransition(v *Transition) *Rule {
19640 return s 22219 return s
19641} 22220}
19642 22221
19643// Specifies the use of SSE-KMS to encrypt delievered Inventory reports. 22222// Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
19644type SSEKMS struct { 22223type SSEKMS struct {
19645 _ struct{} `locationName:"SSE-KMS" type:"structure"` 22224 _ struct{} `locationName:"SSE-KMS" type:"structure"`
19646 22225
@@ -19648,7 +22227,7 @@ type SSEKMS struct {
19648 // key to use for encrypting Inventory reports. 22227 // key to use for encrypting Inventory reports.
19649 // 22228 //
19650 // KeyId is a required field 22229 // KeyId is a required field
19651 KeyId *string `type:"string" required:"true"` 22230 KeyId *string `type:"string" required:"true" sensitive:"true"`
19652} 22231}
19653 22232
19654// String returns the string representation 22233// String returns the string representation
@@ -19680,7 +22259,7 @@ func (s *SSEKMS) SetKeyId(v string) *SSEKMS {
19680 return s 22259 return s
19681} 22260}
19682 22261
19683// Specifies the use of SSE-S3 to encrypt delievered Inventory reports. 22262// Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
19684type SSES3 struct { 22263type SSES3 struct {
19685 _ struct{} `locationName:"SSE-S3" type:"structure"` 22264 _ struct{} `locationName:"SSE-S3" type:"structure"`
19686} 22265}
@@ -19797,7 +22376,7 @@ type SelectObjectContentEventStreamReader interface {
19797 // HTTP this will also close the HTTP connection. 22376 // HTTP this will also close the HTTP connection.
19798 Close() error 22377 Close() error
19799 22378
19800 // Returns any error that has occured while reading from the event stream. 22379 // Returns any error that has occurred while reading from the event stream.
19801 Err() error 22380 Err() error
19802} 22381}
19803 22382
@@ -19917,15 +22496,15 @@ func (r *readSelectObjectContentEventStream) unmarshalerForEventType(
19917 22496
19918// Request to filter the contents of an Amazon S3 object based on a simple Structured 22497// Request to filter the contents of an Amazon S3 object based on a simple Structured
19919// Query Language (SQL) statement. In the request, along with the SQL expression, 22498// Query Language (SQL) statement. In the request, along with the SQL expression,
19920// you must also specify a data serialization format (JSON or CSV) of the object. 22499// you must specify a data serialization format (JSON or CSV) of the object.
19921// Amazon S3 uses this to parse object data into records, and returns only records 22500// Amazon S3 uses this to parse object data into records. It returns only records
19922// that match the specified SQL expression. You must also specify the data serialization 22501// that match the specified SQL expression. You must also specify the data serialization
19923// format for the response. For more information, go to S3Select API Documentation 22502// format for the response. For more information, see S3Select API Documentation
19924// (http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html). 22503// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html).
19925type SelectObjectContentInput struct { 22504type SelectObjectContentInput struct {
19926 _ struct{} `locationName:"SelectObjectContentRequest" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 22505 _ struct{} `locationName:"SelectObjectContentRequest" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
19927 22506
19928 // The S3 Bucket. 22507 // The S3 bucket.
19929 // 22508 //
19930 // Bucket is a required field 22509 // Bucket is a required field
19931 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 22510 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
@@ -19935,7 +22514,7 @@ type SelectObjectContentInput struct {
19935 // Expression is a required field 22514 // Expression is a required field
19936 Expression *string `type:"string" required:"true"` 22515 Expression *string `type:"string" required:"true"`
19937 22516
19938 // The type of the provided expression (e.g., SQL). 22517 // The type of the provided expression (for example., SQL).
19939 // 22518 //
19940 // ExpressionType is a required field 22519 // ExpressionType is a required field
19941 ExpressionType *string `type:"string" required:"true" enum:"ExpressionType"` 22520 ExpressionType *string `type:"string" required:"true" enum:"ExpressionType"`
@@ -19945,7 +22524,7 @@ type SelectObjectContentInput struct {
19945 // InputSerialization is a required field 22524 // InputSerialization is a required field
19946 InputSerialization *InputSerialization `type:"structure" required:"true"` 22525 InputSerialization *InputSerialization `type:"structure" required:"true"`
19947 22526
19948 // The Object Key. 22527 // The object key.
19949 // 22528 //
19950 // Key is a required field 22529 // Key is a required field
19951 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 22530 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
@@ -19958,16 +22537,16 @@ type SelectObjectContentInput struct {
19958 // Specifies if periodic request progress information should be enabled. 22537 // Specifies if periodic request progress information should be enabled.
19959 RequestProgress *RequestProgress `type:"structure"` 22538 RequestProgress *RequestProgress `type:"structure"`
19960 22539
19961 // The SSE Algorithm used to encrypt the object. For more information, go to 22540 // The SSE Algorithm used to encrypt the object. For more information, see
19962 // Server-Side Encryption (Using Customer-Provided Encryption Keys (http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 22541 // Server-Side Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
19963 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 22542 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"`
19964 22543
19965 // The SSE Customer Key. For more information, go to Server-Side Encryption 22544 // The SSE Customer Key. For more information, see Server-Side Encryption (Using
19966 // (Using Customer-Provided Encryption Keys (http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 22545 // Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
19967 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 22546 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
19968 22547
19969 // The SSE Customer Key MD5. For more information, go to Server-Side Encryption 22548 // The SSE Customer Key MD5. For more information, see Server-Side Encryption
19970 // (Using Customer-Provided Encryption Keys (http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 22549 // (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
19971 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 22550 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
19972} 22551}
19973 22552
@@ -19987,6 +22566,9 @@ func (s *SelectObjectContentInput) Validate() error {
19987 if s.Bucket == nil { 22566 if s.Bucket == nil {
19988 invalidParams.Add(request.NewErrParamRequired("Bucket")) 22567 invalidParams.Add(request.NewErrParamRequired("Bucket"))
19989 } 22568 }
22569 if s.Bucket != nil && len(*s.Bucket) < 1 {
22570 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
22571 }
19990 if s.Expression == nil { 22572 if s.Expression == nil {
19991 invalidParams.Add(request.NewErrParamRequired("Expression")) 22573 invalidParams.Add(request.NewErrParamRequired("Expression"))
19992 } 22574 }
@@ -20217,7 +22799,7 @@ type ServerSideEncryptionByDefault struct {
20217 22799
20218 // KMS master key ID to use for the default encryption. This parameter is allowed 22800 // KMS master key ID to use for the default encryption. This parameter is allowed
20219 // if SSEAlgorithm is aws:kms. 22801 // if SSEAlgorithm is aws:kms.
20220 KMSMasterKeyID *string `type:"string"` 22802 KMSMasterKeyID *string `type:"string" sensitive:"true"`
20221 22803
20222 // Server-side encryption algorithm to use for the default encryption. 22804 // Server-side encryption algorithm to use for the default encryption.
20223 // 22805 //
@@ -20353,11 +22935,13 @@ func (s *ServerSideEncryptionRule) SetApplyServerSideEncryptionByDefault(v *Serv
20353 return s 22935 return s
20354} 22936}
20355 22937
20356// Container for filters that define which source objects should be replicated. 22938// A container for filters that define which source objects should be replicated.
20357type SourceSelectionCriteria struct { 22939type SourceSelectionCriteria struct {
20358 _ struct{} `type:"structure"` 22940 _ struct{} `type:"structure"`
20359 22941
20360 // Container for filter information of selection of KMS Encrypted S3 objects. 22942 // A container for filter information for the selection of S3 objects encrypted
22943 // with AWS KMS. If you include SourceSelectionCriteria in the replication configuration,
22944 // this element is required.
20361 SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"` 22945 SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"`
20362} 22946}
20363 22947
@@ -20392,12 +22976,13 @@ func (s *SourceSelectionCriteria) SetSseKmsEncryptedObjects(v *SseKmsEncryptedOb
20392 return s 22976 return s
20393} 22977}
20394 22978
20395// Container for filter information of selection of KMS Encrypted S3 objects. 22979// A container for filter information for the selection of S3 objects encrypted
22980// with AWS KMS.
20396type SseKmsEncryptedObjects struct { 22981type SseKmsEncryptedObjects struct {
20397 _ struct{} `type:"structure"` 22982 _ struct{} `type:"structure"`
20398 22983
20399 // The replication for KMS encrypted S3 objects is disabled if status is not 22984 // If the status is not Enabled, replication for S3 objects encrypted with AWS
20400 // Enabled. 22985 // KMS is disabled.
20401 // 22986 //
20402 // Status is a required field 22987 // Status is a required field
20403 Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"` 22988 Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"`
@@ -20435,13 +23020,13 @@ func (s *SseKmsEncryptedObjects) SetStatus(v string) *SseKmsEncryptedObjects {
20435type Stats struct { 23020type Stats struct {
20436 _ struct{} `type:"structure"` 23021 _ struct{} `type:"structure"`
20437 23022
20438 // Total number of uncompressed object bytes processed. 23023 // The total number of uncompressed object bytes processed.
20439 BytesProcessed *int64 `type:"long"` 23024 BytesProcessed *int64 `type:"long"`
20440 23025
20441 // Total number of bytes of records payload data returned. 23026 // The total number of bytes of records payload data returned.
20442 BytesReturned *int64 `type:"long"` 23027 BytesReturned *int64 `type:"long"`
20443 23028
20444 // Total number of object bytes scanned. 23029 // The total number of object bytes scanned.
20445 BytesScanned *int64 `type:"long"` 23030 BytesScanned *int64 `type:"long"`
20446} 23031}
20447 23032
@@ -20756,25 +23341,26 @@ func (s *TargetGrant) SetPermission(v string) *TargetGrant {
20756 return s 23341 return s
20757} 23342}
20758 23343
20759// Container for specifying the configuration when you want Amazon S3 to publish 23344// A container for specifying the configuration for publication of messages
20760// events to an Amazon Simple Notification Service (Amazon SNS) topic. 23345// to an Amazon Simple Notification Service (Amazon SNS) topic.when Amazon S3
23346// detects specified events.
20761type TopicConfiguration struct { 23347type TopicConfiguration struct {
20762 _ struct{} `type:"structure"` 23348 _ struct{} `type:"structure"`
20763 23349
20764 // Events is a required field 23350 // Events is a required field
20765 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 23351 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
20766 23352
20767 // Container for object key name filtering rules. For information about key 23353 // A container for object key name filtering rules. For information about key
20768 // name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 23354 // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
20769 // in the Amazon Simple Storage Service Developer Guide. 23355 // in the Amazon Simple Storage Service Developer Guide.
20770 Filter *NotificationConfigurationFilter `type:"structure"` 23356 Filter *NotificationConfigurationFilter `type:"structure"`
20771 23357
20772 // Optional unique identifier for configurations in a notification configuration. 23358 // An optional unique identifier for configurations in a notification configuration.
20773 // If you don't provide one, Amazon S3 will assign an ID. 23359 // If you don't provide one, Amazon S3 will assign an ID.
20774 Id *string `type:"string"` 23360 Id *string `type:"string"`
20775 23361
20776 // Amazon SNS topic ARN to which Amazon S3 will publish a message when it detects 23362 // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3
20777 // events of specified type. 23363 // will publish a message when it detects events of the specified type.
20778 // 23364 //
20779 // TopicArn is a required field 23365 // TopicArn is a required field
20780 TopicArn *string `locationName:"Topic" type:"string" required:"true"` 23366 TopicArn *string `locationName:"Topic" type:"string" required:"true"`
@@ -20834,11 +23420,13 @@ type TopicConfigurationDeprecated struct {
20834 _ struct{} `type:"structure"` 23420 _ struct{} `type:"structure"`
20835 23421
20836 // Bucket event for which to send notifications. 23422 // Bucket event for which to send notifications.
23423 //
23424 // Deprecated: Event has been deprecated
20837 Event *string `deprecated:"true" type:"string" enum:"Event"` 23425 Event *string `deprecated:"true" type:"string" enum:"Event"`
20838 23426
20839 Events []*string `locationName:"Event" type:"list" flattened:"true"` 23427 Events []*string `locationName:"Event" type:"list" flattened:"true"`
20840 23428
20841 // Optional unique identifier for configurations in a notification configuration. 23429 // An optional unique identifier for configurations in a notification configuration.
20842 // If you don't provide one, Amazon S3 will assign an ID. 23430 // If you don't provide one, Amazon S3 will assign an ID.
20843 Id *string `type:"string"` 23431 Id *string `type:"string"`
20844 23432
@@ -20953,7 +23541,7 @@ type UploadPartCopyInput struct {
20953 // the form bytes=first-last, where the first and last are the zero-based byte 23541 // the form bytes=first-last, where the first and last are the zero-based byte
20954 // offsets to copy. For example, bytes=0-9 indicates that you want to copy the 23542 // offsets to copy. For example, bytes=0-9 indicates that you want to copy the
20955 // first ten bytes of the source. You can copy a range only if the source object 23543 // first ten bytes of the source. You can copy a range only if the source object
20956 // is greater than 5 GB. 23544 // is greater than 5 MB.
20957 CopySourceRange *string `location:"header" locationName:"x-amz-copy-source-range" type:"string"` 23545 CopySourceRange *string `location:"header" locationName:"x-amz-copy-source-range" type:"string"`
20958 23546
20959 // Specifies the algorithm to use when decrypting the source object (e.g., AES256). 23547 // Specifies the algorithm to use when decrypting the source object (e.g., AES256).
@@ -20962,7 +23550,7 @@ type UploadPartCopyInput struct {
20962 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt 23550 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
20963 // the source object. The encryption key provided in this header must be one 23551 // the source object. The encryption key provided in this header must be one
20964 // that was used when the source object was created. 23552 // that was used when the source object was created.
20965 CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string"` 23553 CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
20966 23554
20967 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 23555 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
20968 // Amazon S3 uses this header for a message integrity check to ensure the encryption 23556 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -20993,7 +23581,7 @@ type UploadPartCopyInput struct {
20993 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 23581 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
20994 // header. This must be the same encryption key specified in the initiate multipart 23582 // header. This must be the same encryption key specified in the initiate multipart
20995 // upload request. 23583 // upload request.
20996 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 23584 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
20997 23585
20998 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 23586 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
20999 // Amazon S3 uses this header for a message integrity check to ensure the encryption 23587 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -21022,6 +23610,9 @@ func (s *UploadPartCopyInput) Validate() error {
21022 if s.Bucket == nil { 23610 if s.Bucket == nil {
21023 invalidParams.Add(request.NewErrParamRequired("Bucket")) 23611 invalidParams.Add(request.NewErrParamRequired("Bucket"))
21024 } 23612 }
23613 if s.Bucket != nil && len(*s.Bucket) < 1 {
23614 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
23615 }
21025 if s.CopySource == nil { 23616 if s.CopySource == nil {
21026 invalidParams.Add(request.NewErrParamRequired("CopySource")) 23617 invalidParams.Add(request.NewErrParamRequired("CopySource"))
21027 } 23618 }
@@ -21192,7 +23783,7 @@ type UploadPartCopyOutput struct {
21192 23783
21193 // If present, specifies the ID of the AWS Key Management Service (KMS) master 23784 // If present, specifies the ID of the AWS Key Management Service (KMS) master
21194 // encryption key that was used for the object. 23785 // encryption key that was used for the object.
21195 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 23786 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
21196 23787
21197 // The Server-side encryption algorithm used when storing this object in S3 23788 // The Server-side encryption algorithm used when storing this object in S3
21198 // (e.g., AES256, aws:kms). 23789 // (e.g., AES256, aws:kms).
@@ -21295,7 +23886,7 @@ type UploadPartInput struct {
21295 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 23886 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
21296 // header. This must be the same encryption key specified in the initiate multipart 23887 // header. This must be the same encryption key specified in the initiate multipart
21297 // upload request. 23888 // upload request.
21298 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"` 23889 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
21299 23890
21300 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 23891 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
21301 // Amazon S3 uses this header for a message integrity check to ensure the encryption 23892 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -21324,6 +23915,9 @@ func (s *UploadPartInput) Validate() error {
21324 if s.Bucket == nil { 23915 if s.Bucket == nil {
21325 invalidParams.Add(request.NewErrParamRequired("Bucket")) 23916 invalidParams.Add(request.NewErrParamRequired("Bucket"))
21326 } 23917 }
23918 if s.Bucket != nil && len(*s.Bucket) < 1 {
23919 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
23920 }
21327 if s.Key == nil { 23921 if s.Key == nil {
21328 invalidParams.Add(request.NewErrParamRequired("Key")) 23922 invalidParams.Add(request.NewErrParamRequired("Key"))
21329 } 23923 }
@@ -21445,7 +24039,7 @@ type UploadPartOutput struct {
21445 24039
21446 // If present, specifies the ID of the AWS Key Management Service (KMS) master 24040 // If present, specifies the ID of the AWS Key Management Service (KMS) master
21447 // encryption key that was used for the object. 24041 // encryption key that was used for the object.
21448 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"` 24042 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
21449 24043
21450 // The Server-side encryption algorithm used when storing this object in S3 24044 // The Server-side encryption algorithm used when storing this object in S3
21451 // (e.g., AES256, aws:kms). 24045 // (e.g., AES256, aws:kms).
@@ -21705,6 +24299,14 @@ const (
21705 CompressionTypeBzip2 = "BZIP2" 24299 CompressionTypeBzip2 = "BZIP2"
21706) 24300)
21707 24301
24302const (
24303 // DeleteMarkerReplicationStatusEnabled is a DeleteMarkerReplicationStatus enum value
24304 DeleteMarkerReplicationStatusEnabled = "Enabled"
24305
24306 // DeleteMarkerReplicationStatusDisabled is a DeleteMarkerReplicationStatus enum value
24307 DeleteMarkerReplicationStatusDisabled = "Disabled"
24308)
24309
21708// Requests Amazon S3 to encode the object keys in the response and specifies 24310// Requests Amazon S3 to encode the object keys in the response and specifies
21709// the encoding method to use. An object key may contain any Unicode character; 24311// the encoding method to use. An object key may contain any Unicode character;
21710// however, XML 1.0 parser cannot parse some characters, such as characters 24312// however, XML 1.0 parser cannot parse some characters, such as characters
@@ -21716,7 +24318,7 @@ const (
21716 EncodingTypeUrl = "url" 24318 EncodingTypeUrl = "url"
21717) 24319)
21718 24320
21719// Bucket event for which to send notifications. 24321// The bucket event for which to send notifications.
21720const ( 24322const (
21721 // EventS3ReducedRedundancyLostObject is a Event enum value 24323 // EventS3ReducedRedundancyLostObject is a Event enum value
21722 EventS3ReducedRedundancyLostObject = "s3:ReducedRedundancyLostObject" 24324 EventS3ReducedRedundancyLostObject = "s3:ReducedRedundancyLostObject"
@@ -21744,6 +24346,12 @@ const (
21744 24346
21745 // EventS3ObjectRemovedDeleteMarkerCreated is a Event enum value 24347 // EventS3ObjectRemovedDeleteMarkerCreated is a Event enum value
21746 EventS3ObjectRemovedDeleteMarkerCreated = "s3:ObjectRemoved:DeleteMarkerCreated" 24348 EventS3ObjectRemovedDeleteMarkerCreated = "s3:ObjectRemoved:DeleteMarkerCreated"
24349
24350 // EventS3ObjectRestorePost is a Event enum value
24351 EventS3ObjectRestorePost = "s3:ObjectRestore:Post"
24352
24353 // EventS3ObjectRestoreCompleted is a Event enum value
24354 EventS3ObjectRestoreCompleted = "s3:ObjectRestore:Completed"
21747) 24355)
21748 24356
21749const ( 24357const (
@@ -21784,6 +24392,9 @@ const (
21784 24392
21785 // InventoryFormatOrc is a InventoryFormat enum value 24393 // InventoryFormatOrc is a InventoryFormat enum value
21786 InventoryFormatOrc = "ORC" 24394 InventoryFormatOrc = "ORC"
24395
24396 // InventoryFormatParquet is a InventoryFormat enum value
24397 InventoryFormatParquet = "Parquet"
21787) 24398)
21788 24399
21789const ( 24400const (
@@ -21823,6 +24434,15 @@ const (
21823 24434
21824 // InventoryOptionalFieldEncryptionStatus is a InventoryOptionalField enum value 24435 // InventoryOptionalFieldEncryptionStatus is a InventoryOptionalField enum value
21825 InventoryOptionalFieldEncryptionStatus = "EncryptionStatus" 24436 InventoryOptionalFieldEncryptionStatus = "EncryptionStatus"
24437
24438 // InventoryOptionalFieldObjectLockRetainUntilDate is a InventoryOptionalField enum value
24439 InventoryOptionalFieldObjectLockRetainUntilDate = "ObjectLockRetainUntilDate"
24440
24441 // InventoryOptionalFieldObjectLockMode is a InventoryOptionalField enum value
24442 InventoryOptionalFieldObjectLockMode = "ObjectLockMode"
24443
24444 // InventoryOptionalFieldObjectLockLegalHoldStatus is a InventoryOptionalField enum value
24445 InventoryOptionalFieldObjectLockLegalHoldStatus = "ObjectLockLegalHoldStatus"
21826) 24446)
21827 24447
21828const ( 24448const (
@@ -21881,6 +24501,35 @@ const (
21881) 24501)
21882 24502
21883const ( 24503const (
24504 // ObjectLockEnabledEnabled is a ObjectLockEnabled enum value
24505 ObjectLockEnabledEnabled = "Enabled"
24506)
24507
24508const (
24509 // ObjectLockLegalHoldStatusOn is a ObjectLockLegalHoldStatus enum value
24510 ObjectLockLegalHoldStatusOn = "ON"
24511
24512 // ObjectLockLegalHoldStatusOff is a ObjectLockLegalHoldStatus enum value
24513 ObjectLockLegalHoldStatusOff = "OFF"
24514)
24515
24516const (
24517 // ObjectLockModeGovernance is a ObjectLockMode enum value
24518 ObjectLockModeGovernance = "GOVERNANCE"
24519
24520 // ObjectLockModeCompliance is a ObjectLockMode enum value
24521 ObjectLockModeCompliance = "COMPLIANCE"
24522)
24523
24524const (
24525 // ObjectLockRetentionModeGovernance is a ObjectLockRetentionMode enum value
24526 ObjectLockRetentionModeGovernance = "GOVERNANCE"
24527
24528 // ObjectLockRetentionModeCompliance is a ObjectLockRetentionMode enum value
24529 ObjectLockRetentionModeCompliance = "COMPLIANCE"
24530)
24531
24532const (
21884 // ObjectStorageClassStandard is a ObjectStorageClass enum value 24533 // ObjectStorageClassStandard is a ObjectStorageClass enum value
21885 ObjectStorageClassStandard = "STANDARD" 24534 ObjectStorageClassStandard = "STANDARD"
21886 24535
@@ -21895,6 +24544,12 @@ const (
21895 24544
21896 // ObjectStorageClassOnezoneIa is a ObjectStorageClass enum value 24545 // ObjectStorageClassOnezoneIa is a ObjectStorageClass enum value
21897 ObjectStorageClassOnezoneIa = "ONEZONE_IA" 24546 ObjectStorageClassOnezoneIa = "ONEZONE_IA"
24547
24548 // ObjectStorageClassIntelligentTiering is a ObjectStorageClass enum value
24549 ObjectStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
24550
24551 // ObjectStorageClassDeepArchive is a ObjectStorageClass enum value
24552 ObjectStorageClassDeepArchive = "DEEP_ARCHIVE"
21898) 24553)
21899 24554
21900const ( 24555const (
@@ -22019,6 +24674,15 @@ const (
22019 24674
22020 // StorageClassOnezoneIa is a StorageClass enum value 24675 // StorageClassOnezoneIa is a StorageClass enum value
22021 StorageClassOnezoneIa = "ONEZONE_IA" 24676 StorageClassOnezoneIa = "ONEZONE_IA"
24677
24678 // StorageClassIntelligentTiering is a StorageClass enum value
24679 StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
24680
24681 // StorageClassGlacier is a StorageClass enum value
24682 StorageClassGlacier = "GLACIER"
24683
24684 // StorageClassDeepArchive is a StorageClass enum value
24685 StorageClassDeepArchive = "DEEP_ARCHIVE"
22022) 24686)
22023 24687
22024const ( 24688const (
@@ -22054,6 +24718,12 @@ const (
22054 24718
22055 // TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value 24719 // TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value
22056 TransitionStorageClassOnezoneIa = "ONEZONE_IA" 24720 TransitionStorageClassOnezoneIa = "ONEZONE_IA"
24721
24722 // TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value
24723 TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
24724
24725 // TransitionStorageClassDeepArchive is a TransitionStorageClass enum value
24726 TransitionStorageClassDeepArchive = "DEEP_ARCHIVE"
22057) 24727)
22058 24728
22059const ( 24729const (
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
index a55beab..95f2456 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
@@ -3,6 +3,7 @@ package s3
3import ( 3import (
4 "github.com/aws/aws-sdk-go/aws/client" 4 "github.com/aws/aws-sdk-go/aws/client"
5 "github.com/aws/aws-sdk-go/aws/request" 5 "github.com/aws/aws-sdk-go/aws/request"
6 "github.com/aws/aws-sdk-go/internal/s3err"
6) 7)
7 8
8func init() { 9func init() {
@@ -21,6 +22,7 @@ func defaultInitClientFn(c *client.Client) {
21 // S3 uses custom error unmarshaling logic 22 // S3 uses custom error unmarshaling logic
22 c.Handlers.UnmarshalError.Clear() 23 c.Handlers.UnmarshalError.Clear()
23 c.Handlers.UnmarshalError.PushBack(unmarshalError) 24 c.Handlers.UnmarshalError.PushBack(unmarshalError)
25 c.Handlers.UnmarshalError.PushBackNamed(s3err.RequestFailureWrapperHandler())
24} 26}
25 27
26func defaultInitRequestFn(r *request.Request) { 28func defaultInitRequestFn(r *request.Request) {
@@ -31,6 +33,7 @@ func defaultInitRequestFn(r *request.Request) {
31 switch r.Operation.Name { 33 switch r.Operation.Name {
32 case opPutBucketCors, opPutBucketLifecycle, opPutBucketPolicy, 34 case opPutBucketCors, opPutBucketLifecycle, opPutBucketPolicy,
33 opPutBucketTagging, opDeleteObjects, opPutBucketLifecycleConfiguration, 35 opPutBucketTagging, opDeleteObjects, opPutBucketLifecycleConfiguration,
36 opPutObjectLegalHold, opPutObjectRetention, opPutObjectLockConfiguration,
34 opPutBucketReplication: 37 opPutBucketReplication:
35 // These S3 operations require Content-MD5 to be set 38 // These S3 operations require Content-MD5 to be set
36 r.Handlers.Build.PushBack(contentMD5) 39 r.Handlers.Build.PushBack(contentMD5)
@@ -42,6 +45,7 @@ func defaultInitRequestFn(r *request.Request) {
42 r.Handlers.Validate.PushFront(populateLocationConstraint) 45 r.Handlers.Validate.PushFront(populateLocationConstraint)
43 case opCopyObject, opUploadPartCopy, opCompleteMultipartUpload: 46 case opCopyObject, opUploadPartCopy, opCompleteMultipartUpload:
44 r.Handlers.Unmarshal.PushFront(copyMultipartStatusOKUnmarhsalError) 47 r.Handlers.Unmarshal.PushFront(copyMultipartStatusOKUnmarhsalError)
48 r.Handlers.Unmarshal.PushBackNamed(s3err.RequestFailureWrapperHandler())
45 case opPutObject, opUploadPart: 49 case opPutObject, opUploadPart:
46 r.Handlers.Build.PushBack(computeBodyHashes) 50 r.Handlers.Build.PushBack(computeBodyHashes)
47 // Disabled until #1837 root issue is resolved. 51 // Disabled until #1837 root issue is resolved.
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/service.go b/vendor/github.com/aws/aws-sdk-go/service/s3/service.go
index 20de53f..d17dcc9 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/service.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/service.go
@@ -67,7 +67,9 @@ func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
67 } 67 }
68 68
69 // Handlers 69 // Handlers
70 svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) 70 svc.Handlers.Sign.PushBackNamed(v4.BuildNamedHandler(v4.SignRequestHandler.Name, func(s *v4.Signer) {
71 s.DisableURIPathEscaping = true
72 }))
71 svc.Handlers.Build.PushBackNamed(restxml.BuildHandler) 73 svc.Handlers.Build.PushBackNamed(restxml.BuildHandler)
72 svc.Handlers.Unmarshal.PushBackNamed(restxml.UnmarshalHandler) 74 svc.Handlers.Unmarshal.PushBackNamed(restxml.UnmarshalHandler)
73 svc.Handlers.UnmarshalMeta.PushBackNamed(restxml.UnmarshalMetaHandler) 75 svc.Handlers.UnmarshalMeta.PushBackNamed(restxml.UnmarshalMetaHandler)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
index 9f33efc..fde3050 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
@@ -13,7 +13,11 @@ import (
13func copyMultipartStatusOKUnmarhsalError(r *request.Request) { 13func copyMultipartStatusOKUnmarhsalError(r *request.Request) {
14 b, err := ioutil.ReadAll(r.HTTPResponse.Body) 14 b, err := ioutil.ReadAll(r.HTTPResponse.Body)
15 if err != nil { 15 if err != nil {
16 r.Error = awserr.New("SerializationError", "unable to read response body", err) 16 r.Error = awserr.NewRequestFailure(
17 awserr.New("SerializationError", "unable to read response body", err),
18 r.HTTPResponse.StatusCode,
19 r.RequestID,
20 )
17 return 21 return
18 } 22 }
19 body := bytes.NewReader(b) 23 body := bytes.NewReader(b)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
index bcca862..1db7e13 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
@@ -23,22 +23,22 @@ func unmarshalError(r *request.Request) {
23 defer r.HTTPResponse.Body.Close() 23 defer r.HTTPResponse.Body.Close()
24 defer io.Copy(ioutil.Discard, r.HTTPResponse.Body) 24 defer io.Copy(ioutil.Discard, r.HTTPResponse.Body)
25 25
26 hostID := r.HTTPResponse.Header.Get("X-Amz-Id-2")
27
28 // Bucket exists in a different region, and request needs 26 // Bucket exists in a different region, and request needs
29 // to be made to the correct region. 27 // to be made to the correct region.
30 if r.HTTPResponse.StatusCode == http.StatusMovedPermanently { 28 if r.HTTPResponse.StatusCode == http.StatusMovedPermanently {
31 r.Error = requestFailure{ 29 msg := fmt.Sprintf(
32 RequestFailure: awserr.NewRequestFailure( 30 "incorrect region, the bucket is not in '%s' region at endpoint '%s'",
33 awserr.New("BucketRegionError", 31 aws.StringValue(r.Config.Region),
34 fmt.Sprintf("incorrect region, the bucket is not in '%s' region", 32 aws.StringValue(r.Config.Endpoint),
35 aws.StringValue(r.Config.Region)), 33 )
36 nil), 34 if v := r.HTTPResponse.Header.Get("x-amz-bucket-region"); len(v) != 0 {
37 r.HTTPResponse.StatusCode, 35 msg += fmt.Sprintf(", bucket is in '%s' region", v)
38 r.RequestID,
39 ),
40 hostID: hostID,
41 } 36 }
37 r.Error = awserr.NewRequestFailure(
38 awserr.New("BucketRegionError", msg, nil),
39 r.HTTPResponse.StatusCode,
40 r.RequestID,
41 )
42 return 42 return
43 } 43 }
44 44
@@ -63,14 +63,11 @@ func unmarshalError(r *request.Request) {
63 errMsg = statusText 63 errMsg = statusText
64 } 64 }
65 65
66 r.Error = requestFailure{ 66 r.Error = awserr.NewRequestFailure(
67 RequestFailure: awserr.NewRequestFailure( 67 awserr.New(errCode, errMsg, err),
68 awserr.New(errCode, errMsg, err), 68 r.HTTPResponse.StatusCode,
69 r.HTTPResponse.StatusCode, 69 r.RequestID,
70 r.RequestID, 70 )
71 ),
72 hostID: hostID,
73 }
74} 71}
75 72
76// A RequestFailure provides access to the S3 Request ID and Host ID values 73// A RequestFailure provides access to the S3 Request ID and Host ID values
@@ -83,21 +80,3 @@ type RequestFailure interface {
83 // Host ID is the S3 Host ID needed for debug, and contacting support 80 // Host ID is the S3 Host ID needed for debug, and contacting support
84 HostID() string 81 HostID() string
85} 82}
86
87type requestFailure struct {
88 awserr.RequestFailure
89
90 hostID string
91}
92
93func (r requestFailure) Error() string {
94 extra := fmt.Sprintf("status code: %d, request id: %s, host id: %s",
95 r.StatusCode(), r.RequestID(), r.hostID)
96 return awserr.SprintError(r.Code(), r.Message(), extra, r.OrigErr())
97}
98func (r requestFailure) String() string {
99 return r.Error()
100}
101func (r requestFailure) HostID() string {
102 return r.hostID
103}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
index 6f89a79..8113089 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
@@ -7,6 +7,7 @@ import (
7 7
8 "github.com/aws/aws-sdk-go/aws" 8 "github.com/aws/aws-sdk-go/aws"
9 "github.com/aws/aws-sdk-go/aws/awsutil" 9 "github.com/aws/aws-sdk-go/aws/awsutil"
10 "github.com/aws/aws-sdk-go/aws/credentials"
10 "github.com/aws/aws-sdk-go/aws/request" 11 "github.com/aws/aws-sdk-go/aws/request"
11) 12)
12 13
@@ -15,7 +16,7 @@ const opAssumeRole = "AssumeRole"
15// AssumeRoleRequest generates a "aws/request.Request" representing the 16// AssumeRoleRequest generates a "aws/request.Request" representing the
16// client's request for the AssumeRole operation. The "output" return 17// client's request for the AssumeRole operation. The "output" return
17// value will be populated with the request's response once the request completes 18// value will be populated with the request's response once the request completes
18// successfuly. 19// successfully.
19// 20//
20// Use "Send" method on the returned Request to send the API call to the service. 21// Use "Send" method on the returned Request to send the API call to the service.
21// the "output" return value is not valid until after Send returns without error. 22// the "output" return value is not valid until after Send returns without error.
@@ -209,7 +210,7 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML"
209// AssumeRoleWithSAMLRequest generates a "aws/request.Request" representing the 210// AssumeRoleWithSAMLRequest generates a "aws/request.Request" representing the
210// client's request for the AssumeRoleWithSAML operation. The "output" return 211// client's request for the AssumeRoleWithSAML operation. The "output" return
211// value will be populated with the request's response once the request completes 212// value will be populated with the request's response once the request completes
212// successfuly. 213// successfully.
213// 214//
214// Use "Send" method on the returned Request to send the API call to the service. 215// Use "Send" method on the returned Request to send the API call to the service.
215// the "output" return value is not valid until after Send returns without error. 216// the "output" return value is not valid until after Send returns without error.
@@ -243,6 +244,7 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re
243 244
244 output = &AssumeRoleWithSAMLOutput{} 245 output = &AssumeRoleWithSAMLOutput{}
245 req = c.newRequest(op, input, output) 246 req = c.newRequest(op, input, output)
247 req.Config.Credentials = credentials.AnonymousCredentials
246 return 248 return
247} 249}
248 250
@@ -391,7 +393,7 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity"
391// AssumeRoleWithWebIdentityRequest generates a "aws/request.Request" representing the 393// AssumeRoleWithWebIdentityRequest generates a "aws/request.Request" representing the
392// client's request for the AssumeRoleWithWebIdentity operation. The "output" return 394// client's request for the AssumeRoleWithWebIdentity operation. The "output" return
393// value will be populated with the request's response once the request completes 395// value will be populated with the request's response once the request completes
394// successfuly. 396// successfully.
395// 397//
396// Use "Send" method on the returned Request to send the API call to the service. 398// Use "Send" method on the returned Request to send the API call to the service.
397// the "output" return value is not valid until after Send returns without error. 399// the "output" return value is not valid until after Send returns without error.
@@ -425,6 +427,7 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
425 427
426 output = &AssumeRoleWithWebIdentityOutput{} 428 output = &AssumeRoleWithWebIdentityOutput{}
427 req = c.newRequest(op, input, output) 429 req = c.newRequest(op, input, output)
430 req.Config.Credentials = credentials.AnonymousCredentials
428 return 431 return
429} 432}
430 433
@@ -602,7 +605,7 @@ const opDecodeAuthorizationMessage = "DecodeAuthorizationMessage"
602// DecodeAuthorizationMessageRequest generates a "aws/request.Request" representing the 605// DecodeAuthorizationMessageRequest generates a "aws/request.Request" representing the
603// client's request for the DecodeAuthorizationMessage operation. The "output" return 606// client's request for the DecodeAuthorizationMessage operation. The "output" return
604// value will be populated with the request's response once the request completes 607// value will be populated with the request's response once the request completes
605// successfuly. 608// successfully.
606// 609//
607// Use "Send" method on the returned Request to send the API call to the service. 610// Use "Send" method on the returned Request to send the API call to the service.
608// the "output" return value is not valid until after Send returns without error. 611// the "output" return value is not valid until after Send returns without error.
@@ -714,7 +717,7 @@ const opGetCallerIdentity = "GetCallerIdentity"
714// GetCallerIdentityRequest generates a "aws/request.Request" representing the 717// GetCallerIdentityRequest generates a "aws/request.Request" representing the
715// client's request for the GetCallerIdentity operation. The "output" return 718// client's request for the GetCallerIdentity operation. The "output" return
716// value will be populated with the request's response once the request completes 719// value will be populated with the request's response once the request completes
717// successfuly. 720// successfully.
718// 721//
719// Use "Send" method on the returned Request to send the API call to the service. 722// Use "Send" method on the returned Request to send the API call to the service.
720// the "output" return value is not valid until after Send returns without error. 723// the "output" return value is not valid until after Send returns without error.
@@ -789,7 +792,7 @@ const opGetFederationToken = "GetFederationToken"
789// GetFederationTokenRequest generates a "aws/request.Request" representing the 792// GetFederationTokenRequest generates a "aws/request.Request" representing the
790// client's request for the GetFederationToken operation. The "output" return 793// client's request for the GetFederationToken operation. The "output" return
791// value will be populated with the request's response once the request completes 794// value will be populated with the request's response once the request completes
792// successfuly. 795// successfully.
793// 796//
794// Use "Send" method on the returned Request to send the API call to the service. 797// Use "Send" method on the returned Request to send the API call to the service.
795// the "output" return value is not valid until after Send returns without error. 798// the "output" return value is not valid until after Send returns without error.
@@ -958,7 +961,7 @@ const opGetSessionToken = "GetSessionToken"
958// GetSessionTokenRequest generates a "aws/request.Request" representing the 961// GetSessionTokenRequest generates a "aws/request.Request" representing the
959// client's request for the GetSessionToken operation. The "output" return 962// client's request for the GetSessionToken operation. The "output" return
960// value will be populated with the request's response once the request completes 963// value will be populated with the request's response once the request completes
961// successfuly. 964// successfully.
962// 965//
963// Use "Send" method on the returned Request to send the API call to the service. 966// Use "Send" method on the returned Request to send the API call to the service.
964// the "output" return value is not valid until after Send returns without error. 967// the "output" return value is not valid until after Send returns without error.
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go
deleted file mode 100644
index 4010cc7..0000000
--- a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go
+++ /dev/null
@@ -1,12 +0,0 @@
1package sts
2
3import "github.com/aws/aws-sdk-go/aws/request"
4
5func init() {
6 initRequest = func(r *request.Request) {
7 switch r.Operation.Name {
8 case opAssumeRoleWithSAML, opAssumeRoleWithWebIdentity:
9 r.Handlers.Sign.Clear() // these operations are unsigned
10 }
11 }
12}