aws-sdk-s3 1.132.0 → 1.151.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +127 -1
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +241 -0
  6. data/lib/aws-sdk-s3/bucket.rb +424 -81
  7. data/lib/aws-sdk-s3/bucket_acl.rb +9 -9
  8. data/lib/aws-sdk-s3/bucket_cors.rb +12 -12
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -12
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -12
  11. data/lib/aws-sdk-s3/bucket_logging.rb +16 -9
  12. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_policy.rb +58 -14
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +9 -9
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +12 -12
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +27 -27
  18. data/lib/aws-sdk-s3/bucket_website.rb +12 -12
  19. data/lib/aws-sdk-s3/client.rb +5783 -2608
  20. data/lib/aws-sdk-s3/client_api.rb +114 -18
  21. data/lib/aws-sdk-s3/customizations/errors.rb +15 -2
  22. data/lib/aws-sdk-s3/customizations/object.rb +45 -2
  23. data/lib/aws-sdk-s3/customizations.rb +8 -0
  24. data/lib/aws-sdk-s3/endpoint_parameters.rb +32 -0
  25. data/lib/aws-sdk-s3/endpoint_provider.rb +88 -6
  26. data/lib/aws-sdk-s3/endpoints.rb +440 -0
  27. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  28. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  29. data/lib/aws-sdk-s3/file_downloader.rb +119 -24
  30. data/lib/aws-sdk-s3/multipart_file_uploader.rb +4 -4
  31. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +5 -4
  32. data/lib/aws-sdk-s3/multipart_upload.rb +69 -16
  33. data/lib/aws-sdk-s3/multipart_upload_part.rb +160 -35
  34. data/lib/aws-sdk-s3/object.rb +1504 -235
  35. data/lib/aws-sdk-s3/object_acl.rb +29 -15
  36. data/lib/aws-sdk-s3/object_multipart_copier.rb +10 -8
  37. data/lib/aws-sdk-s3/object_summary.rb +1367 -254
  38. data/lib/aws-sdk-s3/object_version.rb +297 -42
  39. data/lib/aws-sdk-s3/plugins/access_grants.rb +108 -0
  40. data/lib/aws-sdk-s3/plugins/endpoints.rb +14 -2
  41. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +91 -0
  42. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  43. data/lib/aws-sdk-s3/plugins/md5s.rb +2 -1
  44. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  45. data/lib/aws-sdk-s3/presigner.rb +4 -2
  46. data/lib/aws-sdk-s3/resource.rb +83 -11
  47. data/lib/aws-sdk-s3/types.rb +4529 -1361
  48. data/lib/aws-sdk-s3.rb +1 -1
  49. data/sig/bucket.rbs +212 -0
  50. data/sig/bucket_acl.rbs +78 -0
  51. data/sig/bucket_cors.rbs +69 -0
  52. data/sig/bucket_lifecycle.rbs +88 -0
  53. data/sig/bucket_lifecycle_configuration.rbs +111 -0
  54. data/sig/bucket_logging.rbs +76 -0
  55. data/sig/bucket_notification.rbs +114 -0
  56. data/sig/bucket_policy.rbs +59 -0
  57. data/sig/bucket_request_payment.rbs +54 -0
  58. data/sig/bucket_tagging.rbs +65 -0
  59. data/sig/bucket_versioning.rbs +77 -0
  60. data/sig/bucket_website.rbs +93 -0
  61. data/sig/client.rbs +2362 -0
  62. data/sig/customizations/bucket.rbs +19 -0
  63. data/sig/customizations/object.rbs +38 -0
  64. data/sig/customizations/object_summary.rbs +35 -0
  65. data/sig/errors.rbs +34 -0
  66. data/sig/multipart_upload.rbs +110 -0
  67. data/sig/multipart_upload_part.rbs +105 -0
  68. data/sig/object.rbs +436 -0
  69. data/sig/object_acl.rbs +86 -0
  70. data/sig/object_summary.rbs +334 -0
  71. data/sig/object_version.rbs +131 -0
  72. data/sig/resource.rbs +126 -0
  73. data/sig/types.rbs +2562 -0
  74. data/sig/waiters.rbs +83 -0
  75. metadata +43 -11
@@ -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', locationName: "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')
@@ -527,10 +546,10 @@ module Aws::S3
527
546
  SSECustomerAlgorithm = Shapes::StringShape.new(name: 'SSECustomerAlgorithm')
528
547
  SSECustomerKey = Shapes::StringShape.new(name: 'SSECustomerKey')
529
548
  SSECustomerKeyMD5 = Shapes::StringShape.new(name: 'SSECustomerKeyMD5')
530
- SSEKMS = Shapes::StructureShape.new(name: 'SSEKMS')
549
+ SSEKMS = Shapes::StructureShape.new(name: 'SSEKMS', locationName: "SSE-KMS")
531
550
  SSEKMSEncryptionContext = Shapes::StringShape.new(name: 'SSEKMSEncryptionContext')
532
551
  SSEKMSKeyId = Shapes::StringShape.new(name: 'SSEKMSKeyId')
533
- SSES3 = Shapes::StructureShape.new(name: 'SSES3')
552
+ SSES3 = Shapes::StructureShape.new(name: 'SSES3', locationName: "SSE-S3")
534
553
  ScanRange = Shapes::StructureShape.new(name: 'ScanRange')
535
554
  SelectObjectContentEventStream = Shapes::StructureShape.new(name: 'SelectObjectContentEventStream')
536
555
  SelectObjectContentOutput = Shapes::StructureShape.new(name: 'SelectObjectContentOutput')
@@ -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', locationName: "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"))
@@ -2692,6 +2764,7 @@ module Aws::S3
2692
2764
  "endpointPrefix" => "s3",
2693
2765
  "globalEndpoint" => "s3.amazonaws.com",
2694
2766
  "protocol" => "rest-xml",
2767
+ "protocols" => ["rest-xml"],
2695
2768
  "serviceAbbreviation" => "Amazon S3",
2696
2769
  "serviceFullName" => "Amazon Simple Storage Service",
2697
2770
  "serviceId" => "S3",
@@ -2742,6 +2815,15 @@ module Aws::S3
2742
2815
  o.output = Shapes::ShapeRef.new(shape: CreateMultipartUploadOutput)
2743
2816
  end)
2744
2817
 
2818
+ api.add_operation(:create_session, Seahorse::Model::Operation.new.tap do |o|
2819
+ o.name = "CreateSession"
2820
+ o.http_method = "GET"
2821
+ o.http_request_uri = "/?session"
2822
+ o.input = Shapes::ShapeRef.new(shape: CreateSessionRequest)
2823
+ o.output = Shapes::ShapeRef.new(shape: CreateSessionOutput)
2824
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
2825
+ end)
2826
+
2745
2827
  api.add_operation(:delete_bucket, Seahorse::Model::Operation.new.tap do |o|
2746
2828
  o.name = "DeleteBucket"
2747
2829
  o.http_method = "DELETE"
@@ -3153,7 +3235,7 @@ module Aws::S3
3153
3235
  o.http_method = "HEAD"
3154
3236
  o.http_request_uri = "/"
3155
3237
  o.input = Shapes::ShapeRef.new(shape: HeadBucketRequest)
3156
- o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3238
+ o.output = Shapes::ShapeRef.new(shape: HeadBucketOutput)
3157
3239
  o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
3158
3240
  end)
3159
3241
 
@@ -3206,6 +3288,20 @@ module Aws::S3
3206
3288
  o.output = Shapes::ShapeRef.new(shape: ListBucketsOutput)
3207
3289
  end)
3208
3290
 
3291
+ api.add_operation(:list_directory_buckets, Seahorse::Model::Operation.new.tap do |o|
3292
+ o.name = "ListDirectoryBuckets"
3293
+ o.http_method = "GET"
3294
+ o.http_request_uri = "/"
3295
+ o.input = Shapes::ShapeRef.new(shape: ListDirectoryBucketsRequest)
3296
+ o.output = Shapes::ShapeRef.new(shape: ListDirectoryBucketsOutput)
3297
+ o[:pager] = Aws::Pager.new(
3298
+ limit_key: "max_directory_buckets",
3299
+ tokens: {
3300
+ "continuation_token" => "continuation_token"
3301
+ }
3302
+ )
3303
+ end)
3304
+
3209
3305
  api.add_operation(:list_multipart_uploads, Seahorse::Model::Operation.new.tap do |o|
3210
3306
  o.name = "ListMultipartUploads"
3211
3307
  o.http_method = "GET"
@@ -3,8 +3,8 @@
3
3
  module Aws
4
4
  module S3
5
5
  module Errors
6
- # Hijack PermanentRedirect dynamic error to also include endpoint
7
- # and bucket.
6
+ # Hijack PermanentRedirect dynamic error to include the bucket, region,
7
+ # and endpoint.
8
8
  class PermanentRedirect < ServiceError
9
9
  # @param [Seahorse::Client::RequestContext] context
10
10
  # @param [String] message
@@ -22,6 +22,19 @@ module Aws
22
22
  super(context, message, data)
23
23
  end
24
24
  end
25
+
26
+ # Hijack PermanentRedirect (HeadBucket case - no body) dynamic error to
27
+ # include the region.
28
+ class Http301Error < ServiceError
29
+ # @param [Seahorse::Client::RequestContext] context
30
+ # @param [String] message
31
+ # @param [Aws::S3::Types::PermanentRedirect] _data
32
+ def initialize(context, message, _data = Aws::EmptyStructure.new)
33
+ data = Aws::S3::Types::PermanentRedirect.new(message: message)
34
+ data.region = context.http_response.headers['x-amz-bucket-region']
35
+ super(context, message, data)
36
+ end
37
+ end
25
38
  end
26
39
  end
27
40
  end
@@ -353,6 +353,10 @@ module Aws
353
353
  # obj.upload_stream do |write_stream|
354
354
  # IO.copy_stream(STDIN, write_stream)
355
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.
356
360
  #
357
361
  # @option options [Integer] :thread_count (10) The number of parallel
358
362
  # multipart uploads
@@ -375,6 +379,9 @@ module Aws
375
379
  # @return [Boolean] Returns `true` when the object is uploaded
376
380
  # without any errors.
377
381
  #
382
+ # @see Client#create_multipart_upload
383
+ # @see Client#complete_multipart_upload
384
+ # @see Client#upload_part
378
385
  def upload_stream(options = {}, &block)
379
386
  uploading_options = options.dup
380
387
  uploader = MultipartStreamUploader.new(
@@ -427,6 +434,13 @@ module Aws
427
434
  # using an open Tempfile, rewind it before uploading or else the object
428
435
  # will be empty.
429
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
+ #
430
444
  # @option options [Integer] :multipart_threshold (104857600) Files larger
431
445
  # than or equal to `:multipart_threshold` are uploaded using the S3
432
446
  # multipart APIs.
@@ -448,6 +462,11 @@ module Aws
448
462
  #
449
463
  # @return [Boolean] Returns `true` when the object is uploaded
450
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
451
470
  def upload_file(source, options = {})
452
471
  uploading_options = options.dup
453
472
  uploader = FileUploader.new(
@@ -475,8 +494,21 @@ module Aws
475
494
  # # and the parts are downloaded in parallel
476
495
  # obj.download_file('/path/to/very_large_file')
477
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
+ #
478
506
  # @param [String] destination Where to download the file to.
479
507
  #
508
+ # @param [Hash] options
509
+ # Additional options for {Client#get_object} and #{Client#head_object}
510
+ # may be provided.
511
+ #
480
512
  # @option options [String] mode `auto`, `single_request`, `get_range`
481
513
  # `single_request` mode forces only 1 GET request is made in download,
482
514
  # `get_range` mode allows `chunk_size` parameter to configured in
@@ -496,16 +528,27 @@ module Aws
496
528
  # the object has a stored checksum, it will be used to validate the
497
529
  # download and will raise an `Aws::Errors::ChecksumError` if
498
530
  # checksum validation fails. You may provide a `on_checksum_validated`
499
- # callback if you need to verify that validation occured and which
500
- # algorithm was used.
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".
501
534
  #
502
535
  # @option options [Callable] on_checksum_validated Called each time a
503
536
  # request's checksum is validated with the checksum algorithm and the
504
537
  # response. For multipart downloads, this will be called for each
505
538
  # part that is downloaded and validated.
506
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
+ #
507
547
  # @return [Boolean] Returns `true` when the file is downloaded without
508
548
  # any errors.
549
+ #
550
+ # @see Client#get_object
551
+ # @see Client#head_object
509
552
  def download_file(destination, options = {})
510
553
  downloader = FileDownloader.new(client: client)
511
554
  Aws::Plugins::UserAgent.feature('resource') do
@@ -16,6 +16,14 @@ 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_provider'
22
+
23
+ # s3 access grants auth
24
+ require 'aws-sdk-s3/access_grants_credentials'
25
+ require 'aws-sdk-s3/access_grants_credentials_provider'
26
+
19
27
  # customizations to generated classes
20
28
  require 'aws-sdk-s3/customizations/bucket'
21
29
  require 'aws-sdk-s3/customizations/errors'