aws-sdk-s3 1.156.0 → 1.158.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -334,6 +334,7 @@ module Aws::S3
334
334
  ListBucketMetricsConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsOutput')
335
335
  ListBucketMetricsConfigurationsRequest = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsRequest')
336
336
  ListBucketsOutput = Shapes::StructureShape.new(name: 'ListBucketsOutput')
337
+ ListBucketsRequest = Shapes::StructureShape.new(name: 'ListBucketsRequest')
337
338
  ListDirectoryBucketsOutput = Shapes::StructureShape.new(name: 'ListDirectoryBucketsOutput')
338
339
  ListDirectoryBucketsRequest = Shapes::StructureShape.new(name: 'ListDirectoryBucketsRequest')
339
340
  ListMultipartUploadsOutput = Shapes::StructureShape.new(name: 'ListMultipartUploadsOutput')
@@ -357,6 +358,7 @@ module Aws::S3
357
358
  MFADeleteStatus = Shapes::StringShape.new(name: 'MFADeleteStatus')
358
359
  Marker = Shapes::StringShape.new(name: 'Marker')
359
360
  MaxAgeSeconds = Shapes::IntegerShape.new(name: 'MaxAgeSeconds')
361
+ MaxBuckets = Shapes::IntegerShape.new(name: 'MaxBuckets')
360
362
  MaxDirectoryBuckets = Shapes::IntegerShape.new(name: 'MaxDirectoryBuckets')
361
363
  MaxKeys = Shapes::IntegerShape.new(name: 'MaxKeys')
362
364
  MaxParts = Shapes::IntegerShape.new(name: 'MaxParts')
@@ -1707,8 +1709,13 @@ module Aws::S3
1707
1709
 
1708
1710
  ListBucketsOutput.add_member(:buckets, Shapes::ShapeRef.new(shape: Buckets, location_name: "Buckets"))
1709
1711
  ListBucketsOutput.add_member(:owner, Shapes::ShapeRef.new(shape: Owner, location_name: "Owner"))
1712
+ ListBucketsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "ContinuationToken"))
1710
1713
  ListBucketsOutput.struct_class = Types::ListBucketsOutput
1711
1714
 
1715
+ ListBucketsRequest.add_member(:max_buckets, Shapes::ShapeRef.new(shape: MaxBuckets, location: "querystring", location_name: "max-buckets"))
1716
+ ListBucketsRequest.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location: "querystring", location_name: "continuation-token"))
1717
+ ListBucketsRequest.struct_class = Types::ListBucketsRequest
1718
+
1712
1719
  ListDirectoryBucketsOutput.add_member(:buckets, Shapes::ShapeRef.new(shape: Buckets, location_name: "Buckets"))
1713
1720
  ListDirectoryBucketsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: DirectoryBucketToken, location_name: "ContinuationToken"))
1714
1721
  ListDirectoryBucketsOutput.struct_class = Types::ListDirectoryBucketsOutput
@@ -3291,8 +3298,14 @@ module Aws::S3
3291
3298
  o.name = "ListBuckets"
3292
3299
  o.http_method = "GET"
3293
3300
  o.http_request_uri = "/"
3294
- o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3301
+ o.input = Shapes::ShapeRef.new(shape: ListBucketsRequest)
3295
3302
  o.output = Shapes::ShapeRef.new(shape: ListBucketsOutput)
3303
+ o[:pager] = Aws::Pager.new(
3304
+ limit_key: "max_buckets",
3305
+ tokens: {
3306
+ "continuation_token" => "continuation_token"
3307
+ }
3308
+ )
3296
3309
  end)
3297
3310
 
3298
3311
  api.add_operation(:list_directory_buckets, Seahorse::Model::Operation.new.tap do |o|
@@ -44,25 +44,47 @@ setting, caching, and fallback behavior.
44
44
  list_objects_v2: 'READ',
45
45
  list_object_versions: 'READ',
46
46
  list_parts: 'READ',
47
+ head_bucket: 'READ',
48
+ get_object_attributes: 'READ',
47
49
  put_object: 'WRITE',
48
50
  put_object_acl: 'WRITE',
49
51
  delete_object: 'WRITE',
50
52
  abort_multipart_upload: 'WRITE',
51
53
  create_multipart_upload: 'WRITE',
52
54
  upload_part: 'WRITE',
53
- complete_multipart_upload: 'WRITE'
55
+ complete_multipart_upload: 'WRITE',
56
+ delete_objects: 'WRITE',
57
+ copy_object: 'READWRITE'
54
58
  }.freeze
55
59
 
56
60
  def call(context)
61
+ provider = context.config.access_grants_credentials_provider
62
+
57
63
  if access_grants_operation?(context) &&
58
- !s3_express_endpoint?(context)
64
+ !s3_express_endpoint?(context) &&
65
+ !credentials_head_bucket_call?(provider)
59
66
  params = context[:endpoint_params]
60
67
  permission = PERMISSION_MAP[context.operation_name]
61
68
 
62
- provider = context.config.access_grants_credentials_provider
69
+ key =
70
+ case context.operation_name
71
+ when :delete_objects
72
+ delete_params = context.params[:delete]
73
+ common_prefixes(delete_params[:objects].map { |o| o[:key] })
74
+ when :copy_object
75
+ source_bucket, source_key = params[:copy_source].split('/', 2)
76
+ if params[:bucket] != source_bucket
77
+ raise ArgumentError,
78
+ 'source and destination bucket must be the same'
79
+ end
80
+ common_prefixes([params[:key], source_key])
81
+ else
82
+ params[:key]
83
+ end
84
+
63
85
  credentials = provider.access_grants_credentials_for(
64
86
  bucket: params[:bucket],
65
- key: params[:key],
87
+ key: key,
66
88
  prefix: params[:prefix],
67
89
  permission: permission
68
90
  )
@@ -80,6 +102,12 @@ setting, caching, and fallback behavior.
80
102
  Aws::Plugins::UserAgent.metric('S3_ACCESS_GRANTS', &block)
81
103
  end
82
104
 
105
+ # HeadBucket is a supported call. When fetching credentials,
106
+ # this plugin is executed again, and becomes recursive.
107
+ def credentials_head_bucket_call?(provider)
108
+ provider.instance_variable_get(:@head_bucket_call)
109
+ end
110
+
83
111
  def access_grants_operation?(context)
84
112
  params = context[:endpoint_params]
85
113
  params[:bucket] && PERMISSION_MAP[context.operation_name]
@@ -88,6 +116,42 @@ setting, caching, and fallback behavior.
88
116
  def s3_express_endpoint?(context)
89
117
  context[:endpoint_properties]['backend'] == 'S3Express'
90
118
  end
119
+
120
+ # Return the common prefix of the keys, regardless of the delimiter.
121
+ # For example, given keys ['foo/bar', 'foo/baz'], the common prefix
122
+ # is 'foo/ba'.
123
+ def common_prefixes(keys)
124
+ return '' if keys.empty?
125
+
126
+ first_key = keys[0]
127
+ common_ancestor = first_key
128
+ last_prefix = ''
129
+ keys.each do |k|
130
+ until common_ancestor.empty?
131
+ break if k.start_with?(common_ancestor)
132
+
133
+ last_index = common_ancestor.rindex('/')
134
+ return '' if last_index.nil?
135
+
136
+ last_prefix = common_ancestor[(last_index + 1)..-1]
137
+ common_ancestor = common_ancestor[0...last_index]
138
+ end
139
+ end
140
+ new_common_ancestor = "#{common_ancestor}/#{last_prefix}"
141
+ keys.each do |k|
142
+ until last_prefix.empty?
143
+ break if k.start_with?(new_common_ancestor)
144
+
145
+ last_prefix = last_prefix[0...-1]
146
+ new_common_ancestor = "#{common_ancestor}/#{last_prefix}"
147
+ end
148
+ end
149
+ if new_common_ancestor == "#{first_key}/"
150
+ first_key
151
+ else
152
+ new_common_ancestor
153
+ end
154
+ end
91
155
  end
92
156
 
93
157
  def add_handlers(handlers, config)
@@ -193,18 +193,20 @@ module Aws::S3
193
193
  # @return [Bucket::Collection]
194
194
  def buckets(options = {})
195
195
  batches = Enumerator.new do |y|
196
- batch = []
197
196
  resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
198
197
  @client.list_buckets(options)
199
198
  end
200
- resp.data.buckets.each do |b|
201
- batch << Bucket.new(
202
- name: b.name,
203
- data: b,
204
- client: @client
205
- )
199
+ resp.each_page do |page|
200
+ batch = []
201
+ page.data.buckets.each do |b|
202
+ batch << Bucket.new(
203
+ name: b.name,
204
+ data: b,
205
+ client: @client
206
+ )
207
+ end
208
+ y.yield(batch)
206
209
  end
207
- y.yield(batch)
208
210
  end
209
211
  Bucket::Collection.new(batches)
210
212
  end
@@ -3333,8 +3333,9 @@ module Aws::S3
3333
3333
  include Aws::Structure
3334
3334
  end
3335
3335
 
3336
- # The container element for specifying the default Object Lock retention
3337
- # settings for new objects placed in the specified bucket.
3336
+ # The container element for optionally specifying the default Object
3337
+ # Lock retention settings for new objects placed in the specified
3338
+ # bucket.
3338
3339
  #
3339
3340
  # <note markdown="1"> * The `DefaultRetention` settings require both a mode and a period.
3340
3341
  #
@@ -4390,6 +4391,14 @@ module Aws::S3
4390
4391
  # Specifies encryption-related information for an Amazon S3 bucket that
4391
4392
  # is a destination for replicated objects.
4392
4393
  #
4394
+ # <note markdown="1"> If you're specifying a customer managed KMS key, we recommend using a
4395
+ # fully qualified KMS key ARN. If you use a KMS key alias instead, then
4396
+ # KMS resolves the key within the requester’s account. This behavior can
4397
+ # result in data that's encrypted with a KMS key that belongs to the
4398
+ # requester, and not the bucket owner.
4399
+ #
4400
+ # </note>
4401
+ #
4393
4402
  # @!attribute [rw] replica_kms_key_id
4394
4403
  # Specifies the ID (Key ARN or Alias ARN) of the customer managed
4395
4404
  # Amazon Web Services KMS key stored in Amazon Web Services Key
@@ -7802,17 +7811,13 @@ module Aws::S3
7802
7811
  #
7803
7812
  # @!attribute [rw] bucket_region
7804
7813
  # The Region that the bucket is located.
7805
- #
7806
- # <note markdown="1"> This functionality is not supported for directory buckets.
7807
- #
7808
- # </note>
7809
7814
  # @return [String]
7810
7815
  #
7811
7816
  # @!attribute [rw] access_point_alias
7812
7817
  # Indicates whether the bucket name used in the request is an access
7813
7818
  # point alias.
7814
7819
  #
7815
- # <note markdown="1"> This functionality is not supported for directory buckets.
7820
+ # <note markdown="1"> For directory buckets, the value of this field is `false`.
7816
7821
  #
7817
7822
  # </note>
7818
7823
  # @return [Boolean]
@@ -9526,11 +9531,45 @@ module Aws::S3
9526
9531
  # The owner of the buckets listed.
9527
9532
  # @return [Types::Owner]
9528
9533
  #
9534
+ # @!attribute [rw] continuation_token
9535
+ # `ContinuationToken` is included in the response when there are more
9536
+ # buckets that can be listed with pagination. The next `ListBuckets`
9537
+ # request to Amazon S3 can be continued with this `ContinuationToken`.
9538
+ # `ContinuationToken` is obfuscated and is not a real bucket.
9539
+ # @return [String]
9540
+ #
9529
9541
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsOutput AWS API Documentation
9530
9542
  #
9531
9543
  class ListBucketsOutput < Struct.new(
9532
9544
  :buckets,
9533
- :owner)
9545
+ :owner,
9546
+ :continuation_token)
9547
+ SENSITIVE = []
9548
+ include Aws::Structure
9549
+ end
9550
+
9551
+ # @!attribute [rw] max_buckets
9552
+ # Maximum number of buckets to be returned in response. When the
9553
+ # number is more than the count of buckets that are owned by an Amazon
9554
+ # Web Services account, return all the buckets in response.
9555
+ # @return [Integer]
9556
+ #
9557
+ # @!attribute [rw] continuation_token
9558
+ # `ContinuationToken` indicates to Amazon S3 that the list is being
9559
+ # continued on this bucket with a token. `ContinuationToken` is
9560
+ # obfuscated and is not a real key. You can use this
9561
+ # `ContinuationToken` for pagination of the list results.
9562
+ #
9563
+ # Length Constraints: Minimum length of 0. Maximum length of 1024.
9564
+ #
9565
+ # Required: No.
9566
+ # @return [String]
9567
+ #
9568
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsRequest AWS API Documentation
9569
+ #
9570
+ class ListBucketsRequest < Struct.new(
9571
+ :max_buckets,
9572
+ :continuation_token)
9534
9573
  SENSITIVE = []
9535
9574
  include Aws::Structure
9536
9575
  end
@@ -9556,9 +9595,10 @@ module Aws::S3
9556
9595
 
9557
9596
  # @!attribute [rw] continuation_token
9558
9597
  # `ContinuationToken` indicates to Amazon S3 that the list is being
9559
- # continued on this bucket with a token. `ContinuationToken` is
9560
- # obfuscated and is not a real key. You can use this
9561
- # `ContinuationToken` for pagination of the list results.
9598
+ # continued on buckets in this account with a token.
9599
+ # `ContinuationToken` is obfuscated and is not a real bucket name. You
9600
+ # can use this `ContinuationToken` for the pagination of the list
9601
+ # results.
9562
9602
  # @return [String]
9563
9603
  #
9564
9604
  # @!attribute [rw] max_directory_buckets
@@ -9768,12 +9808,26 @@ module Aws::S3
9768
9808
  # @return [String]
9769
9809
  #
9770
9810
  # @!attribute [rw] encoding_type
9771
- # Requests Amazon S3 to encode the object keys in the response and
9772
- # specifies the encoding method to use. An object key can contain any
9773
- # Unicode character; however, the XML 1.0 parser cannot parse some
9774
- # characters, such as characters with an ASCII value from 0 to 10. For
9775
- # characters that are not supported in XML 1.0, you can add this
9776
- # parameter to request that Amazon S3 encode the keys in the response.
9811
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
9812
+ # the response. Responses are encoded only in UTF-8. An object key can
9813
+ # contain any Unicode character. However, the XML 1.0 parser can't
9814
+ # parse certain characters, such as characters with an ASCII value
9815
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
9816
+ # can add this parameter to request that Amazon S3 encode the keys in
9817
+ # the response. For more information about characters to avoid in
9818
+ # object key names, see [Object key naming guidelines][2].
9819
+ #
9820
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
9821
+ # in an object's key name will be percent-encoded according to UTF-8
9822
+ # code values. For example, the object `test_file(3).png` will appear
9823
+ # as `test_file%283%29.png`.
9824
+ #
9825
+ # </note>
9826
+ #
9827
+ #
9828
+ #
9829
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
9830
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
9777
9831
  # @return [String]
9778
9832
  #
9779
9833
  # @!attribute [rw] key_marker
@@ -9998,12 +10052,26 @@ module Aws::S3
9998
10052
  # @return [String]
9999
10053
  #
10000
10054
  # @!attribute [rw] encoding_type
10001
- # Requests Amazon S3 to encode the object keys in the response and
10002
- # specifies the encoding method to use. An object key can contain any
10003
- # Unicode character; however, the XML 1.0 parser cannot parse some
10004
- # characters, such as characters with an ASCII value from 0 to 10. For
10005
- # characters that are not supported in XML 1.0, you can add this
10006
- # parameter to request that Amazon S3 encode the keys in the response.
10055
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10056
+ # the response. Responses are encoded only in UTF-8. An object key can
10057
+ # contain any Unicode character. However, the XML 1.0 parser can't
10058
+ # parse certain characters, such as characters with an ASCII value
10059
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10060
+ # can add this parameter to request that Amazon S3 encode the keys in
10061
+ # the response. For more information about characters to avoid in
10062
+ # object key names, see [Object key naming guidelines][2].
10063
+ #
10064
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10065
+ # in an object's key name will be percent-encoded according to UTF-8
10066
+ # code values. For example, the object `test_file(3).png` will appear
10067
+ # as `test_file%283%29.png`.
10068
+ #
10069
+ # </note>
10070
+ #
10071
+ #
10072
+ #
10073
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10074
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10007
10075
  # @return [String]
10008
10076
  #
10009
10077
  # @!attribute [rw] key_marker
@@ -10150,10 +10218,26 @@ module Aws::S3
10150
10218
  # @return [Array<Types::CommonPrefix>]
10151
10219
  #
10152
10220
  # @!attribute [rw] encoding_type
10153
- # Encoding type used by Amazon S3 to encode object keys in the
10154
- # response. If using `url`, non-ASCII characters used in an object's
10155
- # key name will be URL encoded. For example, the object
10156
- # `test_file(3).png` will appear as `test_file%283%29.png`.
10221
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10222
+ # the response. Responses are encoded only in UTF-8. An object key can
10223
+ # contain any Unicode character. However, the XML 1.0 parser can't
10224
+ # parse certain characters, such as characters with an ASCII value
10225
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10226
+ # can add this parameter to request that Amazon S3 encode the keys in
10227
+ # the response. For more information about characters to avoid in
10228
+ # object key names, see [Object key naming guidelines][2].
10229
+ #
10230
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10231
+ # in an object's key name will be percent-encoded according to UTF-8
10232
+ # code values. For example, the object `test_file(3).png` will appear
10233
+ # as `test_file%283%29.png`.
10234
+ #
10235
+ # </note>
10236
+ #
10237
+ #
10238
+ #
10239
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10240
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10157
10241
  # @return [String]
10158
10242
  #
10159
10243
  # @!attribute [rw] request_charged
@@ -10233,12 +10317,26 @@ module Aws::S3
10233
10317
  # @return [String]
10234
10318
  #
10235
10319
  # @!attribute [rw] encoding_type
10236
- # Requests Amazon S3 to encode the object keys in the response and
10237
- # specifies the encoding method to use. An object key can contain any
10238
- # Unicode character; however, the XML 1.0 parser cannot parse some
10239
- # characters, such as characters with an ASCII value from 0 to 10. For
10240
- # characters that are not supported in XML 1.0, you can add this
10241
- # parameter to request that Amazon S3 encode the keys in the response.
10320
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10321
+ # the response. Responses are encoded only in UTF-8. An object key can
10322
+ # contain any Unicode character. However, the XML 1.0 parser can't
10323
+ # parse certain characters, such as characters with an ASCII value
10324
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10325
+ # can add this parameter to request that Amazon S3 encode the keys in
10326
+ # the response. For more information about characters to avoid in
10327
+ # object key names, see [Object key naming guidelines][2].
10328
+ #
10329
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10330
+ # in an object's key name will be percent-encoded according to UTF-8
10331
+ # code values. For example, the object `test_file(3).png` will appear
10332
+ # as `test_file%283%29.png`.
10333
+ #
10334
+ # </note>
10335
+ #
10336
+ #
10337
+ #
10338
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10339
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10242
10340
  # @return [String]
10243
10341
  #
10244
10342
  # @!attribute [rw] marker
@@ -10506,10 +10604,26 @@ module Aws::S3
10506
10604
  # @return [String]
10507
10605
  #
10508
10606
  # @!attribute [rw] encoding_type
10509
- # Encoding type used by Amazon S3 to encode object keys in the
10510
- # response. If using `url`, non-ASCII characters used in an object's
10511
- # key name will be URL encoded. For example, the object
10512
- # `test_file(3).png` will appear as `test_file%283%29.png`.
10607
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10608
+ # the response. Responses are encoded only in UTF-8. An object key can
10609
+ # contain any Unicode character. However, the XML 1.0 parser can't
10610
+ # parse certain characters, such as characters with an ASCII value
10611
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10612
+ # can add this parameter to request that Amazon S3 encode the keys in
10613
+ # the response. For more information about characters to avoid in
10614
+ # object key names, see [Object key naming guidelines][2].
10615
+ #
10616
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10617
+ # in an object's key name will be percent-encoded according to UTF-8
10618
+ # code values. For example, the object `test_file(3).png` will appear
10619
+ # as `test_file%283%29.png`.
10620
+ #
10621
+ # </note>
10622
+ #
10623
+ #
10624
+ #
10625
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10626
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10513
10627
  # @return [String]
10514
10628
  #
10515
10629
  # @!attribute [rw] max_keys
@@ -11963,7 +12077,15 @@ module Aws::S3
11963
12077
  #
11964
12078
  # @!attribute [rw] partition_date_source
11965
12079
  # Specifies the partition date source for the partitioned prefix.
11966
- # PartitionDateSource can be EventTime or DeliveryTime.
12080
+ # `PartitionDateSource` can be `EventTime` or `DeliveryTime`.
12081
+ #
12082
+ # For `DeliveryTime`, the time in the log file names corresponds to
12083
+ # the delivery time for the log files.
12084
+ #
12085
+ # For `EventTime`, The logs delivered are for a specific day only. The
12086
+ # year, month, and day correspond to the day on which the event
12087
+ # occurred, and the hour, minutes and seconds are set to 00 in the
12088
+ # key.
11967
12089
  # @return [String]
11968
12090
  #
11969
12091
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PartitionedPrefix AWS API Documentation
@@ -12076,8 +12198,9 @@ module Aws::S3
12076
12198
  # @!attribute [rw] restrict_public_buckets
12077
12199
  # Specifies whether Amazon S3 should restrict public bucket policies
12078
12200
  # for this bucket. Setting this element to `TRUE` restricts access to
12079
- # this bucket to only Amazon Web Service principals and authorized
12080
- # users within this account if the bucket has a public policy.
12201
+ # this bucket to only Amazon Web Servicesservice principals and
12202
+ # authorized users within this account if the bucket has a public
12203
+ # policy.
12081
12204
  #
12082
12205
  # Enabling this setting doesn't affect previously stored bucket
12083
12206
  # policies, except that public and cross-account access within any
@@ -14730,7 +14853,15 @@ module Aws::S3
14730
14853
  # The container for the records event.
14731
14854
  #
14732
14855
  # @!attribute [rw] payload
14733
- # The byte array of partial, one or more result records.
14856
+ # The byte array of partial, one or more result records. S3 Select
14857
+ # doesn't guarantee that a record will be self-contained in one
14858
+ # record frame. To ensure continuous streaming of data, S3 Select
14859
+ # might split the same record across multiple record frames instead of
14860
+ # aggregating the results in memory. Some S3 clients (for example, the
14861
+ # SDK for Java) handle this behavior by creating a `ByteStream` out of
14862
+ # the response by default. Other clients might not handle this
14863
+ # behavior by default. In those cases, you must aggregate the results
14864
+ # on the client side and parse the response.
14734
14865
  # @return [String]
14735
14866
  #
14736
14867
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RecordsEvent AWS API Documentation
@@ -15779,6 +15910,14 @@ module Aws::S3
15779
15910
  # SSE-KMS. For more information, see [PUT Bucket encryption][1] in the
15780
15911
  # *Amazon S3 API Reference*.
15781
15912
  #
15913
+ # <note markdown="1"> If you're specifying a customer managed KMS key, we recommend using a
15914
+ # fully qualified KMS key ARN. If you use a KMS key alias instead, then
15915
+ # KMS resolves the key within the requester’s account. This behavior can
15916
+ # result in data that's encrypted with a KMS key that belongs to the
15917
+ # requester, and not the bucket owner.
15918
+ #
15919
+ # </note>
15920
+ #
15782
15921
  #
15783
15922
  #
15784
15923
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html
@@ -15847,6 +15986,14 @@ module Aws::S3
15847
15986
 
15848
15987
  # Specifies the default server-side encryption configuration.
15849
15988
  #
15989
+ # <note markdown="1"> If you're specifying a customer managed KMS key, we recommend using a
15990
+ # fully qualified KMS key ARN. If you use a KMS key alias instead, then
15991
+ # KMS resolves the key within the requester’s account. This behavior can
15992
+ # result in data that's encrypted with a KMS key that belongs to the
15993
+ # requester, and not the bucket owner.
15994
+ #
15995
+ # </note>
15996
+ #
15850
15997
  # @!attribute [rw] apply_server_side_encryption_by_default
15851
15998
  # Specifies the default server-side encryption to apply to new objects
15852
15999
  # in the bucket. If a PUT Object request doesn't specify any
data/lib/aws-sdk-s3.rb CHANGED
@@ -73,6 +73,6 @@ require_relative 'aws-sdk-s3/event_streams'
73
73
  # @!group service
74
74
  module Aws::S3
75
75
 
76
- GEM_VERSION = '1.156.0'
76
+ GEM_VERSION = '1.158.0'
77
77
 
78
78
  end
data/sig/client.rbs CHANGED
@@ -1044,9 +1044,13 @@ module Aws
1044
1044
  include ::Seahorse::Client::_ResponseSuccess[Types::ListBucketsOutput]
1045
1045
  def buckets: () -> ::Array[Types::Bucket]
1046
1046
  def owner: () -> Types::Owner
1047
+ def continuation_token: () -> ::String
1047
1048
  end
1048
1049
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Client.html#list_buckets-instance_method
1049
- def list_buckets: () -> _ListBucketsResponseSuccess
1050
+ def list_buckets: (
1051
+ ?max_buckets: ::Integer,
1052
+ ?continuation_token: ::String
1053
+ ) -> _ListBucketsResponseSuccess
1050
1054
  | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListBucketsResponseSuccess
1051
1055
 
1052
1056
  interface _ListDirectoryBucketsResponseSuccess
data/sig/resource.rbs CHANGED
@@ -120,7 +120,8 @@ module Aws
120
120
  def bucket: (String name) -> Bucket
121
121
 
122
122
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Resource.html#buckets-instance_method
123
- def buckets: () -> Bucket::Collection
123
+ def buckets: (
124
+ ) -> Bucket::Collection
124
125
  | (?Hash[Symbol, untyped]) -> Bucket::Collection
125
126
  end
126
127
  end
data/sig/types.rbs CHANGED
@@ -1358,6 +1358,13 @@ module Aws::S3
1358
1358
  class ListBucketsOutput
1359
1359
  attr_accessor buckets: ::Array[Types::Bucket]
1360
1360
  attr_accessor owner: Types::Owner
1361
+ attr_accessor continuation_token: ::String
1362
+ SENSITIVE: []
1363
+ end
1364
+
1365
+ class ListBucketsRequest
1366
+ attr_accessor max_buckets: ::Integer
1367
+ attr_accessor continuation_token: ::String
1361
1368
  SENSITIVE: []
1362
1369
  end
1363
1370
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.156.0
4
+ version: 1.158.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-02 00:00:00.000000000 Z
11
+ date: 2024-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-kms