aws-sdk-sqs 1.9.0 → 1.70.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.
@@ -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::SQS
11
+
9
12
  class Queue
10
13
 
11
14
  extend Aws::Deprecations
@@ -21,6 +24,7 @@ module Aws::SQS
21
24
  @url = extract_url(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,10 +54,12 @@ module Aws::SQS
50
54
  #
51
55
  # @return [self]
52
56
  def load
53
- resp = @client.get_queue_attributes(
57
+ resp = Aws::Plugins::UserAgent.feature('resource') do
58
+ @client.get_queue_attributes(
54
59
  queue_url: @url,
55
60
  attribute_names: ["All"]
56
61
  )
62
+ end
57
63
  @data = resp.data
58
64
  self
59
65
  end
@@ -90,23 +96,22 @@ module Aws::SQS
90
96
  # characters include alphanumeric characters, hyphens (`-`), and
91
97
  # underscores (`_`).
92
98
  # @option options [required, Array<String>] :aws_account_ids
93
- # The AWS account number of the [principal][1] who is given permission.
94
- # The principal must have an AWS account, but does not need to be signed
95
- # up for Amazon SQS. For information about locating the AWS account
96
- # identification, see [Your AWS Identifiers][2] in the *Amazon Simple
97
- # Queue Service Developer Guide*.
99
+ # The Amazon Web Services account numbers of the [principals][1] who are
100
+ # to receive permission. For information about locating the Amazon Web
101
+ # Services account identification, see [Your Amazon Web Services
102
+ # Identifiers][2] in the *Amazon SQS Developer Guide*.
98
103
  #
99
104
  #
100
105
  #
101
- # [1]: http://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P
102
- # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html#sqs-api-request-authentication
106
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P
107
+ # [2]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html#sqs-api-request-authentication
103
108
  # @option options [required, Array<String>] :actions
104
109
  # The action the client wants to allow for the specified principal.
105
110
  # Valid values: the name of any action or `*`.
106
111
  #
107
112
  # For more information about these actions, see [Overview of Managing
108
113
  # Access Permissions to Your Amazon Simple Queue Service Resource][1] in
109
- # the *Amazon Simple Queue Service Developer Guide*.
114
+ # the *Amazon SQS Developer Guide*.
110
115
  #
111
116
  # Specifying `SendMessage`, `DeleteMessage`, or
112
117
  # `ChangeMessageVisibility` for `ActionName.n` also grants permissions
@@ -116,11 +121,13 @@ module Aws::SQS
116
121
  #
117
122
  #
118
123
  #
119
- # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-overview-of-managing-access.html
124
+ # [1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-overview-of-managing-access.html
120
125
  # @return [EmptyStructure]
121
126
  def add_permission(options = {})
122
127
  options = options.merge(queue_url: @url)
123
- resp = @client.add_permission(options)
128
+ resp = Aws::Plugins::UserAgent.feature('resource') do
129
+ @client.add_permission(options)
130
+ end
124
131
  resp.data
125
132
  end
126
133
 
@@ -137,12 +144,14 @@ module Aws::SQS
137
144
  # })
138
145
  # @param [Hash] options ({})
139
146
  # @option options [required, Array<Types::ChangeMessageVisibilityBatchRequestEntry>] :entries
140
- # A list of receipt handles of the messages for which the visibility
147
+ # Lists the receipt handles of the messages for which the visibility
141
148
  # timeout must be changed.
142
149
  # @return [Types::ChangeMessageVisibilityBatchResult]
143
150
  def change_message_visibility_batch(options = {})
144
151
  options = options.merge(queue_url: @url)
145
- resp = @client.change_message_visibility_batch(options)
152
+ resp = Aws::Plugins::UserAgent.feature('resource') do
153
+ @client.change_message_visibility_batch(options)
154
+ end
146
155
  resp.data
147
156
  end
148
157
 
@@ -153,7 +162,9 @@ module Aws::SQS
153
162
  # @return [EmptyStructure]
154
163
  def delete(options = {})
155
164
  options = options.merge(queue_url: @url)
156
- resp = @client.delete_queue(options)
165
+ resp = Aws::Plugins::UserAgent.feature('resource') do
166
+ @client.delete_queue(options)
167
+ end
157
168
  resp.data
158
169
  end
159
170
 
@@ -169,11 +180,13 @@ module Aws::SQS
169
180
  # })
170
181
  # @param [Hash] options ({})
171
182
  # @option options [required, Array<Types::DeleteMessageBatchRequestEntry>] :entries
172
- # A list of receipt handles for the messages to be deleted.
183
+ # Lists the receipt handles for the messages to be deleted.
173
184
  # @return [Types::DeleteMessageBatchResult]
174
185
  def delete_messages(options = {})
175
186
  options = options.merge(queue_url: @url)
176
- resp = @client.delete_message_batch(options)
187
+ resp = Aws::Plugins::UserAgent.feature('resource') do
188
+ @client.delete_message_batch(options)
189
+ end
177
190
  resp.data
178
191
  end
179
192
 
@@ -184,14 +197,16 @@ module Aws::SQS
184
197
  # @return [EmptyStructure]
185
198
  def purge(options = {})
186
199
  options = options.merge(queue_url: @url)
187
- resp = @client.purge_queue(options)
200
+ resp = Aws::Plugins::UserAgent.feature('resource') do
201
+ @client.purge_queue(options)
202
+ end
188
203
  resp.data
189
204
  end
190
205
 
191
206
  # @example Request syntax with placeholder values
192
207
  #
193
208
  # message = queue.receive_messages({
194
- # attribute_names: ["All"], # accepts All, Policy, VisibilityTimeout, MaximumMessageSize, MessageRetentionPeriod, ApproximateNumberOfMessages, ApproximateNumberOfMessagesNotVisible, CreatedTimestamp, LastModifiedTimestamp, QueueArn, ApproximateNumberOfMessagesDelayed, DelaySeconds, ReceiveMessageWaitTimeSeconds, RedrivePolicy, FifoQueue, ContentBasedDeduplication, KmsMasterKeyId, KmsDataKeyReusePeriodSeconds
209
+ # attribute_names: ["All"], # accepts All, Policy, VisibilityTimeout, MaximumMessageSize, MessageRetentionPeriod, ApproximateNumberOfMessages, ApproximateNumberOfMessagesNotVisible, CreatedTimestamp, LastModifiedTimestamp, QueueArn, ApproximateNumberOfMessagesDelayed, DelaySeconds, ReceiveMessageWaitTimeSeconds, RedrivePolicy, FifoQueue, ContentBasedDeduplication, KmsMasterKeyId, KmsDataKeyReusePeriodSeconds, DeduplicationScope, FifoThroughputLimit, RedriveAllowPolicy, SqsManagedSseEnabled
195
210
  # message_attribute_names: ["MessageAttributeName"],
196
211
  # max_number_of_messages: 1,
197
212
  # visibility_timeout: 1,
@@ -200,40 +215,48 @@ module Aws::SQS
200
215
  # })
201
216
  # @param [Hash] options ({})
202
217
  # @option options [Array<String>] :attribute_names
203
- # A list of s that need to be returned along with each message. These
204
- # attributes include:
218
+ # A list of attributes that need to be returned along with each message.
219
+ # These attributes include:
205
220
  #
206
- # * `All` - Returns all values.
221
+ # * `All` Returns all values.
207
222
  #
208
- # * `ApproximateFirstReceiveTimestamp` - Returns the time the message
223
+ # * `ApproximateFirstReceiveTimestamp` Returns the time the message
209
224
  # was first received from the queue ([epoch time][1] in milliseconds).
210
225
  #
211
- # * `ApproximateReceiveCount` - Returns the number of times a message
212
- # has been received from the queue but not deleted.
226
+ # * `ApproximateReceiveCount` Returns the number of times a message
227
+ # has been received across all queues but not deleted.
228
+ #
229
+ # * `AWSTraceHeader` – Returns the X-Ray trace header string.
213
230
  #
214
231
  # * `SenderId`
215
232
  #
216
- # * For an IAM user, returns the IAM user ID, for example
233
+ # * For a user, returns the user ID, for example
217
234
  # `ABCDEFGHI1JKLMNOPQ23R`.
218
235
  #
219
236
  # * For an IAM role, returns the IAM role ID, for example
220
237
  # `ABCDE1F2GH3I4JK5LMNOP:i-a123b456`.
221
238
  #
222
- # * `SentTimestamp` - Returns the time the message was sent to the queue
239
+ # * `SentTimestamp` Returns the time the message was sent to the queue
223
240
  # ([epoch time][1] in milliseconds).
224
241
  #
225
- # * `MessageDeduplicationId` - Returns the value provided by the
242
+ # * `SqsManagedSseEnabled` Enables server-side queue encryption using
243
+ # SQS owned encryption keys. Only one server-side encryption option is
244
+ # supported per queue (for example, [SSE-KMS][2] or [SSE-SQS][3]).
245
+ #
246
+ # * `MessageDeduplicationId` – Returns the value provided by the
226
247
  # producer that calls the ` SendMessage ` action.
227
248
  #
228
- # * `MessageGroupId` - Returns the value provided by the producer that
249
+ # * `MessageGroupId` Returns the value provided by the producer that
229
250
  # calls the ` SendMessage ` action. Messages with the same
230
251
  # `MessageGroupId` are returned in sequence.
231
252
  #
232
- # * `SequenceNumber` - Returns the value provided by Amazon SQS.
253
+ # * `SequenceNumber` Returns the value provided by Amazon SQS.
233
254
  #
234
255
  #
235
256
  #
236
257
  # [1]: http://en.wikipedia.org/wiki/Unix_time
258
+ # [2]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sse-existing-queue.html
259
+ # [3]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sqs-sse-queue.html
237
260
  # @option options [Array<String>] :message_attribute_names
238
261
  # The name of the message attribute, where *N* is the index.
239
262
  #
@@ -269,14 +292,25 @@ module Aws::SQS
269
292
  # call returns sooner than `WaitTimeSeconds`. If no messages are
270
293
  # available and the wait time expires, the call returns successfully
271
294
  # with an empty list of messages.
295
+ #
296
+ # To avoid HTTP errors, ensure that the HTTP response timeout for
297
+ # `ReceiveMessage` requests is longer than the `WaitTimeSeconds`
298
+ # parameter. For example, with the Java SDK, you can set HTTP transport
299
+ # settings using the [ NettyNioAsyncHttpClient][1] for asynchronous
300
+ # clients, or the [ ApacheHttpClient][2] for synchronous clients.
301
+ #
302
+ #
303
+ #
304
+ # [1]: https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html
305
+ # [2]: https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html
272
306
  # @option options [String] :receive_request_attempt_id
273
307
  # This parameter applies only to FIFO (first-in-first-out) queues.
274
308
  #
275
309
  # The token used for deduplication of `ReceiveMessage` calls. If a
276
310
  # networking issue occurs after a `ReceiveMessage` action, and instead
277
- # of a response you receive a generic error, you can retry the same
278
- # action with an identical `ReceiveRequestAttemptId` to retrieve the
279
- # same set of messages, even if their visibility timeout has not yet
311
+ # of a response you receive a generic error, it is possible to retry the
312
+ # same action with an identical `ReceiveRequestAttemptId` to retrieve
313
+ # the same set of messages, even if their visibility timeout has not yet
280
314
  # expired.
281
315
  #
282
316
  # * You can use `ReceiveRequestAttemptId` only for 5 minutes after a
@@ -289,7 +323,7 @@ module Aws::SQS
289
323
  # `ReceiveRequestAttemptId`, Amazon SQS generates a
290
324
  # `ReceiveRequestAttemptId`.
291
325
  #
292
- # * You can retry the `ReceiveMessage` action with the same
326
+ # * It is possible to retry the `ReceiveMessage` action with the same
293
327
  # `ReceiveRequestAttemptId` if none of the messages have been modified
294
328
  # (deleted or had their visibility changes).
295
329
  #
@@ -297,7 +331,7 @@ module Aws::SQS
297
331
  # `ReceiveRequestAttemptId` return the same messages and receipt
298
332
  # handles. If a retry occurs within the deduplication interval, it
299
333
  # resets the visibility timeout. For more information, see [Visibility
300
- # Timeout][1] in the *Amazon Simple Queue Service Developer Guide*.
334
+ # Timeout][1] in the *Amazon SQS Developer Guide*.
301
335
  #
302
336
  # If a caller of the `ReceiveMessage` action still processes messages
303
337
  # when the visibility timeout expires and messages become visible,
@@ -320,24 +354,26 @@ module Aws::SQS
320
354
  # visibility timeout expires. As a result, delays might occur but the
321
355
  # messages in the queue remain in a strict order.
322
356
  #
323
- # The length of `ReceiveRequestAttemptId` is 128 characters.
357
+ # The maximum length of `ReceiveRequestAttemptId` is 128 characters.
324
358
  # `ReceiveRequestAttemptId` can contain alphanumeric characters (`a-z`,
325
359
  # `A-Z`, `0-9`) and punctuation (`` !"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~
326
360
  # ``).
327
361
  #
328
362
  # For best practices of using `ReceiveRequestAttemptId`, see [Using the
329
- # ReceiveRequestAttemptId Request Parameter][2] in the *Amazon Simple
330
- # Queue Service Developer Guide*.
363
+ # ReceiveRequestAttemptId Request Parameter][2] in the *Amazon SQS
364
+ # Developer Guide*.
331
365
  #
332
366
  #
333
367
  #
334
- # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html
335
- # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html
368
+ # [1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html
369
+ # [2]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html
336
370
  # @return [Message::Collection]
337
371
  def receive_messages(options = {})
338
372
  batch = []
339
373
  options = options.merge(queue_url: @url)
340
- resp = @client.receive_message(options)
374
+ resp = Aws::Plugins::UserAgent.feature('resource') do
375
+ @client.receive_message(options)
376
+ end
341
377
  resp.data.messages.each do |m|
342
378
  batch << Message.new(
343
379
  queue_url: @url,
@@ -361,7 +397,9 @@ module Aws::SQS
361
397
  # @return [EmptyStructure]
362
398
  def remove_permission(options = {})
363
399
  options = options.merge(queue_url: @url)
364
- resp = @client.remove_permission(options)
400
+ resp = Aws::Plugins::UserAgent.feature('resource') do
401
+ @client.remove_permission(options)
402
+ end
365
403
  resp.data
366
404
  end
367
405
 
@@ -379,12 +417,22 @@ module Aws::SQS
379
417
  # data_type: "String", # required
380
418
  # },
381
419
  # },
420
+ # message_system_attributes: {
421
+ # "AWSTraceHeader" => {
422
+ # string_value: "String",
423
+ # binary_value: "data",
424
+ # string_list_values: ["String"],
425
+ # binary_list_values: ["data"],
426
+ # data_type: "String", # required
427
+ # },
428
+ # },
382
429
  # message_deduplication_id: "String",
383
430
  # message_group_id: "String",
384
431
  # })
385
432
  # @param [Hash] options ({})
386
433
  # @option options [required, String] :message_body
387
- # The message to send. The maximum string size is 256 KB.
434
+ # The message to send. The minimum size is one character. The maximum
435
+ # size is 256 KiB.
388
436
  #
389
437
  # A message can include only XML, JSON, and unformatted text. The
390
438
  # following Unicode characters are allowed:
@@ -411,12 +459,22 @@ module Aws::SQS
411
459
  # </note>
412
460
  # @option options [Hash<String,Types::MessageAttributeValue>] :message_attributes
413
461
  # Each message attribute consists of a `Name`, `Type`, and `Value`. For
414
- # more information, see [Amazon SQS Message Attributes][1] in the
415
- # *Amazon Simple Queue Service Developer Guide*.
462
+ # more information, see [Amazon SQS message attributes][1] in the
463
+ # *Amazon SQS Developer Guide*.
464
+ #
465
+ #
416
466
  #
467
+ # [1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes
468
+ # @option options [Hash<String,Types::MessageSystemAttributeValue>] :message_system_attributes
469
+ # The message system attribute to send. Each message system attribute
470
+ # consists of a `Name`, `Type`, and `Value`.
417
471
  #
472
+ # * Currently, the only supported message system attribute is
473
+ # `AWSTraceHeader`. Its type must be `String` and its value must be a
474
+ # correctly formatted X-Ray trace header string.
418
475
  #
419
- # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html
476
+ # * The size of a message system attribute doesn't count towards the
477
+ # total size of a message.
420
478
  # @option options [String] :message_deduplication_id
421
479
  # This parameter applies only to FIFO (first-in-first-out) queues.
422
480
  #
@@ -424,8 +482,8 @@ module Aws::SQS
424
482
  # particular `MessageDeduplicationId` is sent successfully, any messages
425
483
  # sent with the same `MessageDeduplicationId` are accepted successfully
426
484
  # but aren't delivered during the 5-minute deduplication interval. For
427
- # more information, see [ Exactly-Once Processing][1] in the *Amazon
428
- # Simple Queue Service Developer Guide*.
485
+ # more information, see [ Exactly-once processing][1] in the *Amazon SQS
486
+ # Developer Guide*.
429
487
  #
430
488
  # * Every message must have a unique `MessageDeduplicationId`,
431
489
  #
@@ -465,19 +523,19 @@ module Aws::SQS
465
523
  #
466
524
  # </note>
467
525
  #
468
- # The length of `MessageDeduplicationId` is 128 characters.
526
+ # The maximum length of `MessageDeduplicationId` is 128 characters.
469
527
  # `MessageDeduplicationId` can contain alphanumeric characters (`a-z`,
470
528
  # `A-Z`, `0-9`) and punctuation (`` !"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~
471
529
  # ``).
472
530
  #
473
531
  # For best practices of using `MessageDeduplicationId`, see [Using the
474
- # MessageDeduplicationId Property][2] in the *Amazon Simple Queue
475
- # Service Developer Guide*.
532
+ # MessageDeduplicationId Property][2] in the *Amazon SQS Developer
533
+ # Guide*.
476
534
  #
477
535
  #
478
536
  #
479
- # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing
480
- # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html
537
+ # [1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html
538
+ # [2]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html
481
539
  # @option options [String] :message_group_id
482
540
  # This parameter applies only to FIFO (first-in-first-out) queues.
483
541
  #
@@ -502,19 +560,20 @@ module Aws::SQS
502
560
  # (!"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~) ``.
503
561
  #
504
562
  # For best practices of using `MessageGroupId`, see [Using the
505
- # MessageGroupId Property][1] in the *Amazon Simple Queue Service
506
- # Developer Guide*.
563
+ # MessageGroupId Property][1] in the *Amazon SQS Developer Guide*.
507
564
  #
508
565
  # `MessageGroupId` is required for FIFO queues. You can't use it for
509
566
  # Standard queues.
510
567
  #
511
568
  #
512
569
  #
513
- # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html
570
+ # [1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html
514
571
  # @return [Types::SendMessageResult]
515
572
  def send_message(options = {})
516
573
  options = options.merge(queue_url: @url)
517
- resp = @client.send_message(options)
574
+ resp = Aws::Plugins::UserAgent.feature('resource') do
575
+ @client.send_message(options)
576
+ end
518
577
  resp.data
519
578
  end
520
579
 
@@ -535,6 +594,15 @@ module Aws::SQS
535
594
  # data_type: "String", # required
536
595
  # },
537
596
  # },
597
+ # message_system_attributes: {
598
+ # "AWSTraceHeader" => {
599
+ # string_value: "String",
600
+ # binary_value: "data",
601
+ # string_list_values: ["String"],
602
+ # binary_list_values: ["data"],
603
+ # data_type: "String", # required
604
+ # },
605
+ # },
538
606
  # message_deduplication_id: "String",
539
607
  # message_group_id: "String",
540
608
  # },
@@ -546,7 +614,9 @@ module Aws::SQS
546
614
  # @return [Types::SendMessageBatchResult]
547
615
  def send_messages(options = {})
548
616
  options = options.merge(queue_url: @url)
549
- resp = @client.send_message_batch(options)
617
+ resp = Aws::Plugins::UserAgent.feature('resource') do
618
+ @client.send_message_batch(options)
619
+ end
550
620
  resp.data
551
621
  end
552
622
 
@@ -564,81 +634,119 @@ module Aws::SQS
564
634
  # The following lists the names, descriptions, and values of the special
565
635
  # request parameters that the `SetQueueAttributes` action uses:
566
636
  #
567
- # * `DelaySeconds` - The length of time, in seconds, for which the
637
+ # * `DelaySeconds` The length of time, in seconds, for which the
568
638
  # delivery of all messages in the queue is delayed. Valid values: An
569
639
  # integer from 0 to 900 (15 minutes). Default: 0.
570
640
  #
571
- # * `MaximumMessageSize` - The limit of how many bytes a message can
641
+ # * `MaximumMessageSize` The limit of how many bytes a message can
572
642
  # contain before Amazon SQS rejects it. Valid values: An integer from
573
643
  # 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144
574
644
  # (256 KiB).
575
645
  #
576
- # * `MessageRetentionPeriod` - The length of time, in seconds, for which
646
+ # * `MessageRetentionPeriod` The length of time, in seconds, for which
577
647
  # Amazon SQS retains a message. Valid values: An integer representing
578
648
  # seconds, from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600
579
- # (4 days).
649
+ # (4 days). When you change a queue's attributes, the change can take
650
+ # up to 60 seconds for most of the attributes to propagate throughout
651
+ # the Amazon SQS system. Changes made to the `MessageRetentionPeriod`
652
+ # attribute can take up to 15 minutes and will impact existing
653
+ # messages in the queue potentially causing them to be expired and
654
+ # deleted if the `MessageRetentionPeriod` is reduced below the age of
655
+ # existing messages.
656
+ #
657
+ # * `Policy` – The queue's policy. A valid Amazon Web Services policy.
658
+ # For more information about policy structure, see [Overview of Amazon
659
+ # Web Services IAM Policies][1] in the *Identity and Access Management
660
+ # User Guide*.
661
+ #
662
+ # * `ReceiveMessageWaitTimeSeconds` – The length of time, in seconds,
663
+ # for which a ` ReceiveMessage ` action waits for a message to arrive.
664
+ # Valid values: An integer from 0 to 20 (seconds). Default: 0.
580
665
  #
581
- # * `Policy` - The queue's policy. A valid AWS policy. For more
582
- # information about policy structure, see [Overview of AWS IAM
583
- # Policies][1] in the *Amazon IAM User Guide*.
666
+ # * `VisibilityTimeout` The visibility timeout for the queue, in
667
+ # seconds. Valid values: An integer from 0 to 43,200 (12 hours).
668
+ # Default: 30. For more information about the visibility timeout, see
669
+ # [Visibility Timeout][2] in the *Amazon SQS Developer Guide*.
584
670
  #
585
- # * `ReceiveMessageWaitTimeSeconds` - The length of time, in seconds,
586
- # for which a ` ReceiveMessage ` action waits for a message to arrive.
587
- # Valid values: an integer from 0 to 20 (seconds). Default: 0.
671
+ # The following attributes apply only to [dead-letter queues:][3]
588
672
  #
589
- # * `RedrivePolicy` - The string that includes the parameters for the
590
- # dead-letter queue functionality of the source queue. For more
591
- # information about the redrive policy and dead-letter queues, see
592
- # [Using Amazon SQS Dead-Letter Queues][2] in the *Amazon Simple Queue
593
- # Service Developer Guide*.
673
+ # * `RedrivePolicy` The string that includes the parameters for the
674
+ # dead-letter queue functionality of the source queue as a JSON
675
+ # object. The parameters are as follows:
594
676
  #
595
- # * `deadLetterTargetArn` - The Amazon Resource Name (ARN) of the
677
+ # * `deadLetterTargetArn` The Amazon Resource Name (ARN) of the
596
678
  # dead-letter queue to which Amazon SQS moves messages after the
597
679
  # value of `maxReceiveCount` is exceeded.
598
680
  #
599
- # * `maxReceiveCount` - The number of times a message is delivered to
600
- # the source queue before being moved to the dead-letter queue. When
601
- # the `ReceiveCount` for a message exceeds the `maxReceiveCount` for
602
- # a queue, Amazon SQS moves the message to the dead-letter-queue.
681
+ # * `maxReceiveCount` The number of times a message is delivered to
682
+ # the source queue before being moved to the dead-letter queue.
683
+ # Default: 10. When the `ReceiveCount` for a message exceeds the
684
+ # `maxReceiveCount` for a queue, Amazon SQS moves the message to the
685
+ # dead-letter-queue.
603
686
  #
604
- # <note markdown="1"> The dead-letter queue of a FIFO queue must also be a FIFO queue.
605
- # Similarly, the dead-letter queue of a standard queue must also be a
606
- # standard queue.
687
+ # * `RedriveAllowPolicy` The string that includes the parameters for
688
+ # the permissions for the dead-letter queue redrive permission and
689
+ # which source queues can specify dead-letter queues as a JSON object.
690
+ # The parameters are as follows:
607
691
  #
608
- # </note>
692
+ # * `redrivePermission` – The permission type that defines which
693
+ # source queues can specify the current queue as the dead-letter
694
+ # queue. Valid values are:
609
695
  #
610
- # * `VisibilityTimeout` - The visibility timeout for the queue, in
611
- # seconds. Valid values: an integer from 0 to 43,200 (12 hours).
612
- # Default: 30. For more information about the visibility timeout, see
613
- # [Visibility Timeout][3] in the *Amazon Simple Queue Service
614
- # Developer Guide*.
696
+ # * `allowAll` (Default) Any source queues in this Amazon Web
697
+ # Services account in the same Region can specify this queue as
698
+ # the dead-letter queue.
615
699
  #
616
- # The following attributes apply only to [server-side-encryption][4]\:
700
+ # * `denyAll` No source queues can specify this queue as the
701
+ # dead-letter queue.
617
702
  #
618
- # * `KmsMasterKeyId` - The ID of an AWS-managed customer master key
619
- # (CMK) for Amazon SQS or a custom CMK. For more information, see [Key
620
- # Terms][5]. While the alias of the AWS-managed CMK for Amazon SQS is
621
- # always `alias/aws/sqs`, the alias of a custom CMK can, for example,
622
- # be `alias/MyAlias `. For more examples, see [KeyId][6] in the *AWS
623
- # Key Management Service API Reference*.
703
+ # * `byQueue` Only queues specified by the `sourceQueueArns`
704
+ # parameter can specify this queue as the dead-letter queue.
624
705
  #
625
- # * `KmsDataKeyReusePeriodSeconds` - The length of time, in seconds, for
706
+ # * `sourceQueueArns` The Amazon Resource Names (ARN)s of the source
707
+ # queues that can specify this queue as the dead-letter queue and
708
+ # redrive messages. You can specify this parameter only when the
709
+ # `redrivePermission` parameter is set to `byQueue`. You can specify
710
+ # up to 10 source queue ARNs. To allow more than 10 source queues to
711
+ # specify dead-letter queues, set the `redrivePermission` parameter
712
+ # to `allowAll`.
713
+ #
714
+ # <note markdown="1"> The dead-letter queue of a FIFO queue must also be a FIFO queue.
715
+ # Similarly, the dead-letter queue of a standard queue must also be a
716
+ # standard queue.
717
+ #
718
+ # </note>
719
+ #
720
+ # The following attributes apply only to [server-side-encryption][4]:
721
+ #
722
+ # * `KmsMasterKeyId` – The ID of an Amazon Web Services managed customer
723
+ # master key (CMK) for Amazon SQS or a custom CMK. For more
724
+ # information, see [Key Terms][5]. While the alias of the AWS-managed
725
+ # CMK for Amazon SQS is always `alias/aws/sqs`, the alias of a custom
726
+ # CMK can, for example, be `alias/MyAlias `. For more examples, see
727
+ # [KeyId][6] in the *Key Management Service API Reference*.
728
+ #
729
+ # * `KmsDataKeyReusePeriodSeconds` – The length of time, in seconds, for
626
730
  # which Amazon SQS can reuse a [data key][7] to encrypt or decrypt
627
- # messages before calling AWS KMS again. An integer representing
628
- # seconds, between 60 seconds (1 minute) and 86,400 seconds (24
629
- # hours). Default: 300 (5 minutes). A shorter time period provides
630
- # better security but results in more calls to KMS which might incur
631
- # charges after Free Tier. For more information, see [How Does the
632
- # Data Key Reuse Period Work?][8].
731
+ # messages before calling KMS again. An integer representing seconds,
732
+ # between 60 seconds (1 minute) and 86,400 seconds (24 hours).
733
+ # Default: 300 (5 minutes). A shorter time period provides better
734
+ # security but results in more calls to KMS which might incur charges
735
+ # after Free Tier. For more information, see [How Does the Data Key
736
+ # Reuse Period Work?][8].
737
+ #
738
+ # * `SqsManagedSseEnabled` – Enables server-side queue encryption using
739
+ # SQS owned encryption keys. Only one server-side encryption option is
740
+ # supported per queue (for example, [SSE-KMS][9] or [SSE-SQS][10]).
633
741
  #
634
742
  # The following attribute applies only to [FIFO (first-in-first-out)
635
- # queues][9]\:
743
+ # queues][11]:
636
744
  #
637
- # * `ContentBasedDeduplication` - Enables content-based deduplication.
638
- # For more information, see [Exactly-Once Processing][10] in the
639
- # *Amazon Simple Queue Service Developer Guide*.
745
+ # * `ContentBasedDeduplication` Enables content-based deduplication.
746
+ # For more information, see [Exactly-once processing][12] in the
747
+ # *Amazon SQS Developer Guide*. Note the following:
640
748
  #
641
- # * Every message must have a unique `MessageDeduplicationId`,
749
+ # * Every message must have a unique `MessageDeduplicationId`.
642
750
  #
643
751
  # * You may provide a `MessageDeduplicationId` explicitly.
644
752
  #
@@ -666,22 +774,54 @@ module Aws::SQS
666
774
  # `MessageDeduplicationId`, the two messages are treated as
667
775
  # duplicates and only one copy of the message is delivered.
668
776
  #
777
+ # The following attributes apply only to [high throughput for FIFO
778
+ # queues][13]:
779
+ #
780
+ # * `DeduplicationScope` – Specifies whether message deduplication
781
+ # occurs at the message group or queue level. Valid values are
782
+ # `messageGroup` and `queue`.
783
+ #
784
+ # * `FifoThroughputLimit` – Specifies whether the FIFO queue throughput
785
+ # quota applies to the entire queue or per message group. Valid values
786
+ # are `perQueue` and `perMessageGroupId`. The `perMessageGroupId`
787
+ # value is allowed only when the value for `DeduplicationScope` is
788
+ # `messageGroup`.
789
+ #
790
+ # To enable high throughput for FIFO queues, do the following:
669
791
  #
792
+ # * Set `DeduplicationScope` to `messageGroup`.
670
793
  #
671
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html
672
- # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html
673
- # [3]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html
674
- # [4]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html
675
- # [5]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms
676
- # [6]: http://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters
677
- # [7]: http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys
678
- # [8]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work
679
- # [9]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html
680
- # [10]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing
794
+ # * Set `FifoThroughputLimit` to `perMessageGroupId`.
795
+ #
796
+ # If you set these attributes to anything other than the values shown
797
+ # for enabling high throughput, normal throughput is in effect and
798
+ # deduplication occurs as specified.
799
+ #
800
+ # For information on throughput quotas, see [Quotas related to
801
+ # messages][14] in the *Amazon SQS Developer Guide*.
802
+ #
803
+ #
804
+ #
805
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html
806
+ # [2]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html
807
+ # [3]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html
808
+ # [4]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html
809
+ # [5]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms
810
+ # [6]: https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters
811
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys
812
+ # [8]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work
813
+ # [9]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sse-existing-queue.html
814
+ # [10]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sqs-sse-queue.html
815
+ # [11]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html
816
+ # [12]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html
817
+ # [13]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html
818
+ # [14]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html
681
819
  # @return [EmptyStructure]
682
820
  def set_attributes(options = {})
683
821
  options = options.merge(queue_url: @url)
684
- resp = @client.set_queue_attributes(options)
822
+ resp = Aws::Plugins::UserAgent.feature('resource') do
823
+ @client.set_queue_attributes(options)
824
+ end
685
825
  resp.data
686
826
  end
687
827
 
@@ -694,16 +834,20 @@ module Aws::SQS
694
834
  # @return [Queue::Collection]
695
835
  def dead_letter_source_queues(options = {})
696
836
  batches = Enumerator.new do |y|
697
- batch = []
698
837
  options = options.merge(queue_url: @url)
699
- resp = @client.list_dead_letter_source_queues(options)
700
- resp.data.queue_urls.each do |q|
701
- batch << Queue.new(
702
- url: q,
703
- client: @client
704
- )
838
+ resp = Aws::Plugins::UserAgent.feature('resource') do
839
+ @client.list_dead_letter_source_queues(options)
840
+ end
841
+ resp.each_page do |page|
842
+ batch = []
843
+ page.data.queue_urls.each do |q|
844
+ batch << Queue.new(
845
+ url: q,
846
+ client: @client
847
+ )
848
+ end
849
+ y.yield(batch)
705
850
  end
706
- y.yield(batch)
707
851
  end
708
852
  Queue::Collection.new(batches)
709
853
  end