aws-sdk-s3 1.10.0 → 1.208.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 (153) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1517 -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 +1062 -99
  8. data/lib/aws-sdk-s3/bucket_acl.rb +67 -17
  9. data/lib/aws-sdk-s3/bucket_cors.rb +80 -17
  10. data/lib/aws-sdk-s3/bucket_lifecycle.rb +71 -19
  11. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +126 -20
  12. data/lib/aws-sdk-s3/bucket_logging.rb +68 -18
  13. data/lib/aws-sdk-s3/bucket_notification.rb +56 -20
  14. data/lib/aws-sdk-s3/bucket_policy.rb +108 -17
  15. data/lib/aws-sdk-s3/bucket_region_cache.rb +11 -5
  16. data/lib/aws-sdk-s3/bucket_request_payment.rb +60 -15
  17. data/lib/aws-sdk-s3/bucket_tagging.rb +71 -17
  18. data/lib/aws-sdk-s3/bucket_versioning.rb +166 -17
  19. data/lib/aws-sdk-s3/bucket_website.rb +78 -17
  20. data/lib/aws-sdk-s3/client.rb +20068 -3879
  21. data/lib/aws-sdk-s3/client_api.rb +1957 -209
  22. data/lib/aws-sdk-s3/customizations/bucket.rb +57 -38
  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 +338 -68
  26. data/lib/aws-sdk-s3/customizations/object_summary.rb +17 -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 +30 -27
  31. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  32. data/lib/aws-sdk-s3/encryption/client.rb +29 -8
  33. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +71 -29
  34. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +45 -5
  35. data/lib/aws-sdk-s3/encryption/default_key_provider.rb +2 -0
  36. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +15 -2
  37. data/lib/aws-sdk-s3/encryption/errors.rb +2 -0
  38. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +11 -3
  39. data/lib/aws-sdk-s3/encryption/io_decrypter.rb +11 -3
  40. data/lib/aws-sdk-s3/encryption/io_encrypter.rb +2 -0
  41. data/lib/aws-sdk-s3/encryption/key_provider.rb +2 -0
  42. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +48 -11
  43. data/lib/aws-sdk-s3/encryption/materials.rb +8 -6
  44. data/lib/aws-sdk-s3/encryption/utils.rb +25 -0
  45. data/lib/aws-sdk-s3/encryption.rb +4 -0
  46. data/lib/aws-sdk-s3/encryptionV2/client.rb +645 -0
  47. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +68 -0
  48. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  49. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +187 -0
  50. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +40 -0
  51. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +67 -0
  52. data/lib/aws-sdk-s3/encryptionV2/errors.rb +37 -0
  53. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +58 -0
  54. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +37 -0
  55. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +75 -0
  56. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +31 -0
  57. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +181 -0
  58. data/lib/aws-sdk-s3/encryptionV2/materials.rb +60 -0
  59. data/lib/aws-sdk-s3/encryptionV2/utils.rb +108 -0
  60. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  61. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  62. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  63. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  64. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  65. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  66. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  67. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  68. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  69. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  70. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  71. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  72. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  73. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  74. data/lib/aws-sdk-s3/encryption_v2.rb +24 -0
  75. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  76. data/lib/aws-sdk-s3/endpoint_parameters.rb +181 -0
  77. data/lib/aws-sdk-s3/endpoint_provider.rb +886 -0
  78. data/lib/aws-sdk-s3/endpoints.rb +1544 -0
  79. data/lib/aws-sdk-s3/errors.rb +181 -1
  80. data/lib/aws-sdk-s3/event_streams.rb +69 -0
  81. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  82. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  83. data/lib/aws-sdk-s3/file_downloader.rb +261 -82
  84. data/lib/aws-sdk-s3/file_part.rb +16 -13
  85. data/lib/aws-sdk-s3/file_uploader.rb +37 -22
  86. data/lib/aws-sdk-s3/legacy_signer.rb +19 -26
  87. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  88. data/lib/aws-sdk-s3/multipart_file_uploader.rb +142 -80
  89. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +191 -0
  90. data/lib/aws-sdk-s3/multipart_upload.rb +342 -31
  91. data/lib/aws-sdk-s3/multipart_upload_error.rb +5 -4
  92. data/lib/aws-sdk-s3/multipart_upload_part.rb +387 -47
  93. data/lib/aws-sdk-s3/object.rb +2733 -204
  94. data/lib/aws-sdk-s3/object_acl.rb +112 -25
  95. data/lib/aws-sdk-s3/object_copier.rb +9 -5
  96. data/lib/aws-sdk-s3/object_multipart_copier.rb +50 -23
  97. data/lib/aws-sdk-s3/object_summary.rb +2265 -181
  98. data/lib/aws-sdk-s3/object_version.rb +542 -74
  99. data/lib/aws-sdk-s3/plugins/accelerate.rb +17 -64
  100. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  101. data/lib/aws-sdk-s3/plugins/arn.rb +70 -0
  102. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +7 -43
  103. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +20 -3
  104. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  105. data/lib/aws-sdk-s3/plugins/dualstack.rb +7 -50
  106. data/lib/aws-sdk-s3/plugins/endpoints.rb +86 -0
  107. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +5 -4
  108. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +88 -0
  109. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +3 -1
  110. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +62 -17
  111. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +44 -0
  112. data/lib/aws-sdk-s3/plugins/location_constraint.rb +5 -1
  113. data/lib/aws-sdk-s3/plugins/md5s.rb +14 -67
  114. data/lib/aws-sdk-s3/plugins/redirects.rb +5 -1
  115. data/lib/aws-sdk-s3/plugins/s3_host_id.rb +2 -0
  116. data/lib/aws-sdk-s3/plugins/s3_signer.rb +67 -93
  117. data/lib/aws-sdk-s3/plugins/sse_cpk.rb +3 -1
  118. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +137 -0
  119. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +4 -1
  120. data/lib/aws-sdk-s3/presigned_post.rb +160 -99
  121. data/lib/aws-sdk-s3/presigner.rb +178 -81
  122. data/lib/aws-sdk-s3/resource.rb +164 -15
  123. data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
  124. data/lib/aws-sdk-s3/types.rb +15981 -4168
  125. data/lib/aws-sdk-s3/waiters.rb +67 -1
  126. data/lib/aws-sdk-s3.rb +46 -31
  127. data/sig/bucket.rbs +231 -0
  128. data/sig/bucket_acl.rbs +78 -0
  129. data/sig/bucket_cors.rbs +69 -0
  130. data/sig/bucket_lifecycle.rbs +88 -0
  131. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  132. data/sig/bucket_logging.rbs +76 -0
  133. data/sig/bucket_notification.rbs +114 -0
  134. data/sig/bucket_policy.rbs +59 -0
  135. data/sig/bucket_request_payment.rbs +54 -0
  136. data/sig/bucket_tagging.rbs +65 -0
  137. data/sig/bucket_versioning.rbs +77 -0
  138. data/sig/bucket_website.rbs +93 -0
  139. data/sig/client.rbs +2612 -0
  140. data/sig/customizations/bucket.rbs +19 -0
  141. data/sig/customizations/object.rbs +38 -0
  142. data/sig/customizations/object_summary.rbs +35 -0
  143. data/sig/errors.rbs +44 -0
  144. data/sig/multipart_upload.rbs +120 -0
  145. data/sig/multipart_upload_part.rbs +109 -0
  146. data/sig/object.rbs +464 -0
  147. data/sig/object_acl.rbs +86 -0
  148. data/sig/object_summary.rbs +347 -0
  149. data/sig/object_version.rbs +143 -0
  150. data/sig/resource.rbs +141 -0
  151. data/sig/types.rbs +2899 -0
  152. data/sig/waiters.rbs +95 -0
  153. metadata +97 -14
@@ -1,11 +1,14 @@
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
 
8
10
  module Aws::S3
11
+
9
12
  class BucketPolicy
10
13
 
11
14
  extend Aws::Deprecations
@@ -21,6 +24,7 @@ module Aws::S3
21
24
  @bucket_name = extract_bucket_name(args, options)
22
25
  @data = options.delete(:data)
23
26
  @client = options.delete(:client) || Client.new(options)
27
+ @waiter_block_warned = false
24
28
  end
25
29
 
26
30
  # @!group Read-Only Attributes
@@ -50,7 +54,9 @@ module Aws::S3
50
54
  #
51
55
  # @return [self]
52
56
  def load
53
- 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
54
60
  @data = resp.data
55
61
  self
56
62
  end
@@ -76,7 +82,8 @@ module Aws::S3
76
82
  # Waiter polls an API operation until a resource enters a desired
77
83
  # state.
78
84
  #
79
- # @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.
80
87
  #
81
88
  # ## Basic Usage
82
89
  #
@@ -89,13 +96,15 @@ module Aws::S3
89
96
  #
90
97
  # ## Example
91
98
  #
92
- # 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
93
102
  #
94
103
  # ## Configuration
95
104
  #
96
105
  # You can configure the maximum number of polling attempts, and the
97
- # delay (in seconds) between each polling attempt. The waiting condition is set
98
- # 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}:
99
108
  #
100
109
  # # poll for ~25 seconds
101
110
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -126,17 +135,16 @@ module Aws::S3
126
135
  # # resource did not enter the desired state in time
127
136
  # end
128
137
  #
138
+ # @yieldparam [Resource] resource to be used in the waiting condition.
129
139
  #
130
- # @yield param [Resource] resource to be used in the waiting condition
131
- #
132
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
133
- # because the waiter has entered a state that it will not transition
134
- # 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.
135
143
  #
136
144
  # yet successful.
137
145
  #
138
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
139
- # 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.
140
148
  #
141
149
  # @raise [NotImplementedError] Raised when the resource does not
142
150
  #
@@ -163,19 +171,35 @@ module Aws::S3
163
171
  :retry
164
172
  end
165
173
  end
166
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
167
177
  end
168
178
 
169
179
  # @!group Actions
170
180
 
171
181
  # @example Request syntax with placeholder values
172
182
  #
173
- # bucket_policy.delete()
183
+ # bucket_policy.delete({
184
+ # expected_bucket_owner: "AccountId",
185
+ # })
174
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>
175
197
  # @return [EmptyStructure]
176
198
  def delete(options = {})
177
199
  options = options.merge(bucket: @bucket_name)
178
- resp = @client.delete_bucket_policy(options)
200
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
201
+ @client.delete_bucket_policy(options)
202
+ end
179
203
  resp.data
180
204
  end
181
205
 
@@ -183,20 +207,87 @@ module Aws::S3
183
207
  #
184
208
  # bucket_policy.put({
185
209
  # content_md5: "ContentMD5",
210
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
186
211
  # confirm_remove_self_bucket_access: false,
187
212
  # policy: "Policy", # required
213
+ # expected_bucket_owner: "AccountId",
188
214
  # })
189
215
  # @param [Hash] options ({})
190
216
  # @option options [String] :content_md5
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 request
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
+ # * `CRC64NVME`
242
+ #
243
+ # * `SHA1`
244
+ #
245
+ # * `SHA256`
246
+ #
247
+ # For more information, see [Checking object integrity][1] in the
248
+ # *Amazon S3 User Guide*.
249
+ #
250
+ # If the individual checksum value you provide through
251
+ # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
252
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
253
+ # request with a `BadDigest` error.
254
+ #
255
+ # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
256
+ # is the default checksum algorithm that's used for performance.
257
+ #
258
+ # </note>
259
+ #
260
+ #
261
+ #
262
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
191
263
  # @option options [Boolean] :confirm_remove_self_bucket_access
192
264
  # Set this parameter to true to confirm that you want to remove your
193
265
  # permissions to change this bucket policy in the future.
266
+ #
267
+ # <note markdown="1"> This functionality is not supported for directory buckets.
268
+ #
269
+ # </note>
194
270
  # @option options [required, String] :policy
195
271
  # The bucket policy as a JSON document.
272
+ #
273
+ # For directory buckets, the only IAM action supported in the bucket
274
+ # policy is `s3express:CreateSession`.
275
+ # @option options [String] :expected_bucket_owner
276
+ # The account ID of the expected bucket owner. If the account ID that
277
+ # you provide does not match the actual owner of the bucket, the request
278
+ # fails with the HTTP status code `403 Forbidden` (access denied).
279
+ #
280
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
281
+ # operation. If you specify this header, the request fails with the HTTP
282
+ # status code `501 Not Implemented`.
283
+ #
284
+ # </note>
196
285
  # @return [EmptyStructure]
197
286
  def put(options = {})
198
287
  options = options.merge(bucket: @bucket_name)
199
- resp = @client.put_bucket_policy(options)
288
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
289
+ @client.put_bucket_policy(options)
290
+ end
200
291
  resp.data
201
292
  end
202
293
 
@@ -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,11 +1,14 @@
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
 
8
10
  module Aws::S3
11
+
9
12
  class BucketRequestPayment
10
13
 
11
14
  extend Aws::Deprecations
@@ -21,6 +24,7 @@ module Aws::S3
21
24
  @bucket_name = extract_bucket_name(args, options)
22
25
  @data = options.delete(:data)
23
26
  @client = options.delete(:client) || Client.new(options)
27
+ @waiter_block_warned = false
24
28
  end
25
29
 
26
30
  # @!group Read-Only Attributes
@@ -50,7 +54,9 @@ module Aws::S3
50
54
  #
51
55
  # @return [self]
52
56
  def load
53
- 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
54
60
  @data = resp.data
55
61
  self
56
62
  end
@@ -76,7 +82,8 @@ module Aws::S3
76
82
  # Waiter polls an API operation until a resource enters a desired
77
83
  # state.
78
84
  #
79
- # @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.
80
87
  #
81
88
  # ## Basic Usage
82
89
  #
@@ -89,13 +96,15 @@ module Aws::S3
89
96
  #
90
97
  # ## Example
91
98
  #
92
- # 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
93
102
  #
94
103
  # ## Configuration
95
104
  #
96
105
  # You can configure the maximum number of polling attempts, and the
97
- # delay (in seconds) between each polling attempt. The waiting condition is set
98
- # 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}:
99
108
  #
100
109
  # # poll for ~25 seconds
101
110
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -126,17 +135,16 @@ module Aws::S3
126
135
  # # resource did not enter the desired state in time
127
136
  # end
128
137
  #
138
+ # @yieldparam [Resource] resource to be used in the waiting condition.
129
139
  #
130
- # @yield param [Resource] resource to be used in the waiting condition
131
- #
132
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
133
- # because the waiter has entered a state that it will not transition
134
- # 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.
135
143
  #
136
144
  # yet successful.
137
145
  #
138
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
139
- # 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.
140
148
  #
141
149
  # @raise [NotImplementedError] Raised when the resource does not
142
150
  #
@@ -163,7 +171,9 @@ module Aws::S3
163
171
  :retry
164
172
  end
165
173
  end
166
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
167
177
  end
168
178
 
169
179
  # @!group Actions
@@ -172,17 +182,52 @@ module Aws::S3
172
182
  #
173
183
  # bucket_request_payment.put({
174
184
  # content_md5: "ContentMD5",
185
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
175
186
  # request_payment_configuration: { # required
176
187
  # payer: "Requester", # required, accepts Requester, BucketOwner
177
188
  # },
189
+ # expected_bucket_owner: "AccountId",
178
190
  # })
179
191
  # @param [Hash] options ({})
180
192
  # @option options [String] :content_md5
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.
200
+ #
201
+ #
202
+ #
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 request
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
181
219
  # @option options [required, Types::RequestPaymentConfiguration] :request_payment_configuration
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).
182
225
  # @return [EmptyStructure]
183
226
  def put(options = {})
184
227
  options = options.merge(bucket: @bucket_name)
185
- 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
186
231
  resp.data
187
232
  end
188
233
 
@@ -1,11 +1,14 @@
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
 
8
10
  module Aws::S3
11
+
9
12
  class BucketTagging
10
13
 
11
14
  extend Aws::Deprecations
@@ -21,6 +24,7 @@ module Aws::S3
21
24
  @bucket_name = extract_bucket_name(args, options)
22
25
  @data = options.delete(:data)
23
26
  @client = options.delete(:client) || Client.new(options)
27
+ @waiter_block_warned = false
24
28
  end
25
29
 
26
30
  # @!group Read-Only Attributes
@@ -30,6 +34,7 @@ module Aws::S3
30
34
  @bucket_name
31
35
  end
32
36
 
37
+ # Contains the tag set.
33
38
  # @return [Array<Types::Tag>]
34
39
  def tag_set
35
40
  data[:tag_set]
@@ -49,7 +54,9 @@ module Aws::S3
49
54
  #
50
55
  # @return [self]
51
56
  def load
52
- 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
53
60
  @data = resp.data
54
61
  self
55
62
  end
@@ -75,7 +82,8 @@ module Aws::S3
75
82
  # Waiter polls an API operation until a resource enters a desired
76
83
  # state.
77
84
  #
78
- # @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.
79
87
  #
80
88
  # ## Basic Usage
81
89
  #
@@ -88,13 +96,15 @@ module Aws::S3
88
96
  #
89
97
  # ## Example
90
98
  #
91
- # 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
92
102
  #
93
103
  # ## Configuration
94
104
  #
95
105
  # You can configure the maximum number of polling attempts, and the
96
- # delay (in seconds) between each polling attempt. The waiting condition is set
97
- # 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}:
98
108
  #
99
109
  # # poll for ~25 seconds
100
110
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -125,17 +135,16 @@ module Aws::S3
125
135
  # # resource did not enter the desired state in time
126
136
  # end
127
137
  #
138
+ # @yieldparam [Resource] resource to be used in the waiting condition.
128
139
  #
129
- # @yield param [Resource] resource to be used in the waiting condition
130
- #
131
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
132
- # because the waiter has entered a state that it will not transition
133
- # 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.
134
143
  #
135
144
  # yet successful.
136
145
  #
137
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
138
- # 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.
139
148
  #
140
149
  # @raise [NotImplementedError] Raised when the resource does not
141
150
  #
@@ -162,19 +171,29 @@ module Aws::S3
162
171
  :retry
163
172
  end
164
173
  end
165
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
166
177
  end
167
178
 
168
179
  # @!group Actions
169
180
 
170
181
  # @example Request syntax with placeholder values
171
182
  #
172
- # bucket_tagging.delete()
183
+ # bucket_tagging.delete({
184
+ # expected_bucket_owner: "AccountId",
185
+ # })
173
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).
174
191
  # @return [EmptyStructure]
175
192
  def delete(options = {})
176
193
  options = options.merge(bucket: @bucket_name)
177
- resp = @client.delete_bucket_tagging(options)
194
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
195
+ @client.delete_bucket_tagging(options)
196
+ end
178
197
  resp.data
179
198
  end
180
199
 
@@ -182,6 +201,7 @@ module Aws::S3
182
201
  #
183
202
  # bucket_tagging.put({
184
203
  # content_md5: "ContentMD5",
204
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
185
205
  # tagging: { # required
186
206
  # tag_set: [ # required
187
207
  # {
@@ -190,14 +210,48 @@ module Aws::S3
190
210
  # },
191
211
  # ],
192
212
  # },
213
+ # expected_bucket_owner: "AccountId",
193
214
  # })
194
215
  # @param [Hash] options ({})
195
216
  # @option options [String] :content_md5
217
+ # The Base64 encoded 128-bit `MD5` digest of the data. You must use this
218
+ # header as a message integrity check to verify that the request body
219
+ # was not corrupted in transit. For more information, see [RFC 1864][1].
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
+ #
225
+ #
226
+ #
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 request
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
196
243
  # @option options [required, Types::Tagging] :tagging
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).
197
249
  # @return [EmptyStructure]
198
250
  def put(options = {})
199
251
  options = options.merge(bucket: @bucket_name)
200
- resp = @client.put_bucket_tagging(options)
252
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
253
+ @client.put_bucket_tagging(options)
254
+ end
201
255
  resp.data
202
256
  end
203
257