aws-sdk-s3 1.150.0 → 1.169.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +110 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +12 -3
  5. data/lib/aws-sdk-s3/bucket.rb +252 -88
  6. data/lib/aws-sdk-s3/bucket_acl.rb +3 -3
  7. data/lib/aws-sdk-s3/bucket_cors.rb +4 -4
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +4 -4
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +42 -5
  10. data/lib/aws-sdk-s3/bucket_logging.rb +3 -3
  11. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  12. data/lib/aws-sdk-s3/bucket_policy.rb +8 -8
  13. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  14. data/lib/aws-sdk-s3/bucket_tagging.rb +4 -4
  15. data/lib/aws-sdk-s3/bucket_versioning.rb +5 -5
  16. data/lib/aws-sdk-s3/bucket_website.rb +4 -4
  17. data/lib/aws-sdk-s3/client.rb +1685 -668
  18. data/lib/aws-sdk-s3/client_api.rb +49 -4
  19. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  20. data/lib/aws-sdk-s3/customizations/object.rb +11 -5
  21. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  22. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  23. data/lib/aws-sdk-s3/customizations.rb +24 -38
  24. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  25. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  26. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  27. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  28. data/lib/aws-sdk-s3/endpoint_parameters.rb +21 -18
  29. data/lib/aws-sdk-s3/endpoint_provider.rb +1 -0
  30. data/lib/aws-sdk-s3/endpoints.rb +416 -1614
  31. data/lib/aws-sdk-s3/errors.rb +3 -0
  32. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  33. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  34. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +1 -1
  35. data/lib/aws-sdk-s3/multipart_upload.rb +31 -8
  36. data/lib/aws-sdk-s3/multipart_upload_part.rb +11 -11
  37. data/lib/aws-sdk-s3/object.rb +441 -158
  38. data/lib/aws-sdk-s3/object_acl.rb +3 -3
  39. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  40. data/lib/aws-sdk-s3/object_summary.rb +403 -134
  41. data/lib/aws-sdk-s3/object_version.rb +53 -13
  42. data/lib/aws-sdk-s3/plugins/access_grants.rb +75 -5
  43. data/lib/aws-sdk-s3/plugins/endpoints.rb +24 -212
  44. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +7 -1
  45. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  46. data/lib/aws-sdk-s3/resource.rb +37 -11
  47. data/lib/aws-sdk-s3/types.rb +1106 -401
  48. data/lib/aws-sdk-s3.rb +35 -31
  49. data/sig/bucket.rbs +4 -0
  50. data/sig/bucket_lifecycle_configuration.rbs +7 -3
  51. data/sig/client.rbs +49 -5
  52. data/sig/multipart_upload.rbs +1 -0
  53. data/sig/object.rbs +7 -0
  54. data/sig/object_summary.rbs +1 -0
  55. data/sig/object_version.rbs +6 -0
  56. data/sig/resource.rbs +7 -1
  57. data/sig/types.rbs +36 -2
  58. data/sig/waiters.rbs +12 -0
  59. metadata +7 -6
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  module Aws::S3
11
12
  # @api private
12
13
  module ClientApi
@@ -56,6 +57,7 @@ module Aws::S3
56
57
  BucketLoggingStatus = Shapes::StructureShape.new(name: 'BucketLoggingStatus')
57
58
  BucketLogsPermission = Shapes::StringShape.new(name: 'BucketLogsPermission')
58
59
  BucketName = Shapes::StringShape.new(name: 'BucketName')
60
+ BucketRegion = Shapes::StringShape.new(name: 'BucketRegion')
59
61
  BucketType = Shapes::StringShape.new(name: 'BucketType')
60
62
  BucketVersioningStatus = Shapes::StringShape.new(name: 'BucketVersioningStatus')
61
63
  Buckets = Shapes::ListShape.new(name: 'Buckets')
@@ -334,6 +336,7 @@ module Aws::S3
334
336
  ListBucketMetricsConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsOutput')
335
337
  ListBucketMetricsConfigurationsRequest = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsRequest')
336
338
  ListBucketsOutput = Shapes::StructureShape.new(name: 'ListBucketsOutput')
339
+ ListBucketsRequest = Shapes::StructureShape.new(name: 'ListBucketsRequest')
337
340
  ListDirectoryBucketsOutput = Shapes::StructureShape.new(name: 'ListDirectoryBucketsOutput')
338
341
  ListDirectoryBucketsRequest = Shapes::StructureShape.new(name: 'ListDirectoryBucketsRequest')
339
342
  ListMultipartUploadsOutput = Shapes::StructureShape.new(name: 'ListMultipartUploadsOutput')
@@ -357,6 +360,7 @@ module Aws::S3
357
360
  MFADeleteStatus = Shapes::StringShape.new(name: 'MFADeleteStatus')
358
361
  Marker = Shapes::StringShape.new(name: 'Marker')
359
362
  MaxAgeSeconds = Shapes::IntegerShape.new(name: 'MaxAgeSeconds')
363
+ MaxBuckets = Shapes::IntegerShape.new(name: 'MaxBuckets')
360
364
  MaxDirectoryBuckets = Shapes::IntegerShape.new(name: 'MaxDirectoryBuckets')
361
365
  MaxKeys = Shapes::IntegerShape.new(name: 'MaxKeys')
362
366
  MaxParts = Shapes::IntegerShape.new(name: 'MaxParts')
@@ -461,6 +465,7 @@ module Aws::S3
461
465
  PutBucketEncryptionRequest = Shapes::StructureShape.new(name: 'PutBucketEncryptionRequest')
462
466
  PutBucketIntelligentTieringConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketIntelligentTieringConfigurationRequest')
463
467
  PutBucketInventoryConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketInventoryConfigurationRequest')
468
+ PutBucketLifecycleConfigurationOutput = Shapes::StructureShape.new(name: 'PutBucketLifecycleConfigurationOutput')
464
469
  PutBucketLifecycleConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketLifecycleConfigurationRequest')
465
470
  PutBucketLifecycleRequest = Shapes::StructureShape.new(name: 'PutBucketLifecycleRequest')
466
471
  PutBucketLoggingRequest = Shapes::StructureShape.new(name: 'PutBucketLoggingRequest')
@@ -600,6 +605,7 @@ module Aws::S3
600
605
  TopicConfigurationDeprecated = Shapes::StructureShape.new(name: 'TopicConfigurationDeprecated')
601
606
  TopicConfigurationList = Shapes::ListShape.new(name: 'TopicConfigurationList', flattened: true)
602
607
  Transition = Shapes::StructureShape.new(name: 'Transition')
608
+ TransitionDefaultMinimumObjectSize = Shapes::StringShape.new(name: 'TransitionDefaultMinimumObjectSize')
603
609
  TransitionList = Shapes::ListShape.new(name: 'TransitionList', flattened: true)
604
610
  TransitionStorageClass = Shapes::StringShape.new(name: 'TransitionStorageClass')
605
611
  Type = Shapes::StringShape.new(name: 'Type')
@@ -675,6 +681,7 @@ module Aws::S3
675
681
 
676
682
  Bucket.add_member(:name, Shapes::ShapeRef.new(shape: BucketName, location_name: "Name"))
677
683
  Bucket.add_member(:creation_date, Shapes::ShapeRef.new(shape: CreationDate, location_name: "CreationDate"))
684
+ Bucket.add_member(:bucket_region, Shapes::ShapeRef.new(shape: BucketRegion, location_name: "BucketRegion"))
678
685
  Bucket.struct_class = Types::Bucket
679
686
 
680
687
  BucketAlreadyExists.struct_class = Types::BucketAlreadyExists
@@ -768,6 +775,7 @@ module Aws::S3
768
775
  CompleteMultipartUploadRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
769
776
  CompleteMultipartUploadRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
770
777
  CompleteMultipartUploadRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
778
+ CompleteMultipartUploadRequest.add_member(:if_none_match, Shapes::ShapeRef.new(shape: IfNoneMatch, location: "header", location_name: "If-None-Match"))
771
779
  CompleteMultipartUploadRequest.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
772
780
  CompleteMultipartUploadRequest.add_member(:sse_customer_key, Shapes::ShapeRef.new(shape: SSECustomerKey, location: "header", location_name: "x-amz-server-side-encryption-customer-key"))
773
781
  CompleteMultipartUploadRequest.add_member(:sse_customer_key_md5, Shapes::ShapeRef.new(shape: SSECustomerKeyMD5, location: "header", location_name: "x-amz-server-side-encryption-customer-key-MD5"))
@@ -817,7 +825,7 @@ module Aws::S3
817
825
  CopyObjectRequest.add_member(:content_encoding, Shapes::ShapeRef.new(shape: ContentEncoding, location: "header", location_name: "Content-Encoding"))
818
826
  CopyObjectRequest.add_member(:content_language, Shapes::ShapeRef.new(shape: ContentLanguage, location: "header", location_name: "Content-Language"))
819
827
  CopyObjectRequest.add_member(:content_type, Shapes::ShapeRef.new(shape: ContentType, location: "header", location_name: "Content-Type"))
820
- CopyObjectRequest.add_member(:copy_source, Shapes::ShapeRef.new(shape: CopySource, required: true, location: "header", location_name: "x-amz-copy-source"))
828
+ CopyObjectRequest.add_member(:copy_source, Shapes::ShapeRef.new(shape: CopySource, required: true, location: "header", location_name: "x-amz-copy-source", metadata: {"contextParam"=>{"name"=>"CopySource"}}))
821
829
  CopyObjectRequest.add_member(:copy_source_if_match, Shapes::ShapeRef.new(shape: CopySourceIfMatch, location: "header", location_name: "x-amz-copy-source-if-match"))
822
830
  CopyObjectRequest.add_member(:copy_source_if_modified_since, Shapes::ShapeRef.new(shape: CopySourceIfModifiedSince, location: "header", location_name: "x-amz-copy-source-if-modified-since"))
823
831
  CopyObjectRequest.add_member(:copy_source_if_none_match, Shapes::ShapeRef.new(shape: CopySourceIfNoneMatch, location: "header", location_name: "x-amz-copy-source-if-none-match"))
@@ -827,7 +835,7 @@ module Aws::S3
827
835
  CopyObjectRequest.add_member(:grant_read, Shapes::ShapeRef.new(shape: GrantRead, location: "header", location_name: "x-amz-grant-read"))
828
836
  CopyObjectRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
829
837
  CopyObjectRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
830
- CopyObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
838
+ CopyObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
831
839
  CopyObjectRequest.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location: "headers", location_name: "x-amz-meta-"))
832
840
  CopyObjectRequest.add_member(:metadata_directive, Shapes::ShapeRef.new(shape: MetadataDirective, location: "header", location_name: "x-amz-metadata-directive"))
833
841
  CopyObjectRequest.add_member(:tagging_directive, Shapes::ShapeRef.new(shape: TaggingDirective, location: "header", location_name: "x-amz-tagging-directive"))
@@ -937,11 +945,19 @@ module Aws::S3
937
945
  CreateMultipartUploadRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-checksum-algorithm"))
938
946
  CreateMultipartUploadRequest.struct_class = Types::CreateMultipartUploadRequest
939
947
 
948
+ CreateSessionOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
949
+ CreateSessionOutput.add_member(:ssekms_key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, location: "header", location_name: "x-amz-server-side-encryption-aws-kms-key-id"))
950
+ CreateSessionOutput.add_member(:ssekms_encryption_context, Shapes::ShapeRef.new(shape: SSEKMSEncryptionContext, location: "header", location_name: "x-amz-server-side-encryption-context"))
951
+ CreateSessionOutput.add_member(:bucket_key_enabled, Shapes::ShapeRef.new(shape: BucketKeyEnabled, location: "header", location_name: "x-amz-server-side-encryption-bucket-key-enabled"))
940
952
  CreateSessionOutput.add_member(:credentials, Shapes::ShapeRef.new(shape: SessionCredentials, required: true, location_name: "Credentials"))
941
953
  CreateSessionOutput.struct_class = Types::CreateSessionOutput
942
954
 
943
955
  CreateSessionRequest.add_member(:session_mode, Shapes::ShapeRef.new(shape: SessionMode, location: "header", location_name: "x-amz-create-session-mode"))
944
956
  CreateSessionRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
957
+ CreateSessionRequest.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
958
+ CreateSessionRequest.add_member(:ssekms_key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, location: "header", location_name: "x-amz-server-side-encryption-aws-kms-key-id"))
959
+ CreateSessionRequest.add_member(:ssekms_encryption_context, Shapes::ShapeRef.new(shape: SSEKMSEncryptionContext, location: "header", location_name: "x-amz-server-side-encryption-context"))
960
+ CreateSessionRequest.add_member(:bucket_key_enabled, Shapes::ShapeRef.new(shape: BucketKeyEnabled, location: "header", location_name: "x-amz-server-side-encryption-bucket-key-enabled"))
945
961
  CreateSessionRequest.struct_class = Types::CreateSessionRequest
946
962
 
947
963
  DefaultRetention.add_member(:mode, Shapes::ShapeRef.new(shape: ObjectLockRetentionMode, location_name: "Mode"))
@@ -1179,6 +1195,7 @@ module Aws::S3
1179
1195
  GetBucketInventoryConfigurationRequest.struct_class = Types::GetBucketInventoryConfigurationRequest
1180
1196
 
1181
1197
  GetBucketLifecycleConfigurationOutput.add_member(:rules, Shapes::ShapeRef.new(shape: LifecycleRules, location_name: "Rule"))
1198
+ GetBucketLifecycleConfigurationOutput.add_member(:transition_default_minimum_object_size, Shapes::ShapeRef.new(shape: TransitionDefaultMinimumObjectSize, location: "header", location_name: "x-amz-transition-default-minimum-object-size"))
1182
1199
  GetBucketLifecycleConfigurationOutput.struct_class = Types::GetBucketLifecycleConfigurationOutput
1183
1200
 
1184
1201
  GetBucketLifecycleConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
@@ -1531,6 +1548,12 @@ module Aws::S3
1531
1548
  HeadObjectRequest.add_member(:if_unmodified_since, Shapes::ShapeRef.new(shape: IfUnmodifiedSince, location: "header", location_name: "If-Unmodified-Since"))
1532
1549
  HeadObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
1533
1550
  HeadObjectRequest.add_member(:range, Shapes::ShapeRef.new(shape: Range, location: "header", location_name: "Range"))
1551
+ HeadObjectRequest.add_member(:response_cache_control, Shapes::ShapeRef.new(shape: ResponseCacheControl, location: "querystring", location_name: "response-cache-control"))
1552
+ HeadObjectRequest.add_member(:response_content_disposition, Shapes::ShapeRef.new(shape: ResponseContentDisposition, location: "querystring", location_name: "response-content-disposition"))
1553
+ HeadObjectRequest.add_member(:response_content_encoding, Shapes::ShapeRef.new(shape: ResponseContentEncoding, location: "querystring", location_name: "response-content-encoding"))
1554
+ HeadObjectRequest.add_member(:response_content_language, Shapes::ShapeRef.new(shape: ResponseContentLanguage, location: "querystring", location_name: "response-content-language"))
1555
+ HeadObjectRequest.add_member(:response_content_type, Shapes::ShapeRef.new(shape: ResponseContentType, location: "querystring", location_name: "response-content-type"))
1556
+ HeadObjectRequest.add_member(:response_expires, Shapes::ShapeRef.new(shape: ResponseExpires, location: "querystring", location_name: "response-expires"))
1534
1557
  HeadObjectRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1535
1558
  HeadObjectRequest.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
1536
1559
  HeadObjectRequest.add_member(:sse_customer_key, Shapes::ShapeRef.new(shape: SSECustomerKey, location: "header", location_name: "x-amz-server-side-encryption-customer-key"))
@@ -1701,8 +1724,16 @@ module Aws::S3
1701
1724
 
1702
1725
  ListBucketsOutput.add_member(:buckets, Shapes::ShapeRef.new(shape: Buckets, location_name: "Buckets"))
1703
1726
  ListBucketsOutput.add_member(:owner, Shapes::ShapeRef.new(shape: Owner, location_name: "Owner"))
1727
+ ListBucketsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "ContinuationToken"))
1728
+ ListBucketsOutput.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
1704
1729
  ListBucketsOutput.struct_class = Types::ListBucketsOutput
1705
1730
 
1731
+ ListBucketsRequest.add_member(:max_buckets, Shapes::ShapeRef.new(shape: MaxBuckets, location: "querystring", location_name: "max-buckets"))
1732
+ ListBucketsRequest.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location: "querystring", location_name: "continuation-token"))
1733
+ ListBucketsRequest.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location: "querystring", location_name: "prefix"))
1734
+ ListBucketsRequest.add_member(:bucket_region, Shapes::ShapeRef.new(shape: BucketRegion, location: "querystring", location_name: "bucket-region"))
1735
+ ListBucketsRequest.struct_class = Types::ListBucketsRequest
1736
+
1706
1737
  ListDirectoryBucketsOutput.add_member(:buckets, Shapes::ShapeRef.new(shape: Buckets, location_name: "Buckets"))
1707
1738
  ListDirectoryBucketsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: DirectoryBucketToken, location_name: "ContinuationToken"))
1708
1739
  ListDirectoryBucketsOutput.struct_class = Types::ListDirectoryBucketsOutput
@@ -2107,10 +2138,14 @@ module Aws::S3
2107
2138
  PutBucketInventoryConfigurationRequest[:payload] = :inventory_configuration
2108
2139
  PutBucketInventoryConfigurationRequest[:payload_member] = PutBucketInventoryConfigurationRequest.member(:inventory_configuration)
2109
2140
 
2141
+ PutBucketLifecycleConfigurationOutput.add_member(:transition_default_minimum_object_size, Shapes::ShapeRef.new(shape: TransitionDefaultMinimumObjectSize, location: "header", location_name: "x-amz-transition-default-minimum-object-size"))
2142
+ PutBucketLifecycleConfigurationOutput.struct_class = Types::PutBucketLifecycleConfigurationOutput
2143
+
2110
2144
  PutBucketLifecycleConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
2111
2145
  PutBucketLifecycleConfigurationRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
2112
2146
  PutBucketLifecycleConfigurationRequest.add_member(:lifecycle_configuration, Shapes::ShapeRef.new(shape: BucketLifecycleConfiguration, location_name: "LifecycleConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
2113
2147
  PutBucketLifecycleConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
2148
+ PutBucketLifecycleConfigurationRequest.add_member(:transition_default_minimum_object_size, Shapes::ShapeRef.new(shape: TransitionDefaultMinimumObjectSize, location: "header", location_name: "x-amz-transition-default-minimum-object-size"))
2114
2149
  PutBucketLifecycleConfigurationRequest.struct_class = Types::PutBucketLifecycleConfigurationRequest
2115
2150
  PutBucketLifecycleConfigurationRequest[:payload] = :lifecycle_configuration
2116
2151
  PutBucketLifecycleConfigurationRequest[:payload_member] = PutBucketLifecycleConfigurationRequest.member(:lifecycle_configuration)
@@ -2305,6 +2340,7 @@ module Aws::S3
2305
2340
  PutObjectRequest.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2306
2341
  PutObjectRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2307
2342
  PutObjectRequest.add_member(:expires, Shapes::ShapeRef.new(shape: Expires, location: "header", location_name: "Expires"))
2343
+ PutObjectRequest.add_member(:if_none_match, Shapes::ShapeRef.new(shape: IfNoneMatch, location: "header", location_name: "If-None-Match"))
2308
2344
  PutObjectRequest.add_member(:grant_full_control, Shapes::ShapeRef.new(shape: GrantFullControl, location: "header", location_name: "x-amz-grant-full-control"))
2309
2345
  PutObjectRequest.add_member(:grant_read, Shapes::ShapeRef.new(shape: GrantRead, location: "header", location_name: "x-amz-grant-read"))
2310
2346
  PutObjectRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
@@ -2760,10 +2796,12 @@ module Aws::S3
2760
2796
 
2761
2797
  api.metadata = {
2762
2798
  "apiVersion" => "2006-03-01",
2799
+ "auth" => ["aws.auth#sigv4"],
2763
2800
  "checksumFormat" => "md5",
2764
2801
  "endpointPrefix" => "s3",
2765
2802
  "globalEndpoint" => "s3.amazonaws.com",
2766
2803
  "protocol" => "rest-xml",
2804
+ "protocols" => ["rest-xml"],
2767
2805
  "serviceAbbreviation" => "Amazon S3",
2768
2806
  "serviceFullName" => "Amazon Simple Storage Service",
2769
2807
  "serviceId" => "S3",
@@ -3283,8 +3321,14 @@ module Aws::S3
3283
3321
  o.name = "ListBuckets"
3284
3322
  o.http_method = "GET"
3285
3323
  o.http_request_uri = "/"
3286
- o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3324
+ o.input = Shapes::ShapeRef.new(shape: ListBucketsRequest)
3287
3325
  o.output = Shapes::ShapeRef.new(shape: ListBucketsOutput)
3326
+ o[:pager] = Aws::Pager.new(
3327
+ limit_key: "max_buckets",
3328
+ tokens: {
3329
+ "continuation_token" => "continuation_token"
3330
+ }
3331
+ )
3288
3332
  end)
3289
3333
 
3290
3334
  api.add_operation(:list_directory_buckets, Seahorse::Model::Operation.new.tap do |o|
@@ -3497,7 +3541,7 @@ module Aws::S3
3497
3541
  "requestChecksumRequired" => true,
3498
3542
  }
3499
3543
  o.input = Shapes::ShapeRef.new(shape: PutBucketLifecycleConfigurationRequest)
3500
- o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3544
+ o.output = Shapes::ShapeRef.new(shape: PutBucketLifecycleConfigurationOutput)
3501
3545
  end)
3502
3546
 
3503
3547
  api.add_operation(:put_bucket_logging, Seahorse::Model::Operation.new.tap do |o|
@@ -3828,6 +3872,7 @@ module Aws::S3
3828
3872
  o.http_method = "POST"
3829
3873
  o.http_request_uri = "/WriteGetObjectResponse"
3830
3874
  o['authtype'] = "v4-unsigned-body"
3875
+ o['unsignedPayload'] = true
3831
3876
  o.endpoint_pattern = {
3832
3877
  "hostPrefix" => "{RequestRoute}.",
3833
3878
  }
@@ -134,7 +134,7 @@ module Aws
134
134
 
135
135
  # @api private
136
136
  def load
137
- @data = Aws::Plugins::UserAgent.feature('resource') do
137
+ @data = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
138
138
  client.list_buckets.buckets.find { |b| b.name == name }
139
139
  end
140
140
  raise "unable to load bucket #{name}" if @data.nil?
@@ -76,7 +76,7 @@ module Aws
76
76
  # @see #copy_to
77
77
  #
78
78
  def copy_from(source, options = {})
79
- Aws::Plugins::UserAgent.feature('resource') do
79
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
80
80
  if Hash === source && source[:copy_source]
81
81
  # for backwards compatibility
82
82
  @client.copy_object(source.merge(bucket: bucket_name, key: key))
@@ -119,7 +119,7 @@ module Aws
119
119
  # object.copy_to('src-bucket/src-key', multipart_copy: true)
120
120
  #
121
121
  def copy_to(target, options = {})
122
- Aws::Plugins::UserAgent.feature('resource') do
122
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
123
123
  ObjectCopier.new(self, options).copy_to(target, options)
124
124
  end
125
125
  end
@@ -390,7 +390,7 @@ module Aws
390
390
  tempfile: uploading_options.delete(:tempfile),
391
391
  part_size: uploading_options.delete(:part_size)
392
392
  )
393
- Aws::Plugins::UserAgent.feature('resource') do
393
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
394
394
  uploader.upload(
395
395
  uploading_options.merge(bucket: bucket_name, key: key),
396
396
  &block
@@ -473,7 +473,7 @@ module Aws
473
473
  multipart_threshold: uploading_options.delete(:multipart_threshold),
474
474
  client: client
475
475
  )
476
- response = Aws::Plugins::UserAgent.feature('resource') do
476
+ response = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
477
477
  uploader.upload(
478
478
  source,
479
479
  uploading_options.merge(bucket: bucket_name, key: key)
@@ -551,7 +551,7 @@ module Aws
551
551
  # @see Client#head_object
552
552
  def download_file(destination, options = {})
553
553
  downloader = FileDownloader.new(client: client)
554
- Aws::Plugins::UserAgent.feature('resource') do
554
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
555
555
  downloader.download(
556
556
  destination,
557
557
  options.merge(bucket: bucket_name, key: key)
@@ -559,6 +559,12 @@ module Aws
559
559
  end
560
560
  true
561
561
  end
562
+
563
+ class Collection < Aws::Resources::Collection
564
+ alias_method :delete, :batch_delete!
565
+ extend Aws::Deprecations
566
+ deprecated :delete, use: :batch_delete!
567
+ end
562
568
  end
563
569
  end
564
570
  end
@@ -80,6 +80,11 @@ module Aws
80
80
  object.download_file(destination, options)
81
81
  end
82
82
 
83
+ class Collection < Aws::Resources::Collection
84
+ alias_method :delete, :batch_delete!
85
+ extend Aws::Deprecations
86
+ deprecated :delete, use: :batch_delete!
87
+ end
83
88
  end
84
89
  end
85
90
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module S3
5
+ class ObjectVersion
6
+ class Collection < Aws::Resources::Collection
7
+ alias_method :delete, :batch_delete!
8
+ extend Aws::Deprecations
9
+ deprecated :delete, use: :batch_delete!
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,44 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # utility classes
4
- require 'aws-sdk-s3/bucket_region_cache'
5
- require 'aws-sdk-s3/encryption'
6
- require 'aws-sdk-s3/encryption_v2'
7
- require 'aws-sdk-s3/file_part'
8
- require 'aws-sdk-s3/file_uploader'
9
- require 'aws-sdk-s3/file_downloader'
10
- require 'aws-sdk-s3/legacy_signer'
11
- require 'aws-sdk-s3/multipart_file_uploader'
12
- require 'aws-sdk-s3/multipart_stream_uploader'
13
- require 'aws-sdk-s3/multipart_upload_error'
14
- require 'aws-sdk-s3/object_copier'
15
- require 'aws-sdk-s3/object_multipart_copier'
16
- require 'aws-sdk-s3/presigned_post'
17
- require 'aws-sdk-s3/presigner'
3
+ module Aws
4
+ module S3
5
+ # utility classes
6
+ autoload :BucketRegionCache, 'aws-sdk-s3/bucket_region_cache'
7
+ autoload :Encryption, 'aws-sdk-s3/encryption'
8
+ autoload :EncryptionV2, 'aws-sdk-s3/encryption_v2'
9
+ autoload :FilePart, 'aws-sdk-s3/file_part'
10
+ autoload :FileUploader, 'aws-sdk-s3/file_uploader'
11
+ autoload :FileDownloader, 'aws-sdk-s3/file_downloader'
12
+ autoload :LegacySigner, 'aws-sdk-s3/legacy_signer'
13
+ autoload :MultipartFileUploader, 'aws-sdk-s3/multipart_file_uploader'
14
+ autoload :MultipartStreamUploader, 'aws-sdk-s3/multipart_stream_uploader'
15
+ autoload :MultipartUploadError, 'aws-sdk-s3/multipart_upload_error'
16
+ autoload :ObjectCopier, 'aws-sdk-s3/object_copier'
17
+ autoload :ObjectMultipartCopier, 'aws-sdk-s3/object_multipart_copier'
18
+ autoload :PresignedPost, 'aws-sdk-s3/presigned_post'
19
+ autoload :Presigner, 'aws-sdk-s3/presigner'
18
20
 
19
- # s3 express session auth
20
- require 'aws-sdk-s3/express_credentials'
21
- require 'aws-sdk-s3/express_credentials_provider'
21
+ # s3 express session auth
22
+ autoload :ExpressCredentials, 'aws-sdk-s3/express_credentials'
23
+ autoload :ExpressCredentialsProvider, 'aws-sdk-s3/express_credentials_provider'
22
24
 
23
- # s3 access grants auth
24
- require 'aws-sdk-s3/access_grants_credentials'
25
- require 'aws-sdk-s3/access_grants_credentials_provider'
25
+ # s3 access grants auth
26
26
 
27
- # customizations to generated classes
28
- require 'aws-sdk-s3/customizations/bucket'
29
- require 'aws-sdk-s3/customizations/errors'
30
- require 'aws-sdk-s3/customizations/object'
31
- require 'aws-sdk-s3/customizations/object_summary'
32
- require 'aws-sdk-s3/customizations/multipart_upload'
33
- require 'aws-sdk-s3/customizations/types/list_object_versions_output'
34
- require 'aws-sdk-s3/customizations/types/permanent_redirect'
35
-
36
- [
37
- Aws::S3::Object::Collection,
38
- Aws::S3::ObjectSummary::Collection,
39
- Aws::S3::ObjectVersion::Collection,
40
- ].each do |klass|
41
- klass.send(:alias_method, :delete, :batch_delete!)
42
- klass.extend Aws::Deprecations
43
- klass.send(:deprecated, :delete, use: :batch_delete!)
27
+ autoload :AccessGrantsCredentials, 'aws-sdk-s3/access_grants_credentials'
28
+ autoload :AccessGrantsCredentialsProvider, 'aws-sdk-s3/access_grants_credentials_provider'
29
+ end
44
30
  end
@@ -270,7 +270,7 @@ module Aws
270
270
  envelope_location: @envelope_location,
271
271
  instruction_file_suffix: @instruction_file_suffix,
272
272
  }
273
- Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
273
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
274
274
  req.send_request
275
275
  end
276
276
  end
@@ -300,7 +300,7 @@ module Aws
300
300
  envelope_location: envelope_location,
301
301
  instruction_file_suffix: instruction_file_suffix,
302
302
  }
303
- Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
303
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
304
304
  req.send_request(target: block)
305
305
  end
306
306
  end
@@ -17,7 +17,7 @@ module Aws
17
17
  # envelope and encryption cipher.
18
18
  def encryption_cipher
19
19
  encryption_context = { "kms_cmk_id" => @kms_key_id }
20
- key_data = Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
20
+ key_data = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
21
21
  @kms_client.generate_data_key(
22
22
  key_id: @kms_key_id,
23
23
  encryption_context: encryption_context,
@@ -60,7 +60,7 @@ module Aws
60
60
  "#{envelope['x-amz-wrap-alg']}"
61
61
  end
62
62
 
63
- key = Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
63
+ key = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
64
64
  @kms_client.decrypt(
65
65
  ciphertext_blob: decode64(envelope['x-amz-key-v2']),
66
66
  encryption_context: encryption_context
@@ -361,7 +361,7 @@ module Aws
361
361
  instruction_file_suffix: @instruction_file_suffix,
362
362
  kms_encryption_context: kms_encryption_context
363
363
  }
364
- Aws::Plugins::UserAgent.feature('S3CryptoV2') do
364
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
365
365
  req.send_request
366
366
  end
367
367
  end
@@ -416,7 +416,7 @@ module Aws
416
416
  kms_allow_decrypt_with_any_cmk: kms_any_cmk_mode,
417
417
  security_profile: security_profile
418
418
  }
419
- Aws::Plugins::UserAgent.feature('S3CryptoV2') do
419
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
420
420
  req.send_request(target: block)
421
421
  end
422
422
  end
@@ -24,7 +24,7 @@ module Aws
24
24
  def encryption_cipher(options = {})
25
25
  validate_key_for_encryption
26
26
  encryption_context = build_encryption_context(@content_encryption_schema, options)
27
- key_data = Aws::Plugins::UserAgent.feature('S3CryptoV2') do
27
+ key_data = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
28
28
  @kms_client.generate_data_key(
29
29
  key_id: @kms_key_id,
30
30
  encryption_context: encryption_context,
@@ -85,7 +85,7 @@ module Aws
85
85
  decrypt_options[:key_id] = @kms_key_id
86
86
  end
87
87
 
88
- key = Aws::Plugins::UserAgent.feature('S3CryptoV2') do
88
+ key = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
89
89
  @kms_client.decrypt(decrypt_options).plaintext
90
90
  end
91
91
  iv = decode64(envelope['x-amz-iv'])
@@ -65,6 +65,11 @@ module Aws::S3
65
65
  #
66
66
  # @return [String]
67
67
  #
68
+ # @!attribute copy_source
69
+ # The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.
70
+ #
71
+ # @return [String]
72
+ #
68
73
  # @!attribute disable_access_points
69
74
  # Internal parameter to disable Access Point Buckets
70
75
  #
@@ -102,6 +107,7 @@ module Aws::S3
102
107
  :use_object_lambda_endpoint,
103
108
  :key,
104
109
  :prefix,
110
+ :copy_source,
105
111
  :disable_access_points,
106
112
  :disable_multi_region_access_points,
107
113
  :use_arn_region,
@@ -124,6 +130,7 @@ module Aws::S3
124
130
  'UseObjectLambdaEndpoint' => :use_object_lambda_endpoint,
125
131
  'Key' => :key,
126
132
  'Prefix' => :prefix,
133
+ 'CopySource' => :copy_source,
127
134
  'DisableAccessPoints' => :disable_access_points,
128
135
  'DisableMultiRegionAccessPoints' => :disable_multi_region_access_points,
129
136
  'UseArnRegion' => :use_arn_region,
@@ -137,42 +144,38 @@ module Aws::S3
137
144
  self[:region] = options[:region]
138
145
  self[:use_fips] = options[:use_fips]
139
146
  self[:use_fips] = false if self[:use_fips].nil?
140
- if self[:use_fips].nil?
141
- raise ArgumentError, "Missing required EndpointParameter: :use_fips"
142
- end
143
147
  self[:use_dual_stack] = options[:use_dual_stack]
144
148
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
145
- if self[:use_dual_stack].nil?
146
- raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
147
- end
148
149
  self[:endpoint] = options[:endpoint]
149
150
  self[:force_path_style] = options[:force_path_style]
150
151
  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
154
152
  self[:accelerate] = options[:accelerate]
155
153
  self[:accelerate] = false if self[:accelerate].nil?
156
- if self[:accelerate].nil?
157
- raise ArgumentError, "Missing required EndpointParameter: :accelerate"
158
- end
159
154
  self[:use_global_endpoint] = options[:use_global_endpoint]
160
155
  self[:use_global_endpoint] = false if self[:use_global_endpoint].nil?
161
- if self[:use_global_endpoint].nil?
162
- raise ArgumentError, "Missing required EndpointParameter: :use_global_endpoint"
163
- end
164
156
  self[:use_object_lambda_endpoint] = options[:use_object_lambda_endpoint]
165
157
  self[:key] = options[:key]
166
158
  self[:prefix] = options[:prefix]
159
+ self[:copy_source] = options[:copy_source]
167
160
  self[:disable_access_points] = options[:disable_access_points]
168
161
  self[:disable_multi_region_access_points] = options[:disable_multi_region_access_points]
169
162
  self[:disable_multi_region_access_points] = false if self[:disable_multi_region_access_points].nil?
170
- if self[:disable_multi_region_access_points].nil?
171
- raise ArgumentError, "Missing required EndpointParameter: :disable_multi_region_access_points"
172
- end
173
163
  self[:use_arn_region] = options[:use_arn_region]
174
164
  self[:use_s3_express_control_endpoint] = options[:use_s3_express_control_endpoint]
175
165
  self[:disable_s3_express_session_auth] = options[:disable_s3_express_session_auth]
176
166
  end
167
+
168
+ def self.create(config, options={})
169
+ new({
170
+ region: config.region,
171
+ use_fips: config.use_fips_endpoint,
172
+ endpoint: (config.endpoint.to_s unless config.regional_endpoint),
173
+ force_path_style: config.force_path_style,
174
+ use_global_endpoint: config.s3_us_east_1_regional_endpoint == 'legacy',
175
+ disable_multi_region_access_points: config.s3_disable_multiregion_access_points,
176
+ use_arn_region: config.s3_use_arn_region,
177
+ disable_s3_express_session_auth: config.disable_s3_express_session_auth,
178
+ }.merge(options))
179
+ end
177
180
  end
178
181
  end
@@ -21,6 +21,7 @@ module Aws::S3
21
21
  use_object_lambda_endpoint = parameters.use_object_lambda_endpoint
22
22
  key = parameters.key
23
23
  prefix = parameters.prefix
24
+ copy_source = parameters.copy_source
24
25
  disable_access_points = parameters.disable_access_points
25
26
  disable_multi_region_access_points = parameters.disable_multi_region_access_points
26
27
  use_arn_region = parameters.use_arn_region