aws-sdk-sqs 1.9.0 → 1.70.0

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