aws-sdk-s3 1.83.1 → 1.87.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.
@@ -29,6 +29,6 @@ require 'aws-sdk-s3/customizations/types/list_object_versions_output'
29
29
  Aws::S3::ObjectVersion::Collection,
30
30
  ].each do |klass|
31
31
  klass.send(:alias_method, :delete, :batch_delete!)
32
- klass.send(:extend, Aws::Deprecations)
32
+ klass.extend Aws::Deprecations
33
33
  klass.send(:deprecated, :delete, use: :batch_delete!)
34
34
  end
@@ -29,6 +29,7 @@ module Aws::S3
29
29
  # ## Error Classes
30
30
  # * {BucketAlreadyExists}
31
31
  # * {BucketAlreadyOwnedByYou}
32
+ # * {InvalidObjectState}
32
33
  # * {NoSuchBucket}
33
34
  # * {NoSuchKey}
34
35
  # * {NoSuchUpload}
@@ -61,6 +62,26 @@ module Aws::S3
61
62
  end
62
63
  end
63
64
 
65
+ class InvalidObjectState < ServiceError
66
+
67
+ # @param [Seahorse::Client::RequestContext] context
68
+ # @param [String] message
69
+ # @param [Aws::S3::Types::InvalidObjectState] data
70
+ def initialize(context, message, data = Aws::EmptyStructure.new)
71
+ super(context, message, data)
72
+ end
73
+
74
+ # @return [String]
75
+ def storage_class
76
+ @data[:storage_class]
77
+ end
78
+
79
+ # @return [String]
80
+ def access_tier
81
+ @data[:access_tier]
82
+ end
83
+ end
84
+
64
85
  class NoSuchBucket < ServiceError
65
86
 
66
87
  # @param [Seahorse::Client::RequestContext] context
@@ -4,7 +4,6 @@ require 'set'
4
4
  require 'time'
5
5
  require 'openssl'
6
6
  require 'cgi'
7
- require 'webrick/httputils'
8
7
  require 'aws-sdk-core/query'
9
8
 
10
9
  module Aws
@@ -157,33 +156,24 @@ module Aws
157
156
  end
158
157
 
159
158
  def uri_escape(s)
160
-
161
159
  #URI.escape(s)
162
160
 
163
- # URI.escape is deprecated, replacing it with escape from webrick
164
- # to squelch the massive number of warnings generated from Ruby.
165
- # The following script was used to determine the differences
166
- # between the various escape methods available. The webrick
167
- # escape only had two differences and it is available in the
168
- # standard lib.
169
- #
170
- # (0..255).each {|c|
171
- # s = [c].pack("C")
172
- # e = [
173
- # CGI.escape(s),
174
- # ERB::Util.url_encode(s),
175
- # URI.encode_www_form_component(s),
176
- # WEBrick::HTTPUtils.escape_form(s),
177
- # WEBrick::HTTPUtils.escape(s),
178
- # URI.escape(s),
179
- # ]
180
- # next if e.uniq.length == 1
181
- # puts("%5s %5s %5s %5s %5s %5s %5s" % ([s.inspect] + e))
182
- # }
183
- #
184
- WEBrick::HTTPUtils.escape(s).gsub('%5B', '[').gsub('%5D', ']')
161
+ # (0..255).each {|c|
162
+ # s = [c].pack("C")
163
+ # e = [
164
+ # CGI.escape(s),
165
+ # ERB::Util.url_encode(s),
166
+ # URI.encode_www_form_component(s),
167
+ # WEBrick::HTTPUtils.escape_form(s),
168
+ # WEBrick::HTTPUtils.escape(s),
169
+ # URI.escape(s),
170
+ # URI::DEFAULT_PARSER.escape(s)
171
+ # ]
172
+ # next if e.uniq.length == 1
173
+ # puts("%5s %5s %5s %5s %5s %5s %5s %5s" % ([s.inspect] + e))
174
+ # }
175
+ URI::DEFAULT_PARSER.escape(s)
185
176
  end
186
-
187
177
  end
188
178
  end
189
179
  end
@@ -91,6 +91,12 @@ module Aws::S3
91
91
  data[:restore]
92
92
  end
93
93
 
94
+ # The archive state of the head object.
95
+ # @return [String]
96
+ def archive_status
97
+ data[:archive_status]
98
+ end
99
+
94
100
  # Last modified date of the object
95
101
  # @return [Time]
96
102
  def last_modified
@@ -218,6 +224,13 @@ module Aws::S3
218
224
  data[:ssekms_key_id]
219
225
  end
220
226
 
227
+ # Indicates whether the object uses an S3 Bucket Key for server-side
228
+ # encryption with AWS KMS (SSE-KMS).
229
+ # @return [Boolean]
230
+ def bucket_key_enabled
231
+ data[:bucket_key_enabled]
232
+ end
233
+
221
234
  # Provides storage class information of the object. Amazon S3 returns
222
235
  # this header for all objects except for S3 Standard storage class
223
236
  # objects.
@@ -240,12 +253,12 @@ module Aws::S3
240
253
  end
241
254
 
242
255
  # Amazon S3 can return this header if your request involves a bucket
243
- # that is either a source or destination in a replication rule.
256
+ # that is either a source or a destination in a replication rule.
244
257
  #
245
258
  # In replication, you have a source bucket on which you configure
246
- # replication and destination bucket where Amazon S3 stores object
247
- # replicas. When you request an object (`GetObject`) or object metadata
248
- # (`HeadObject`) from these buckets, Amazon S3 will return the
259
+ # replication and destination bucket or buckets where Amazon S3 stores
260
+ # object replicas. When you request an object (`GetObject`) or object
261
+ # metadata (`HeadObject`) from these buckets, Amazon S3 will return the
249
262
  # `x-amz-replication-status` header in the response as follows:
250
263
  #
251
264
  # * If requesting an object from the source bucket — Amazon S3 will
@@ -261,9 +274,18 @@ module Aws::S3
261
274
  # value PENDING, COMPLETED or FAILED indicating object replication
262
275
  # status.
263
276
  #
264
- # * If requesting an object from the destination bucket — Amazon S3 will
277
+ # * If requesting an object from a destination bucket — Amazon S3 will
265
278
  # return the `x-amz-replication-status` header with value REPLICA if
266
- # the object in your request is a replica that Amazon S3 created.
279
+ # the object in your request is a replica that Amazon S3 created and
280
+ # there is no replica modification replication in progress.
281
+ #
282
+ # * When replicating objects to multiple destination buckets the
283
+ # `x-amz-replication-status` header acts differently. The header of
284
+ # the source object will only return a value of COMPLETED when
285
+ # replication is successful to all destinations. The header will
286
+ # remain at value PENDING until replication has completed for all
287
+ # destinations. If one or more destinations fails replication the
288
+ # header will return FAILED.
267
289
  #
268
290
  # For more information, see [Replication][1].
269
291
  #
@@ -537,6 +559,7 @@ module Aws::S3
537
559
  # sse_customer_key_md5: "SSECustomerKeyMD5",
538
560
  # ssekms_key_id: "SSEKMSKeyId",
539
561
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
562
+ # bucket_key_enabled: false,
540
563
  # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm",
541
564
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
542
565
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
@@ -693,6 +716,14 @@ module Aws::S3
693
716
  # Specifies the AWS KMS Encryption Context to use for object encryption.
694
717
  # The value of this header is a base64-encoded UTF-8 string holding JSON
695
718
  # with the encryption context key-value pairs.
719
+ # @option options [Boolean] :bucket_key_enabled
720
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
721
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
722
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
723
+ # for object encryption with SSE-KMS.
724
+ #
725
+ # Specifying this header with a COPY operation doesn’t affect
726
+ # bucket-level settings for S3 Bucket Key.
696
727
  # @option options [String] :copy_source_sse_customer_algorithm
697
728
  # Specifies the algorithm to use when decrypting the source object (for
698
729
  # example, AES256).
@@ -916,6 +947,7 @@ module Aws::S3
916
947
  # sse_customer_key_md5: "SSECustomerKeyMD5",
917
948
  # ssekms_key_id: "SSEKMSKeyId",
918
949
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
950
+ # bucket_key_enabled: false,
919
951
  # request_payer: "requester", # accepts requester
920
952
  # tagging: "TaggingHeader",
921
953
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -1007,6 +1039,14 @@ module Aws::S3
1007
1039
  # Specifies the AWS KMS Encryption Context to use for object encryption.
1008
1040
  # The value of this header is a base64-encoded UTF-8 string holding JSON
1009
1041
  # with the encryption context key-value pairs.
1042
+ # @option options [Boolean] :bucket_key_enabled
1043
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1044
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
1045
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1046
+ # for object encryption with SSE-KMS.
1047
+ #
1048
+ # Specifying this header with an object operation doesn’t affect
1049
+ # bucket-level settings for S3 Bucket Key.
1010
1050
  # @option options [String] :request_payer
1011
1051
  # Confirms that the requester knows that they will be charged for the
1012
1052
  # request. Bucket owners need not specify this parameter in their
@@ -1075,6 +1115,7 @@ module Aws::S3
1075
1115
  # sse_customer_key_md5: "SSECustomerKeyMD5",
1076
1116
  # ssekms_key_id: "SSEKMSKeyId",
1077
1117
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
1118
+ # bucket_key_enabled: false,
1078
1119
  # request_payer: "requester", # accepts requester
1079
1120
  # tagging: "TaggingHeader",
1080
1121
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -1244,6 +1285,14 @@ module Aws::S3
1244
1285
  # Specifies the AWS KMS Encryption Context to use for object encryption.
1245
1286
  # The value of this header is a base64-encoded UTF-8 string holding JSON
1246
1287
  # with the encryption context key-value pairs.
1288
+ # @option options [Boolean] :bucket_key_enabled
1289
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1290
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
1291
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1292
+ # for object encryption with SSE-KMS.
1293
+ #
1294
+ # Specifying this header with a PUT operation doesn’t affect
1295
+ # bucket-level settings for S3 Bucket Key.
1247
1296
  # @option options [String] :request_payer
1248
1297
  # Confirms that the requester knows that they will be charged for the
1249
1298
  # request. Bucket owners need not specify this parameter in their
@@ -247,6 +247,9 @@ module Aws::S3
247
247
  # not corrupted in transit. For more information, go to [RFC
248
248
  # 1864.&gt;][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
@@ -28,8 +28,13 @@ region. Defaults to `legacy` mode using global endpoint.
28
28
  def call(context)
29
29
  # keep legacy global endpoint pattern by default
30
30
  if context.config.s3_us_east_1_regional_endpoint == 'legacy'
31
- context.http_request.endpoint.host = IADRegionalEndpoint.legacy_host(
32
- context.http_request.endpoint.host)
31
+ host = context.http_request.endpoint.host
32
+ # if it's an ARN, don't touch the endpoint at all
33
+ # TODO this should use context.metadata[:s3_arn] later
34
+ unless host.include?('.s3-outposts.') || host.include?('.s3-accesspoint.')
35
+ legacy_host = IADRegionalEndpoint.legacy_host(host)
36
+ context.http_request.endpoint.host = legacy_host
37
+ end
33
38
  end
34
39
  @handler.call(context)
35
40
  end
@@ -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,
@@ -2305,6 +2348,32 @@ module Aws::S3
2305
2348
  include Aws::Structure
2306
2349
  end
2307
2350
 
2351
+ # @note When making an API call, you may pass DeleteBucketIntelligentTieringConfigurationRequest
2352
+ # data as a hash:
2353
+ #
2354
+ # {
2355
+ # bucket: "BucketName", # required
2356
+ # id: "IntelligentTieringId", # required
2357
+ # }
2358
+ #
2359
+ # @!attribute [rw] bucket
2360
+ # The name of the Amazon S3 bucket whose configuration you want to
2361
+ # modify or retrieve.
2362
+ # @return [String]
2363
+ #
2364
+ # @!attribute [rw] id
2365
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
2366
+ # @return [String]
2367
+ #
2368
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfigurationRequest AWS API Documentation
2369
+ #
2370
+ class DeleteBucketIntelligentTieringConfigurationRequest < Struct.new(
2371
+ :bucket,
2372
+ :id)
2373
+ SENSITIVE = []
2374
+ include Aws::Structure
2375
+ end
2376
+
2308
2377
  # @note When making an API call, you may pass DeleteBucketInventoryConfigurationRequest
2309
2378
  # data as a hash:
2310
2379
  #
@@ -2413,6 +2482,9 @@ module Aws::S3
2413
2482
  # @return [String]
2414
2483
  #
2415
2484
  # @!attribute [rw] expected_bucket_owner
2485
+ # The account id of the expected bucket owner. If the bucket is owned
2486
+ # by a different account, the request will fail with an HTTP `403
2487
+ # (Access Denied)` error.
2416
2488
  # @return [String]
2417
2489
  #
2418
2490
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControlsRequest AWS API Documentation
@@ -2595,25 +2667,28 @@ module Aws::S3
2595
2667
  include Aws::Structure
2596
2668
  end
2597
2669
 
2598
- # Specifies whether Amazon S3 replicates the delete markers. If you
2599
- # specify a `Filter`, you must specify this element. However, in the
2600
- # latest version of replication configuration (when `Filter` is
2601
- # specified), Amazon S3 doesn't replicate delete markers. Therefore,
2602
- # the `DeleteMarkerReplication` element can contain only
2603
- # &lt;Status&gt;Disabled&lt;/Status&gt;. For an example configuration,
2604
- # see [Basic Rule Configuration][1].
2670
+ # Specifies whether Amazon S3 replicates delete markers. If you specify
2671
+ # a `Filter` in your replication configuration, you must also include a
2672
+ # `DeleteMarkerReplication` element. If your `Filter` includes a `Tag`
2673
+ # element, the `DeleteMarkerReplication` `Status` must be set to
2674
+ # Disabled, because Amazon S3 does not support replicating delete
2675
+ # markers for tag-based rules. For an example configuration, see [Basic
2676
+ # Rule Configuration][1].
2605
2677
  #
2606
- # <note markdown="1"> If you don't specify the `Filter` element, Amazon S3 assumes that the
2607
- # replication configuration is the earlier version, V1. In the earlier
2608
- # version, Amazon S3 handled replication of delete markers differently.
2609
- # For more information, see [Backward Compatibility][2].
2678
+ # For more information about delete marker replication, see [Basic Rule
2679
+ # Configuration][2].
2680
+ #
2681
+ # <note markdown="1"> If you are using an earlier version of the replication configuration,
2682
+ # Amazon S3 handles replication of delete markers differently. For more
2683
+ # information, see [Backward Compatibility][3].
2610
2684
  #
2611
2685
  # </note>
2612
2686
  #
2613
2687
  #
2614
2688
  #
2615
2689
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config
2616
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
2690
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html
2691
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
2617
2692
  #
2618
2693
  # @note When making an API call, you may pass DeleteMarkerReplication
2619
2694
  # data as a hash:
@@ -2625,8 +2700,7 @@ module Aws::S3
2625
2700
  # @!attribute [rw] status
2626
2701
  # Indicates whether to replicate delete markers.
2627
2702
  #
2628
- # <note markdown="1"> In the current implementation, Amazon S3 doesn't replicate the
2629
- # delete markers. The status must be `Disabled`.
2703
+ # <note markdown="1"> Indicates whether to replicate delete markers.
2630
2704
  #
2631
2705
  # </note>
2632
2706
  # @return [String]
@@ -3039,7 +3113,7 @@ module Aws::S3
3039
3113
  # },
3040
3114
  # metrics: {
3041
3115
  # status: "Enabled", # required, accepts Enabled, Disabled
3042
- # event_threshold: { # required
3116
+ # event_threshold: {
3043
3117
  # minutes: 1,
3044
3118
  # },
3045
3119
  # },
@@ -3102,8 +3176,7 @@ module Aws::S3
3102
3176
  #
3103
3177
  # @!attribute [rw] metrics
3104
3178
  # A container specifying replication metrics-related settings enabling
3105
- # metrics and Amazon S3 events for S3 Replication Time Control (S3
3106
- # RTC). Must be specified together with a `ReplicationTime` block.
3179
+ # replication metrics and events.
3107
3180
  # @return [Types::Metrics]
3108
3181
  #
3109
3182
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Destination AWS API Documentation
@@ -4326,6 +4399,44 @@ module Aws::S3
4326
4399
  include Aws::Structure
4327
4400
  end
4328
4401
 
4402
+ # @!attribute [rw] intelligent_tiering_configuration
4403
+ # Container for S3 Intelligent-Tiering configuration.
4404
+ # @return [Types::IntelligentTieringConfiguration]
4405
+ #
4406
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfigurationOutput AWS API Documentation
4407
+ #
4408
+ class GetBucketIntelligentTieringConfigurationOutput < Struct.new(
4409
+ :intelligent_tiering_configuration)
4410
+ SENSITIVE = []
4411
+ include Aws::Structure
4412
+ end
4413
+
4414
+ # @note When making an API call, you may pass GetBucketIntelligentTieringConfigurationRequest
4415
+ # data as a hash:
4416
+ #
4417
+ # {
4418
+ # bucket: "BucketName", # required
4419
+ # id: "IntelligentTieringId", # required
4420
+ # }
4421
+ #
4422
+ # @!attribute [rw] bucket
4423
+ # The name of the Amazon S3 bucket whose configuration you want to
4424
+ # modify or retrieve.
4425
+ # @return [String]
4426
+ #
4427
+ # @!attribute [rw] id
4428
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
4429
+ # @return [String]
4430
+ #
4431
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfigurationRequest AWS API Documentation
4432
+ #
4433
+ class GetBucketIntelligentTieringConfigurationRequest < Struct.new(
4434
+ :bucket,
4435
+ :id)
4436
+ SENSITIVE = []
4437
+ include Aws::Structure
4438
+ end
4439
+
4329
4440
  # @!attribute [rw] inventory_configuration
4330
4441
  # Specifies the inventory configuration.
4331
4442
  # @return [Types::InventoryConfiguration]
@@ -4643,6 +4754,9 @@ module Aws::S3
4643
4754
  # @return [String]
4644
4755
  #
4645
4756
  # @!attribute [rw] expected_bucket_owner
4757
+ # The account id of the expected bucket owner. If the bucket is owned
4758
+ # by a different account, the request will fail with an HTTP `403
4759
+ # (Access Denied)` error.
4646
4760
  # @return [String]
4647
4761
  #
4648
4762
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControlsRequest AWS API Documentation
@@ -5299,6 +5413,11 @@ module Aws::S3
5299
5413
  # used for the object.
5300
5414
  # @return [String]
5301
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
+ #
5302
5421
  # @!attribute [rw] storage_class
5303
5422
  # Provides storage class information of the object. Amazon S3 returns
5304
5423
  # this header for all objects except for S3 Standard storage class
@@ -5364,6 +5483,7 @@ module Aws::S3
5364
5483
  :sse_customer_algorithm,
5365
5484
  :sse_customer_key_md5,
5366
5485
  :ssekms_key_id,
5486
+ :bucket_key_enabled,
5367
5487
  :storage_class,
5368
5488
  :request_charged,
5369
5489
  :replication_status,
@@ -5847,7 +5967,7 @@ module Aws::S3
5847
5967
  # }
5848
5968
  #
5849
5969
  # @!attribute [rw] tier
5850
- # S3 Glacier retrieval tier at which the restore will be processed.
5970
+ # Retrieval tier at which the restore will be processed.
5851
5971
  # @return [String]
5852
5972
  #
5853
5973
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GlacierJobParameters AWS API Documentation
@@ -6055,6 +6175,10 @@ module Aws::S3
6055
6175
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
6056
6176
  # @return [String]
6057
6177
  #
6178
+ # @!attribute [rw] archive_status
6179
+ # The archive state of the head object.
6180
+ # @return [String]
6181
+ #
6058
6182
  # @!attribute [rw] last_modified
6059
6183
  # Last modified date of the object
6060
6184
  # @return [Time]
@@ -6147,6 +6271,11 @@ module Aws::S3
6147
6271
  # used for the object.
6148
6272
  # @return [String]
6149
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
+ #
6150
6279
  # @!attribute [rw] storage_class
6151
6280
  # Provides storage class information of the object. Amazon S3 returns
6152
6281
  # this header for all objects except for S3 Standard storage class
@@ -6166,11 +6295,11 @@ module Aws::S3
6166
6295
  #
6167
6296
  # @!attribute [rw] replication_status
6168
6297
  # Amazon S3 can return this header if your request involves a bucket
6169
- # that is either a source or destination in a replication rule.
6298
+ # that is either a source or a destination in a replication rule.
6170
6299
  #
6171
6300
  # In replication, you have a source bucket on which you configure
6172
- # replication and destination bucket where Amazon S3 stores object
6173
- # 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
6174
6303
  # metadata (`HeadObject`) from these buckets, Amazon S3 will return
6175
6304
  # the `x-amz-replication-status` header in the response as follows:
6176
6305
  #
@@ -6187,10 +6316,18 @@ module Aws::S3
6187
6316
  # header with value PENDING, COMPLETED or FAILED indicating object
6188
6317
  # replication status.
6189
6318
  #
6190
- # * If requesting an object from the destination bucket — Amazon S3
6191
- # will return the `x-amz-replication-status` header with value
6192
- # REPLICA if the object in your request is a replica that Amazon S3
6193
- # 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.
6194
6331
  #
6195
6332
  # For more information, see [Replication][1].
6196
6333
  #
@@ -6240,6 +6377,7 @@ module Aws::S3
6240
6377
  :accept_ranges,
6241
6378
  :expiration,
6242
6379
  :restore,
6380
+ :archive_status,
6243
6381
  :last_modified,
6244
6382
  :content_length,
6245
6383
  :etag,
@@ -6258,6 +6396,7 @@ module Aws::S3
6258
6396
  :sse_customer_algorithm,
6259
6397
  :sse_customer_key_md5,
6260
6398
  :ssekms_key_id,
6399
+ :bucket_key_enabled,
6261
6400
  :storage_class,
6262
6401
  :request_charged,
6263
6402
  :replication_status,
@@ -6520,6 +6659,177 @@ module Aws::S3
6520
6659
  include Aws::Structure
6521
6660
  end
6522
6661
 
6662
+ # A container for specifying S3 Intelligent-Tiering filters. The filters
6663
+ # determine the subset of objects to which the rule applies.
6664
+ #
6665
+ # @note When making an API call, you may pass IntelligentTieringAndOperator
6666
+ # data as a hash:
6667
+ #
6668
+ # {
6669
+ # prefix: "Prefix",
6670
+ # tags: [
6671
+ # {
6672
+ # key: "ObjectKey", # required
6673
+ # value: "Value", # required
6674
+ # },
6675
+ # ],
6676
+ # }
6677
+ #
6678
+ # @!attribute [rw] prefix
6679
+ # An object key name prefix that identifies the subset of objects to
6680
+ # which the configuration applies.
6681
+ # @return [String]
6682
+ #
6683
+ # @!attribute [rw] tags
6684
+ # All of these tags must exist in the object's tag set in order for
6685
+ # the configuration to apply.
6686
+ # @return [Array<Types::Tag>]
6687
+ #
6688
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringAndOperator AWS API Documentation
6689
+ #
6690
+ class IntelligentTieringAndOperator < Struct.new(
6691
+ :prefix,
6692
+ :tags)
6693
+ SENSITIVE = []
6694
+ include Aws::Structure
6695
+ end
6696
+
6697
+ # Specifies the S3 Intelligent-Tiering configuration for an Amazon S3
6698
+ # bucket.
6699
+ #
6700
+ # For information about the S3 Intelligent-Tiering storage class, see
6701
+ # [Storage class for automatically optimizing frequently and
6702
+ # infrequently accessed objects][1].
6703
+ #
6704
+ #
6705
+ #
6706
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
6707
+ #
6708
+ # @note When making an API call, you may pass IntelligentTieringConfiguration
6709
+ # data as a hash:
6710
+ #
6711
+ # {
6712
+ # id: "IntelligentTieringId", # required
6713
+ # filter: {
6714
+ # prefix: "Prefix",
6715
+ # tag: {
6716
+ # key: "ObjectKey", # required
6717
+ # value: "Value", # required
6718
+ # },
6719
+ # and: {
6720
+ # prefix: "Prefix",
6721
+ # tags: [
6722
+ # {
6723
+ # key: "ObjectKey", # required
6724
+ # value: "Value", # required
6725
+ # },
6726
+ # ],
6727
+ # },
6728
+ # },
6729
+ # status: "Enabled", # required, accepts Enabled, Disabled
6730
+ # tierings: [ # required
6731
+ # {
6732
+ # days: 1, # required
6733
+ # access_tier: "ARCHIVE_ACCESS", # required, accepts ARCHIVE_ACCESS, DEEP_ARCHIVE_ACCESS
6734
+ # },
6735
+ # ],
6736
+ # }
6737
+ #
6738
+ # @!attribute [rw] id
6739
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
6740
+ # @return [String]
6741
+ #
6742
+ # @!attribute [rw] filter
6743
+ # Specifies a bucket filter. The configuration only includes objects
6744
+ # that meet the filter's criteria.
6745
+ # @return [Types::IntelligentTieringFilter]
6746
+ #
6747
+ # @!attribute [rw] status
6748
+ # Specifies the status of the configuration.
6749
+ # @return [String]
6750
+ #
6751
+ # @!attribute [rw] tierings
6752
+ # Specifies the S3 Intelligent-Tiering storage class tier of the
6753
+ # configuration.
6754
+ # @return [Array<Types::Tiering>]
6755
+ #
6756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringConfiguration AWS API Documentation
6757
+ #
6758
+ class IntelligentTieringConfiguration < Struct.new(
6759
+ :id,
6760
+ :filter,
6761
+ :status,
6762
+ :tierings)
6763
+ SENSITIVE = []
6764
+ include Aws::Structure
6765
+ end
6766
+
6767
+ # The `Filter` is used to identify objects that the S3
6768
+ # Intelligent-Tiering configuration applies to.
6769
+ #
6770
+ # @note When making an API call, you may pass IntelligentTieringFilter
6771
+ # data as a hash:
6772
+ #
6773
+ # {
6774
+ # prefix: "Prefix",
6775
+ # tag: {
6776
+ # key: "ObjectKey", # required
6777
+ # value: "Value", # required
6778
+ # },
6779
+ # and: {
6780
+ # prefix: "Prefix",
6781
+ # tags: [
6782
+ # {
6783
+ # key: "ObjectKey", # required
6784
+ # value: "Value", # required
6785
+ # },
6786
+ # ],
6787
+ # },
6788
+ # }
6789
+ #
6790
+ # @!attribute [rw] prefix
6791
+ # An object key name prefix that identifies the subset of objects to
6792
+ # which the rule applies.
6793
+ # @return [String]
6794
+ #
6795
+ # @!attribute [rw] tag
6796
+ # A container of a key value name pair.
6797
+ # @return [Types::Tag]
6798
+ #
6799
+ # @!attribute [rw] and
6800
+ # A conjunction (logical AND) of predicates, which is used in
6801
+ # evaluating a metrics filter. The operator must have at least two
6802
+ # predicates, and an object must match all of the predicates in order
6803
+ # for the filter to apply.
6804
+ # @return [Types::IntelligentTieringAndOperator]
6805
+ #
6806
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringFilter AWS API Documentation
6807
+ #
6808
+ class IntelligentTieringFilter < Struct.new(
6809
+ :prefix,
6810
+ :tag,
6811
+ :and)
6812
+ SENSITIVE = []
6813
+ include Aws::Structure
6814
+ end
6815
+
6816
+ # Object is archived and inaccessible until restored.
6817
+ #
6818
+ # @!attribute [rw] storage_class
6819
+ # @return [String]
6820
+ #
6821
+ # @!attribute [rw] access_tier
6822
+ # @return [String]
6823
+ #
6824
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InvalidObjectState AWS API Documentation
6825
+ #
6826
+ class InvalidObjectState < Struct.new(
6827
+ :storage_class,
6828
+ :access_tier)
6829
+ SENSITIVE = []
6830
+ include Aws::Structure
6831
+ end
6832
+
6523
6833
  # Specifies the inventory configuration for an Amazon S3 bucket. For
6524
6834
  # more information, see [GET Bucket inventory][1] in the *Amazon Simple
6525
6835
  # Storage Service API Reference*.
@@ -7253,6 +7563,67 @@ module Aws::S3
7253
7563
  include Aws::Structure
7254
7564
  end
7255
7565
 
7566
+ # @!attribute [rw] is_truncated
7567
+ # Indicates whether the returned list of analytics configurations is
7568
+ # complete. A value of true indicates that the list is not complete
7569
+ # and the NextContinuationToken will be provided for a subsequent
7570
+ # request.
7571
+ # @return [Boolean]
7572
+ #
7573
+ # @!attribute [rw] continuation_token
7574
+ # The ContinuationToken that represents a placeholder from where this
7575
+ # request should begin.
7576
+ # @return [String]
7577
+ #
7578
+ # @!attribute [rw] next_continuation_token
7579
+ # The marker used to continue this inventory configuration listing.
7580
+ # Use the `NextContinuationToken` from this response to continue the
7581
+ # listing in a subsequent request. The continuation token is an opaque
7582
+ # value that Amazon S3 understands.
7583
+ # @return [String]
7584
+ #
7585
+ # @!attribute [rw] intelligent_tiering_configuration_list
7586
+ # The list of S3 Intelligent-Tiering configurations for a bucket.
7587
+ # @return [Array<Types::IntelligentTieringConfiguration>]
7588
+ #
7589
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurationsOutput AWS API Documentation
7590
+ #
7591
+ class ListBucketIntelligentTieringConfigurationsOutput < Struct.new(
7592
+ :is_truncated,
7593
+ :continuation_token,
7594
+ :next_continuation_token,
7595
+ :intelligent_tiering_configuration_list)
7596
+ SENSITIVE = []
7597
+ include Aws::Structure
7598
+ end
7599
+
7600
+ # @note When making an API call, you may pass ListBucketIntelligentTieringConfigurationsRequest
7601
+ # data as a hash:
7602
+ #
7603
+ # {
7604
+ # bucket: "BucketName", # required
7605
+ # continuation_token: "Token",
7606
+ # }
7607
+ #
7608
+ # @!attribute [rw] bucket
7609
+ # The name of the Amazon S3 bucket whose configuration you want to
7610
+ # modify or retrieve.
7611
+ # @return [String]
7612
+ #
7613
+ # @!attribute [rw] continuation_token
7614
+ # The ContinuationToken that represents a placeholder from where this
7615
+ # request should begin.
7616
+ # @return [String]
7617
+ #
7618
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurationsRequest AWS API Documentation
7619
+ #
7620
+ class ListBucketIntelligentTieringConfigurationsRequest < Struct.new(
7621
+ :bucket,
7622
+ :continuation_token)
7623
+ SENSITIVE = []
7624
+ include Aws::Structure
7625
+ end
7626
+
7256
7627
  # @!attribute [rw] continuation_token
7257
7628
  # If sent in the request, the marker that is used as a starting point
7258
7629
  # for this inventory configuration list response.
@@ -8506,15 +8877,14 @@ module Aws::S3
8506
8877
  end
8507
8878
 
8508
8879
  # A container specifying replication metrics-related settings enabling
8509
- # metrics and Amazon S3 events for S3 Replication Time Control (S3 RTC).
8510
- # Must be specified together with a `ReplicationTime` block.
8880
+ # replication metrics and events.
8511
8881
  #
8512
8882
  # @note When making an API call, you may pass Metrics
8513
8883
  # data as a hash:
8514
8884
  #
8515
8885
  # {
8516
8886
  # status: "Enabled", # required, accepts Enabled, Disabled
8517
- # event_threshold: { # required
8887
+ # event_threshold: {
8518
8888
  # minutes: 1,
8519
8889
  # },
8520
8890
  # }
@@ -9560,8 +9930,8 @@ module Aws::S3
9560
9930
  # @!attribute [rw] restrict_public_buckets
9561
9931
  # Specifies whether Amazon S3 should restrict public bucket policies
9562
9932
  # for this bucket. Setting this element to `TRUE` restricts access to
9563
- # this bucket to only AWS services and authorized users within this
9564
- # account if the bucket has a public policy.
9933
+ # this bucket to only AWS service principals and authorized users
9934
+ # within this account if the bucket has a public policy.
9565
9935
  #
9566
9936
  # Enabling this setting doesn't affect previously stored bucket
9567
9937
  # policies, except that public and cross-account access within any
@@ -9668,6 +10038,9 @@ module Aws::S3
9668
10038
  # was not corrupted in transit. For more information, go to [RFC
9669
10039
  # 1864.][1]
9670
10040
  #
10041
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10042
+ # SDKs, this field is calculated automatically.
10043
+ #
9671
10044
  #
9672
10045
  #
9673
10046
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -9830,6 +10203,9 @@ module Aws::S3
9830
10203
  # was not corrupted in transit. For more information, go to [RFC
9831
10204
  # 1864.][1]
9832
10205
  #
10206
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
10207
+ # SDKs, this field is calculated automatically.
10208
+ #
9833
10209
  #
9834
10210
  #
9835
10211
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -9865,6 +10241,7 @@ module Aws::S3
9865
10241
  # sse_algorithm: "AES256", # required, accepts AES256, aws:kms
9866
10242
  # kms_master_key_id: "SSEKMSKeyId",
9867
10243
  # },
10244
+ # bucket_key_enabled: false,
9868
10245
  # },
9869
10246
  # ],
9870
10247
  # },
@@ -9886,8 +10263,10 @@ module Aws::S3
9886
10263
  #
9887
10264
  # @!attribute [rw] content_md5
9888
10265
  # The base64-encoded 128-bit MD5 digest of the server-side encryption
9889
- # configuration. This parameter is auto-populated when using the
9890
- # 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.
9891
10270
  # @return [String]
9892
10271
  #
9893
10272
  # @!attribute [rw] server_side_encryption_configuration
@@ -9911,6 +10290,63 @@ module Aws::S3
9911
10290
  include Aws::Structure
9912
10291
  end
9913
10292
 
10293
+ # @note When making an API call, you may pass PutBucketIntelligentTieringConfigurationRequest
10294
+ # data as a hash:
10295
+ #
10296
+ # {
10297
+ # bucket: "BucketName", # required
10298
+ # id: "IntelligentTieringId", # required
10299
+ # intelligent_tiering_configuration: { # required
10300
+ # id: "IntelligentTieringId", # required
10301
+ # filter: {
10302
+ # prefix: "Prefix",
10303
+ # tag: {
10304
+ # key: "ObjectKey", # required
10305
+ # value: "Value", # required
10306
+ # },
10307
+ # and: {
10308
+ # prefix: "Prefix",
10309
+ # tags: [
10310
+ # {
10311
+ # key: "ObjectKey", # required
10312
+ # value: "Value", # required
10313
+ # },
10314
+ # ],
10315
+ # },
10316
+ # },
10317
+ # status: "Enabled", # required, accepts Enabled, Disabled
10318
+ # tierings: [ # required
10319
+ # {
10320
+ # days: 1, # required
10321
+ # access_tier: "ARCHIVE_ACCESS", # required, accepts ARCHIVE_ACCESS, DEEP_ARCHIVE_ACCESS
10322
+ # },
10323
+ # ],
10324
+ # },
10325
+ # }
10326
+ #
10327
+ # @!attribute [rw] bucket
10328
+ # The name of the Amazon S3 bucket whose configuration you want to
10329
+ # modify or retrieve.
10330
+ # @return [String]
10331
+ #
10332
+ # @!attribute [rw] id
10333
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
10334
+ # @return [String]
10335
+ #
10336
+ # @!attribute [rw] intelligent_tiering_configuration
10337
+ # Container for S3 Intelligent-Tiering configuration.
10338
+ # @return [Types::IntelligentTieringConfiguration]
10339
+ #
10340
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfigurationRequest AWS API Documentation
10341
+ #
10342
+ class PutBucketIntelligentTieringConfigurationRequest < Struct.new(
10343
+ :bucket,
10344
+ :id,
10345
+ :intelligent_tiering_configuration)
10346
+ SENSITIVE = []
10347
+ include Aws::Structure
10348
+ end
10349
+
9914
10350
  # @note When making an API call, you may pass PutBucketInventoryConfigurationRequest
9915
10351
  # data as a hash:
9916
10352
  #
@@ -10100,6 +10536,8 @@ module Aws::S3
10100
10536
  # @return [String]
10101
10537
  #
10102
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.
10103
10541
  # @return [String]
10104
10542
  #
10105
10543
  # @!attribute [rw] lifecycle_configuration
@@ -10159,6 +10597,9 @@ module Aws::S3
10159
10597
  #
10160
10598
  # @!attribute [rw] content_md5
10161
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.
10162
10603
  # @return [String]
10163
10604
  #
10164
10605
  # @!attribute [rw] expected_bucket_owner
@@ -10358,6 +10799,9 @@ module Aws::S3
10358
10799
  #
10359
10800
  # @!attribute [rw] content_md5
10360
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.
10361
10805
  # @return [String]
10362
10806
  #
10363
10807
  # @!attribute [rw] notification_configuration
@@ -10404,9 +10848,15 @@ module Aws::S3
10404
10848
  #
10405
10849
  # @!attribute [rw] content_md5
10406
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.
10407
10854
  # @return [String]
10408
10855
  #
10409
10856
  # @!attribute [rw] expected_bucket_owner
10857
+ # The account id of the expected bucket owner. If the bucket is owned
10858
+ # by a different account, the request will fail with an HTTP `403
10859
+ # (Access Denied)` error.
10410
10860
  # @return [String]
10411
10861
  #
10412
10862
  # @!attribute [rw] ownership_controls
@@ -10442,6 +10892,9 @@ module Aws::S3
10442
10892
  #
10443
10893
  # @!attribute [rw] content_md5
10444
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.
10445
10898
  # @return [String]
10446
10899
  #
10447
10900
  # @!attribute [rw] confirm_remove_self_bucket_access
@@ -10505,6 +10958,9 @@ module Aws::S3
10505
10958
  # sse_kms_encrypted_objects: {
10506
10959
  # status: "Enabled", # required, accepts Enabled, Disabled
10507
10960
  # },
10961
+ # replica_modifications: {
10962
+ # status: "Enabled", # required, accepts Enabled, Disabled
10963
+ # },
10508
10964
  # },
10509
10965
  # existing_object_replication: {
10510
10966
  # status: "Enabled", # required, accepts Enabled, Disabled
@@ -10527,7 +10983,7 @@ module Aws::S3
10527
10983
  # },
10528
10984
  # metrics: {
10529
10985
  # status: "Enabled", # required, accepts Enabled, Disabled
10530
- # event_threshold: { # required
10986
+ # event_threshold: {
10531
10987
  # minutes: 1,
10532
10988
  # },
10533
10989
  # },
@@ -10552,6 +11008,9 @@ module Aws::S3
10552
11008
  # was not corrupted in transit. For more information, see [RFC
10553
11009
  # 1864][1].
10554
11010
  #
11011
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11012
+ # SDKs, this field is calculated automatically.
11013
+ #
10555
11014
  #
10556
11015
  #
10557
11016
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10563,6 +11022,7 @@ module Aws::S3
10563
11022
  # @return [Types::ReplicationConfiguration]
10564
11023
  #
10565
11024
  # @!attribute [rw] token
11025
+ # A token to allow Object Lock to be enabled for an existing bucket.
10566
11026
  # @return [String]
10567
11027
  #
10568
11028
  # @!attribute [rw] expected_bucket_owner
@@ -10605,6 +11065,9 @@ module Aws::S3
10605
11065
  # body was not corrupted in transit. For more information, see [RFC
10606
11066
  # 1864][1].
10607
11067
  #
11068
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11069
+ # SDKs, this field is calculated automatically.
11070
+ #
10608
11071
  #
10609
11072
  #
10610
11073
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10658,6 +11121,9 @@ module Aws::S3
10658
11121
  # was not corrupted in transit. For more information, see [RFC
10659
11122
  # 1864][1].
10660
11123
  #
11124
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11125
+ # SDKs, this field is calculated automatically.
11126
+ #
10661
11127
  #
10662
11128
  #
10663
11129
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10708,6 +11174,9 @@ module Aws::S3
10708
11174
  # body was not corrupted in transit. For more information, see [RFC
10709
11175
  # 1864][1].
10710
11176
  #
11177
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11178
+ # SDKs, this field is calculated automatically.
11179
+ #
10711
11180
  #
10712
11181
  #
10713
11182
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10787,6 +11256,9 @@ module Aws::S3
10787
11256
  # was not corrupted in transit. For more information, see [RFC
10788
11257
  # 1864][1].
10789
11258
  #
11259
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11260
+ # SDKs, this field is calculated automatically.
11261
+ #
10790
11262
  #
10791
11263
  #
10792
11264
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -10900,6 +11372,9 @@ module Aws::S3
10900
11372
  # was not corrupted in transit. For more information, go to [RFC
10901
11373
  # 1864.&gt;][1]
10902
11374
  #
11375
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
11376
+ # SDKs, this field is calculated automatically.
11377
+ #
10903
11378
  #
10904
11379
  #
10905
11380
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -11077,6 +11552,9 @@ module Aws::S3
11077
11552
  #
11078
11553
  # @!attribute [rw] content_md5
11079
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.
11080
11558
  # @return [String]
11081
11559
  #
11082
11560
  # @!attribute [rw] expected_bucket_owner
@@ -11161,6 +11639,9 @@ module Aws::S3
11161
11639
  #
11162
11640
  # @!attribute [rw] content_md5
11163
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.
11164
11645
  # @return [String]
11165
11646
  #
11166
11647
  # @!attribute [rw] expected_bucket_owner
@@ -11236,6 +11717,11 @@ module Aws::S3
11236
11717
  # pairs.
11237
11718
  # @return [String]
11238
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
+ #
11239
11725
  # @!attribute [rw] request_charged
11240
11726
  # If present, indicates that the requester was successfully charged
11241
11727
  # for the request.
@@ -11252,6 +11738,7 @@ module Aws::S3
11252
11738
  :sse_customer_key_md5,
11253
11739
  :ssekms_key_id,
11254
11740
  :ssekms_encryption_context,
11741
+ :bucket_key_enabled,
11255
11742
  :request_charged)
11256
11743
  SENSITIVE = [:ssekms_key_id, :ssekms_encryption_context]
11257
11744
  include Aws::Structure
@@ -11288,6 +11775,7 @@ module Aws::S3
11288
11775
  # sse_customer_key_md5: "SSECustomerKeyMD5",
11289
11776
  # ssekms_key_id: "SSEKMSKeyId",
11290
11777
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
11778
+ # bucket_key_enabled: false,
11291
11779
  # request_payer: "requester", # accepts requester
11292
11780
  # tagging: "TaggingHeader",
11293
11781
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -11537,6 +12025,16 @@ module Aws::S3
11537
12025
  # string holding JSON with the encryption context key-value pairs.
11538
12026
  # @return [String]
11539
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
+ #
11540
12038
  # @!attribute [rw] request_payer
11541
12039
  # Confirms that the requester knows that they will be charged for the
11542
12040
  # request. Bucket owners need not specify this parameter in their
@@ -11606,6 +12104,7 @@ module Aws::S3
11606
12104
  :sse_customer_key_md5,
11607
12105
  :ssekms_key_id,
11608
12106
  :ssekms_encryption_context,
12107
+ :bucket_key_enabled,
11609
12108
  :request_payer,
11610
12109
  :tagging,
11611
12110
  :object_lock_mode,
@@ -11697,6 +12196,9 @@ module Aws::S3
11697
12196
  #
11698
12197
  # @!attribute [rw] content_md5
11699
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.
11700
12202
  # @return [String]
11701
12203
  #
11702
12204
  # @!attribute [rw] expected_bucket_owner
@@ -11788,6 +12290,9 @@ module Aws::S3
11788
12290
  #
11789
12291
  # @!attribute [rw] content_md5
11790
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.
11791
12296
  # @return [String]
11792
12297
  #
11793
12298
  # @!attribute [rw] tagging
@@ -11835,6 +12340,9 @@ module Aws::S3
11835
12340
  #
11836
12341
  # @!attribute [rw] content_md5
11837
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.
11838
12346
  # @return [String]
11839
12347
  #
11840
12348
  # @!attribute [rw] public_access_block_configuration
@@ -12077,6 +12585,37 @@ module Aws::S3
12077
12585
  include Aws::Structure
12078
12586
  end
12079
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
+
12080
12619
  # A container for replication rules. You can add up to 1,000 rules. The
12081
12620
  # maximum size of a replication configuration is 2 MB.
12082
12621
  #
@@ -12111,6 +12650,9 @@ module Aws::S3
12111
12650
  # sse_kms_encrypted_objects: {
12112
12651
  # status: "Enabled", # required, accepts Enabled, Disabled
12113
12652
  # },
12653
+ # replica_modifications: {
12654
+ # status: "Enabled", # required, accepts Enabled, Disabled
12655
+ # },
12114
12656
  # },
12115
12657
  # existing_object_replication: {
12116
12658
  # status: "Enabled", # required, accepts Enabled, Disabled
@@ -12133,7 +12675,7 @@ module Aws::S3
12133
12675
  # },
12134
12676
  # metrics: {
12135
12677
  # status: "Enabled", # required, accepts Enabled, Disabled
12136
- # event_threshold: { # required
12678
+ # event_threshold: {
12137
12679
  # minutes: 1,
12138
12680
  # },
12139
12681
  # },
@@ -12202,6 +12744,9 @@ module Aws::S3
12202
12744
  # sse_kms_encrypted_objects: {
12203
12745
  # status: "Enabled", # required, accepts Enabled, Disabled
12204
12746
  # },
12747
+ # replica_modifications: {
12748
+ # status: "Enabled", # required, accepts Enabled, Disabled
12749
+ # },
12205
12750
  # },
12206
12751
  # existing_object_replication: {
12207
12752
  # status: "Enabled", # required, accepts Enabled, Disabled
@@ -12224,7 +12769,7 @@ module Aws::S3
12224
12769
  # },
12225
12770
  # metrics: {
12226
12771
  # status: "Enabled", # required, accepts Enabled, Disabled
12227
- # event_threshold: { # required
12772
+ # event_threshold: {
12228
12773
  # minutes: 1,
12229
12774
  # },
12230
12775
  # },
@@ -12240,21 +12785,19 @@ module Aws::S3
12240
12785
  # @return [String]
12241
12786
  #
12242
12787
  # @!attribute [rw] priority
12243
- # The priority associated with the rule. If you specify multiple rules
12244
- # in a replication configuration, Amazon S3 prioritizes the rules to
12245
- # prevent conflicts when filtering. If two or more rules identify the
12246
- # same object based on a specified filter, the rule with higher
12247
- # priority takes precedence. For example:
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.
12248
12794
  #
12249
- # * Same object quality prefix-based filter criteria if prefixes you
12250
- # specified in multiple rules overlap
12795
+ # For more information, see [Replication][1] in the *Amazon Simple
12796
+ # Storage Service Developer Guide*.
12251
12797
  #
12252
- # * Same object qualify tag-based filter criteria specified in
12253
- # multiple rules
12254
12798
  #
12255
- # For more information, see [Replication](
12256
- # https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in
12257
- # the *Amazon Simple Storage Service Developer Guide*.
12799
+ #
12800
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html
12258
12801
  # @return [Integer]
12259
12802
  #
12260
12803
  # @!attribute [rw] prefix
@@ -12293,25 +12836,28 @@ module Aws::S3
12293
12836
  # @return [Types::Destination]
12294
12837
  #
12295
12838
  # @!attribute [rw] delete_marker_replication
12296
- # Specifies whether Amazon S3 replicates the delete markers. If you
12297
- # specify a `Filter`, you must specify this element. However, in the
12298
- # latest version of replication configuration (when `Filter` is
12299
- # specified), Amazon S3 doesn't replicate delete markers. Therefore,
12300
- # the `DeleteMarkerReplication` element can contain only
12301
- # &lt;Status&gt;Disabled&lt;/Status&gt;. For an example configuration,
12302
- # see [Basic Rule Configuration][1].
12839
+ # Specifies whether Amazon S3 replicates delete markers. If you
12840
+ # specify a `Filter` in your replication configuration, you must also
12841
+ # include a `DeleteMarkerReplication` element. If your `Filter`
12842
+ # includes a `Tag` element, the `DeleteMarkerReplication` `Status`
12843
+ # must be set to Disabled, because Amazon S3 does not support
12844
+ # replicating delete markers for tag-based rules. For an example
12845
+ # configuration, see [Basic Rule Configuration][1].
12303
12846
  #
12304
- # <note markdown="1"> If you don't specify the `Filter` element, Amazon S3 assumes that
12305
- # the replication configuration is the earlier version, V1. In the
12306
- # earlier version, Amazon S3 handled replication of delete markers
12307
- # differently. For more information, see [Backward Compatibility][2].
12847
+ # For more information about delete marker replication, see [Basic
12848
+ # Rule Configuration][2].
12849
+ #
12850
+ # <note markdown="1"> If you are using an earlier version of the replication
12851
+ # configuration, Amazon S3 handles replication of delete markers
12852
+ # differently. For more information, see [Backward Compatibility][3].
12308
12853
  #
12309
12854
  # </note>
12310
12855
  #
12311
12856
  #
12312
12857
  #
12313
12858
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config
12314
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
12859
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html
12860
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
12315
12861
  # @return [Types::DeleteMarkerReplication]
12316
12862
  #
12317
12863
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRule AWS API Documentation
@@ -12643,7 +13189,7 @@ module Aws::S3
12643
13189
  # }
12644
13190
  #
12645
13191
  # @!attribute [rw] bucket
12646
- # The bucket name or containing the object to restore.
13192
+ # The bucket name containing the object to restore.
12647
13193
  #
12648
13194
  # When using this API with an access point, you must direct requests
12649
13195
  # to the access point hostname. The access point hostname takes the
@@ -12802,6 +13348,9 @@ module Aws::S3
12802
13348
  # @!attribute [rw] days
12803
13349
  # Lifetime of the active copy in days. Do not use with restores that
12804
13350
  # specify `OutputLocation`.
13351
+ #
13352
+ # The Days element is required for regular restores, and must not be
13353
+ # provided for select requests.
12805
13354
  # @return [Integer]
12806
13355
  #
12807
13356
  # @!attribute [rw] glacier_job_parameters
@@ -12814,7 +13363,7 @@ module Aws::S3
12814
13363
  # @return [String]
12815
13364
  #
12816
13365
  # @!attribute [rw] tier
12817
- # S3 Glacier retrieval tier at which the restore will be processed.
13366
+ # Retrieval tier at which the restore will be processed.
12818
13367
  # @return [String]
12819
13368
  #
12820
13369
  # @!attribute [rw] description
@@ -13513,6 +14062,7 @@ module Aws::S3
13513
14062
  # sse_algorithm: "AES256", # required, accepts AES256, aws:kms
13514
14063
  # kms_master_key_id: "SSEKMSKeyId",
13515
14064
  # },
14065
+ # bucket_key_enabled: false,
13516
14066
  # },
13517
14067
  # ],
13518
14068
  # }
@@ -13540,6 +14090,7 @@ module Aws::S3
13540
14090
  # sse_algorithm: "AES256", # required, accepts AES256, aws:kms
13541
14091
  # kms_master_key_id: "SSEKMSKeyId",
13542
14092
  # },
14093
+ # bucket_key_enabled: false,
13543
14094
  # }
13544
14095
  #
13545
14096
  # @!attribute [rw] apply_server_side_encryption_by_default
@@ -13548,10 +14099,26 @@ module Aws::S3
13548
14099
  # server-side encryption, this default encryption will be applied.
13549
14100
  # @return [Types::ServerSideEncryptionByDefault]
13550
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
+ #
13551
14117
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionRule AWS API Documentation
13552
14118
  #
13553
14119
  class ServerSideEncryptionRule < Struct.new(
13554
- :apply_server_side_encryption_by_default)
14120
+ :apply_server_side_encryption_by_default,
14121
+ :bucket_key_enabled)
13555
14122
  SENSITIVE = []
13556
14123
  include Aws::Structure
13557
14124
  end
@@ -13570,6 +14137,9 @@ module Aws::S3
13570
14137
  # sse_kms_encrypted_objects: {
13571
14138
  # status: "Enabled", # required, accepts Enabled, Disabled
13572
14139
  # },
14140
+ # replica_modifications: {
14141
+ # status: "Enabled", # required, accepts Enabled, Disabled
14142
+ # },
13573
14143
  # }
13574
14144
  #
13575
14145
  # @!attribute [rw] sse_kms_encrypted_objects
@@ -13579,10 +14149,25 @@ module Aws::S3
13579
14149
  # element is required.
13580
14150
  # @return [Types::SseKmsEncryptedObjects]
13581
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
+ #
13582
14166
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SourceSelectionCriteria AWS API Documentation
13583
14167
  #
13584
14168
  class SourceSelectionCriteria < Struct.new(
13585
- :sse_kms_encrypted_objects)
14169
+ :sse_kms_encrypted_objects,
14170
+ :replica_modifications)
13586
14171
  SENSITIVE = []
13587
14172
  include Aws::Structure
13588
14173
  end
@@ -13806,6 +14391,46 @@ module Aws::S3
13806
14391
  include Aws::Structure
13807
14392
  end
13808
14393
 
14394
+ # The S3 Intelligent-Tiering storage class is designed to optimize
14395
+ # storage costs by automatically moving data to the most cost-effective
14396
+ # storage access tier, without additional operational overhead.
14397
+ #
14398
+ # @note When making an API call, you may pass Tiering
14399
+ # data as a hash:
14400
+ #
14401
+ # {
14402
+ # days: 1, # required
14403
+ # access_tier: "ARCHIVE_ACCESS", # required, accepts ARCHIVE_ACCESS, DEEP_ARCHIVE_ACCESS
14404
+ # }
14405
+ #
14406
+ # @!attribute [rw] days
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).
14412
+ # @return [Integer]
14413
+ #
14414
+ # @!attribute [rw] access_tier
14415
+ # S3 Intelligent-Tiering access tier. See [Storage class for
14416
+ # automatically optimizing frequently and infrequently accessed
14417
+ # objects][1] for a list of access tiers in the S3 Intelligent-Tiering
14418
+ # storage class.
14419
+ #
14420
+ #
14421
+ #
14422
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
14423
+ # @return [String]
14424
+ #
14425
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Tiering AWS API Documentation
14426
+ #
14427
+ class Tiering < Struct.new(
14428
+ :days,
14429
+ :access_tier)
14430
+ SENSITIVE = []
14431
+ include Aws::Structure
14432
+ end
14433
+
13809
14434
  # A container for specifying the configuration for publication of
13810
14435
  # messages to an Amazon Simple Notification Service (Amazon SNS) topic
13811
14436
  # when Amazon S3 detects specified events.
@@ -13998,6 +14623,11 @@ module Aws::S3
13998
14623
  # used for the object.
13999
14624
  # @return [String]
14000
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
+ #
14001
14631
  # @!attribute [rw] request_charged
14002
14632
  # If present, indicates that the requester was successfully charged
14003
14633
  # for the request.
@@ -14012,6 +14642,7 @@ module Aws::S3
14012
14642
  :sse_customer_algorithm,
14013
14643
  :sse_customer_key_md5,
14014
14644
  :ssekms_key_id,
14645
+ :bucket_key_enabled,
14015
14646
  :request_charged)
14016
14647
  SENSITIVE = [:ssekms_key_id]
14017
14648
  include Aws::Structure
@@ -14273,6 +14904,11 @@ module Aws::S3
14273
14904
  # for the object.
14274
14905
  # @return [String]
14275
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
+ #
14276
14912
  # @!attribute [rw] request_charged
14277
14913
  # If present, indicates that the requester was successfully charged
14278
14914
  # for the request.
@@ -14286,6 +14922,7 @@ module Aws::S3
14286
14922
  :sse_customer_algorithm,
14287
14923
  :sse_customer_key_md5,
14288
14924
  :ssekms_key_id,
14925
+ :bucket_key_enabled,
14289
14926
  :request_charged)
14290
14927
  SENSITIVE = [:ssekms_key_id]
14291
14928
  include Aws::Structure