]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blame - vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
update vendor and go.mod
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / aws / aws-sdk-go / service / s3 / customizations.go
CommitLineData
bae9f6d2
JC
1package s3
2
3import (
4 "github.com/aws/aws-sdk-go/aws/client"
5 "github.com/aws/aws-sdk-go/aws/request"
107c1cdb 6 "github.com/aws/aws-sdk-go/internal/s3err"
bae9f6d2
JC
7)
8
9func init() {
10 initClient = defaultInitClientFn
11 initRequest = defaultInitRequestFn
12}
13
14func defaultInitClientFn(c *client.Client) {
15 // Support building custom endpoints based on config
16 c.Handlers.Build.PushFront(updateEndpointForS3Config)
17
18 // Require SSL when using SSE keys
19 c.Handlers.Validate.PushBack(validateSSERequiresSSL)
863486a6
AG
20 c.Handlers.Build.PushBack(computeSSEKeyMD5)
21 c.Handlers.Build.PushBack(computeCopySourceSSEKeyMD5)
bae9f6d2
JC
22
23 // S3 uses custom error unmarshaling logic
24 c.Handlers.UnmarshalError.Clear()
25 c.Handlers.UnmarshalError.PushBack(unmarshalError)
107c1cdb 26 c.Handlers.UnmarshalError.PushBackNamed(s3err.RequestFailureWrapperHandler())
bae9f6d2
JC
27}
28
29func defaultInitRequestFn(r *request.Request) {
30 // Add reuest handlers for specific platforms.
31 // e.g. 100-continue support for PUT requests using Go 1.6
32 platformRequestHandlers(r)
33
34 switch r.Operation.Name {
35 case opPutBucketCors, opPutBucketLifecycle, opPutBucketPolicy,
36 opPutBucketTagging, opDeleteObjects, opPutBucketLifecycleConfiguration,
107c1cdb 37 opPutObjectLegalHold, opPutObjectRetention, opPutObjectLockConfiguration,
bae9f6d2
JC
38 opPutBucketReplication:
39 // These S3 operations require Content-MD5 to be set
40 r.Handlers.Build.PushBack(contentMD5)
41 case opGetBucketLocation:
42 // GetBucketLocation has custom parsing logic
43 r.Handlers.Unmarshal.PushFront(buildGetBucketLocation)
44 case opCreateBucket:
45 // Auto-populate LocationConstraint with current region
46 r.Handlers.Validate.PushFront(populateLocationConstraint)
47 case opCopyObject, opUploadPartCopy, opCompleteMultipartUpload:
48 r.Handlers.Unmarshal.PushFront(copyMultipartStatusOKUnmarhsalError)
107c1cdb 49 r.Handlers.Unmarshal.PushBackNamed(s3err.RequestFailureWrapperHandler())
15c0b25d
AP
50 case opPutObject, opUploadPart:
51 r.Handlers.Build.PushBack(computeBodyHashes)
52 // Disabled until #1837 root issue is resolved.
53 // case opGetObject:
54 // r.Handlers.Build.PushBack(askForTxEncodingAppendMD5)
55 // r.Handlers.Unmarshal.PushBack(useMD5ValidationReader)
bae9f6d2
JC
56 }
57}
15c0b25d
AP
58
59// bucketGetter is an accessor interface to grab the "Bucket" field from
60// an S3 type.
61type bucketGetter interface {
62 getBucket() string
63}
64
65// sseCustomerKeyGetter is an accessor interface to grab the "SSECustomerKey"
66// field from an S3 type.
67type sseCustomerKeyGetter interface {
68 getSSECustomerKey() string
69}
70
71// copySourceSSECustomerKeyGetter is an accessor interface to grab the
72// "CopySourceSSECustomerKey" field from an S3 type.
73type copySourceSSECustomerKeyGetter interface {
74 getCopySourceSSECustomerKey() string
75}