aws-sdk-s3 1.84.0 → 1.86.2

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.
@@ -247,6 +247,9 @@ module Aws::S3
247
247
  # not corrupted in transit. For more information, go to [RFC
248
248
  # 1864.>][1]
249
249
  #
250
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
251
+ # SDKs, this field is calculated automatically.
252
+ #
250
253
  #
251
254
  #
252
255
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -302,6 +302,7 @@ module Aws::S3
302
302
  # sse_customer_key_md5: "SSECustomerKeyMD5",
303
303
  # ssekms_key_id: "SSEKMSKeyId",
304
304
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
305
+ # bucket_key_enabled: false,
305
306
  # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm",
306
307
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
307
308
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
@@ -458,6 +459,14 @@ module Aws::S3
458
459
  # Specifies the AWS KMS Encryption Context to use for object encryption.
459
460
  # The value of this header is a base64-encoded UTF-8 string holding JSON
460
461
  # with the encryption context key-value pairs.
462
+ # @option options [Boolean] :bucket_key_enabled
463
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
464
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
465
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
466
+ # for object encryption with SSE-KMS.
467
+ #
468
+ # Specifying this header with a COPY operation doesn’t affect
469
+ # bucket-level settings for S3 Bucket Key.
461
470
  # @option options [String] :copy_source_sse_customer_algorithm
462
471
  # Specifies the algorithm to use when decrypting the source object (for
463
472
  # example, AES256).
@@ -681,6 +690,7 @@ module Aws::S3
681
690
  # sse_customer_key_md5: "SSECustomerKeyMD5",
682
691
  # ssekms_key_id: "SSEKMSKeyId",
683
692
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
693
+ # bucket_key_enabled: false,
684
694
  # request_payer: "requester", # accepts requester
685
695
  # tagging: "TaggingHeader",
686
696
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -772,6 +782,14 @@ module Aws::S3
772
782
  # Specifies the AWS KMS Encryption Context to use for object encryption.
773
783
  # The value of this header is a base64-encoded UTF-8 string holding JSON
774
784
  # with the encryption context key-value pairs.
785
+ # @option options [Boolean] :bucket_key_enabled
786
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
787
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
788
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
789
+ # for object encryption with SSE-KMS.
790
+ #
791
+ # Specifying this header with an object operation doesn’t affect
792
+ # bucket-level settings for S3 Bucket Key.
775
793
  # @option options [String] :request_payer
776
794
  # Confirms that the requester knows that they will be charged for the
777
795
  # request. Bucket owners need not specify this parameter in their
@@ -840,6 +858,7 @@ module Aws::S3
840
858
  # sse_customer_key_md5: "SSECustomerKeyMD5",
841
859
  # ssekms_key_id: "SSEKMSKeyId",
842
860
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
861
+ # bucket_key_enabled: false,
843
862
  # request_payer: "requester", # accepts requester
844
863
  # tagging: "TaggingHeader",
845
864
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -1009,6 +1028,14 @@ module Aws::S3
1009
1028
  # Specifies the AWS KMS Encryption Context to use for object encryption.
1010
1029
  # The value of this header is a base64-encoded UTF-8 string holding JSON
1011
1030
  # with the encryption context key-value pairs.
1031
+ # @option options [Boolean] :bucket_key_enabled
1032
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1033
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
1034
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1035
+ # for object encryption with SSE-KMS.
1036
+ #
1037
+ # Specifying this header with a PUT operation doesn’t affect
1038
+ # bucket-level settings for S3 Bucket Key.
1012
1039
  # @option options [String] :request_payer
1013
1040
  # Confirms that the requester knows that they will be charged for the
1014
1041
  # request. Bucket owners need not specify this parameter in their
@@ -82,7 +82,7 @@ module Aws
82
82
 
83
83
  if arn
84
84
  S3Signer.build_v4_signer(
85
- service: arn.respond_to?(:outpost_id) ? 's3-outposts' : 's3',
85
+ service: arn.service,
86
86
  region: resolved_region,
87
87
  credentials: context.config.credentials
88
88
  )
@@ -196,7 +196,7 @@ module Aws
196
196
  req.handlers.remove(Aws::S3::Plugins::S3Signer::V4Handler)
197
197
  req.handlers.remove(Seahorse::Client::Plugins::ContentLength::Handler)
198
198
 
199
- signer = build_signer(req.context.config, unsigned_headers)
199
+ signer = build_signer(req.context, unsigned_headers)
200
200
 
201
201
  req.handle(step: :send) do |context|
202
202
  if scheme != http_req.endpoint.scheme
@@ -240,14 +240,27 @@ module Aws
240
240
  x_amz_headers
241
241
  end
242
242
 
243
- def build_signer(cfg, unsigned_headers)
244
- Aws::Sigv4::Signer.new(
243
+ def build_signer(context, unsigned_headers)
244
+ signer_opts = {
245
245
  service: 's3',
246
- region: cfg.region,
247
- credentials_provider: cfg.credentials,
246
+ region: context.config.region,
247
+ credentials_provider: context.config.credentials,
248
248
  unsigned_headers: unsigned_headers,
249
249
  uri_escape_path: false
250
+ }
251
+
252
+ resolved_region, arn = Aws::S3::Plugins::ARN.resolve_arn!(
253
+ context.params[:bucket],
254
+ context.config.sigv4_signer.region,
255
+ context.config.s3_use_arn_region
250
256
  )
257
+
258
+ if arn
259
+ signer_opts[:region] = resolved_region
260
+ signer_opts[:service] = arn.service
261
+ end
262
+
263
+ Aws::Sigv4::Signer.new(signer_opts)
251
264
  end
252
265
  end
253
266
  end
@@ -459,7 +459,8 @@ module Aws::S3
459
459
  # @return [String]
460
460
  #
461
461
  # @!attribute [rw] creation_date
462
- # Date the bucket was created.
462
+ # Date the bucket was created. This date can change when making
463
+ # changes to your bucket, such as editing its bucket policy.
463
464
  # @return [Time]
464
465
  #
465
466
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Bucket AWS API Documentation
@@ -973,6 +974,11 @@ module Aws::S3
973
974
  # used for the object.
974
975
  # @return [String]
975
976
  #
977
+ # @!attribute [rw] bucket_key_enabled
978
+ # Indicates whether the multipart upload uses an S3 Bucket Key for
979
+ # server-side encryption with AWS KMS (SSE-KMS).
980
+ # @return [Boolean]
981
+ #
976
982
  # @!attribute [rw] request_charged
977
983
  # If present, indicates that the requester was successfully charged
978
984
  # for the request.
@@ -989,6 +995,7 @@ module Aws::S3
989
995
  :server_side_encryption,
990
996
  :version_id,
991
997
  :ssekms_key_id,
998
+ :bucket_key_enabled,
992
999
  :request_charged)
993
1000
  SENSITIVE = [:ssekms_key_id]
994
1001
  include Aws::Structure
@@ -1213,6 +1220,11 @@ module Aws::S3
1213
1220
  # pairs.
1214
1221
  # @return [String]
1215
1222
  #
1223
+ # @!attribute [rw] bucket_key_enabled
1224
+ # Indicates whether the copied object uses an S3 Bucket Key for
1225
+ # server-side encryption with AWS KMS (SSE-KMS).
1226
+ # @return [Boolean]
1227
+ #
1216
1228
  # @!attribute [rw] request_charged
1217
1229
  # If present, indicates that the requester was successfully charged
1218
1230
  # for the request.
@@ -1230,6 +1242,7 @@ module Aws::S3
1230
1242
  :sse_customer_key_md5,
1231
1243
  :ssekms_key_id,
1232
1244
  :ssekms_encryption_context,
1245
+ :bucket_key_enabled,
1233
1246
  :request_charged)
1234
1247
  SENSITIVE = [:ssekms_key_id, :ssekms_encryption_context]
1235
1248
  include Aws::Structure
@@ -1270,6 +1283,7 @@ module Aws::S3
1270
1283
  # sse_customer_key_md5: "SSECustomerKeyMD5",
1271
1284
  # ssekms_key_id: "SSEKMSKeyId",
1272
1285
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
1286
+ # bucket_key_enabled: false,
1273
1287
  # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm",
1274
1288
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
1275
1289
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
@@ -1513,6 +1527,16 @@ module Aws::S3
1513
1527
  # string holding JSON with the encryption context key-value pairs.
1514
1528
  # @return [String]
1515
1529
  #
1530
+ # @!attribute [rw] bucket_key_enabled
1531
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1532
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
1533
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket
1534
+ # Key for object encryption with SSE-KMS.
1535
+ #
1536
+ # Specifying this header with a COPY operation doesn’t affect
1537
+ # bucket-level settings for S3 Bucket Key.
1538
+ # @return [Boolean]
1539
+ #
1516
1540
  # @!attribute [rw] copy_source_sse_customer_algorithm
1517
1541
  # Specifies the algorithm to use when decrypting the source object
1518
1542
  # (for example, AES256).
@@ -1606,6 +1630,7 @@ module Aws::S3
1606
1630
  :sse_customer_key_md5,
1607
1631
  :ssekms_key_id,
1608
1632
  :ssekms_encryption_context,
1633
+ :bucket_key_enabled,
1609
1634
  :copy_source_sse_customer_algorithm,
1610
1635
  :copy_source_sse_customer_key,
1611
1636
  :copy_source_sse_customer_key_md5,
@@ -1859,6 +1884,11 @@ module Aws::S3
1859
1884
  # pairs.
1860
1885
  # @return [String]
1861
1886
  #
1887
+ # @!attribute [rw] bucket_key_enabled
1888
+ # Indicates whether the multipart upload uses an S3 Bucket Key for
1889
+ # server-side encryption with AWS KMS (SSE-KMS).
1890
+ # @return [Boolean]
1891
+ #
1862
1892
  # @!attribute [rw] request_charged
1863
1893
  # If present, indicates that the requester was successfully charged
1864
1894
  # for the request.
@@ -1877,6 +1907,7 @@ module Aws::S3
1877
1907
  :sse_customer_key_md5,
1878
1908
  :ssekms_key_id,
1879
1909
  :ssekms_encryption_context,
1910
+ :bucket_key_enabled,
1880
1911
  :request_charged)
1881
1912
  SENSITIVE = [:ssekms_key_id, :ssekms_encryption_context]
1882
1913
  include Aws::Structure
@@ -1910,6 +1941,7 @@ module Aws::S3
1910
1941
  # sse_customer_key_md5: "SSECustomerKeyMD5",
1911
1942
  # ssekms_key_id: "SSEKMSKeyId",
1912
1943
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
1944
+ # bucket_key_enabled: false,
1913
1945
  # request_payer: "requester", # accepts requester
1914
1946
  # tagging: "TaggingHeader",
1915
1947
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -2074,6 +2106,16 @@ module Aws::S3
2074
2106
  # string holding JSON with the encryption context key-value pairs.
2075
2107
  # @return [String]
2076
2108
  #
2109
+ # @!attribute [rw] bucket_key_enabled
2110
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
2111
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
2112
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket
2113
+ # Key for object encryption with SSE-KMS.
2114
+ #
2115
+ # Specifying this header with an object operation doesn’t affect
2116
+ # bucket-level settings for S3 Bucket Key.
2117
+ # @return [Boolean]
2118
+ #
2077
2119
  # @!attribute [rw] request_payer
2078
2120
  # Confirms that the requester knows that they will be charged for the
2079
2121
  # request. Bucket owners need not specify this parameter in their
@@ -2136,6 +2178,7 @@ module Aws::S3
2136
2178
  :sse_customer_key_md5,
2137
2179
  :ssekms_key_id,
2138
2180
  :ssekms_encryption_context,
2181
+ :bucket_key_enabled,
2139
2182
  :request_payer,
2140
2183
  :tagging,
2141
2184
  :object_lock_mode,
@@ -5370,6 +5413,11 @@ module Aws::S3
5370
5413
  # used for the object.
5371
5414
  # @return [String]
5372
5415
  #
5416
+ # @!attribute [rw] bucket_key_enabled
5417
+ # Indicates whether the object uses an S3 Bucket Key for server-side
5418
+ # encryption with AWS KMS (SSE-KMS).
5419
+ # @return [Boolean]
5420
+ #
5373
5421
  # @!attribute [rw] storage_class
5374
5422
  # Provides storage class information of the object. Amazon S3 returns
5375
5423
  # this header for all objects except for S3 Standard storage class
@@ -5435,6 +5483,7 @@ module Aws::S3
5435
5483
  :sse_customer_algorithm,
5436
5484
  :sse_customer_key_md5,
5437
5485
  :ssekms_key_id,
5486
+ :bucket_key_enabled,
5438
5487
  :storage_class,
5439
5488
  :request_charged,
5440
5489
  :replication_status,
@@ -6222,6 +6271,11 @@ module Aws::S3
6222
6271
  # used for the object.
6223
6272
  # @return [String]
6224
6273
  #
6274
+ # @!attribute [rw] bucket_key_enabled
6275
+ # Indicates whether the object uses an S3 Bucket Key for server-side
6276
+ # encryption with AWS KMS (SSE-KMS).
6277
+ # @return [Boolean]
6278
+ #
6225
6279
  # @!attribute [rw] storage_class
6226
6280
  # Provides storage class information of the object. Amazon S3 returns
6227
6281
  # this header for all objects except for S3 Standard storage class
@@ -6241,11 +6295,11 @@ module Aws::S3
6241
6295
  #
6242
6296
  # @!attribute [rw] replication_status
6243
6297
  # Amazon S3 can return this header if your request involves a bucket
6244
- # that is either a source or destination in a replication rule.
6298
+ # that is either a source or a destination in a replication rule.
6245
6299
  #
6246
6300
  # In replication, you have a source bucket on which you configure
6247
- # replication and destination bucket where Amazon S3 stores object
6248
- # replicas. When you request an object (`GetObject`) or object
6301
+ # replication and destination bucket or buckets where Amazon S3 stores
6302
+ # object replicas. When you request an object (`GetObject`) or object
6249
6303
  # metadata (`HeadObject`) from these buckets, Amazon S3 will return
6250
6304
  # the `x-amz-replication-status` header in the response as follows:
6251
6305
  #
@@ -6262,10 +6316,18 @@ module Aws::S3
6262
6316
  # header with value PENDING, COMPLETED or FAILED indicating object
6263
6317
  # replication status.
6264
6318
  #
6265
- # * If requesting an object from the destination bucket — Amazon S3
6266
- # will return the `x-amz-replication-status` header with value
6267
- # REPLICA if the object in your request is a replica that Amazon S3
6268
- # created.
6319
+ # * If requesting an object from a destination bucket — Amazon S3 will
6320
+ # return the `x-amz-replication-status` header with value REPLICA if
6321
+ # the object in your request is a replica that Amazon S3 created and
6322
+ # there is no replica modification replication in progress.
6323
+ #
6324
+ # * When replicating objects to multiple destination buckets the
6325
+ # `x-amz-replication-status` header acts differently. The header of
6326
+ # the source object will only return a value of COMPLETED when
6327
+ # replication is successful to all destinations. The header will
6328
+ # remain at value PENDING until replication has completed for all
6329
+ # destinations. If one or more destinations fails replication the
6330
+ # header will return FAILED.
6269
6331
  #
6270
6332
  # For more information, see [Replication][1].
6271
6333
  #
@@ -6334,6 +6396,7 @@ module Aws::S3
6334
6396
  :sse_customer_algorithm,
6335
6397
  :sse_customer_key_md5,
6336
6398
  :ssekms_key_id,
6399
+ :bucket_key_enabled,
6337
6400
  :storage_class,
6338
6401
  :request_charged,
6339
6402
  :replication_status,
@@ -9975,6 +10038,9 @@ module Aws::S3
9975
10038
  # was not corrupted in transit. For more information, go to [RFC
9976
10039
  # 1864.][1]
9977
10040
  #
10041
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10042
+ # SDKs, this field is calculated automatically.
10043
+ #
9978
10044
  #
9979
10045
  #
9980
10046
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10137,6 +10203,9 @@ module Aws::S3
10137
10203
  # was not corrupted in transit. For more information, go to [RFC
10138
10204
  # 1864.][1]
10139
10205
  #
10206
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10207
+ # SDKs, this field is calculated automatically.
10208
+ #
10140
10209
  #
10141
10210
  #
10142
10211
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10172,6 +10241,7 @@ module Aws::S3
10172
10241
  # sse_algorithm: "AES256", # required, accepts AES256, aws:kms
10173
10242
  # kms_master_key_id: "SSEKMSKeyId",
10174
10243
  # },
10244
+ # bucket_key_enabled: false,
10175
10245
  # },
10176
10246
  # ],
10177
10247
  # },
@@ -10193,8 +10263,10 @@ module Aws::S3
10193
10263
  #
10194
10264
  # @!attribute [rw] content_md5
10195
10265
  # The base64-encoded 128-bit MD5 digest of the server-side encryption
10196
- # configuration. This parameter is auto-populated when using the
10197
- # command from the CLI.
10266
+ # configuration.
10267
+ #
10268
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10269
+ # SDKs, this field is calculated automatically.
10198
10270
  # @return [String]
10199
10271
  #
10200
10272
  # @!attribute [rw] server_side_encryption_configuration
@@ -10464,6 +10536,8 @@ module Aws::S3
10464
10536
  # @return [String]
10465
10537
  #
10466
10538
  # @!attribute [rw] content_md5
10539
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10540
+ # SDKs, this field is calculated automatically.
10467
10541
  # @return [String]
10468
10542
  #
10469
10543
  # @!attribute [rw] lifecycle_configuration
@@ -10523,6 +10597,9 @@ module Aws::S3
10523
10597
  #
10524
10598
  # @!attribute [rw] content_md5
10525
10599
  # The MD5 hash of the `PutBucketLogging` request body.
10600
+ #
10601
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10602
+ # SDKs, this field is calculated automatically.
10526
10603
  # @return [String]
10527
10604
  #
10528
10605
  # @!attribute [rw] expected_bucket_owner
@@ -10722,6 +10799,9 @@ module Aws::S3
10722
10799
  #
10723
10800
  # @!attribute [rw] content_md5
10724
10801
  # The MD5 hash of the `PutPublicAccessBlock` request body.
10802
+ #
10803
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10804
+ # SDKs, this field is calculated automatically.
10725
10805
  # @return [String]
10726
10806
  #
10727
10807
  # @!attribute [rw] notification_configuration
@@ -10768,6 +10848,9 @@ module Aws::S3
10768
10848
  #
10769
10849
  # @!attribute [rw] content_md5
10770
10850
  # The MD5 hash of the `OwnershipControls` request body.
10851
+ #
10852
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10853
+ # SDKs, this field is calculated automatically.
10771
10854
  # @return [String]
10772
10855
  #
10773
10856
  # @!attribute [rw] expected_bucket_owner
@@ -10809,6 +10892,9 @@ module Aws::S3
10809
10892
  #
10810
10893
  # @!attribute [rw] content_md5
10811
10894
  # The MD5 hash of the request body.
10895
+ #
10896
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10897
+ # SDKs, this field is calculated automatically.
10812
10898
  # @return [String]
10813
10899
  #
10814
10900
  # @!attribute [rw] confirm_remove_self_bucket_access
@@ -10872,6 +10958,9 @@ module Aws::S3
10872
10958
  # sse_kms_encrypted_objects: {
10873
10959
  # status: "Enabled", # required, accepts Enabled, Disabled
10874
10960
  # },
10961
+ # replica_modifications: {
10962
+ # status: "Enabled", # required, accepts Enabled, Disabled
10963
+ # },
10875
10964
  # },
10876
10965
  # existing_object_replication: {
10877
10966
  # status: "Enabled", # required, accepts Enabled, Disabled
@@ -10919,6 +11008,9 @@ module Aws::S3
10919
11008
  # was not corrupted in transit. For more information, see [RFC
10920
11009
  # 1864][1].
10921
11010
  #
11011
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11012
+ # SDKs, this field is calculated automatically.
11013
+ #
10922
11014
  #
10923
11015
  #
10924
11016
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10973,6 +11065,9 @@ module Aws::S3
10973
11065
  # body was not corrupted in transit. For more information, see [RFC
10974
11066
  # 1864][1].
10975
11067
  #
11068
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11069
+ # SDKs, this field is calculated automatically.
11070
+ #
10976
11071
  #
10977
11072
  #
10978
11073
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -11026,6 +11121,9 @@ module Aws::S3
11026
11121
  # was not corrupted in transit. For more information, see [RFC
11027
11122
  # 1864][1].
11028
11123
  #
11124
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11125
+ # SDKs, this field is calculated automatically.
11126
+ #
11029
11127
  #
11030
11128
  #
11031
11129
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -11076,6 +11174,9 @@ module Aws::S3
11076
11174
  # body was not corrupted in transit. For more information, see [RFC
11077
11175
  # 1864][1].
11078
11176
  #
11177
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11178
+ # SDKs, this field is calculated automatically.
11179
+ #
11079
11180
  #
11080
11181
  #
11081
11182
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -11155,6 +11256,9 @@ module Aws::S3
11155
11256
  # was not corrupted in transit. For more information, see [RFC
11156
11257
  # 1864][1].
11157
11258
  #
11259
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11260
+ # SDKs, this field is calculated automatically.
11261
+ #
11158
11262
  #
11159
11263
  #
11160
11264
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -11268,6 +11372,9 @@ module Aws::S3
11268
11372
  # was not corrupted in transit. For more information, go to [RFC
11269
11373
  # 1864.>][1]
11270
11374
  #
11375
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11376
+ # SDKs, this field is calculated automatically.
11377
+ #
11271
11378
  #
11272
11379
  #
11273
11380
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -11445,6 +11552,9 @@ module Aws::S3
11445
11552
  #
11446
11553
  # @!attribute [rw] content_md5
11447
11554
  # The MD5 hash for the request body.
11555
+ #
11556
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11557
+ # SDKs, this field is calculated automatically.
11448
11558
  # @return [String]
11449
11559
  #
11450
11560
  # @!attribute [rw] expected_bucket_owner
@@ -11529,6 +11639,9 @@ module Aws::S3
11529
11639
  #
11530
11640
  # @!attribute [rw] content_md5
11531
11641
  # The MD5 hash for the request body.
11642
+ #
11643
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11644
+ # SDKs, this field is calculated automatically.
11532
11645
  # @return [String]
11533
11646
  #
11534
11647
  # @!attribute [rw] expected_bucket_owner
@@ -11604,6 +11717,11 @@ module Aws::S3
11604
11717
  # pairs.
11605
11718
  # @return [String]
11606
11719
  #
11720
+ # @!attribute [rw] bucket_key_enabled
11721
+ # Indicates whether the uploaded object uses an S3 Bucket Key for
11722
+ # server-side encryption with AWS KMS (SSE-KMS).
11723
+ # @return [Boolean]
11724
+ #
11607
11725
  # @!attribute [rw] request_charged
11608
11726
  # If present, indicates that the requester was successfully charged
11609
11727
  # for the request.
@@ -11620,6 +11738,7 @@ module Aws::S3
11620
11738
  :sse_customer_key_md5,
11621
11739
  :ssekms_key_id,
11622
11740
  :ssekms_encryption_context,
11741
+ :bucket_key_enabled,
11623
11742
  :request_charged)
11624
11743
  SENSITIVE = [:ssekms_key_id, :ssekms_encryption_context]
11625
11744
  include Aws::Structure
@@ -11656,6 +11775,7 @@ module Aws::S3
11656
11775
  # sse_customer_key_md5: "SSECustomerKeyMD5",
11657
11776
  # ssekms_key_id: "SSEKMSKeyId",
11658
11777
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
11778
+ # bucket_key_enabled: false,
11659
11779
  # request_payer: "requester", # accepts requester
11660
11780
  # tagging: "TaggingHeader",
11661
11781
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -11905,6 +12025,16 @@ module Aws::S3
11905
12025
  # string holding JSON with the encryption context key-value pairs.
11906
12026
  # @return [String]
11907
12027
  #
12028
+ # @!attribute [rw] bucket_key_enabled
12029
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
12030
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
12031
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket
12032
+ # Key for object encryption with SSE-KMS.
12033
+ #
12034
+ # Specifying this header with a PUT operation doesn’t affect
12035
+ # bucket-level settings for S3 Bucket Key.
12036
+ # @return [Boolean]
12037
+ #
11908
12038
  # @!attribute [rw] request_payer
11909
12039
  # Confirms that the requester knows that they will be charged for the
11910
12040
  # request. Bucket owners need not specify this parameter in their
@@ -11974,6 +12104,7 @@ module Aws::S3
11974
12104
  :sse_customer_key_md5,
11975
12105
  :ssekms_key_id,
11976
12106
  :ssekms_encryption_context,
12107
+ :bucket_key_enabled,
11977
12108
  :request_payer,
11978
12109
  :tagging,
11979
12110
  :object_lock_mode,
@@ -12065,6 +12196,9 @@ module Aws::S3
12065
12196
  #
12066
12197
  # @!attribute [rw] content_md5
12067
12198
  # The MD5 hash for the request body.
12199
+ #
12200
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
12201
+ # SDKs, this field is calculated automatically.
12068
12202
  # @return [String]
12069
12203
  #
12070
12204
  # @!attribute [rw] expected_bucket_owner
@@ -12156,6 +12290,9 @@ module Aws::S3
12156
12290
  #
12157
12291
  # @!attribute [rw] content_md5
12158
12292
  # The MD5 hash for the request body.
12293
+ #
12294
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
12295
+ # SDKs, this field is calculated automatically.
12159
12296
  # @return [String]
12160
12297
  #
12161
12298
  # @!attribute [rw] tagging
@@ -12203,6 +12340,9 @@ module Aws::S3
12203
12340
  #
12204
12341
  # @!attribute [rw] content_md5
12205
12342
  # The MD5 hash of the `PutPublicAccessBlock` request body.
12343
+ #
12344
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
12345
+ # SDKs, this field is calculated automatically.
12206
12346
  # @return [String]
12207
12347
  #
12208
12348
  # @!attribute [rw] public_access_block_configuration
@@ -12445,6 +12585,37 @@ module Aws::S3
12445
12585
  include Aws::Structure
12446
12586
  end
12447
12587
 
12588
+ # A filter that you can specify for selection for modifications on
12589
+ # replicas. Amazon S3 doesn't replicate replica modifications by
12590
+ # default. In the latest version of replication configuration (when
12591
+ # `Filter` is specified), you can specify this element and set the
12592
+ # status to `Enabled` to replicate modifications on replicas.
12593
+ #
12594
+ # <note markdown="1"> If you don't specify the `Filter` element, Amazon S3 assumes that the
12595
+ # replication configuration is the earlier version, V1. In the earlier
12596
+ # version, this element is not allowed.
12597
+ #
12598
+ # </note>
12599
+ #
12600
+ # @note When making an API call, you may pass ReplicaModifications
12601
+ # data as a hash:
12602
+ #
12603
+ # {
12604
+ # status: "Enabled", # required, accepts Enabled, Disabled
12605
+ # }
12606
+ #
12607
+ # @!attribute [rw] status
12608
+ # Specifies whether Amazon S3 replicates modifications on replicas.
12609
+ # @return [String]
12610
+ #
12611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicaModifications AWS API Documentation
12612
+ #
12613
+ class ReplicaModifications < Struct.new(
12614
+ :status)
12615
+ SENSITIVE = []
12616
+ include Aws::Structure
12617
+ end
12618
+
12448
12619
  # A container for replication rules. You can add up to 1,000 rules. The
12449
12620
  # maximum size of a replication configuration is 2 MB.
12450
12621
  #
@@ -12479,6 +12650,9 @@ module Aws::S3
12479
12650
  # sse_kms_encrypted_objects: {
12480
12651
  # status: "Enabled", # required, accepts Enabled, Disabled
12481
12652
  # },
12653
+ # replica_modifications: {
12654
+ # status: "Enabled", # required, accepts Enabled, Disabled
12655
+ # },
12482
12656
  # },
12483
12657
  # existing_object_replication: {
12484
12658
  # status: "Enabled", # required, accepts Enabled, Disabled
@@ -12570,6 +12744,9 @@ module Aws::S3
12570
12744
  # sse_kms_encrypted_objects: {
12571
12745
  # status: "Enabled", # required, accepts Enabled, Disabled
12572
12746
  # },
12747
+ # replica_modifications: {
12748
+ # status: "Enabled", # required, accepts Enabled, Disabled
12749
+ # },
12573
12750
  # },
12574
12751
  # existing_object_replication: {
12575
12752
  # status: "Enabled", # required, accepts Enabled, Disabled
@@ -12608,17 +12785,12 @@ module Aws::S3
12608
12785
  # @return [String]
12609
12786
  #
12610
12787
  # @!attribute [rw] priority
12611
- # The priority associated with the rule. If you specify multiple rules
12612
- # in a replication configuration, Amazon S3 prioritizes the rules to
12613
- # prevent conflicts when filtering. If two or more rules identify the
12614
- # same object based on a specified filter, the rule with higher
12615
- # priority takes precedence. For example:
12616
- #
12617
- # * Same object quality prefix-based filter criteria if prefixes you
12618
- # specified in multiple rules overlap
12619
- #
12620
- # * Same object qualify tag-based filter criteria specified in
12621
- # multiple rules
12788
+ # The priority indicates which rule has precedence whenever two or
12789
+ # more replication rules conflict. Amazon S3 will attempt to replicate
12790
+ # objects according to all replication rules. However, if there are
12791
+ # two or more rules with the same destination bucket, then objects
12792
+ # will be replicated according to the rule with the highest priority.
12793
+ # The higher the number, the higher the priority.
12622
12794
  #
12623
12795
  # For more information, see [Replication][1] in the *Amazon Simple
12624
12796
  # Storage Service Developer Guide*.
@@ -13890,6 +14062,7 @@ module Aws::S3
13890
14062
  # sse_algorithm: "AES256", # required, accepts AES256, aws:kms
13891
14063
  # kms_master_key_id: "SSEKMSKeyId",
13892
14064
  # },
14065
+ # bucket_key_enabled: false,
13893
14066
  # },
13894
14067
  # ],
13895
14068
  # }
@@ -13917,6 +14090,7 @@ module Aws::S3
13917
14090
  # sse_algorithm: "AES256", # required, accepts AES256, aws:kms
13918
14091
  # kms_master_key_id: "SSEKMSKeyId",
13919
14092
  # },
14093
+ # bucket_key_enabled: false,
13920
14094
  # }
13921
14095
  #
13922
14096
  # @!attribute [rw] apply_server_side_encryption_by_default
@@ -13925,10 +14099,26 @@ module Aws::S3
13925
14099
  # server-side encryption, this default encryption will be applied.
13926
14100
  # @return [Types::ServerSideEncryptionByDefault]
13927
14101
  #
14102
+ # @!attribute [rw] bucket_key_enabled
14103
+ # Specifies whether Amazon S3 should use an S3 Bucket Key with
14104
+ # server-side encryption using KMS (SSE-KMS) for new objects in the
14105
+ # bucket. Existing objects are not affected. Setting the
14106
+ # `BucketKeyEnabled` element to `true` causes Amazon S3 to use an S3
14107
+ # Bucket Key. By default, S3 Bucket Key is not enabled.
14108
+ #
14109
+ # For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon
14110
+ # Simple Storage Service Developer Guide*.
14111
+ #
14112
+ #
14113
+ #
14114
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
14115
+ # @return [Boolean]
14116
+ #
13928
14117
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionRule AWS API Documentation
13929
14118
  #
13930
14119
  class ServerSideEncryptionRule < Struct.new(
13931
- :apply_server_side_encryption_by_default)
14120
+ :apply_server_side_encryption_by_default,
14121
+ :bucket_key_enabled)
13932
14122
  SENSITIVE = []
13933
14123
  include Aws::Structure
13934
14124
  end
@@ -13947,6 +14137,9 @@ module Aws::S3
13947
14137
  # sse_kms_encrypted_objects: {
13948
14138
  # status: "Enabled", # required, accepts Enabled, Disabled
13949
14139
  # },
14140
+ # replica_modifications: {
14141
+ # status: "Enabled", # required, accepts Enabled, Disabled
14142
+ # },
13950
14143
  # }
13951
14144
  #
13952
14145
  # @!attribute [rw] sse_kms_encrypted_objects
@@ -13956,10 +14149,25 @@ module Aws::S3
13956
14149
  # element is required.
13957
14150
  # @return [Types::SseKmsEncryptedObjects]
13958
14151
  #
14152
+ # @!attribute [rw] replica_modifications
14153
+ # A filter that you can specify for selections for modifications on
14154
+ # replicas. Amazon S3 doesn't replicate replica modifications by
14155
+ # default. In the latest version of replication configuration (when
14156
+ # `Filter` is specified), you can specify this element and set the
14157
+ # status to `Enabled` to replicate modifications on replicas.
14158
+ #
14159
+ # <note markdown="1"> If you don't specify the `Filter` element, Amazon S3 assumes that
14160
+ # the replication configuration is the earlier version, V1. In the
14161
+ # earlier version, this element is not allowed
14162
+ #
14163
+ # </note>
14164
+ # @return [Types::ReplicaModifications]
14165
+ #
13959
14166
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SourceSelectionCriteria AWS API Documentation
13960
14167
  #
13961
14168
  class SourceSelectionCriteria < Struct.new(
13962
- :sse_kms_encrypted_objects)
14169
+ :sse_kms_encrypted_objects,
14170
+ :replica_modifications)
13963
14171
  SENSITIVE = []
13964
14172
  include Aws::Structure
13965
14173
  end
@@ -14196,10 +14404,11 @@ module Aws::S3
14196
14404
  # }
14197
14405
  #
14198
14406
  # @!attribute [rw] days
14199
- # The number of days that you want your archived data to be
14200
- # accessible. The minimum number of days specified in the restore
14201
- # request must be at least 90 days. If a smaller value is specifed it
14202
- # will be ignored.
14407
+ # The number of consecutive days of no access after which an object
14408
+ # will be eligible to be transitioned to the corresponding tier. The
14409
+ # minimum number of days specified for Archive Access tier must be at
14410
+ # least 90 days and Deep Archive Access tier must be at least 180
14411
+ # days. The maximum can be up to 2 years (730 days).
14203
14412
  # @return [Integer]
14204
14413
  #
14205
14414
  # @!attribute [rw] access_tier
@@ -14414,6 +14623,11 @@ module Aws::S3
14414
14623
  # used for the object.
14415
14624
  # @return [String]
14416
14625
  #
14626
+ # @!attribute [rw] bucket_key_enabled
14627
+ # Indicates whether the multipart upload uses an S3 Bucket Key for
14628
+ # server-side encryption with AWS KMS (SSE-KMS).
14629
+ # @return [Boolean]
14630
+ #
14417
14631
  # @!attribute [rw] request_charged
14418
14632
  # If present, indicates that the requester was successfully charged
14419
14633
  # for the request.
@@ -14428,6 +14642,7 @@ module Aws::S3
14428
14642
  :sse_customer_algorithm,
14429
14643
  :sse_customer_key_md5,
14430
14644
  :ssekms_key_id,
14645
+ :bucket_key_enabled,
14431
14646
  :request_charged)
14432
14647
  SENSITIVE = [:ssekms_key_id]
14433
14648
  include Aws::Structure
@@ -14689,6 +14904,11 @@ module Aws::S3
14689
14904
  # for the object.
14690
14905
  # @return [String]
14691
14906
  #
14907
+ # @!attribute [rw] bucket_key_enabled
14908
+ # Indicates whether the multipart upload uses an S3 Bucket Key for
14909
+ # server-side encryption with AWS KMS (SSE-KMS).
14910
+ # @return [Boolean]
14911
+ #
14692
14912
  # @!attribute [rw] request_charged
14693
14913
  # If present, indicates that the requester was successfully charged
14694
14914
  # for the request.
@@ -14702,6 +14922,7 @@ module Aws::S3
14702
14922
  :sse_customer_algorithm,
14703
14923
  :sse_customer_key_md5,
14704
14924
  :ssekms_key_id,
14925
+ :bucket_key_enabled,
14705
14926
  :request_charged)
14706
14927
  SENSITIVE = [:ssekms_key_id]
14707
14928
  include Aws::Structure