aws-sdk-s3 1.83.1 → 1.87.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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