aws-sdk-s3 1.127.0 → 1.141.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +87 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +421 -81
  5. data/lib/aws-sdk-s3/bucket_acl.rb +9 -9
  6. data/lib/aws-sdk-s3/bucket_cors.rb +12 -12
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -12
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -12
  9. data/lib/aws-sdk-s3/bucket_logging.rb +16 -9
  10. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  11. data/lib/aws-sdk-s3/bucket_policy.rb +58 -14
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +9 -9
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +12 -12
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +27 -27
  15. data/lib/aws-sdk-s3/bucket_website.rb +12 -12
  16. data/lib/aws-sdk-s3/client.rb +5707 -2536
  17. data/lib/aws-sdk-s3/client_api.rb +111 -16
  18. data/lib/aws-sdk-s3/customizations/errors.rb +1 -1
  19. data/lib/aws-sdk-s3/customizations/object.rb +63 -0
  20. data/lib/aws-sdk-s3/customizations.rb +5 -0
  21. data/lib/aws-sdk-s3/endpoint_parameters.rb +36 -0
  22. data/lib/aws-sdk-s3/endpoint_provider.rb +104 -246
  23. data/lib/aws-sdk-s3/endpoints.rb +440 -0
  24. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  25. data/lib/aws-sdk-s3/express_credentials_cache.rb +30 -0
  26. data/lib/aws-sdk-s3/express_credentials_provider.rb +36 -0
  27. data/lib/aws-sdk-s3/file_downloader.rb +142 -21
  28. data/lib/aws-sdk-s3/multipart_file_uploader.rb +0 -1
  29. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +0 -1
  30. data/lib/aws-sdk-s3/multipart_upload.rb +69 -16
  31. data/lib/aws-sdk-s3/multipart_upload_part.rb +160 -35
  32. data/lib/aws-sdk-s3/object.rb +1504 -235
  33. data/lib/aws-sdk-s3/object_acl.rb +29 -15
  34. data/lib/aws-sdk-s3/object_multipart_copier.rb +33 -17
  35. data/lib/aws-sdk-s3/object_summary.rb +1367 -254
  36. data/lib/aws-sdk-s3/object_version.rb +297 -42
  37. data/lib/aws-sdk-s3/plugins/endpoints.rb +13 -2
  38. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +90 -0
  39. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  40. data/lib/aws-sdk-s3/plugins/md5s.rb +2 -1
  41. data/lib/aws-sdk-s3/presigned_post.rb +52 -43
  42. data/lib/aws-sdk-s3/presigner.rb +2 -2
  43. data/lib/aws-sdk-s3/resource.rb +83 -11
  44. data/lib/aws-sdk-s3/types.rb +4500 -1351
  45. data/lib/aws-sdk-s3.rb +1 -1
  46. metadata +11 -7
@@ -22,6 +22,8 @@ module Aws::S3
22
22
  AcceptRanges = Shapes::StringShape.new(name: 'AcceptRanges')
23
23
  AccessControlPolicy = Shapes::StructureShape.new(name: 'AccessControlPolicy')
24
24
  AccessControlTranslation = Shapes::StructureShape.new(name: 'AccessControlTranslation')
25
+ AccessKeyIdValue = Shapes::StringShape.new(name: 'AccessKeyIdValue')
26
+ AccessPointAlias = Shapes::BooleanShape.new(name: 'AccessPointAlias')
25
27
  AccessPointArn = Shapes::StringShape.new(name: 'AccessPointArn')
26
28
  AccountId = Shapes::StringShape.new(name: 'AccountId')
27
29
  AllowQuotedRecordDelimiter = Shapes::BooleanShape.new(name: 'AllowQuotedRecordDelimiter')
@@ -46,12 +48,15 @@ module Aws::S3
46
48
  BucketAlreadyExists = Shapes::StructureShape.new(name: 'BucketAlreadyExists')
47
49
  BucketAlreadyOwnedByYou = Shapes::StructureShape.new(name: 'BucketAlreadyOwnedByYou')
48
50
  BucketCannedACL = Shapes::StringShape.new(name: 'BucketCannedACL')
51
+ BucketInfo = Shapes::StructureShape.new(name: 'BucketInfo')
49
52
  BucketKeyEnabled = Shapes::BooleanShape.new(name: 'BucketKeyEnabled')
50
53
  BucketLifecycleConfiguration = Shapes::StructureShape.new(name: 'BucketLifecycleConfiguration')
51
54
  BucketLocationConstraint = Shapes::StringShape.new(name: 'BucketLocationConstraint')
55
+ BucketLocationName = Shapes::StringShape.new(name: 'BucketLocationName')
52
56
  BucketLoggingStatus = Shapes::StructureShape.new(name: 'BucketLoggingStatus')
53
57
  BucketLogsPermission = Shapes::StringShape.new(name: 'BucketLogsPermission')
54
58
  BucketName = Shapes::StringShape.new(name: 'BucketName')
59
+ BucketType = Shapes::StringShape.new(name: 'BucketType')
55
60
  BucketVersioningStatus = Shapes::StringShape.new(name: 'BucketVersioningStatus')
56
61
  Buckets = Shapes::ListShape.new(name: 'Buckets')
57
62
  BypassGovernanceRetention = Shapes::BooleanShape.new(name: 'BypassGovernanceRetention')
@@ -114,7 +119,10 @@ module Aws::S3
114
119
  CreateBucketRequest = Shapes::StructureShape.new(name: 'CreateBucketRequest')
115
120
  CreateMultipartUploadOutput = Shapes::StructureShape.new(name: 'CreateMultipartUploadOutput')
116
121
  CreateMultipartUploadRequest = Shapes::StructureShape.new(name: 'CreateMultipartUploadRequest')
122
+ CreateSessionOutput = Shapes::StructureShape.new(name: 'CreateSessionOutput')
123
+ CreateSessionRequest = Shapes::StructureShape.new(name: 'CreateSessionRequest')
117
124
  CreationDate = Shapes::TimestampShape.new(name: 'CreationDate')
125
+ DataRedundancy = Shapes::StringShape.new(name: 'DataRedundancy')
118
126
  Date = Shapes::TimestampShape.new(name: 'Date', timestampFormat: "iso8601")
119
127
  Days = Shapes::IntegerShape.new(name: 'Days')
120
128
  DaysAfterInitiation = Shapes::IntegerShape.new(name: 'DaysAfterInitiation')
@@ -151,6 +159,7 @@ module Aws::S3
151
159
  Delimiter = Shapes::StringShape.new(name: 'Delimiter')
152
160
  Description = Shapes::StringShape.new(name: 'Description')
153
161
  Destination = Shapes::StructureShape.new(name: 'Destination')
162
+ DirectoryBucketToken = Shapes::StringShape.new(name: 'DirectoryBucketToken')
154
163
  DisplayName = Shapes::StringShape.new(name: 'DisplayName')
155
164
  ETag = Shapes::StringShape.new(name: 'ETag')
156
165
  EmailAddress = Shapes::StringShape.new(name: 'EmailAddress')
@@ -256,6 +265,7 @@ module Aws::S3
256
265
  GrantWriteACP = Shapes::StringShape.new(name: 'GrantWriteACP')
257
266
  Grantee = Shapes::StructureShape.new(name: 'Grantee', xmlNamespace: {"prefix"=>"xsi", "uri"=>"http://www.w3.org/2001/XMLSchema-instance"})
258
267
  Grants = Shapes::ListShape.new(name: 'Grants')
268
+ HeadBucketOutput = Shapes::StructureShape.new(name: 'HeadBucketOutput')
259
269
  HeadBucketRequest = Shapes::StructureShape.new(name: 'HeadBucketRequest')
260
270
  HeadObjectOutput = Shapes::StructureShape.new(name: 'HeadObjectOutput')
261
271
  HeadObjectRequest = Shapes::StructureShape.new(name: 'HeadObjectRequest')
@@ -324,6 +334,8 @@ module Aws::S3
324
334
  ListBucketMetricsConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsOutput')
325
335
  ListBucketMetricsConfigurationsRequest = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsRequest')
326
336
  ListBucketsOutput = Shapes::StructureShape.new(name: 'ListBucketsOutput')
337
+ ListDirectoryBucketsOutput = Shapes::StructureShape.new(name: 'ListDirectoryBucketsOutput')
338
+ ListDirectoryBucketsRequest = Shapes::StructureShape.new(name: 'ListDirectoryBucketsRequest')
327
339
  ListMultipartUploadsOutput = Shapes::StructureShape.new(name: 'ListMultipartUploadsOutput')
328
340
  ListMultipartUploadsRequest = Shapes::StructureShape.new(name: 'ListMultipartUploadsRequest')
329
341
  ListObjectVersionsOutput = Shapes::StructureShape.new(name: 'ListObjectVersionsOutput')
@@ -335,13 +347,17 @@ module Aws::S3
335
347
  ListPartsOutput = Shapes::StructureShape.new(name: 'ListPartsOutput')
336
348
  ListPartsRequest = Shapes::StructureShape.new(name: 'ListPartsRequest')
337
349
  Location = Shapes::StringShape.new(name: 'Location')
350
+ LocationInfo = Shapes::StructureShape.new(name: 'LocationInfo')
351
+ LocationNameAsString = Shapes::StringShape.new(name: 'LocationNameAsString')
338
352
  LocationPrefix = Shapes::StringShape.new(name: 'LocationPrefix')
353
+ LocationType = Shapes::StringShape.new(name: 'LocationType')
339
354
  LoggingEnabled = Shapes::StructureShape.new(name: 'LoggingEnabled')
340
355
  MFA = Shapes::StringShape.new(name: 'MFA')
341
356
  MFADelete = Shapes::StringShape.new(name: 'MFADelete')
342
357
  MFADeleteStatus = Shapes::StringShape.new(name: 'MFADeleteStatus')
343
358
  Marker = Shapes::StringShape.new(name: 'Marker')
344
359
  MaxAgeSeconds = Shapes::IntegerShape.new(name: 'MaxAgeSeconds')
360
+ MaxDirectoryBuckets = Shapes::IntegerShape.new(name: 'MaxDirectoryBuckets')
345
361
  MaxKeys = Shapes::IntegerShape.new(name: 'MaxKeys')
346
362
  MaxParts = Shapes::IntegerShape.new(name: 'MaxParts')
347
363
  MaxUploads = Shapes::IntegerShape.new(name: 'MaxUploads')
@@ -423,6 +439,8 @@ module Aws::S3
423
439
  Part = Shapes::StructureShape.new(name: 'Part')
424
440
  PartNumber = Shapes::IntegerShape.new(name: 'PartNumber')
425
441
  PartNumberMarker = Shapes::IntegerShape.new(name: 'PartNumberMarker')
442
+ PartitionDateSource = Shapes::StringShape.new(name: 'PartitionDateSource')
443
+ PartitionedPrefix = Shapes::StructureShape.new(name: 'PartitionedPrefix')
426
444
  Parts = Shapes::ListShape.new(name: 'Parts', flattened: true)
427
445
  PartsCount = Shapes::IntegerShape.new(name: 'PartsCount')
428
446
  PartsList = Shapes::ListShape.new(name: 'PartsList', flattened: true)
@@ -482,6 +500,7 @@ module Aws::S3
482
500
  RecordsEvent = Shapes::StructureShape.new(name: 'RecordsEvent')
483
501
  Redirect = Shapes::StructureShape.new(name: 'Redirect')
484
502
  RedirectAllRequestsTo = Shapes::StructureShape.new(name: 'RedirectAllRequestsTo')
503
+ Region = Shapes::StringShape.new(name: 'Region')
485
504
  ReplaceKeyPrefixWith = Shapes::StringShape.new(name: 'ReplaceKeyPrefixWith')
486
505
  ReplaceKeyWith = Shapes::StringShape.new(name: 'ReplaceKeyWith')
487
506
  ReplicaKmsKeyID = Shapes::StringShape.new(name: 'ReplicaKmsKeyID')
@@ -541,7 +560,12 @@ module Aws::S3
541
560
  ServerSideEncryptionConfiguration = Shapes::StructureShape.new(name: 'ServerSideEncryptionConfiguration')
542
561
  ServerSideEncryptionRule = Shapes::StructureShape.new(name: 'ServerSideEncryptionRule')
543
562
  ServerSideEncryptionRules = Shapes::ListShape.new(name: 'ServerSideEncryptionRules', flattened: true)
563
+ SessionCredentialValue = Shapes::StringShape.new(name: 'SessionCredentialValue')
564
+ SessionCredentials = Shapes::StructureShape.new(name: 'SessionCredentials')
565
+ SessionExpiration = Shapes::TimestampShape.new(name: 'SessionExpiration')
566
+ SessionMode = Shapes::StringShape.new(name: 'SessionMode')
544
567
  Setting = Shapes::BooleanShape.new(name: 'Setting')
568
+ SimplePrefix = Shapes::StructureShape.new(name: 'SimplePrefix')
545
569
  Size = Shapes::IntegerShape.new(name: 'Size')
546
570
  SkipValidation = Shapes::BooleanShape.new(name: 'SkipValidation')
547
571
  SourceSelectionCriteria = Shapes::StructureShape.new(name: 'SourceSelectionCriteria')
@@ -565,6 +589,7 @@ module Aws::S3
565
589
  TargetBucket = Shapes::StringShape.new(name: 'TargetBucket')
566
590
  TargetGrant = Shapes::StructureShape.new(name: 'TargetGrant')
567
591
  TargetGrants = Shapes::ListShape.new(name: 'TargetGrants')
592
+ TargetObjectKeyFormat = Shapes::StructureShape.new(name: 'TargetObjectKeyFormat')
568
593
  TargetPrefix = Shapes::StringShape.new(name: 'TargetPrefix')
569
594
  Tier = Shapes::StringShape.new(name: 'Tier')
570
595
  Tiering = Shapes::StructureShape.new(name: 'Tiering')
@@ -601,7 +626,7 @@ module Aws::S3
601
626
  AbortMultipartUploadOutput.struct_class = Types::AbortMultipartUploadOutput
602
627
 
603
628
  AbortMultipartUploadRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
604
- AbortMultipartUploadRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
629
+ AbortMultipartUploadRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
605
630
  AbortMultipartUploadRequest.add_member(:upload_id, Shapes::ShapeRef.new(shape: MultipartUploadId, required: true, location: "querystring", location_name: "uploadId"))
606
631
  AbortMultipartUploadRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
607
632
  AbortMultipartUploadRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
@@ -656,6 +681,10 @@ module Aws::S3
656
681
 
657
682
  BucketAlreadyOwnedByYou.struct_class = Types::BucketAlreadyOwnedByYou
658
683
 
684
+ BucketInfo.add_member(:data_redundancy, Shapes::ShapeRef.new(shape: DataRedundancy, location_name: "DataRedundancy"))
685
+ BucketInfo.add_member(:type, Shapes::ShapeRef.new(shape: BucketType, location_name: "Type"))
686
+ BucketInfo.struct_class = Types::BucketInfo
687
+
659
688
  BucketLifecycleConfiguration.add_member(:rules, Shapes::ShapeRef.new(shape: LifecycleRules, required: true, location_name: "Rule"))
660
689
  BucketLifecycleConfiguration.struct_class = Types::BucketLifecycleConfiguration
661
690
 
@@ -730,7 +759,7 @@ module Aws::S3
730
759
  CompleteMultipartUploadOutput.struct_class = Types::CompleteMultipartUploadOutput
731
760
 
732
761
  CompleteMultipartUploadRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
733
- CompleteMultipartUploadRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
762
+ CompleteMultipartUploadRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
734
763
  CompleteMultipartUploadRequest.add_member(:multipart_upload, Shapes::ShapeRef.new(shape: CompletedMultipartUpload, location_name: "CompleteMultipartUpload", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
735
764
  CompleteMultipartUploadRequest.add_member(:upload_id, Shapes::ShapeRef.new(shape: MultipartUploadId, required: true, location: "querystring", location_name: "uploadId"))
736
765
  CompleteMultipartUploadRequest.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
@@ -840,6 +869,8 @@ module Aws::S3
840
869
  CopyPartResult.struct_class = Types::CopyPartResult
841
870
 
842
871
  CreateBucketConfiguration.add_member(:location_constraint, Shapes::ShapeRef.new(shape: BucketLocationConstraint, location_name: "LocationConstraint"))
872
+ CreateBucketConfiguration.add_member(:location, Shapes::ShapeRef.new(shape: LocationInfo, location_name: "Location"))
873
+ CreateBucketConfiguration.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketInfo, location_name: "Bucket"))
843
874
  CreateBucketConfiguration.struct_class = Types::CreateBucketConfiguration
844
875
 
845
876
  CreateBucketOutput.add_member(:location, Shapes::ShapeRef.new(shape: Location, location: "header", location_name: "Location"))
@@ -886,7 +917,7 @@ module Aws::S3
886
917
  CreateMultipartUploadRequest.add_member(:grant_read, Shapes::ShapeRef.new(shape: GrantRead, location: "header", location_name: "x-amz-grant-read"))
887
918
  CreateMultipartUploadRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
888
919
  CreateMultipartUploadRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
889
- CreateMultipartUploadRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
920
+ CreateMultipartUploadRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
890
921
  CreateMultipartUploadRequest.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location: "headers", location_name: "x-amz-meta-"))
891
922
  CreateMultipartUploadRequest.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
892
923
  CreateMultipartUploadRequest.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location: "header", location_name: "x-amz-storage-class"))
@@ -906,6 +937,13 @@ module Aws::S3
906
937
  CreateMultipartUploadRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-checksum-algorithm"))
907
938
  CreateMultipartUploadRequest.struct_class = Types::CreateMultipartUploadRequest
908
939
 
940
+ CreateSessionOutput.add_member(:credentials, Shapes::ShapeRef.new(shape: SessionCredentials, required: true, location_name: "Credentials"))
941
+ CreateSessionOutput.struct_class = Types::CreateSessionOutput
942
+
943
+ CreateSessionRequest.add_member(:session_mode, Shapes::ShapeRef.new(shape: SessionMode, location: "header", location_name: "x-amz-create-session-mode"))
944
+ CreateSessionRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
945
+ CreateSessionRequest.struct_class = Types::CreateSessionRequest
946
+
909
947
  DefaultRetention.add_member(:mode, Shapes::ShapeRef.new(shape: ObjectLockRetentionMode, location_name: "Mode"))
910
948
  DefaultRetention.add_member(:days, Shapes::ShapeRef.new(shape: Days, location_name: "Days"))
911
949
  DefaultRetention.add_member(:years, Shapes::ShapeRef.new(shape: Years, location_name: "Years"))
@@ -988,7 +1026,7 @@ module Aws::S3
988
1026
  DeleteObjectOutput.struct_class = Types::DeleteObjectOutput
989
1027
 
990
1028
  DeleteObjectRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
991
- DeleteObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1029
+ DeleteObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
992
1030
  DeleteObjectRequest.add_member(:mfa, Shapes::ShapeRef.new(shape: MFA, location: "header", location_name: "x-amz-mfa"))
993
1031
  DeleteObjectRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
994
1032
  DeleteObjectRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
@@ -1256,7 +1294,7 @@ module Aws::S3
1256
1294
  GetObjectAclOutput.struct_class = Types::GetObjectAclOutput
1257
1295
 
1258
1296
  GetObjectAclRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
1259
- GetObjectAclRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1297
+ GetObjectAclRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
1260
1298
  GetObjectAclRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1261
1299
  GetObjectAclRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1262
1300
  GetObjectAclRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
@@ -1361,7 +1399,7 @@ module Aws::S3
1361
1399
  GetObjectRequest.add_member(:if_modified_since, Shapes::ShapeRef.new(shape: IfModifiedSince, location: "header", location_name: "If-Modified-Since"))
1362
1400
  GetObjectRequest.add_member(:if_none_match, Shapes::ShapeRef.new(shape: IfNoneMatch, location: "header", location_name: "If-None-Match"))
1363
1401
  GetObjectRequest.add_member(:if_unmodified_since, Shapes::ShapeRef.new(shape: IfUnmodifiedSince, location: "header", location_name: "If-Unmodified-Since"))
1364
- GetObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1402
+ GetObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
1365
1403
  GetObjectRequest.add_member(:range, Shapes::ShapeRef.new(shape: Range, location: "header", location_name: "Range"))
1366
1404
  GetObjectRequest.add_member(:response_cache_control, Shapes::ShapeRef.new(shape: ResponseCacheControl, location: "querystring", location_name: "response-cache-control"))
1367
1405
  GetObjectRequest.add_member(:response_content_disposition, Shapes::ShapeRef.new(shape: ResponseContentDisposition, location: "querystring", location_name: "response-content-disposition"))
@@ -1439,6 +1477,12 @@ module Aws::S3
1439
1477
 
1440
1478
  Grants.member = Shapes::ShapeRef.new(shape: Grant, location_name: "Grant")
1441
1479
 
1480
+ HeadBucketOutput.add_member(:bucket_location_type, Shapes::ShapeRef.new(shape: LocationType, location: "header", location_name: "x-amz-bucket-location-type"))
1481
+ HeadBucketOutput.add_member(:bucket_location_name, Shapes::ShapeRef.new(shape: BucketLocationName, location: "header", location_name: "x-amz-bucket-location-name"))
1482
+ HeadBucketOutput.add_member(:bucket_region, Shapes::ShapeRef.new(shape: Region, location: "header", location_name: "x-amz-bucket-region"))
1483
+ HeadBucketOutput.add_member(:access_point_alias, Shapes::ShapeRef.new(shape: AccessPointAlias, location: "header", location_name: "x-amz-access-point-alias"))
1484
+ HeadBucketOutput.struct_class = Types::HeadBucketOutput
1485
+
1442
1486
  HeadBucketRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
1443
1487
  HeadBucketRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1444
1488
  HeadBucketRequest.struct_class = Types::HeadBucketRequest
@@ -1485,7 +1529,7 @@ module Aws::S3
1485
1529
  HeadObjectRequest.add_member(:if_modified_since, Shapes::ShapeRef.new(shape: IfModifiedSince, location: "header", location_name: "If-Modified-Since"))
1486
1530
  HeadObjectRequest.add_member(:if_none_match, Shapes::ShapeRef.new(shape: IfNoneMatch, location: "header", location_name: "If-None-Match"))
1487
1531
  HeadObjectRequest.add_member(:if_unmodified_since, Shapes::ShapeRef.new(shape: IfUnmodifiedSince, location: "header", location_name: "If-Unmodified-Since"))
1488
- HeadObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1532
+ HeadObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
1489
1533
  HeadObjectRequest.add_member(:range, Shapes::ShapeRef.new(shape: Range, location: "header", location_name: "Range"))
1490
1534
  HeadObjectRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1491
1535
  HeadObjectRequest.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
@@ -1659,6 +1703,14 @@ module Aws::S3
1659
1703
  ListBucketsOutput.add_member(:owner, Shapes::ShapeRef.new(shape: Owner, location_name: "Owner"))
1660
1704
  ListBucketsOutput.struct_class = Types::ListBucketsOutput
1661
1705
 
1706
+ ListDirectoryBucketsOutput.add_member(:buckets, Shapes::ShapeRef.new(shape: Buckets, location_name: "Buckets"))
1707
+ ListDirectoryBucketsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: DirectoryBucketToken, location_name: "ContinuationToken"))
1708
+ ListDirectoryBucketsOutput.struct_class = Types::ListDirectoryBucketsOutput
1709
+
1710
+ ListDirectoryBucketsRequest.add_member(:continuation_token, Shapes::ShapeRef.new(shape: DirectoryBucketToken, location: "querystring", location_name: "continuation-token"))
1711
+ ListDirectoryBucketsRequest.add_member(:max_directory_buckets, Shapes::ShapeRef.new(shape: MaxDirectoryBuckets, location: "querystring", location_name: "max-directory-buckets"))
1712
+ ListDirectoryBucketsRequest.struct_class = Types::ListDirectoryBucketsRequest
1713
+
1662
1714
  ListMultipartUploadsOutput.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, location_name: "Bucket"))
1663
1715
  ListMultipartUploadsOutput.add_member(:key_marker, Shapes::ShapeRef.new(shape: KeyMarker, location_name: "KeyMarker"))
1664
1716
  ListMultipartUploadsOutput.add_member(:upload_id_marker, Shapes::ShapeRef.new(shape: UploadIdMarker, location_name: "UploadIdMarker"))
@@ -1679,7 +1731,7 @@ module Aws::S3
1679
1731
  ListMultipartUploadsRequest.add_member(:encoding_type, Shapes::ShapeRef.new(shape: EncodingType, location: "querystring", location_name: "encoding-type"))
1680
1732
  ListMultipartUploadsRequest.add_member(:key_marker, Shapes::ShapeRef.new(shape: KeyMarker, location: "querystring", location_name: "key-marker"))
1681
1733
  ListMultipartUploadsRequest.add_member(:max_uploads, Shapes::ShapeRef.new(shape: MaxUploads, location: "querystring", location_name: "max-uploads"))
1682
- ListMultipartUploadsRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix"))
1734
+ ListMultipartUploadsRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix", metadata: {"contextParam"=>{"name"=>"Prefix"}}))
1683
1735
  ListMultipartUploadsRequest.add_member(:upload_id_marker, Shapes::ShapeRef.new(shape: UploadIdMarker, location: "querystring", location_name: "upload-id-marker"))
1684
1736
  ListMultipartUploadsRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1685
1737
  ListMultipartUploadsRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
@@ -1706,7 +1758,7 @@ module Aws::S3
1706
1758
  ListObjectVersionsRequest.add_member(:encoding_type, Shapes::ShapeRef.new(shape: EncodingType, location: "querystring", location_name: "encoding-type"))
1707
1759
  ListObjectVersionsRequest.add_member(:key_marker, Shapes::ShapeRef.new(shape: KeyMarker, location: "querystring", location_name: "key-marker"))
1708
1760
  ListObjectVersionsRequest.add_member(:max_keys, Shapes::ShapeRef.new(shape: MaxKeys, location: "querystring", location_name: "max-keys"))
1709
- ListObjectVersionsRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix"))
1761
+ ListObjectVersionsRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix", metadata: {"contextParam"=>{"name"=>"Prefix"}}))
1710
1762
  ListObjectVersionsRequest.add_member(:version_id_marker, Shapes::ShapeRef.new(shape: VersionIdMarker, location: "querystring", location_name: "version-id-marker"))
1711
1763
  ListObjectVersionsRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1712
1764
  ListObjectVersionsRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
@@ -1731,7 +1783,7 @@ module Aws::S3
1731
1783
  ListObjectsRequest.add_member(:encoding_type, Shapes::ShapeRef.new(shape: EncodingType, location: "querystring", location_name: "encoding-type"))
1732
1784
  ListObjectsRequest.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location: "querystring", location_name: "marker"))
1733
1785
  ListObjectsRequest.add_member(:max_keys, Shapes::ShapeRef.new(shape: MaxKeys, location: "querystring", location_name: "max-keys"))
1734
- ListObjectsRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix"))
1786
+ ListObjectsRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix", metadata: {"contextParam"=>{"name"=>"Prefix"}}))
1735
1787
  ListObjectsRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1736
1788
  ListObjectsRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1737
1789
  ListObjectsRequest.add_member(:optional_object_attributes, Shapes::ShapeRef.new(shape: OptionalObjectAttributesList, location: "header", location_name: "x-amz-optional-object-attributes"))
@@ -1756,7 +1808,7 @@ module Aws::S3
1756
1808
  ListObjectsV2Request.add_member(:delimiter, Shapes::ShapeRef.new(shape: Delimiter, location: "querystring", location_name: "delimiter"))
1757
1809
  ListObjectsV2Request.add_member(:encoding_type, Shapes::ShapeRef.new(shape: EncodingType, location: "querystring", location_name: "encoding-type"))
1758
1810
  ListObjectsV2Request.add_member(:max_keys, Shapes::ShapeRef.new(shape: MaxKeys, location: "querystring", location_name: "max-keys"))
1759
- ListObjectsV2Request.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix"))
1811
+ ListObjectsV2Request.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix", metadata: {"contextParam"=>{"name"=>"Prefix"}}))
1760
1812
  ListObjectsV2Request.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location: "querystring", location_name: "continuation-token"))
1761
1813
  ListObjectsV2Request.add_member(:fetch_owner, Shapes::ShapeRef.new(shape: FetchOwner, location: "querystring", location_name: "fetch-owner"))
1762
1814
  ListObjectsV2Request.add_member(:start_after, Shapes::ShapeRef.new(shape: StartAfter, location: "querystring", location_name: "start-after"))
@@ -1783,7 +1835,7 @@ module Aws::S3
1783
1835
  ListPartsOutput.struct_class = Types::ListPartsOutput
1784
1836
 
1785
1837
  ListPartsRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
1786
- ListPartsRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1838
+ ListPartsRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
1787
1839
  ListPartsRequest.add_member(:max_parts, Shapes::ShapeRef.new(shape: MaxParts, location: "querystring", location_name: "max-parts"))
1788
1840
  ListPartsRequest.add_member(:part_number_marker, Shapes::ShapeRef.new(shape: PartNumberMarker, location: "querystring", location_name: "part-number-marker"))
1789
1841
  ListPartsRequest.add_member(:upload_id, Shapes::ShapeRef.new(shape: MultipartUploadId, required: true, location: "querystring", location_name: "uploadId"))
@@ -1794,9 +1846,14 @@ module Aws::S3
1794
1846
  ListPartsRequest.add_member(:sse_customer_key_md5, Shapes::ShapeRef.new(shape: SSECustomerKeyMD5, location: "header", location_name: "x-amz-server-side-encryption-customer-key-MD5"))
1795
1847
  ListPartsRequest.struct_class = Types::ListPartsRequest
1796
1848
 
1849
+ LocationInfo.add_member(:type, Shapes::ShapeRef.new(shape: LocationType, location_name: "Type"))
1850
+ LocationInfo.add_member(:name, Shapes::ShapeRef.new(shape: LocationNameAsString, location_name: "Name"))
1851
+ LocationInfo.struct_class = Types::LocationInfo
1852
+
1797
1853
  LoggingEnabled.add_member(:target_bucket, Shapes::ShapeRef.new(shape: TargetBucket, required: true, location_name: "TargetBucket"))
1798
1854
  LoggingEnabled.add_member(:target_grants, Shapes::ShapeRef.new(shape: TargetGrants, location_name: "TargetGrants"))
1799
1855
  LoggingEnabled.add_member(:target_prefix, Shapes::ShapeRef.new(shape: TargetPrefix, required: true, location_name: "TargetPrefix"))
1856
+ LoggingEnabled.add_member(:target_object_key_format, Shapes::ShapeRef.new(shape: TargetObjectKeyFormat, location_name: "TargetObjectKeyFormat"))
1800
1857
  LoggingEnabled.struct_class = Types::LoggingEnabled
1801
1858
 
1802
1859
  Metadata.key = Shapes::ShapeRef.new(shape: MetadataKey)
@@ -1962,6 +2019,9 @@ module Aws::S3
1962
2019
  Part.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
1963
2020
  Part.struct_class = Types::Part
1964
2021
 
2022
+ PartitionedPrefix.add_member(:partition_date_source, Shapes::ShapeRef.new(shape: PartitionDateSource, location_name: "PartitionDateSource"))
2023
+ PartitionedPrefix.struct_class = Types::PartitionedPrefix
2024
+
1965
2025
  Parts.member = Shapes::ShapeRef.new(shape: Part)
1966
2026
 
1967
2027
  PartsList.member = Shapes::ShapeRef.new(shape: ObjectPart)
@@ -2176,7 +2236,7 @@ module Aws::S3
2176
2236
  PutObjectAclRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
2177
2237
  PutObjectAclRequest.add_member(:grant_write, Shapes::ShapeRef.new(shape: GrantWrite, location: "header", location_name: "x-amz-grant-write"))
2178
2238
  PutObjectAclRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
2179
- PutObjectAclRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
2239
+ PutObjectAclRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
2180
2240
  PutObjectAclRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
2181
2241
  PutObjectAclRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
2182
2242
  PutObjectAclRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
@@ -2249,7 +2309,7 @@ module Aws::S3
2249
2309
  PutObjectRequest.add_member(:grant_read, Shapes::ShapeRef.new(shape: GrantRead, location: "header", location_name: "x-amz-grant-read"))
2250
2310
  PutObjectRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
2251
2311
  PutObjectRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
2252
- PutObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
2312
+ PutObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
2253
2313
  PutObjectRequest.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location: "headers", location_name: "x-amz-meta-"))
2254
2314
  PutObjectRequest.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
2255
2315
  PutObjectRequest.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location: "header", location_name: "x-amz-storage-class"))
@@ -2493,6 +2553,14 @@ module Aws::S3
2493
2553
 
2494
2554
  ServerSideEncryptionRules.member = Shapes::ShapeRef.new(shape: ServerSideEncryptionRule)
2495
2555
 
2556
+ SessionCredentials.add_member(:access_key_id, Shapes::ShapeRef.new(shape: AccessKeyIdValue, required: true, location_name: "AccessKeyId"))
2557
+ SessionCredentials.add_member(:secret_access_key, Shapes::ShapeRef.new(shape: SessionCredentialValue, required: true, location_name: "SecretAccessKey"))
2558
+ SessionCredentials.add_member(:session_token, Shapes::ShapeRef.new(shape: SessionCredentialValue, required: true, location_name: "SessionToken"))
2559
+ SessionCredentials.add_member(:expiration, Shapes::ShapeRef.new(shape: SessionExpiration, required: true, location_name: "Expiration"))
2560
+ SessionCredentials.struct_class = Types::SessionCredentials
2561
+
2562
+ SimplePrefix.struct_class = Types::SimplePrefix
2563
+
2496
2564
  SourceSelectionCriteria.add_member(:sse_kms_encrypted_objects, Shapes::ShapeRef.new(shape: SseKmsEncryptedObjects, location_name: "SseKmsEncryptedObjects"))
2497
2565
  SourceSelectionCriteria.add_member(:replica_modifications, Shapes::ShapeRef.new(shape: ReplicaModifications, location_name: "ReplicaModifications"))
2498
2566
  SourceSelectionCriteria.struct_class = Types::SourceSelectionCriteria
@@ -2530,6 +2598,10 @@ module Aws::S3
2530
2598
 
2531
2599
  TargetGrants.member = Shapes::ShapeRef.new(shape: TargetGrant, location_name: "Grant")
2532
2600
 
2601
+ TargetObjectKeyFormat.add_member(:simple_prefix, Shapes::ShapeRef.new(shape: SimplePrefix, location_name: "SimplePrefix"))
2602
+ TargetObjectKeyFormat.add_member(:partitioned_prefix, Shapes::ShapeRef.new(shape: PartitionedPrefix, location_name: "PartitionedPrefix"))
2603
+ TargetObjectKeyFormat.struct_class = Types::TargetObjectKeyFormat
2604
+
2533
2605
  Tiering.add_member(:days, Shapes::ShapeRef.new(shape: IntelligentTieringDays, required: true, location_name: "Days"))
2534
2606
  Tiering.add_member(:access_tier, Shapes::ShapeRef.new(shape: IntelligentTieringAccessTier, required: true, location_name: "AccessTier"))
2535
2607
  Tiering.struct_class = Types::Tiering
@@ -2612,7 +2684,7 @@ module Aws::S3
2612
2684
  UploadPartRequest.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
2613
2685
  UploadPartRequest.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2614
2686
  UploadPartRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2615
- UploadPartRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
2687
+ UploadPartRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
2616
2688
  UploadPartRequest.add_member(:part_number, Shapes::ShapeRef.new(shape: PartNumber, required: true, location: "querystring", location_name: "partNumber"))
2617
2689
  UploadPartRequest.add_member(:upload_id, Shapes::ShapeRef.new(shape: MultipartUploadId, required: true, location: "querystring", location_name: "uploadId"))
2618
2690
  UploadPartRequest.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
@@ -2742,6 +2814,15 @@ module Aws::S3
2742
2814
  o.output = Shapes::ShapeRef.new(shape: CreateMultipartUploadOutput)
2743
2815
  end)
2744
2816
 
2817
+ api.add_operation(:create_session, Seahorse::Model::Operation.new.tap do |o|
2818
+ o.name = "CreateSession"
2819
+ o.http_method = "GET"
2820
+ o.http_request_uri = "/?session"
2821
+ o.input = Shapes::ShapeRef.new(shape: CreateSessionRequest)
2822
+ o.output = Shapes::ShapeRef.new(shape: CreateSessionOutput)
2823
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
2824
+ end)
2825
+
2745
2826
  api.add_operation(:delete_bucket, Seahorse::Model::Operation.new.tap do |o|
2746
2827
  o.name = "DeleteBucket"
2747
2828
  o.http_method = "DELETE"
@@ -3153,7 +3234,7 @@ module Aws::S3
3153
3234
  o.http_method = "HEAD"
3154
3235
  o.http_request_uri = "/"
3155
3236
  o.input = Shapes::ShapeRef.new(shape: HeadBucketRequest)
3156
- o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3237
+ o.output = Shapes::ShapeRef.new(shape: HeadBucketOutput)
3157
3238
  o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
3158
3239
  end)
3159
3240
 
@@ -3206,6 +3287,20 @@ module Aws::S3
3206
3287
  o.output = Shapes::ShapeRef.new(shape: ListBucketsOutput)
3207
3288
  end)
3208
3289
 
3290
+ api.add_operation(:list_directory_buckets, Seahorse::Model::Operation.new.tap do |o|
3291
+ o.name = "ListDirectoryBuckets"
3292
+ o.http_method = "GET"
3293
+ o.http_request_uri = "/"
3294
+ o.input = Shapes::ShapeRef.new(shape: ListDirectoryBucketsRequest)
3295
+ o.output = Shapes::ShapeRef.new(shape: ListDirectoryBucketsOutput)
3296
+ o[:pager] = Aws::Pager.new(
3297
+ limit_key: "max_directory_buckets",
3298
+ tokens: {
3299
+ "continuation_token" => "continuation_token"
3300
+ }
3301
+ )
3302
+ end)
3303
+
3209
3304
  api.add_operation(:list_multipart_uploads, Seahorse::Model::Operation.new.tap do |o|
3210
3305
  o.name = "ListMultipartUploads"
3211
3306
  o.http_method = "GET"
@@ -8,7 +8,7 @@ module Aws
8
8
  class PermanentRedirect < ServiceError
9
9
  # @param [Seahorse::Client::RequestContext] context
10
10
  # @param [String] message
11
- # @param [Aws::S3::Types::PermanentRedirect] data
11
+ # @param [Aws::S3::Types::PermanentRedirect] _data
12
12
  def initialize(context, message, _data = Aws::EmptyStructure.new)
13
13
  data = Aws::S3::Types::PermanentRedirect.new(message: message)
14
14
  body = context.http_response.body_contents
@@ -46,6 +46,14 @@ module Aws
46
46
  # different region. You do not need to specify this option
47
47
  # if you have provided a `:source_client` or a `:content_length`.
48
48
  #
49
+ # @option options [Boolean] :use_source_parts (false) Only used when
50
+ # `:multipart_copy` is `true`. Use part sizes defined on the source
51
+ # object if any exist. If copying or moving an object that
52
+ # is already multipart, this does not re-part the object, instead
53
+ # re-using the part definitions on the original. That means the etag
54
+ # and any checksums will not change. This is especially useful if the
55
+ # source object has parts with varied sizes.
56
+ #
49
57
  # @example Basic object copy
50
58
  #
51
59
  # bucket = Aws::S3::Bucket.new('target-bucket')
@@ -345,6 +353,10 @@ module Aws
345
353
  # obj.upload_stream do |write_stream|
346
354
  # IO.copy_stream(STDIN, write_stream)
347
355
  # end
356
+ # @param [Hash] options
357
+ # Additional options for {Client#create_multipart_upload},
358
+ # {Client#complete_multipart_upload},
359
+ # and {Client#upload_part} can be provided.
348
360
  #
349
361
  # @option options [Integer] :thread_count (10) The number of parallel
350
362
  # multipart uploads
@@ -367,6 +379,9 @@ module Aws
367
379
  # @return [Boolean] Returns `true` when the object is uploaded
368
380
  # without any errors.
369
381
  #
382
+ # @see Client#create_multipart_upload
383
+ # @see Client#complete_multipart_upload
384
+ # @see Client#upload_part
370
385
  def upload_stream(options = {}, &block)
371
386
  uploading_options = options.dup
372
387
  uploader = MultipartStreamUploader.new(
@@ -419,6 +434,13 @@ module Aws
419
434
  # using an open Tempfile, rewind it before uploading or else the object
420
435
  # will be empty.
421
436
  #
437
+ # @param [Hash] options
438
+ # Additional options for {Client#put_object}
439
+ # when file sizes below the multipart threshold. For files larger than
440
+ # the multipart threshold, options for {Client#create_multipart_upload},
441
+ # {Client#complete_multipart_upload},
442
+ # and {Client#upload_part} can be provided.
443
+ #
422
444
  # @option options [Integer] :multipart_threshold (104857600) Files larger
423
445
  # than or equal to `:multipart_threshold` are uploaded using the S3
424
446
  # multipart APIs.
@@ -440,6 +462,11 @@ module Aws
440
462
  #
441
463
  # @return [Boolean] Returns `true` when the object is uploaded
442
464
  # without any errors.
465
+ #
466
+ # @see Client#put_object
467
+ # @see Client#create_multipart_upload
468
+ # @see Client#complete_multipart_upload
469
+ # @see Client#upload_part
443
470
  def upload_file(source, options = {})
444
471
  uploading_options = options.dup
445
472
  uploader = FileUploader.new(
@@ -467,8 +494,21 @@ module Aws
467
494
  # # and the parts are downloaded in parallel
468
495
  # obj.download_file('/path/to/very_large_file')
469
496
  #
497
+ # You can provide a callback to monitor progress of the download:
498
+ #
499
+ # # bytes and part_sizes are each an array with 1 entry per part
500
+ # # part_sizes may not be known until the first bytes are retrieved
501
+ # progress = Proc.new do |bytes, part_sizes, file_size|
502
+ # puts bytes.map.with_index { |b, i| "Part #{i+1}: #{b} / #{part_sizes[i]}"}.join(' ') + "Total: #{100.0 * bytes.sum / file_size}%" }
503
+ # end
504
+ # obj.download_file('/path/to/file', progress_callback: progress)
505
+ #
470
506
  # @param [String] destination Where to download the file to.
471
507
  #
508
+ # @param [Hash] options
509
+ # Additional options for {Client#get_object} and #{Client#head_object}
510
+ # may be provided.
511
+ #
472
512
  # @option options [String] mode `auto`, `single_request`, `get_range`
473
513
  # `single_request` mode forces only 1 GET request is made in download,
474
514
  # `get_range` mode allows `chunk_size` parameter to configured in
@@ -484,8 +524,31 @@ module Aws
484
524
  # retrieve the object. For more about object versioning, see:
485
525
  # https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
486
526
  #
527
+ # @option options [String] checksum_mode (ENABLED) When `ENABLED` and
528
+ # the object has a stored checksum, it will be used to validate the
529
+ # download and will raise an `Aws::Errors::ChecksumError` if
530
+ # checksum validation fails. You may provide a `on_checksum_validated`
531
+ # callback if you need to verify that validation occurred and which
532
+ # algorithm was used. To disable checksum validation, set
533
+ # `checksum_mode` to "DISABLED".
534
+ #
535
+ # @option options [Callable] on_checksum_validated Called each time a
536
+ # request's checksum is validated with the checksum algorithm and the
537
+ # response. For multipart downloads, this will be called for each
538
+ # part that is downloaded and validated.
539
+ #
540
+ # @option options [Proc] :progress_callback
541
+ # A Proc that will be called when each chunk of the download is received.
542
+ # It will be invoked with [bytes_read], [part_sizes], file_size.
543
+ # When the object is downloaded as parts (rather than by ranges), the
544
+ # part_sizes will not be known ahead of time and will be nil in the
545
+ # callback until the first bytes in the part are received.
546
+ #
487
547
  # @return [Boolean] Returns `true` when the file is downloaded without
488
548
  # any errors.
549
+ #
550
+ # @see Client#get_object
551
+ # @see Client#head_object
489
552
  def download_file(destination, options = {})
490
553
  downloader = FileDownloader.new(client: client)
491
554
  Aws::Plugins::UserAgent.feature('resource') do
@@ -16,6 +16,11 @@ require 'aws-sdk-s3/object_multipart_copier'
16
16
  require 'aws-sdk-s3/presigned_post'
17
17
  require 'aws-sdk-s3/presigner'
18
18
 
19
+ # s3 express session auth
20
+ require 'aws-sdk-s3/express_credentials'
21
+ require 'aws-sdk-s3/express_credentials_cache'
22
+ require 'aws-sdk-s3/express_credentials_provider'
23
+
19
24
  # customizations to generated classes
20
25
  require 'aws-sdk-s3/customizations/bucket'
21
26
  require 'aws-sdk-s3/customizations/errors'
@@ -55,6 +55,16 @@ module Aws::S3
55
55
  #
56
56
  # @return [Boolean]
57
57
  #
58
+ # @!attribute key
59
+ # The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @!attribute prefix
64
+ # The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.
65
+ #
66
+ # @return [String]
67
+ #
58
68
  # @!attribute disable_access_points
59
69
  # Internal parameter to disable Access Point Buckets
60
70
  #
@@ -70,6 +80,16 @@ module Aws::S3
70
80
  #
71
81
  # @return [Boolean]
72
82
  #
83
+ # @!attribute use_s3_express_control_endpoint
84
+ # Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)
85
+ #
86
+ # @return [Boolean]
87
+ #
88
+ # @!attribute disable_s3_express_session_auth
89
+ # Parameter to indicate whether S3Express session auth should be disabled
90
+ #
91
+ # @return [Boolean]
92
+ #
73
93
  EndpointParameters = Struct.new(
74
94
  :bucket,
75
95
  :region,
@@ -80,9 +100,13 @@ module Aws::S3
80
100
  :accelerate,
81
101
  :use_global_endpoint,
82
102
  :use_object_lambda_endpoint,
103
+ :key,
104
+ :prefix,
83
105
  :disable_access_points,
84
106
  :disable_multi_region_access_points,
85
107
  :use_arn_region,
108
+ :use_s3_express_control_endpoint,
109
+ :disable_s3_express_session_auth,
86
110
  ) do
87
111
  include Aws::Structure
88
112
 
@@ -98,9 +122,13 @@ module Aws::S3
98
122
  'Accelerate' => :accelerate,
99
123
  'UseGlobalEndpoint' => :use_global_endpoint,
100
124
  'UseObjectLambdaEndpoint' => :use_object_lambda_endpoint,
125
+ 'Key' => :key,
126
+ 'Prefix' => :prefix,
101
127
  'DisableAccessPoints' => :disable_access_points,
102
128
  'DisableMultiRegionAccessPoints' => :disable_multi_region_access_points,
103
129
  'UseArnRegion' => :use_arn_region,
130
+ 'UseS3ExpressControlEndpoint' => :use_s3_express_control_endpoint,
131
+ 'DisableS3ExpressSessionAuth' => :disable_s3_express_session_auth,
104
132
  }.freeze
105
133
  end
106
134
 
@@ -119,6 +147,10 @@ module Aws::S3
119
147
  end
120
148
  self[:endpoint] = options[:endpoint]
121
149
  self[:force_path_style] = options[:force_path_style]
150
+ self[:force_path_style] = false if self[:force_path_style].nil?
151
+ if self[:force_path_style].nil?
152
+ raise ArgumentError, "Missing required EndpointParameter: :force_path_style"
153
+ end
122
154
  self[:accelerate] = options[:accelerate]
123
155
  self[:accelerate] = false if self[:accelerate].nil?
124
156
  if self[:accelerate].nil?
@@ -130,6 +162,8 @@ module Aws::S3
130
162
  raise ArgumentError, "Missing required EndpointParameter: :use_global_endpoint"
131
163
  end
132
164
  self[:use_object_lambda_endpoint] = options[:use_object_lambda_endpoint]
165
+ self[:key] = options[:key]
166
+ self[:prefix] = options[:prefix]
133
167
  self[:disable_access_points] = options[:disable_access_points]
134
168
  self[:disable_multi_region_access_points] = options[:disable_multi_region_access_points]
135
169
  self[:disable_multi_region_access_points] = false if self[:disable_multi_region_access_points].nil?
@@ -137,6 +171,8 @@ module Aws::S3
137
171
  raise ArgumentError, "Missing required EndpointParameter: :disable_multi_region_access_points"
138
172
  end
139
173
  self[:use_arn_region] = options[:use_arn_region]
174
+ self[:use_s3_express_control_endpoint] = options[:use_s3_express_control_endpoint]
175
+ self[:disable_s3_express_session_auth] = options[:disable_s3_express_session_auth]
140
176
  end
141
177
  end
142
178
  end