aws-sdk-s3 1.61.1 → 1.166.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1255 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  6. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +250 -0
  7. data/lib/aws-sdk-s3/bucket.rb +814 -112
  8. data/lib/aws-sdk-s3/bucket_acl.rb +54 -17
  9. data/lib/aws-sdk-s3/bucket_cors.rb +63 -20
  10. data/lib/aws-sdk-s3/bucket_lifecycle.rb +63 -19
  11. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +64 -19
  12. data/lib/aws-sdk-s3/bucket_logging.rb +58 -17
  13. data/lib/aws-sdk-s3/bucket_notification.rb +47 -20
  14. data/lib/aws-sdk-s3/bucket_policy.rb +104 -17
  15. data/lib/aws-sdk-s3/bucket_region_cache.rb +11 -5
  16. data/lib/aws-sdk-s3/bucket_request_payment.rb +53 -19
  17. data/lib/aws-sdk-s3/bucket_tagging.rb +60 -17
  18. data/lib/aws-sdk-s3/bucket_versioning.rb +106 -17
  19. data/lib/aws-sdk-s3/bucket_website.rb +64 -19
  20. data/lib/aws-sdk-s3/client.rb +11280 -3232
  21. data/lib/aws-sdk-s3/client_api.rb +1078 -197
  22. data/lib/aws-sdk-s3/customizations/bucket.rb +33 -45
  23. data/lib/aws-sdk-s3/customizations/errors.rb +40 -0
  24. data/lib/aws-sdk-s3/customizations/multipart_upload.rb +2 -0
  25. data/lib/aws-sdk-s3/customizations/object.rb +237 -39
  26. data/lib/aws-sdk-s3/customizations/object_summary.rb +10 -0
  27. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  28. data/lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb +2 -0
  29. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  30. data/lib/aws-sdk-s3/customizations.rb +27 -28
  31. data/lib/aws-sdk-s3/encryption/client.rb +25 -8
  32. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +71 -29
  33. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +43 -5
  34. data/lib/aws-sdk-s3/encryption/default_key_provider.rb +2 -0
  35. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +13 -2
  36. data/lib/aws-sdk-s3/encryption/errors.rb +2 -0
  37. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +2 -0
  38. data/lib/aws-sdk-s3/encryption/io_decrypter.rb +11 -3
  39. data/lib/aws-sdk-s3/encryption/io_encrypter.rb +2 -0
  40. data/lib/aws-sdk-s3/encryption/key_provider.rb +2 -0
  41. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +46 -11
  42. data/lib/aws-sdk-s3/encryption/materials.rb +8 -6
  43. data/lib/aws-sdk-s3/encryption/utils.rb +25 -0
  44. data/lib/aws-sdk-s3/encryption.rb +4 -0
  45. data/lib/aws-sdk-s3/encryptionV2/client.rb +570 -0
  46. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +223 -0
  47. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +170 -0
  48. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +40 -0
  49. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +65 -0
  50. data/lib/aws-sdk-s3/encryptionV2/errors.rb +37 -0
  51. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +58 -0
  52. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +37 -0
  53. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +73 -0
  54. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +31 -0
  55. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +173 -0
  56. data/lib/aws-sdk-s3/encryptionV2/materials.rb +60 -0
  57. data/lib/aws-sdk-s3/encryptionV2/utils.rb +103 -0
  58. data/lib/aws-sdk-s3/encryption_v2.rb +23 -0
  59. data/lib/aws-sdk-s3/endpoint_parameters.rb +186 -0
  60. data/lib/aws-sdk-s3/endpoint_provider.rb +592 -0
  61. data/lib/aws-sdk-s3/endpoints.rb +2392 -0
  62. data/lib/aws-sdk-s3/errors.rb +27 -1
  63. data/lib/aws-sdk-s3/event_streams.rb +8 -1
  64. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  65. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  66. data/lib/aws-sdk-s3/file_downloader.rb +176 -44
  67. data/lib/aws-sdk-s3/file_part.rb +2 -0
  68. data/lib/aws-sdk-s3/file_uploader.rb +28 -8
  69. data/lib/aws-sdk-s3/legacy_signer.rb +17 -25
  70. data/lib/aws-sdk-s3/multipart_file_uploader.rb +69 -13
  71. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +49 -18
  72. data/lib/aws-sdk-s3/multipart_upload.rb +242 -25
  73. data/lib/aws-sdk-s3/multipart_upload_error.rb +2 -0
  74. data/lib/aws-sdk-s3/multipart_upload_part.rb +343 -31
  75. data/lib/aws-sdk-s3/object.rb +2240 -218
  76. data/lib/aws-sdk-s3/object_acl.rb +80 -21
  77. data/lib/aws-sdk-s3/object_copier.rb +9 -5
  78. data/lib/aws-sdk-s3/object_multipart_copier.rb +48 -22
  79. data/lib/aws-sdk-s3/object_summary.rb +1900 -178
  80. data/lib/aws-sdk-s3/object_version.rb +449 -59
  81. data/lib/aws-sdk-s3/plugins/accelerate.rb +17 -64
  82. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  83. data/lib/aws-sdk-s3/plugins/arn.rb +70 -0
  84. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +5 -41
  85. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +3 -6
  86. data/lib/aws-sdk-s3/plugins/dualstack.rb +7 -50
  87. data/lib/aws-sdk-s3/plugins/endpoints.rb +289 -0
  88. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +5 -4
  89. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +97 -0
  90. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +3 -1
  91. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +60 -15
  92. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +11 -27
  93. data/lib/aws-sdk-s3/plugins/location_constraint.rb +5 -1
  94. data/lib/aws-sdk-s3/plugins/md5s.rb +32 -26
  95. data/lib/aws-sdk-s3/plugins/redirects.rb +2 -0
  96. data/lib/aws-sdk-s3/plugins/s3_host_id.rb +2 -0
  97. data/lib/aws-sdk-s3/plugins/s3_signer.rb +50 -88
  98. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  99. data/lib/aws-sdk-s3/plugins/sse_cpk.rb +3 -1
  100. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +139 -0
  101. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -0
  102. data/lib/aws-sdk-s3/presigned_post.rb +160 -103
  103. data/lib/aws-sdk-s3/presigner.rb +136 -61
  104. data/lib/aws-sdk-s3/resource.rb +120 -15
  105. data/lib/aws-sdk-s3/types.rb +9683 -4358
  106. data/lib/aws-sdk-s3/waiters.rb +67 -1
  107. data/lib/aws-sdk-s3.rb +40 -29
  108. data/sig/bucket.rbs +213 -0
  109. data/sig/bucket_acl.rbs +78 -0
  110. data/sig/bucket_cors.rbs +69 -0
  111. data/sig/bucket_lifecycle.rbs +88 -0
  112. data/sig/bucket_lifecycle_configuration.rbs +111 -0
  113. data/sig/bucket_logging.rbs +76 -0
  114. data/sig/bucket_notification.rbs +114 -0
  115. data/sig/bucket_policy.rbs +59 -0
  116. data/sig/bucket_request_payment.rbs +54 -0
  117. data/sig/bucket_tagging.rbs +65 -0
  118. data/sig/bucket_versioning.rbs +77 -0
  119. data/sig/bucket_website.rbs +93 -0
  120. data/sig/client.rbs +2397 -0
  121. data/sig/customizations/bucket.rbs +19 -0
  122. data/sig/customizations/object.rbs +38 -0
  123. data/sig/customizations/object_summary.rbs +35 -0
  124. data/sig/errors.rbs +34 -0
  125. data/sig/multipart_upload.rbs +111 -0
  126. data/sig/multipart_upload_part.rbs +105 -0
  127. data/sig/object.rbs +443 -0
  128. data/sig/object_acl.rbs +86 -0
  129. data/sig/object_summary.rbs +335 -0
  130. data/sig/object_version.rbs +137 -0
  131. data/sig/resource.rbs +130 -0
  132. data/sig/types.rbs +2585 -0
  133. data/sig/waiters.rbs +95 -0
  134. metadata +73 -15
  135. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -211
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
@@ -52,7 +54,9 @@ module Aws::S3
52
54
  #
53
55
  # @return [self]
54
56
  def load
55
- resp = @client.get_bucket_policy(bucket: @bucket_name)
57
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
+ @client.get_bucket_policy(bucket: @bucket_name)
59
+ end
56
60
  @data = resp.data
57
61
  self
58
62
  end
@@ -78,7 +82,8 @@ module Aws::S3
78
82
  # Waiter polls an API operation until a resource enters a desired
79
83
  # state.
80
84
  #
81
- # @note The waiting operation is performed on a copy. The original resource remains unchanged
85
+ # @note The waiting operation is performed on a copy. The original resource
86
+ # remains unchanged.
82
87
  #
83
88
  # ## Basic Usage
84
89
  #
@@ -91,13 +96,15 @@ module Aws::S3
91
96
  #
92
97
  # ## Example
93
98
  #
94
- # instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
99
+ # instance.wait_until(max_attempts:10, delay:5) do |instance|
100
+ # instance.state.name == 'running'
101
+ # end
95
102
  #
96
103
  # ## Configuration
97
104
  #
98
105
  # You can configure the maximum number of polling attempts, and the
99
- # delay (in seconds) between each polling attempt. The waiting condition is set
100
- # by passing a block to {#wait_until}:
106
+ # delay (in seconds) between each polling attempt. The waiting condition is
107
+ # set by passing a block to {#wait_until}:
101
108
  #
102
109
  # # poll for ~25 seconds
103
110
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -128,17 +135,16 @@ module Aws::S3
128
135
  # # resource did not enter the desired state in time
129
136
  # end
130
137
  #
138
+ # @yieldparam [Resource] resource to be used in the waiting condition.
131
139
  #
132
- # @yield param [Resource] resource to be used in the waiting condition
133
- #
134
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
135
- # because the waiter has entered a state that it will not transition
136
- # out of, preventing success.
140
+ # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
141
+ # terminates because the waiter has entered a state that it will not
142
+ # transition out of, preventing success.
137
143
  #
138
144
  # yet successful.
139
145
  #
140
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
141
- # while polling for a resource that is not expected.
146
+ # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
147
+ # encountered while polling for a resource that is not expected.
142
148
  #
143
149
  # @raise [NotImplementedError] Raised when the resource does not
144
150
  #
@@ -165,19 +171,35 @@ module Aws::S3
165
171
  :retry
166
172
  end
167
173
  end
168
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
169
177
  end
170
178
 
171
179
  # @!group Actions
172
180
 
173
181
  # @example Request syntax with placeholder values
174
182
  #
175
- # bucket_policy.delete()
183
+ # bucket_policy.delete({
184
+ # expected_bucket_owner: "AccountId",
185
+ # })
176
186
  # @param [Hash] options ({})
187
+ # @option options [String] :expected_bucket_owner
188
+ # The account ID of the expected bucket owner. If the account ID that
189
+ # you provide does not match the actual owner of the bucket, the request
190
+ # fails with the HTTP status code `403 Forbidden` (access denied).
191
+ #
192
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
193
+ # operation. If you specify this header, the request fails with the HTTP
194
+ # status code `501 Not Implemented`.
195
+ #
196
+ # </note>
177
197
  # @return [EmptyStructure]
178
198
  def delete(options = {})
179
199
  options = options.merge(bucket: @bucket_name)
180
- resp = @client.delete_bucket_policy(options)
200
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
201
+ @client.delete_bucket_policy(options)
202
+ end
181
203
  resp.data
182
204
  end
183
205
 
@@ -185,21 +207,86 @@ module Aws::S3
185
207
  #
186
208
  # bucket_policy.put({
187
209
  # content_md5: "ContentMD5",
210
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
188
211
  # confirm_remove_self_bucket_access: false,
189
212
  # policy: "Policy", # required
213
+ # expected_bucket_owner: "AccountId",
190
214
  # })
191
215
  # @param [Hash] options ({})
192
216
  # @option options [String] :content_md5
193
217
  # The MD5 hash of the request body.
218
+ #
219
+ # For requests made using the Amazon Web Services Command Line Interface
220
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
221
+ # automatically.
222
+ #
223
+ # <note markdown="1"> This functionality is not supported for directory buckets.
224
+ #
225
+ # </note>
226
+ # @option options [String] :checksum_algorithm
227
+ # Indicates the algorithm used to create the checksum for the object
228
+ # when you use the SDK. This header will not provide any additional
229
+ # functionality if you don't use the SDK. When you send this header,
230
+ # there must be a corresponding `x-amz-checksum-algorithm ` or
231
+ # `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request
232
+ # with the HTTP status code `400 Bad Request`.
233
+ #
234
+ # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
235
+ # the supported algorithm from the following list:
236
+ #
237
+ # * CRC32
238
+ #
239
+ # * CRC32C
240
+ #
241
+ # * SHA1
242
+ #
243
+ # * SHA256
244
+ #
245
+ # For more information, see [Checking object integrity][1] in the
246
+ # *Amazon S3 User Guide*.
247
+ #
248
+ # If the individual checksum value you provide through
249
+ # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
250
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
251
+ # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
252
+ # that matches the provided value in `x-amz-checksum-algorithm `.
253
+ #
254
+ # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
255
+ # is the default checksum algorithm that's used for performance.
256
+ #
257
+ # </note>
258
+ #
259
+ #
260
+ #
261
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
194
262
  # @option options [Boolean] :confirm_remove_self_bucket_access
195
263
  # Set this parameter to true to confirm that you want to remove your
196
264
  # permissions to change this bucket policy in the future.
265
+ #
266
+ # <note markdown="1"> This functionality is not supported for directory buckets.
267
+ #
268
+ # </note>
197
269
  # @option options [required, String] :policy
198
270
  # The bucket policy as a JSON document.
271
+ #
272
+ # For directory buckets, the only IAM action supported in the bucket
273
+ # policy is `s3express:CreateSession`.
274
+ # @option options [String] :expected_bucket_owner
275
+ # The account ID of the expected bucket owner. If the account ID that
276
+ # you provide does not match the actual owner of the bucket, the request
277
+ # fails with the HTTP status code `403 Forbidden` (access denied).
278
+ #
279
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
280
+ # operation. If you specify this header, the request fails with the HTTP
281
+ # status code `501 Not Implemented`.
282
+ #
283
+ # </note>
199
284
  # @return [EmptyStructure]
200
285
  def put(options = {})
201
286
  options = options.merge(bucket: @bucket_name)
202
- resp = @client.put_bucket_policy(options)
287
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
288
+ @client.put_bucket_policy(options)
289
+ end
203
290
  resp.data
204
291
  end
205
292
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'thread'
2
4
 
3
5
  module Aws
@@ -13,7 +15,7 @@ module Aws
13
15
  # Registers a block as a callback. This listener is called when a
14
16
  # new bucket/region pair is added to the cache.
15
17
  #
16
- # S3::BUCKET_REGIONS.bucket_added do |bucket_name, region_name|
18
+ # Aws::S3.bucket_region_cache.bucket_added do |bucket_name, region_name|
17
19
  # # ...
18
20
  # end
19
21
  #
@@ -57,6 +59,14 @@ module Aws
57
59
  end
58
60
  end
59
61
 
62
+ # @param [String] key
63
+ # @return [Boolean]
64
+ def key?(key)
65
+ @mutex.synchronize do
66
+ @regions.key?(key)
67
+ end
68
+ end
69
+
60
70
  # @api private
61
71
  def clear
62
72
  @mutex.synchronize { @regions = {} }
@@ -71,9 +81,5 @@ module Aws
71
81
  alias to_h to_hash
72
82
 
73
83
  end
74
-
75
- # @api private
76
- BUCKET_REGIONS = BucketRegionCache.new
77
-
78
84
  end
79
85
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
@@ -52,7 +54,9 @@ module Aws::S3
52
54
  #
53
55
  # @return [self]
54
56
  def load
55
- resp = @client.get_bucket_request_payment(bucket: @bucket_name)
57
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
+ @client.get_bucket_request_payment(bucket: @bucket_name)
59
+ end
56
60
  @data = resp.data
57
61
  self
58
62
  end
@@ -78,7 +82,8 @@ module Aws::S3
78
82
  # Waiter polls an API operation until a resource enters a desired
79
83
  # state.
80
84
  #
81
- # @note The waiting operation is performed on a copy. The original resource remains unchanged
85
+ # @note The waiting operation is performed on a copy. The original resource
86
+ # remains unchanged.
82
87
  #
83
88
  # ## Basic Usage
84
89
  #
@@ -91,13 +96,15 @@ module Aws::S3
91
96
  #
92
97
  # ## Example
93
98
  #
94
- # instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
99
+ # instance.wait_until(max_attempts:10, delay:5) do |instance|
100
+ # instance.state.name == 'running'
101
+ # end
95
102
  #
96
103
  # ## Configuration
97
104
  #
98
105
  # You can configure the maximum number of polling attempts, and the
99
- # delay (in seconds) between each polling attempt. The waiting condition is set
100
- # by passing a block to {#wait_until}:
106
+ # delay (in seconds) between each polling attempt. The waiting condition is
107
+ # set by passing a block to {#wait_until}:
101
108
  #
102
109
  # # poll for ~25 seconds
103
110
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -128,17 +135,16 @@ module Aws::S3
128
135
  # # resource did not enter the desired state in time
129
136
  # end
130
137
  #
138
+ # @yieldparam [Resource] resource to be used in the waiting condition.
131
139
  #
132
- # @yield param [Resource] resource to be used in the waiting condition
133
- #
134
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
135
- # because the waiter has entered a state that it will not transition
136
- # out of, preventing success.
140
+ # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
141
+ # terminates because the waiter has entered a state that it will not
142
+ # transition out of, preventing success.
137
143
  #
138
144
  # yet successful.
139
145
  #
140
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
141
- # while polling for a resource that is not expected.
146
+ # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
147
+ # encountered while polling for a resource that is not expected.
142
148
  #
143
149
  # @raise [NotImplementedError] Raised when the resource does not
144
150
  #
@@ -165,7 +171,9 @@ module Aws::S3
165
171
  :retry
166
172
  end
167
173
  end
168
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
169
177
  end
170
178
 
171
179
  # @!group Actions
@@ -174,26 +182,52 @@ module Aws::S3
174
182
  #
175
183
  # bucket_request_payment.put({
176
184
  # content_md5: "ContentMD5",
185
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
177
186
  # request_payment_configuration: { # required
178
187
  # payer: "Requester", # required, accepts Requester, BucketOwner
179
188
  # },
189
+ # expected_bucket_owner: "AccountId",
180
190
  # })
181
191
  # @param [Hash] options ({})
182
192
  # @option options [String] :content_md5
183
- # &gt;The base64-encoded 128-bit MD5 digest of the data. You must use
184
- # this header as a message integrity check to verify that the request
185
- # body was not corrupted in transit. For more information, see [RFC
186
- # 1864][1].
193
+ # The base64-encoded 128-bit MD5 digest of the data. You must use this
194
+ # header as a message integrity check to verify that the request body
195
+ # was not corrupted in transit. For more information, see [RFC 1864][1].
196
+ #
197
+ # For requests made using the Amazon Web Services Command Line Interface
198
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
199
+ # automatically.
187
200
  #
188
201
  #
189
202
  #
190
203
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
204
+ # @option options [String] :checksum_algorithm
205
+ # Indicates the algorithm used to create the checksum for the object
206
+ # when you use the SDK. This header will not provide any additional
207
+ # functionality if you don't use the SDK. When you send this header,
208
+ # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
209
+ # header sent. Otherwise, Amazon S3 fails the request with the HTTP
210
+ # status code `400 Bad Request`. For more information, see [Checking
211
+ # object integrity][1] in the *Amazon S3 User Guide*.
212
+ #
213
+ # If you provide an individual checksum, Amazon S3 ignores any provided
214
+ # `ChecksumAlgorithm` parameter.
215
+ #
216
+ #
217
+ #
218
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
191
219
  # @option options [required, Types::RequestPaymentConfiguration] :request_payment_configuration
192
220
  # Container for Payer.
221
+ # @option options [String] :expected_bucket_owner
222
+ # The account ID of the expected bucket owner. If the account ID that
223
+ # you provide does not match the actual owner of the bucket, the request
224
+ # fails with the HTTP status code `403 Forbidden` (access denied).
193
225
  # @return [EmptyStructure]
194
226
  def put(options = {})
195
227
  options = options.merge(bucket: @bucket_name)
196
- resp = @client.put_bucket_request_payment(options)
228
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
229
+ @client.put_bucket_request_payment(options)
230
+ end
197
231
  resp.data
198
232
  end
199
233
 
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
@@ -52,7 +54,9 @@ module Aws::S3
52
54
  #
53
55
  # @return [self]
54
56
  def load
55
- resp = @client.get_bucket_tagging(bucket: @bucket_name)
57
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
+ @client.get_bucket_tagging(bucket: @bucket_name)
59
+ end
56
60
  @data = resp.data
57
61
  self
58
62
  end
@@ -78,7 +82,8 @@ module Aws::S3
78
82
  # Waiter polls an API operation until a resource enters a desired
79
83
  # state.
80
84
  #
81
- # @note The waiting operation is performed on a copy. The original resource remains unchanged
85
+ # @note The waiting operation is performed on a copy. The original resource
86
+ # remains unchanged.
82
87
  #
83
88
  # ## Basic Usage
84
89
  #
@@ -91,13 +96,15 @@ module Aws::S3
91
96
  #
92
97
  # ## Example
93
98
  #
94
- # instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
99
+ # instance.wait_until(max_attempts:10, delay:5) do |instance|
100
+ # instance.state.name == 'running'
101
+ # end
95
102
  #
96
103
  # ## Configuration
97
104
  #
98
105
  # You can configure the maximum number of polling attempts, and the
99
- # delay (in seconds) between each polling attempt. The waiting condition is set
100
- # by passing a block to {#wait_until}:
106
+ # delay (in seconds) between each polling attempt. The waiting condition is
107
+ # set by passing a block to {#wait_until}:
101
108
  #
102
109
  # # poll for ~25 seconds
103
110
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -128,17 +135,16 @@ module Aws::S3
128
135
  # # resource did not enter the desired state in time
129
136
  # end
130
137
  #
138
+ # @yieldparam [Resource] resource to be used in the waiting condition.
131
139
  #
132
- # @yield param [Resource] resource to be used in the waiting condition
133
- #
134
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
135
- # because the waiter has entered a state that it will not transition
136
- # out of, preventing success.
140
+ # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
141
+ # terminates because the waiter has entered a state that it will not
142
+ # transition out of, preventing success.
137
143
  #
138
144
  # yet successful.
139
145
  #
140
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
141
- # while polling for a resource that is not expected.
146
+ # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
147
+ # encountered while polling for a resource that is not expected.
142
148
  #
143
149
  # @raise [NotImplementedError] Raised when the resource does not
144
150
  #
@@ -165,19 +171,29 @@ module Aws::S3
165
171
  :retry
166
172
  end
167
173
  end
168
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
169
177
  end
170
178
 
171
179
  # @!group Actions
172
180
 
173
181
  # @example Request syntax with placeholder values
174
182
  #
175
- # bucket_tagging.delete()
183
+ # bucket_tagging.delete({
184
+ # expected_bucket_owner: "AccountId",
185
+ # })
176
186
  # @param [Hash] options ({})
187
+ # @option options [String] :expected_bucket_owner
188
+ # The account ID of the expected bucket owner. If the account ID that
189
+ # you provide does not match the actual owner of the bucket, the request
190
+ # fails with the HTTP status code `403 Forbidden` (access denied).
177
191
  # @return [EmptyStructure]
178
192
  def delete(options = {})
179
193
  options = options.merge(bucket: @bucket_name)
180
- resp = @client.delete_bucket_tagging(options)
194
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
195
+ @client.delete_bucket_tagging(options)
196
+ end
181
197
  resp.data
182
198
  end
183
199
 
@@ -185,6 +201,7 @@ module Aws::S3
185
201
  #
186
202
  # bucket_tagging.put({
187
203
  # content_md5: "ContentMD5",
204
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
188
205
  # tagging: { # required
189
206
  # tag_set: [ # required
190
207
  # {
@@ -193,6 +210,7 @@ module Aws::S3
193
210
  # },
194
211
  # ],
195
212
  # },
213
+ # expected_bucket_owner: "AccountId",
196
214
  # })
197
215
  # @param [Hash] options ({})
198
216
  # @option options [String] :content_md5
@@ -200,15 +218,40 @@ module Aws::S3
200
218
  # header as a message integrity check to verify that the request body
201
219
  # was not corrupted in transit. For more information, see [RFC 1864][1].
202
220
  #
221
+ # For requests made using the Amazon Web Services Command Line Interface
222
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
223
+ # automatically.
224
+ #
203
225
  #
204
226
  #
205
227
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
228
+ # @option options [String] :checksum_algorithm
229
+ # Indicates the algorithm used to create the checksum for the object
230
+ # when you use the SDK. This header will not provide any additional
231
+ # functionality if you don't use the SDK. When you send this header,
232
+ # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
233
+ # header sent. Otherwise, Amazon S3 fails the request with the HTTP
234
+ # status code `400 Bad Request`. For more information, see [Checking
235
+ # object integrity][1] in the *Amazon S3 User Guide*.
236
+ #
237
+ # If you provide an individual checksum, Amazon S3 ignores any provided
238
+ # `ChecksumAlgorithm` parameter.
239
+ #
240
+ #
241
+ #
242
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
206
243
  # @option options [required, Types::Tagging] :tagging
207
244
  # Container for the `TagSet` and `Tag` elements.
245
+ # @option options [String] :expected_bucket_owner
246
+ # The account ID of the expected bucket owner. If the account ID that
247
+ # you provide does not match the actual owner of the bucket, the request
248
+ # fails with the HTTP status code `403 Forbidden` (access denied).
208
249
  # @return [EmptyStructure]
209
250
  def put(options = {})
210
251
  options = options.merge(bucket: @bucket_name)
211
- resp = @client.put_bucket_tagging(options)
252
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
253
+ @client.put_bucket_tagging(options)
254
+ end
212
255
  resp.data
213
256
  end
214
257