aws-sdk-sqs 1.0.0.rc1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f1a976936571b39e54844fbecb7a41f108b12b58
4
+ data.tar.gz: f7a3e598f421172a1493b600fd918e9f5adf69cc
5
+ SHA512:
6
+ metadata.gz: e42b4f56e000779d2493ccba19042bf0d75ebc0bff0664318c5b05d11a58849c2212aa9aed59f08edfdde73c65ded17e32970da23ac83d178271dc10f8791147
7
+ data.tar.gz: 825afec01a99ead084ccaebc802848fd24ae6f1ff0e199026489286caf9faf710913e72b113f58b3163bc060cf1163efdf28b81aca951311b2b92dcb3a5d6acd
@@ -0,0 +1,47 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-sqs/types'
12
+ require_relative 'aws-sdk-sqs/client_api'
13
+ require_relative 'aws-sdk-sqs/client'
14
+ require_relative 'aws-sdk-sqs/errors'
15
+ require_relative 'aws-sdk-sqs/resource'
16
+ require_relative 'aws-sdk-sqs/customizations'
17
+
18
+ # This module provides support for Amazon Simple Queue Service. This module is available in the
19
+ # `aws-sdk-sqs` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # See {Client} for more information.
28
+ #
29
+ # # Errors
30
+ #
31
+ # Errors returned from Amazon Simple Queue Service all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::SQS::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::SQS
44
+
45
+ GEM_VERSION = '1.0.0.rc1'
46
+
47
+ end
@@ -0,0 +1,1604 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/signature_v4.rb'
22
+ require 'aws-sdk-core/plugins/protocols/query.rb'
23
+ require 'aws-sdk-sqs/plugins/queue_urls.rb'
24
+ require 'aws-sdk-sqs/plugins/md5s.rb'
25
+
26
+ Aws::Plugins::GlobalConfiguration.add_identifier(:sqs)
27
+
28
+ module Aws
29
+ module SQS
30
+ class Client < Seahorse::Client::Base
31
+
32
+ include Aws::ClientStubs
33
+
34
+ @identifier = :sqs
35
+
36
+ set_api(ClientApi::API)
37
+
38
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
39
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
40
+ add_plugin(Aws::Plugins::Logging)
41
+ add_plugin(Aws::Plugins::ParamConverter)
42
+ add_plugin(Aws::Plugins::ParamValidator)
43
+ add_plugin(Aws::Plugins::UserAgent)
44
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
45
+ add_plugin(Aws::Plugins::RetryErrors)
46
+ add_plugin(Aws::Plugins::GlobalConfiguration)
47
+ add_plugin(Aws::Plugins::RegionalEndpoint)
48
+ add_plugin(Aws::Plugins::ResponsePaging)
49
+ add_plugin(Aws::Plugins::StubResponses)
50
+ add_plugin(Aws::Plugins::IdempotencyToken)
51
+ add_plugin(Aws::Plugins::SignatureV4)
52
+ add_plugin(Aws::Plugins::Protocols::Query)
53
+ add_plugin(Aws::SQS::Plugins::QueueUrls)
54
+ add_plugin(Aws::SQS::Plugins::Md5s)
55
+
56
+ # @option options [required, Aws::CredentialProvider] :credentials
57
+ # Your AWS credentials. This can be an instance of any one of the
58
+ # following classes:
59
+ #
60
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
61
+ # credentials.
62
+ #
63
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
64
+ # from an EC2 IMDS on an EC2 instance.
65
+ #
66
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
67
+ # shared file, such as `~/.aws/config`.
68
+ #
69
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
70
+ #
71
+ # When `:credentials` are not configured directly, the following
72
+ # locations will be searched for credentials:
73
+ #
74
+ # * `Aws.config[:credentials]`
75
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
76
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
77
+ # * `~/.aws/credentials`
78
+ # * `~/.aws/config`
79
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
80
+ # very aggressive. Construct and pass an instance of
81
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
82
+ # timeouts.
83
+ # @option options [required, String] :region
84
+ # The AWS region to connect to. The configured `:region` is
85
+ # used to determine the service `:endpoint`. When not passed,
86
+ # a default `:region` is search for in the following locations:
87
+ #
88
+ # * `Aws.config[:region]`
89
+ # * `ENV['AWS_REGION']`
90
+ # * `ENV['AMAZON_REGION']`
91
+ # * `ENV['AWS_DEFAULT_REGION']`
92
+ # * `~/.aws/credentials`
93
+ # * `~/.aws/config`
94
+ # @option options [String] :access_key_id
95
+ # @option options [Boolean] :convert_params (true)
96
+ # When `true`, an attempt is made to coerce request parameters into
97
+ # the required types.
98
+ # @option options [String] :endpoint
99
+ # The client endpoint is normally constructed from the `:region`
100
+ # option. You should only configure an `:endpoint` when connecting
101
+ # to test endpoints. This should be avalid HTTP(S) URI.
102
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
103
+ # The log formatter.
104
+ # @option options [Symbol] :log_level (:info)
105
+ # The log level to send messages to the `:logger` at.
106
+ # @option options [Logger] :logger
107
+ # The Logger instance to send log messages to. If this option
108
+ # is not set, logging will be disabled.
109
+ # @option options [String] :profile ("default")
110
+ # Used when loading credentials from the shared credentials file
111
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
112
+ # @option options [Integer] :retry_limit (3)
113
+ # The maximum number of times to retry failed requests. Only
114
+ # ~ 500 level server errors and certain ~ 400 level client errors
115
+ # are retried. Generally, these are throttling errors, data
116
+ # checksum errors, networking errors, timeout errors and auth
117
+ # errors from expired credentials.
118
+ # @option options [String] :secret_access_key
119
+ # @option options [String] :session_token
120
+ # @option options [Boolean] :stub_responses (false)
121
+ # Causes the client to return stubbed responses. By default
122
+ # fake responses are generated and returned. You can specify
123
+ # the response data to return or errors to raise by calling
124
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
125
+ #
126
+ # ** Please note ** When response stubbing is enabled, no HTTP
127
+ # requests are made, and retries are disabled.
128
+ # @option options [Boolean] :validate_params (true)
129
+ # When `true`, request parameters are validated before
130
+ # sending the request.
131
+ # @option options [Boolean] :verify_checksums (true)
132
+ # When `true` MD5 checksums will be computed for messages sent to
133
+ # an SQS queue and matched against MD5 checksums returned by Amazon SQS.
134
+ # `Aws::Errors::Checksum` errors are raised for cases where checksums do
135
+ # not match.
136
+ def initialize(*args)
137
+ super
138
+ end
139
+
140
+ # @!group API Operations
141
+
142
+ # Adds a permission to a queue for a specific [principal][1]. This
143
+ # allows for sharing access to the queue.
144
+ #
145
+ # When you create a queue, you have full control access rights for the
146
+ # queue. Only you (as owner of the queue) can grant or deny permissions
147
+ # to the queue. For more information about these permissions, see
148
+ # [Shared Queues][2] in the *Amazon SQS Developer Guide*.
149
+ #
150
+ # <note markdown="1"> `AddPermission` writes an Amazon SQS-generated policy. If you want to
151
+ # write your own policy, use SetQueueAttributes to upload your policy.
152
+ # For more information about writing your own policy, see [Using The
153
+ # Access Policy Language][3] in the *Amazon SQS Developer Guide*.
154
+ #
155
+ # </note>
156
+ #
157
+ # <note markdown="1"> Some API actions take lists of parameters. These lists are specified
158
+ # using the `param.n` notation. Values of `n` are integers starting from
159
+ # 1. For example, a parameter list with two elements looks like this:
160
+ #
161
+ # </note>
162
+ #
163
+ # `&amp;Attribute.1=this`
164
+ #
165
+ # `&amp;Attribute.2=that`
166
+ #
167
+ #
168
+ #
169
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P
170
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html
171
+ # [3]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AccessPolicyLanguage.html
172
+ # @option params [required, String] :queue_url
173
+ # The URL of the Amazon SQS queue to take action on.
174
+ #
175
+ # Queue URLs are case-sensitive.
176
+ # @option params [required, String] :label
177
+ # The unique identification of the permission you're setting (e.g.,
178
+ # `AliceSendMessage`). Constraints: Maximum 80 characters; alphanumeric
179
+ # characters, hyphens (-), and underscores (\_) are allowed.
180
+ # @option params [required, Array<String>] :aws_account_ids
181
+ # The AWS account number of the [principal][1] who will be given
182
+ # permission. The principal must have an AWS account, but does not need
183
+ # to be signed up for Amazon SQS. For information about locating the AWS
184
+ # account identification, see [Your AWS Identifiers][2] in the *Amazon
185
+ # SQS Developer Guide*.
186
+ #
187
+ #
188
+ #
189
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P
190
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AWSCredentials.html
191
+ # @option params [required, Array<String>] :actions
192
+ # The action the client wants to allow for the specified principal. The
193
+ # following are valid values: `* | SendMessage | ReceiveMessage |
194
+ # DeleteMessage | ChangeMessageVisibility | GetQueueAttributes |
195
+ # GetQueueUrl`. For more information about these actions, see
196
+ # [Understanding Permissions][1] in the *Amazon SQS Developer Guide*.
197
+ #
198
+ # Specifying `SendMessage`, `DeleteMessage`, or
199
+ # `ChangeMessageVisibility` for the `ActionName.n` also grants
200
+ # permissions for the corresponding batch versions of those actions:
201
+ # `SendMessageBatch`, `DeleteMessageBatch`, and
202
+ # `ChangeMessageVisibilityBatch`.
203
+ #
204
+ #
205
+ #
206
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html#PermissionTypes
207
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
208
+ #
209
+ # @example Request syntax with placeholder values
210
+ # resp = client.add_permission({
211
+ # queue_url: "String", # required
212
+ # label: "String", # required
213
+ # aws_account_ids: ["String"], # required
214
+ # actions: ["String"], # required
215
+ # })
216
+ # @overload add_permission(params = {})
217
+ # @param [Hash] params ({})
218
+ def add_permission(params = {}, options = {})
219
+ req = build_request(:add_permission, params)
220
+ req.send_request(options)
221
+ end
222
+
223
+ # Changes the visibility timeout of a specified message in a queue to a
224
+ # new value. The maximum allowed timeout value you can set the value to
225
+ # is 12 hours. This means you can't extend the timeout of a message in
226
+ # an existing queue to more than a total visibility timeout of 12 hours.
227
+ # (For more information visibility timeout, see [Visibility Timeout][1]
228
+ # in the *Amazon SQS Developer Guide*.)
229
+ #
230
+ # For example, let's say you have a message and its default message
231
+ # visibility timeout is 5 minutes. After 3 minutes, you call
232
+ # `ChangeMessageVisiblity` with a timeout of 10 minutes. At that time,
233
+ # the timeout for the message would be extended by 10 minutes beyond the
234
+ # time of the ChangeMessageVisibility call. This results in a total
235
+ # visibility timeout of 13 minutes. You can continue to call
236
+ # ChangeMessageVisibility to extend the visibility timeout to a maximum
237
+ # of 12 hours. If you try to extend beyond 12 hours, the request will be
238
+ # rejected.
239
+ #
240
+ # <note markdown="1"> There is a 120,000 limit for the number of inflight messages per
241
+ # queue. Messages are inflight after they have been received from the
242
+ # queue by a consuming component, but have not yet been deleted from the
243
+ # queue. If you reach the 120,000 limit, you will receive an OverLimit
244
+ # error message from Amazon SQS. To help avoid reaching the limit, you
245
+ # should delete the messages from the queue after they have been
246
+ # processed. You can also increase the number of queues you use to
247
+ # process the messages.
248
+ #
249
+ # </note>
250
+ #
251
+ # If you attempt to set the `VisibilityTimeout` to an amount more than
252
+ # the maximum time left, Amazon SQS returns an error. It will not
253
+ # automatically recalculate and increase the timeout to the maximum time
254
+ # remaining.
255
+ #
256
+ # Unlike with a queue, when you change the visibility timeout for a
257
+ # specific message, that timeout value is applied immediately but is not
258
+ # saved in memory for that message. If you don't delete a message after
259
+ # it is received, the visibility timeout for the message the next time
260
+ # it is received reverts to the original timeout value, not the value
261
+ # you set with the `ChangeMessageVisibility` action.
262
+ #
263
+ #
264
+ #
265
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html
266
+ # @option params [required, String] :queue_url
267
+ # The URL of the Amazon SQS queue to take action on.
268
+ #
269
+ # Queue URLs are case-sensitive.
270
+ # @option params [required, String] :receipt_handle
271
+ # The receipt handle associated with the message whose visibility
272
+ # timeout should be changed. This parameter is returned by the
273
+ # ReceiveMessage action.
274
+ # @option params [required, Integer] :visibility_timeout
275
+ # The new value (in seconds - from 0 to 43200 - maximum 12 hours) for
276
+ # the message's visibility timeout.
277
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
278
+ #
279
+ # @example Request syntax with placeholder values
280
+ # resp = client.change_message_visibility({
281
+ # queue_url: "String", # required
282
+ # receipt_handle: "String", # required
283
+ # visibility_timeout: 1, # required
284
+ # })
285
+ # @overload change_message_visibility(params = {})
286
+ # @param [Hash] params ({})
287
+ def change_message_visibility(params = {}, options = {})
288
+ req = build_request(:change_message_visibility, params)
289
+ req.send_request(options)
290
+ end
291
+
292
+ # Changes the visibility timeout of multiple messages. This is a batch
293
+ # version of ChangeMessageVisibility. The result of the action on each
294
+ # message is reported individually in the response. You can send up to
295
+ # 10 ChangeMessageVisibility requests with each
296
+ # `ChangeMessageVisibilityBatch` action.
297
+ #
298
+ # Because the batch request can result in a combination of successful
299
+ # and unsuccessful actions, you should check for batch errors even when
300
+ # the call returns an HTTP status code of 200.
301
+ #
302
+ # <note markdown="1"> Some API actions take lists of parameters. These lists are specified
303
+ # using the `param.n` notation. Values of `n` are integers starting from
304
+ # 1. For example, a parameter list with two elements looks like this:
305
+ #
306
+ # </note>
307
+ #
308
+ # `&amp;Attribute.1=this`
309
+ #
310
+ # `&amp;Attribute.2=that`
311
+ # @option params [required, String] :queue_url
312
+ # The URL of the Amazon SQS queue to take action on.
313
+ #
314
+ # Queue URLs are case-sensitive.
315
+ # @option params [required, Array<Types::ChangeMessageVisibilityBatchRequestEntry>] :entries
316
+ # A list of receipt handles of the messages for which the visibility
317
+ # timeout must be changed.
318
+ # @return [Types::ChangeMessageVisibilityBatchResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
319
+ #
320
+ # * {Types::ChangeMessageVisibilityBatchResult#successful #Successful} => Array&lt;Types::ChangeMessageVisibilityBatchResultEntry&gt;
321
+ # * {Types::ChangeMessageVisibilityBatchResult#failed #Failed} => Array&lt;Types::BatchResultErrorEntry&gt;
322
+ #
323
+ # @example Request syntax with placeholder values
324
+ # resp = client.change_message_visibility_batch({
325
+ # queue_url: "String", # required
326
+ # entries: [ # required
327
+ # {
328
+ # id: "String", # required
329
+ # receipt_handle: "String", # required
330
+ # visibility_timeout: 1,
331
+ # },
332
+ # ],
333
+ # })
334
+ #
335
+ # @example Response structure
336
+ # resp.successful #=> Array
337
+ # resp.successful[0].id #=> String
338
+ # resp.failed #=> Array
339
+ # resp.failed[0].id #=> String
340
+ # resp.failed[0].sender_fault #=> Boolean
341
+ # resp.failed[0].code #=> String
342
+ # resp.failed[0].message #=> String
343
+ # @overload change_message_visibility_batch(params = {})
344
+ # @param [Hash] params ({})
345
+ def change_message_visibility_batch(params = {}, options = {})
346
+ req = build_request(:change_message_visibility_batch, params)
347
+ req.send_request(options)
348
+ end
349
+
350
+ # Creates a new standard or FIFO queue or returns the URL of an existing
351
+ # queue. You can pass one or more attributes in the request.
352
+ #
353
+ # * If you don't specify the `FifoQueue` attribute, Amazon SQS creates
354
+ # a standard queue.
355
+ #
356
+ # <note markdown="1"> You can't change the queue type after you create it and you can't
357
+ # convert an existing standard queue into a FIFO queue. You must
358
+ # either create a new FIFO queue for your application or delete your
359
+ # existing standard queue and recreate it as a FIFO queue. For more
360
+ # information, see [ Moving From a Standard Queue to a FIFO Queue][1]
361
+ # in the *Amazon SQS Developer Guide*.
362
+ #
363
+ # </note>
364
+ #
365
+ # * If you don't provide a value for an attribute, the queue is created
366
+ # with the default value for the attribute.
367
+ #
368
+ # * If you delete a queue, you must wait at least 60 seconds before
369
+ # creating a queue with the same name.
370
+ #
371
+ # To successfully create a new queue, you must provide a queue name that
372
+ # adheres to the [limits related to queues][2] and is unique within the
373
+ # scope of your queues.
374
+ #
375
+ # To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires
376
+ # only the `QueueName` parameter.
377
+ #
378
+ # * If you provide the name of an existing queue along with the exact
379
+ # names and values of all the queue's attributes, `CreateQueue`
380
+ # returns the queue URL for the existing queue.
381
+ #
382
+ # * If the queue name, attribute names, or attribute values don't match
383
+ # an existing queue, `CreateQueue` returns an error.
384
+ #
385
+ # Some API actions take lists of parameters. Specify these lists using
386
+ # the `param.n` notation. Values of `n` are integers starting from 1.
387
+ # The following is an example of a parameter list with two elements:
388
+ #
389
+ # `&amp;Attribute.1=this`
390
+ #
391
+ # `&amp;Attribute.2=that`
392
+ #
393
+ #
394
+ #
395
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html
396
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html
397
+ # @option params [required, String] :queue_name
398
+ # The name of the new queue. The following limits apply to this name:
399
+ #
400
+ # * A queue name can have up to 80 characters.
401
+ #
402
+ # * The following are accepted: alphanumeric chatacters, hyphens (`-`),
403
+ # and underscores (`_`).
404
+ #
405
+ # * A FIFO queue name must end with the `.fifo` suffix.
406
+ #
407
+ # Queue names are case-sensitive.
408
+ # @option params [Hash<String,String>] :attributes
409
+ # A map of attributes with their corresponding values.
410
+ #
411
+ # The following lists the names, descriptions, and values of the special
412
+ # request parameters that the `CreateQueue` action uses:
413
+ #
414
+ # * `DelaySeconds` - The number of seconds for which the delivery of all
415
+ # messages in the queue is delayed. An integer from 0 to 900 (15
416
+ # minutes). The default is 0 (zero).
417
+ #
418
+ # * `MaximumMessageSize` - The limit of how many bytes a message can
419
+ # contain before Amazon SQS rejects it. An integer from 1,024 bytes (1
420
+ # KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256
421
+ # KiB).
422
+ #
423
+ # * `MessageRetentionPeriod` - The number of seconds for which Amazon
424
+ # SQS retains a message. An integer representing seconds, from 60 (1
425
+ # minute) to 120,9600 (14 days). The default is 345,600 (4 days).
426
+ #
427
+ # * `Policy` - The queue's policy. A valid AWS policy. For more
428
+ # information about policy structure, see [Overview of AWS IAM
429
+ # Policies][1] in the *Amazon IAM User Guide*.
430
+ #
431
+ # * `ReceiveMessageWaitTimeSeconds` - The number of seconds for which a
432
+ # ReceiveMessage action will wait for a message to arrive. An integer
433
+ # from 0 to 20 (seconds). The default is 0.
434
+ #
435
+ # * `RedrivePolicy` - The parameters for the dead letter queue
436
+ # functionality of the source queue. For more information about the
437
+ # redrive policy and dead letter queues, see [Using Amazon SQS Dead
438
+ # Letter Queues][2] in the *Amazon SQS Developer Guide*.
439
+ #
440
+ # <note markdown="1"> The dead letter queue of a FIFO queue must also be a FIFO queue.
441
+ # Similarly, the dead letter queue of a standard queue must also be a
442
+ # standard queue.
443
+ #
444
+ # </note>
445
+ #
446
+ # * `VisibilityTimeout` - The visibility timeout for the queue. An
447
+ # integer from 0 to 43200 (12 hours). The default is 30. For more
448
+ # information about the visibility timeout, see [Visibility
449
+ # Timeout][3] in the *Amazon SQS Developer Guide*.
450
+ #
451
+ # The following attributes apply only to [FIFO (first-in-first-out)
452
+ # queues][4]\:
453
+ #
454
+ # * `FifoQueue` - Designates a queue as FIFO. You can provide this
455
+ # attribute only during queue creation; you can't change it for an
456
+ # existing queue. When you set this attribute, you must provide a
457
+ # `MessageGroupId` explicitly.
458
+ #
459
+ # For more information, see [FIFO Queue Logic][5] in the *Amazon SQS
460
+ # Developer Guide*.
461
+ #
462
+ # * `ContentBasedDeduplication` - Enables content-based deduplication.
463
+ # For more information, see [Exactly-Once Processing][6] in the
464
+ # *Amazon SQS Developer Guide*.
465
+ #
466
+ # * Every message must have a unique `MessageDeduplicationId`,
467
+ #
468
+ # * You may provide a `MessageDeduplicationId` explicitly.
469
+ #
470
+ # * If you aren't able to provide a `MessageDeduplicationId` and
471
+ # you enable `ContentBasedDeduplication` for your queue, Amazon
472
+ # SQS uses a SHA-256 hash to generate the `MessageDeduplicationId`
473
+ # using the body of the message (but not the attributes of the
474
+ # message).
475
+ #
476
+ # * If you don't provide a `MessageDeduplicationId` and the queue
477
+ # doesn't have `ContentBasedDeduplication` set, the action fails
478
+ # with an error.
479
+ #
480
+ # * If the queue has `ContentBasedDeduplication` set, your
481
+ # `MessageDeduplicationId` overrides the generated one.
482
+ #
483
+ # * When `ContentBasedDeduplication` is in effect, messages with
484
+ # identical content sent within the deduplication interval are
485
+ # treated as duplicates and only one copy of the message is
486
+ # delivered.
487
+ #
488
+ # * You can also use `ContentBasedDeduplication` for messages with
489
+ # identical content to be treated as duplicates.
490
+ #
491
+ # * If you send one message with `ContentBasedDeduplication` enabled
492
+ # and then another message with a `MessageDeduplicationId` that is
493
+ # the same as the one generated for the first
494
+ # `MessageDeduplicationId`, the two messages are treated as
495
+ # duplicates and only one copy of the message is delivered.
496
+ #
497
+ # Any other valid special request parameters that are specified (such as
498
+ # `ApproximateNumberOfMessages`, `ApproximateNumberOfMessagesDelayed`,
499
+ # `ApproximateNumberOfMessagesNotVisible`, `CreatedTimestamp`,
500
+ # `LastModifiedTimestamp`, and `QueueArn`) will be ignored.
501
+ #
502
+ #
503
+ #
504
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html
505
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html
506
+ # [3]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html
507
+ # [4]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html
508
+ # [5]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic
509
+ # [6]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing
510
+ # @return [Types::CreateQueueResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
511
+ #
512
+ # * {Types::CreateQueueResult#queue_url #QueueUrl} => String
513
+ #
514
+ # @example Request syntax with placeholder values
515
+ # resp = client.create_queue({
516
+ # queue_name: "String", # required
517
+ # attributes: {
518
+ # "All" => "String",
519
+ # },
520
+ # })
521
+ #
522
+ # @example Response structure
523
+ # resp.queue_url #=> String
524
+ # @overload create_queue(params = {})
525
+ # @param [Hash] params ({})
526
+ def create_queue(params = {}, options = {})
527
+ req = build_request(:create_queue, params)
528
+ req.send_request(options)
529
+ end
530
+
531
+ # Deletes the specified message from the specified queue. You specify
532
+ # the message by using the message's `receipt handle` and not the
533
+ # `message ID` you received when you sent the message. Even if the
534
+ # message is locked by another reader due to the visibility timeout
535
+ # setting, it is still deleted from the queue. If you leave a message in
536
+ # the queue for longer than the queue's configured retention period,
537
+ # Amazon SQS automatically deletes it.
538
+ #
539
+ # <note markdown="1"> The receipt handle is associated with a specific instance of receiving
540
+ # the message. If you receive a message more than once, the receipt
541
+ # handle you get each time you receive the message is different. When
542
+ # you request `DeleteMessage`, if you don't provide the most recently
543
+ # received receipt handle for the message, the request will still
544
+ # succeed, but the message might not be deleted.
545
+ #
546
+ # </note>
547
+ #
548
+ # It is possible you will receive a message even after you have deleted
549
+ # it. This might happen on rare occasions if one of the servers storing
550
+ # a copy of the message is unavailable when you request to delete the
551
+ # message. The copy remains on the server and might be returned to you
552
+ # again on a subsequent receive request. You should create your system
553
+ # to be idempotent so that receiving a particular message more than once
554
+ # is not a problem.
555
+ # @option params [required, String] :queue_url
556
+ # The URL of the Amazon SQS queue to take action on.
557
+ #
558
+ # Queue URLs are case-sensitive.
559
+ # @option params [required, String] :receipt_handle
560
+ # The receipt handle associated with the message to delete.
561
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
562
+ #
563
+ # @example Request syntax with placeholder values
564
+ # resp = client.delete_message({
565
+ # queue_url: "String", # required
566
+ # receipt_handle: "String", # required
567
+ # })
568
+ # @overload delete_message(params = {})
569
+ # @param [Hash] params ({})
570
+ def delete_message(params = {}, options = {})
571
+ req = build_request(:delete_message, params)
572
+ req.send_request(options)
573
+ end
574
+
575
+ # Deletes up to ten messages from the specified queue. This is a batch
576
+ # version of DeleteMessage. The result of the delete action on each
577
+ # message is reported individually in the response.
578
+ #
579
+ # Because the batch request can result in a combination of successful
580
+ # and unsuccessful actions, you should check for batch errors even when
581
+ # the call returns an HTTP status code of 200.
582
+ #
583
+ # <note markdown="1"> Some API actions take lists of parameters. These lists are specified
584
+ # using the `param.n` notation. Values of `n` are integers starting from
585
+ # 1. For example, a parameter list with two elements looks like this:
586
+ #
587
+ # </note>
588
+ #
589
+ # `&amp;Attribute.1=this`
590
+ #
591
+ # `&amp;Attribute.2=that`
592
+ # @option params [required, String] :queue_url
593
+ # The URL of the Amazon SQS queue to take action on.
594
+ #
595
+ # Queue URLs are case-sensitive.
596
+ # @option params [required, Array<Types::DeleteMessageBatchRequestEntry>] :entries
597
+ # A list of receipt handles for the messages to be deleted.
598
+ # @return [Types::DeleteMessageBatchResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
599
+ #
600
+ # * {Types::DeleteMessageBatchResult#successful #Successful} => Array&lt;Types::DeleteMessageBatchResultEntry&gt;
601
+ # * {Types::DeleteMessageBatchResult#failed #Failed} => Array&lt;Types::BatchResultErrorEntry&gt;
602
+ #
603
+ # @example Request syntax with placeholder values
604
+ # resp = client.delete_message_batch({
605
+ # queue_url: "String", # required
606
+ # entries: [ # required
607
+ # {
608
+ # id: "String", # required
609
+ # receipt_handle: "String", # required
610
+ # },
611
+ # ],
612
+ # })
613
+ #
614
+ # @example Response structure
615
+ # resp.successful #=> Array
616
+ # resp.successful[0].id #=> String
617
+ # resp.failed #=> Array
618
+ # resp.failed[0].id #=> String
619
+ # resp.failed[0].sender_fault #=> Boolean
620
+ # resp.failed[0].code #=> String
621
+ # resp.failed[0].message #=> String
622
+ # @overload delete_message_batch(params = {})
623
+ # @param [Hash] params ({})
624
+ def delete_message_batch(params = {}, options = {})
625
+ req = build_request(:delete_message_batch, params)
626
+ req.send_request(options)
627
+ end
628
+
629
+ # Deletes the queue specified by the **queue URL**, regardless of
630
+ # whether the queue is empty. If the specified queue doesn't exist,
631
+ # Amazon SQS returns a successful response.
632
+ #
633
+ # Use `DeleteQueue` with care; once you delete your queue, any messages
634
+ # in the queue are no longer available.
635
+ #
636
+ # When you delete a queue, the deletion process takes up to 60 seconds.
637
+ # Requests you send involving that queue during the 60 seconds might
638
+ # succeed. For example, a SendMessage request might succeed, but after
639
+ # the 60 seconds, the queue and that message you sent no longer exist.
640
+ # Also, when you delete a queue, you must wait at least 60 seconds
641
+ # before creating a queue with the same name.
642
+ #
643
+ # We reserve the right to delete queues that have had no activity for
644
+ # more than 30 days. For more information, see [How Amazon SQS Queues
645
+ # Work][1] in the *Amazon SQS Developer Guide*.
646
+ #
647
+ #
648
+ #
649
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSConcepts.html
650
+ # @option params [required, String] :queue_url
651
+ # The URL of the Amazon SQS queue to take action on.
652
+ #
653
+ # Queue URLs are case-sensitive.
654
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
655
+ #
656
+ # @example Request syntax with placeholder values
657
+ # resp = client.delete_queue({
658
+ # queue_url: "String", # required
659
+ # })
660
+ # @overload delete_queue(params = {})
661
+ # @param [Hash] params ({})
662
+ def delete_queue(params = {}, options = {})
663
+ req = build_request(:delete_queue, params)
664
+ req.send_request(options)
665
+ end
666
+
667
+ # Gets attributes for the specified queue.
668
+ #
669
+ # <note markdown="1"> Some API actions take lists of parameters. These lists are specified
670
+ # using the `param.n` notation. Values of `n` are integers starting from
671
+ # 1. For example, a parameter list with two elements looks like this:
672
+ #
673
+ # </note>
674
+ #
675
+ # `&amp;Attribute.1=this`
676
+ #
677
+ # `&amp;Attribute.2=that`
678
+ # @option params [required, String] :queue_url
679
+ # The URL of the Amazon SQS queue to take action on.
680
+ #
681
+ # Queue URLs are case-sensitive.
682
+ # @option params [Array<String>] :attribute_names
683
+ # A list of attributes for which to retrieve information.
684
+ #
685
+ # <note markdown="1"> Going forward, new attributes might be added. If you are writing code
686
+ # that calls this action, we recommend that you structure your code so
687
+ # that it can handle new attributes gracefully.
688
+ #
689
+ # </note>
690
+ #
691
+ # The following attributes are supported:
692
+ #
693
+ # * `All` - Returns all values.
694
+ #
695
+ # * `ApproximateNumberOfMessages` - Returns the approximate number of
696
+ # visible messages in a queue. For more information, see [Resources
697
+ # Required to Process Messages][1] in the *Amazon SQS Developer
698
+ # Guide*.
699
+ #
700
+ # * `ApproximateNumberOfMessagesDelayed` - Returns the approximate
701
+ # number of messages that are waiting to be added to the queue.
702
+ #
703
+ # * `ApproximateNumberOfMessagesNotVisible` - Returns the approximate
704
+ # number of messages that have not timed-out and are not deleted. For
705
+ # more information, see [Resources Required to Process Messages][1] in
706
+ # the *Amazon SQS Developer Guide*.
707
+ #
708
+ # * `CreatedTimestamp` - Returns the time when the queue was created in
709
+ # seconds (epoch time).
710
+ #
711
+ # * `DelaySeconds` - Returns the default delay on the queue in seconds.
712
+ #
713
+ # * `LastModifiedTimestamp` - Returns the time when the queue was last
714
+ # changed in seconds (epoch time).
715
+ #
716
+ # * `MaximumMessageSize` - Returns the limit of how many bytes a message
717
+ # can contain before Amazon SQS rejects it.
718
+ #
719
+ # * `MessageRetentionPeriod` - Returns the number of seconds for which
720
+ # Amazon SQS retains a message.
721
+ #
722
+ # * `Policy` - Returns the policy of the queue.
723
+ #
724
+ # * `QueueArn` - Returns the Amazon resource name (ARN) of the queue.
725
+ #
726
+ # * `ReceiveMessageWaitTimeSeconds` - Returns the number of seconds for
727
+ # which ReceiveMessage call will wait for a message to arrive.
728
+ #
729
+ # * `RedrivePolicy` - Returns the parameters for dead letter queue
730
+ # functionality of the source queue. For more information about the
731
+ # redrive policy and dead letter queues, see [Using Amazon SQS Dead
732
+ # Letter Queues][2] in the *Amazon SQS Developer Guide*.
733
+ #
734
+ # * `VisibilityTimeout` - Returns the visibility timeout for the queue.
735
+ # For more information about the visibility timeout, see [Visibility
736
+ # Timeout][3] in the *Amazon SQS Developer Guide*.
737
+ #
738
+ # The following attributes apply only to [FIFO (first-in-first-out)
739
+ # queues][4]\:
740
+ #
741
+ # * `FifoQueue` - Returns whether the queue is FIFO. For more
742
+ # information, see [FIFO Queue Logic][5] in the *Amazon SQS Developer
743
+ # Guide*.
744
+ #
745
+ # * `ContentBasedDeduplication` - Returns whether content-based
746
+ # deduplication is enabled for the queue. For more information, see
747
+ # [Exactly-Once Processing][6] in the *Amazon SQS Developer Guide*.
748
+ #
749
+ #
750
+ #
751
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ApproximateNumber.html
752
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html
753
+ # [3]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html
754
+ # [4]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html
755
+ # [5]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic
756
+ # [6]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing
757
+ # @return [Types::GetQueueAttributesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
758
+ #
759
+ # * {Types::GetQueueAttributesResult#attributes #Attributes} => Hash&lt;String,String&gt;
760
+ #
761
+ # @example Request syntax with placeholder values
762
+ # resp = client.get_queue_attributes({
763
+ # queue_url: "String", # required
764
+ # attribute_names: ["All"], # accepts All, Policy, VisibilityTimeout, MaximumMessageSize, MessageRetentionPeriod, ApproximateNumberOfMessages, ApproximateNumberOfMessagesNotVisible, CreatedTimestamp, LastModifiedTimestamp, QueueArn, ApproximateNumberOfMessagesDelayed, DelaySeconds, ReceiveMessageWaitTimeSeconds, RedrivePolicy, FifoQueue, ContentBasedDeduplication
765
+ # })
766
+ #
767
+ # @example Response structure
768
+ # resp.attributes #=> Hash
769
+ # resp.attributes["QueueAttributeName"] #=> String
770
+ # @overload get_queue_attributes(params = {})
771
+ # @param [Hash] params ({})
772
+ def get_queue_attributes(params = {}, options = {})
773
+ req = build_request(:get_queue_attributes, params)
774
+ req.send_request(options)
775
+ end
776
+
777
+ # Returns the URL of an existing queue. This action provides a simple
778
+ # way to retrieve the URL of an Amazon SQS queue.
779
+ #
780
+ # To access a queue that belongs to another AWS account, use the
781
+ # `QueueOwnerAWSAccountId` parameter to specify the account ID of the
782
+ # queue's owner. The queue's owner must grant you permission to access
783
+ # the queue. For more information about shared queue access, see
784
+ # AddPermission or see [Shared Queues][1] in the *Amazon SQS Developer
785
+ # Guide*.
786
+ #
787
+ #
788
+ #
789
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html
790
+ # @option params [required, String] :queue_name
791
+ # The name of the queue whose URL must be fetched. Maximum 80
792
+ # characters; alphanumeric characters, hyphens (-), and underscores (\_)
793
+ # are allowed.
794
+ #
795
+ # Queue names are case-sensitive.
796
+ # @option params [String] :queue_owner_aws_account_id
797
+ # The AWS account ID of the account that created the queue.
798
+ # @return [Types::GetQueueUrlResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
799
+ #
800
+ # * {Types::GetQueueUrlResult#queue_url #QueueUrl} => String
801
+ #
802
+ # @example Request syntax with placeholder values
803
+ # resp = client.get_queue_url({
804
+ # queue_name: "String", # required
805
+ # queue_owner_aws_account_id: "String",
806
+ # })
807
+ #
808
+ # @example Response structure
809
+ # resp.queue_url #=> String
810
+ # @overload get_queue_url(params = {})
811
+ # @param [Hash] params ({})
812
+ def get_queue_url(params = {}, options = {})
813
+ req = build_request(:get_queue_url, params)
814
+ req.send_request(options)
815
+ end
816
+
817
+ # Returns a list of your queues that have the RedrivePolicy queue
818
+ # attribute configured with a dead letter queue.
819
+ #
820
+ # For more information about using dead letter queues, see [Using Amazon
821
+ # SQS Dead Letter Queues][1] in the *Amazon SQS Developer Guide*.
822
+ #
823
+ #
824
+ #
825
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html
826
+ # @option params [required, String] :queue_url
827
+ # The queue URL of a dead letter queue.
828
+ #
829
+ # Queue URLs are case-sensitive.
830
+ # @return [Types::ListDeadLetterSourceQueuesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
831
+ #
832
+ # * {Types::ListDeadLetterSourceQueuesResult#queue_urls #queueUrls} => Array&lt;String&gt;
833
+ #
834
+ # @example Request syntax with placeholder values
835
+ # resp = client.list_dead_letter_source_queues({
836
+ # queue_url: "String", # required
837
+ # })
838
+ #
839
+ # @example Response structure
840
+ # resp.queue_urls #=> Array
841
+ # resp.queue_urls[0] #=> String
842
+ # @overload list_dead_letter_source_queues(params = {})
843
+ # @param [Hash] params ({})
844
+ def list_dead_letter_source_queues(params = {}, options = {})
845
+ req = build_request(:list_dead_letter_source_queues, params)
846
+ req.send_request(options)
847
+ end
848
+
849
+ # Returns a list of your queues. The maximum number of queues that can
850
+ # be returned is 1000. If you specify a value for the optional
851
+ # `QueueNamePrefix` parameter, only queues with a name beginning with
852
+ # the specified value are returned.
853
+ # @option params [String] :queue_name_prefix
854
+ # A string to use for filtering the list results. Only those queues
855
+ # whose name begins with the specified string are returned.
856
+ #
857
+ # Queue names are case-sensitive.
858
+ # @return [Types::ListQueuesResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
859
+ #
860
+ # * {Types::ListQueuesResult#queue_urls #QueueUrls} => Array&lt;String&gt;
861
+ #
862
+ # @example Request syntax with placeholder values
863
+ # resp = client.list_queues({
864
+ # queue_name_prefix: "String",
865
+ # })
866
+ #
867
+ # @example Response structure
868
+ # resp.queue_urls #=> Array
869
+ # resp.queue_urls[0] #=> String
870
+ # @overload list_queues(params = {})
871
+ # @param [Hash] params ({})
872
+ def list_queues(params = {}, options = {})
873
+ req = build_request(:list_queues, params)
874
+ req.send_request(options)
875
+ end
876
+
877
+ # Deletes the messages in a queue specified by the **queue URL**.
878
+ #
879
+ # When you use the `PurgeQueue` API, the deleted messages in the queue
880
+ # can't be retrieved.
881
+ #
882
+ # When you purge a queue, the message deletion process takes up to 60
883
+ # seconds. All messages sent to the queue before calling `PurgeQueue`
884
+ # will be deleted; messages sent to the queue while it is being purged
885
+ # might be deleted. While the queue is being purged, messages sent to
886
+ # the queue before `PurgeQueue` was called might be received, but will
887
+ # be deleted within the next minute.
888
+ # @option params [required, String] :queue_url
889
+ # The queue URL of the queue to delete the messages from when using the
890
+ # `PurgeQueue` API.
891
+ #
892
+ # Queue URLs are case-sensitive.
893
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
894
+ #
895
+ # @example Request syntax with placeholder values
896
+ # resp = client.purge_queue({
897
+ # queue_url: "String", # required
898
+ # })
899
+ # @overload purge_queue(params = {})
900
+ # @param [Hash] params ({})
901
+ def purge_queue(params = {}, options = {})
902
+ req = build_request(:purge_queue, params)
903
+ req.send_request(options)
904
+ end
905
+
906
+ # Retrieves one or more messages, with a maximum limit of 10 messages,
907
+ # from the specified queue. Long poll support is enabled by using the
908
+ # `WaitTimeSeconds` parameter. For more information, see [Amazon SQS
909
+ # Long Poll][1] in the *Amazon SQS Developer Guide*.
910
+ #
911
+ # Short poll is the default behavior where a weighted random set of
912
+ # machines is sampled on a `ReceiveMessage` call. This means only the
913
+ # messages on the sampled machines are returned. If the number of
914
+ # messages in the queue is small (less than 1000), it is likely you will
915
+ # get fewer messages than you requested per `ReceiveMessage` call. If
916
+ # the number of messages in the queue is extremely small, you might not
917
+ # receive any messages in a particular `ReceiveMessage` response; in
918
+ # which case you should repeat the request.
919
+ #
920
+ # For each message returned, the response includes the following:
921
+ #
922
+ # * Message body
923
+ #
924
+ # * MD5 digest of the message body. For information about MD5, see
925
+ # [RFC1321][2].
926
+ #
927
+ # * Message ID you received when you sent the message to the queue.
928
+ #
929
+ # * Receipt handle.
930
+ #
931
+ # * Message attributes.
932
+ #
933
+ # * MD5 digest of the message attributes.
934
+ #
935
+ # The receipt handle is the identifier you must provide when deleting
936
+ # the message. For more information, see [Queue and Message
937
+ # Identifiers][3] in the *Amazon SQS Developer Guide*.
938
+ #
939
+ # You can provide the `VisibilityTimeout` parameter in your request,
940
+ # which will be applied to the messages that Amazon SQS returns in the
941
+ # response. If you don't include the parameter, the overall visibility
942
+ # timeout for the queue is used for the returned messages. For more
943
+ # information, see [Visibility Timeout][4] in the *Amazon SQS Developer
944
+ # Guide*.
945
+ #
946
+ # A message that is not deleted or a message whose visibility is not
947
+ # extended before the visibility timeout expires counts as a failed
948
+ # receive. Depending on the configuration of the queue, the message
949
+ # might be sent to the dead letter queue.
950
+ #
951
+ # <note markdown="1"> Going forward, new attributes might be added. If you are writing code
952
+ # that calls this action, we recommend that you structure your code so
953
+ # that it can handle new attributes gracefully.
954
+ #
955
+ # </note>
956
+ #
957
+ #
958
+ #
959
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html
960
+ # [2]: https://www.ietf.org/rfc/rfc1321.txt
961
+ # [3]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html
962
+ # [4]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html
963
+ # @option params [required, String] :queue_url
964
+ # The URL of the Amazon SQS queue to take action on.
965
+ #
966
+ # Queue URLs are case-sensitive.
967
+ # @option params [Array<String>] :attribute_names
968
+ # A list of attributes that need to be returned along with each message.
969
+ # These attributes include:
970
+ #
971
+ # * `All` - Returns all values.
972
+ #
973
+ # * `ApproximateFirstReceiveTimestamp` - Returns the time the message
974
+ # was first received from the queue (epoch time in milliseconds).
975
+ #
976
+ # * `ApproximateReceiveCount` - Returns the number of times a message
977
+ # has been received from the queue but not deleted.
978
+ #
979
+ # * `SenderId`
980
+ #
981
+ # * For an IAM user, returns the IAM user ID, for example
982
+ # `ABCDEFGHI1JKLMNOPQ23R`.
983
+ #
984
+ # * For an IAM role, returns the IAM role ID, for example
985
+ # `ABCDE1F2GH3I4JK5LMNOP:i-a123b456`.
986
+ #
987
+ # * `SentTimestamp` - Returns the time the message was sent to the queue
988
+ # (epoch time in milliseconds).
989
+ #
990
+ # * `MessageDeduplicationId` - Returns the value provided by the sender
991
+ # that calls the ` SendMessage ` action.
992
+ #
993
+ # * `MessageGroupId` - Returns the value provided by the sender that
994
+ # calls the ` SendMessage ` action. Messages with the same
995
+ # `MessageGroupId` are returned in sequence.
996
+ #
997
+ # * `SequenceNumber` - Returns the value provided by Amazon SQS.
998
+ #
999
+ # Any other valid special request parameters (such as the following)
1000
+ # that are specified are ignored:
1001
+ #
1002
+ # * `ApproximateNumberOfMessages`
1003
+ #
1004
+ # * `ApproximateNumberOfMessagesDelayed`
1005
+ #
1006
+ # * `ApproximateNumberOfMessagesNotVisible`
1007
+ #
1008
+ # * `CreatedTimestamp`
1009
+ #
1010
+ # * `ContentBasedDeduplication`
1011
+ #
1012
+ # * `DelaySeconds`
1013
+ #
1014
+ # * `LastModifiedTimestamp`
1015
+ #
1016
+ # * `MaximumMessageSize`
1017
+ #
1018
+ # * `MessageRetentionPeriod`
1019
+ #
1020
+ # * `Policy`
1021
+ #
1022
+ # * `QueueArn`,
1023
+ #
1024
+ # * `ReceiveMessageWaitTimeSeconds`
1025
+ #
1026
+ # * `RedrivePolicy`
1027
+ #
1028
+ # * `FifoQueue`
1029
+ #
1030
+ # * `VisibilityTimeout`
1031
+ # @option params [Array<String>] :message_attribute_names
1032
+ # The name of the message attribute, where *N* is the index. The message
1033
+ # attribute name can contain the following characters: A-Z, a-z, 0-9,
1034
+ # underscore (\_), hyphen (-), and period (.). The name must not start
1035
+ # or end with a period, and it should not have successive periods. The
1036
+ # name is case sensitive and must be unique among all attribute names
1037
+ # for the message. The name can be up to 256 characters long. The name
1038
+ # can't start with "AWS." or "Amazon." (or any variations in
1039
+ # casing), because these prefixes are reserved for use by Amazon Web
1040
+ # Services.
1041
+ #
1042
+ # When using `ReceiveMessage`, you can send a list of attribute names to
1043
+ # receive, or you can return all of the attributes by specifying "All"
1044
+ # or ".*" in your request. You can also use "bar.*" to return all
1045
+ # message attributes starting with the "bar" prefix.
1046
+ # @option params [Integer] :max_number_of_messages
1047
+ # The maximum number of messages to return. Amazon SQS never returns
1048
+ # more messages than this value but might return fewer. Values can be
1049
+ # from 1 to 10. Default is 1.
1050
+ #
1051
+ # All of the messages are not necessarily returned.
1052
+ # @option params [Integer] :visibility_timeout
1053
+ # The duration (in seconds) that the received messages are hidden from
1054
+ # subsequent retrieve requests after being retrieved by a
1055
+ # `ReceiveMessage` request.
1056
+ # @option params [Integer] :wait_time_seconds
1057
+ # The duration (in seconds) for which the call will wait for a message
1058
+ # to arrive in the queue before returning. If a message is available,
1059
+ # the call will return sooner than WaitTimeSeconds.
1060
+ # @option params [String] :receive_request_attempt_id
1061
+ # This parameter applies only to FIFO (first-in-first-out) queues.
1062
+ #
1063
+ # The token used for deduplication of `ReceiveMessage` calls. If a
1064
+ # networking issue occurs after a `ReceiveMessage` action, and instead
1065
+ # of a response you receive a generic error, you can retry the same
1066
+ # action with an identical `ReceiveRequestAttemptId` to retrieve the
1067
+ # same set of messages, even if their visibility timeout has not yet
1068
+ # expired.
1069
+ #
1070
+ # * You can use `ReceiveRequestAttemptId` only for 5 minutes after a
1071
+ # `ReceiveMessage` action.
1072
+ #
1073
+ # * When you set `FifoQueue`, a caller of the `ReceiveMessage` action
1074
+ # can provide a `ReceiveRequestAttemptId` explicitly.
1075
+ #
1076
+ # * If a caller of the `ReceiveMessage` action doesn't provide a
1077
+ # `ReceiveRequestAttemptId`, Amazon SQS generates a
1078
+ # `ReceiveRequestAttemptId`.
1079
+ #
1080
+ # * You can retry the `ReceiveMessage` action with the same
1081
+ # `ReceiveRequestAttemptId` if none of the messages have been modified
1082
+ # (deleted or had their visibility changes).
1083
+ #
1084
+ # * During a visibility timeout, subsequent calls with the same
1085
+ # `ReceiveRequestAttemptId` return the same messages and receipt
1086
+ # handles. If a retry occurs within the deduplication interval, it
1087
+ # resets the visibility timeout. For more information, see [Visibility
1088
+ # Timeout][1] in the *Amazon Simple Queue Service Developer Guide*.
1089
+ #
1090
+ # If a caller of the `ReceiveMessage` action is still processing
1091
+ # messages when the visibility timeout expires and messages become
1092
+ # visible, another worker reading from the same queue can receive the
1093
+ # same messages and therefore process duplicates. Also, if a reader
1094
+ # whose message processing time is longer than the visibility timeout
1095
+ # tries to delete the processed messages, the action fails with an
1096
+ # error.
1097
+ #
1098
+ # To mitigate this effect, ensure that your application observes a
1099
+ # safe threshold before the visibility timeout expires and extend the
1100
+ # visibility timeout as necessary.
1101
+ #
1102
+ # * While messages with a particular `MessageGroupId` are invisible, no
1103
+ # more messages belonging to the same `MessageGroupId` are returned
1104
+ # until the visibility timeout expires. You can still receive messages
1105
+ # with another `MessageGroupId` as long as it is also visible.
1106
+ #
1107
+ # * If a caller of `ReceiveMessage` can't track the
1108
+ # `ReceiveRequestAttemptId`, no retries will work until the original
1109
+ # visibility timeout expires. As a result, delays might occur but the
1110
+ # messages in the queue will remain in a strict order.
1111
+ #
1112
+ # The length of `ReceiveRequestAttemptId` is 128 characters.
1113
+ # `ReceiveRequestAttemptId` can contain alphanumeric characters (`a-z`,
1114
+ # `A-Z`, `0-9`) and punctuation (`` !"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~
1115
+ # ``).
1116
+ #
1117
+ # For best practices of using `ReceiveRequestAttemptId`, see [Using the
1118
+ # ReceiveRequestAttemptId Request Parameter][2] in the *Amazon Simple
1119
+ # Queue Service Developer Guide*.
1120
+ #
1121
+ #
1122
+ #
1123
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html
1124
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queue-recommendations.html#using-receiverequestattemptid-request-parameter
1125
+ # @return [Types::ReceiveMessageResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1126
+ #
1127
+ # * {Types::ReceiveMessageResult#messages #Messages} => Array&lt;Types::Message&gt;
1128
+ #
1129
+ # @example Request syntax with placeholder values
1130
+ # resp = client.receive_message({
1131
+ # queue_url: "String", # required
1132
+ # attribute_names: ["All"], # accepts All, Policy, VisibilityTimeout, MaximumMessageSize, MessageRetentionPeriod, ApproximateNumberOfMessages, ApproximateNumberOfMessagesNotVisible, CreatedTimestamp, LastModifiedTimestamp, QueueArn, ApproximateNumberOfMessagesDelayed, DelaySeconds, ReceiveMessageWaitTimeSeconds, RedrivePolicy, FifoQueue, ContentBasedDeduplication
1133
+ # message_attribute_names: ["MessageAttributeName"],
1134
+ # max_number_of_messages: 1,
1135
+ # visibility_timeout: 1,
1136
+ # wait_time_seconds: 1,
1137
+ # receive_request_attempt_id: "String",
1138
+ # })
1139
+ #
1140
+ # @example Response structure
1141
+ # resp.messages #=> Array
1142
+ # resp.messages[0].message_id #=> String
1143
+ # resp.messages[0].receipt_handle #=> String
1144
+ # resp.messages[0].md5_of_body #=> String
1145
+ # resp.messages[0].body #=> String
1146
+ # resp.messages[0].attributes #=> Hash
1147
+ # resp.messages[0].attributes["MessageSystemAttributeName"] #=> String
1148
+ # resp.messages[0].md5_of_message_attributes #=> String
1149
+ # resp.messages[0].message_attributes #=> Hash
1150
+ # resp.messages[0].message_attributes["String"].string_value #=> String
1151
+ # resp.messages[0].message_attributes["String"].binary_value #=> String
1152
+ # resp.messages[0].message_attributes["String"].string_list_values #=> Array
1153
+ # resp.messages[0].message_attributes["String"].string_list_values[0] #=> String
1154
+ # resp.messages[0].message_attributes["String"].binary_list_values #=> Array
1155
+ # resp.messages[0].message_attributes["String"].binary_list_values[0] #=> String
1156
+ # resp.messages[0].message_attributes["String"].data_type #=> String
1157
+ # @overload receive_message(params = {})
1158
+ # @param [Hash] params ({})
1159
+ def receive_message(params = {}, options = {})
1160
+ req = build_request(:receive_message, params)
1161
+ req.send_request(options)
1162
+ end
1163
+
1164
+ # Revokes any permissions in the queue policy that matches the specified
1165
+ # `Label` parameter. Only the owner of the queue can remove permissions.
1166
+ # @option params [required, String] :queue_url
1167
+ # The URL of the Amazon SQS queue to take action on.
1168
+ #
1169
+ # Queue URLs are case-sensitive.
1170
+ # @option params [required, String] :label
1171
+ # The identification of the permission to remove. This is the label
1172
+ # added with the AddPermission action.
1173
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1174
+ #
1175
+ # @example Request syntax with placeholder values
1176
+ # resp = client.remove_permission({
1177
+ # queue_url: "String", # required
1178
+ # label: "String", # required
1179
+ # })
1180
+ # @overload remove_permission(params = {})
1181
+ # @param [Hash] params ({})
1182
+ def remove_permission(params = {}, options = {})
1183
+ req = build_request(:remove_permission, params)
1184
+ req.send_request(options)
1185
+ end
1186
+
1187
+ # Delivers a message to the specified queue.
1188
+ #
1189
+ # The following list shows the characters (in Unicode) that are allowed
1190
+ # in your message, according to the W3C XML specification:
1191
+ #
1192
+ # `#x9` \| `#xA` \| `#xD` \| \[`#x20` to `#xD7FF`\] \| \[`#xE000` to
1193
+ # `#xFFFD`\] \| \[`#x10000` to `#x10FFFF`\]
1194
+ #
1195
+ # For more information, see [RFC1321][1]. If you send any characters
1196
+ # that aren't included in this list, your request will be rejected.
1197
+ #
1198
+ #
1199
+ #
1200
+ # [1]: https://www.ietf.org/rfc/rfc1321.txt
1201
+ # @option params [required, String] :queue_url
1202
+ # The URL of the Amazon SQS queue to take action on.
1203
+ #
1204
+ # Queue URLs are case-sensitive.
1205
+ # @option params [required, String] :message_body
1206
+ # The message to send. String maximum 256 KB in size. For a list of
1207
+ # allowed characters, see the preceding note.
1208
+ # @option params [Integer] :delay_seconds
1209
+ # The number of seconds (0 to 900 - 15 minutes) to delay a specific
1210
+ # message. Messages with a positive `DelaySeconds` value become
1211
+ # available for processing after the delay time is finished. If you
1212
+ # don't specify a value, the default value for the queue applies.
1213
+ #
1214
+ # <note markdown="1"> When you set `FifoQueue`, you can't set `DelaySeconds` per message.
1215
+ # You can set this parameter only on a queue level.
1216
+ #
1217
+ # </note>
1218
+ # @option params [Hash<String,Types::MessageAttributeValue>] :message_attributes
1219
+ # Each message attribute consists of a Name, Type, and Value. For more
1220
+ # information, see [Message Attribute Items][1] in the *Amazon SQS
1221
+ # Developer Guide*.
1222
+ #
1223
+ #
1224
+ #
1225
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSMessageAttributes.html#SQSMessageAttributesNTV
1226
+ # @option params [String] :message_deduplication_id
1227
+ # This parameter applies only to FIFO (first-in-first-out) queues.
1228
+ #
1229
+ # The token used for deduplication of sent messages. If a message with a
1230
+ # particular `MessageDeduplicationId` is sent successfully, any messages
1231
+ # sent with the same `MessageDeduplicationId` are accepted successfully
1232
+ # but aren't delivered during the 5-minute deduplication interval. For
1233
+ # more information, see [ Exactly-Once Processing][1] in the *Amazon SQS
1234
+ # Developer Guide*.
1235
+ #
1236
+ # * Every message must have a unique `MessageDeduplicationId`,
1237
+ #
1238
+ # * You may provide a `MessageDeduplicationId` explicitly.
1239
+ #
1240
+ # * If you aren't able to provide a `MessageDeduplicationId` and you
1241
+ # enable `ContentBasedDeduplication` for your queue, Amazon SQS uses
1242
+ # a SHA-256 hash to generate the `MessageDeduplicationId` using the
1243
+ # body of the message (but not the attributes of the message).
1244
+ #
1245
+ # * If you don't provide a `MessageDeduplicationId` and the queue
1246
+ # doesn't have `ContentBasedDeduplication` set, the action fails
1247
+ # with an error.
1248
+ #
1249
+ # * If the queue has `ContentBasedDeduplication` set, your
1250
+ # `MessageDeduplicationId` overrides the generated one.
1251
+ #
1252
+ # * When `ContentBasedDeduplication` is in effect, messages with
1253
+ # identical content sent within the deduplication interval are treated
1254
+ # as duplicates and only one copy of the message is delivered.
1255
+ #
1256
+ # * You can also use `ContentBasedDeduplication` for messages with
1257
+ # identical content to be treated as duplicates.
1258
+ #
1259
+ # * If you send one message with `ContentBasedDeduplication` enabled and
1260
+ # then another message with a `MessageDeduplicationId` that is the
1261
+ # same as the one generated for the first `MessageDeduplicationId`,
1262
+ # the two messages are treated as duplicates and only one copy of the
1263
+ # message is delivered.
1264
+ #
1265
+ # <note markdown="1"> The `MessageDeduplicationId` is available to the recipient of the
1266
+ # message (this can be useful for troubleshooting delivery issues).
1267
+ #
1268
+ # If a message is sent successfully but the acknowledgdment is lost and
1269
+ # the message is resent with the same `MessageDeduplicationId` after the
1270
+ # deduplication interval, Amazon SQS can't detect duplicate messages.
1271
+ #
1272
+ # </note>
1273
+ #
1274
+ # The length of `MessageDeduplicationId` is 128 characters.
1275
+ # `MessageDeduplicationId` can contain alphanumeric characters (`a-z`,
1276
+ # `A-Z`, `0-9`) and punctuation (`` !"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~
1277
+ # ``).
1278
+ #
1279
+ # For best practices of using `MessageDeduplicationId`, see [Using the
1280
+ # MessageDeduplicationId Property][2] in the *Amazon Simple Queue
1281
+ # Service Developer Guide*.
1282
+ #
1283
+ #
1284
+ #
1285
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing
1286
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queue-recommendations.html#using-messagededuplicationid-property
1287
+ # @option params [String] :message_group_id
1288
+ # This parameter applies only to FIFO (first-in-first-out) queues.
1289
+ #
1290
+ # The tag that specifies that a message belongs to a specific message
1291
+ # group. Messages that belong to the same message group are processed in
1292
+ # a FIFO manner (however, messages in different message groups might be
1293
+ # processed out of order). To interleave multiple ordered streams within
1294
+ # a single queue, use `MessageGroupId` values (for example, session data
1295
+ # for multiple users). In this scenario, multiple readers can process
1296
+ # the queue, but the session data of each user is processed in a FIFO
1297
+ # fashion.
1298
+ #
1299
+ # * You must associate a non-empty `MessageGroupId` with a message. If
1300
+ # you don't provide a `MessageGroupId`, the action fails.
1301
+ #
1302
+ # * `ReceiveMessage` might return messages with multiple
1303
+ # `MessageGroupId` values. For each `MessageGroupId`, the messages are
1304
+ # sorted by time sent. The caller can't specify a `MessageGroupId`.
1305
+ #
1306
+ # The length of `MessageGroupId` is 128 characters. Valid values are
1307
+ # alphanumeric characters and punctuation ``
1308
+ # (!"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~) ``.
1309
+ #
1310
+ # For best practices of using `MessageGroupId`, see [Using the
1311
+ # MessageGroupId Property][1] in the *Amazon Simple Queue Service
1312
+ # Developer Guide*.
1313
+ #
1314
+ #
1315
+ #
1316
+ # [1]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queue-recommendations.html#using-messagegroupid-property
1317
+ # @return [Types::SendMessageResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1318
+ #
1319
+ # * {Types::SendMessageResult#md5_of_message_body #MD5OfMessageBody} => String
1320
+ # * {Types::SendMessageResult#md5_of_message_attributes #MD5OfMessageAttributes} => String
1321
+ # * {Types::SendMessageResult#message_id #MessageId} => String
1322
+ # * {Types::SendMessageResult#sequence_number #SequenceNumber} => String
1323
+ #
1324
+ # @example Request syntax with placeholder values
1325
+ # resp = client.send_message({
1326
+ # queue_url: "String", # required
1327
+ # message_body: "String", # required
1328
+ # delay_seconds: 1,
1329
+ # message_attributes: {
1330
+ # "String" => {
1331
+ # string_value: "String",
1332
+ # binary_value: "data",
1333
+ # string_list_values: ["String"],
1334
+ # binary_list_values: ["data"],
1335
+ # data_type: "String", # required
1336
+ # },
1337
+ # },
1338
+ # message_deduplication_id: "String",
1339
+ # message_group_id: "String",
1340
+ # })
1341
+ #
1342
+ # @example Response structure
1343
+ # resp.md5_of_message_body #=> String
1344
+ # resp.md5_of_message_attributes #=> String
1345
+ # resp.message_id #=> String
1346
+ # resp.sequence_number #=> String
1347
+ # @overload send_message(params = {})
1348
+ # @param [Hash] params ({})
1349
+ def send_message(params = {}, options = {})
1350
+ req = build_request(:send_message, params)
1351
+ req.send_request(options)
1352
+ end
1353
+
1354
+ # Delivers up to ten messages to the specified queue. This is a batch
1355
+ # version of ` SendMessage `. For a FIFO queue, multiple messages within
1356
+ # a single batch are enqueued in the order they are sent.
1357
+ #
1358
+ # The result of sending each message is reported individually in the
1359
+ # response. Because the batch request can result in a combination of
1360
+ # successful and unsuccessful actions, you should check for batch errors
1361
+ # even when the call returns an HTTP status code of 200.
1362
+ #
1363
+ # The maximum allowed individual message size and the maximum total
1364
+ # payload size (the sum of the individual lengths of all of the batched
1365
+ # messages) are both 256 KB (262,144 bytes).
1366
+ #
1367
+ # The following list shows the characters (in Unicode) that are allowed
1368
+ # in your message, according to the W3C XML specification:
1369
+ #
1370
+ # `#x9` \| `#xA` \| `#xD` \| \[`#x20` to `#xD7FF`\] \| \[`#xE000` to
1371
+ # `#xFFFD`\] \| \[`#x10000` to `#x10FFFF`\]
1372
+ #
1373
+ # For more information, see [RFC1321][1]. If you send any characters
1374
+ # that aren't included in this list, your request will be rejected.
1375
+ #
1376
+ # If you don't specify the `DelaySeconds` parameter for an entry,
1377
+ # Amazon SQS uses the default for the queue.
1378
+ #
1379
+ # <note markdown="1"> Some API actions take lists of parameters. These lists are specified
1380
+ # using the `param.n` notation. Values of `n` are integers starting from
1381
+ # 1. For example, a parameter list with two elements looks like this:
1382
+ #
1383
+ # </note>
1384
+ #
1385
+ # `&amp;Attribute.1=this`
1386
+ #
1387
+ # `&amp;Attribute.2=that`
1388
+ #
1389
+ #
1390
+ #
1391
+ # [1]: https://www.ietf.org/rfc/rfc1321.txt
1392
+ # @option params [required, String] :queue_url
1393
+ # The URL of the Amazon SQS queue to take action on.
1394
+ #
1395
+ # Queue URLs are case-sensitive.
1396
+ # @option params [required, Array<Types::SendMessageBatchRequestEntry>] :entries
1397
+ # A list of SendMessageBatchRequestEntry items.
1398
+ # @return [Types::SendMessageBatchResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1399
+ #
1400
+ # * {Types::SendMessageBatchResult#successful #Successful} => Array&lt;Types::SendMessageBatchResultEntry&gt;
1401
+ # * {Types::SendMessageBatchResult#failed #Failed} => Array&lt;Types::BatchResultErrorEntry&gt;
1402
+ #
1403
+ # @example Request syntax with placeholder values
1404
+ # resp = client.send_message_batch({
1405
+ # queue_url: "String", # required
1406
+ # entries: [ # required
1407
+ # {
1408
+ # id: "String", # required
1409
+ # message_body: "String", # required
1410
+ # delay_seconds: 1,
1411
+ # message_attributes: {
1412
+ # "String" => {
1413
+ # string_value: "String",
1414
+ # binary_value: "data",
1415
+ # string_list_values: ["String"],
1416
+ # binary_list_values: ["data"],
1417
+ # data_type: "String", # required
1418
+ # },
1419
+ # },
1420
+ # message_deduplication_id: "String",
1421
+ # message_group_id: "String",
1422
+ # },
1423
+ # ],
1424
+ # })
1425
+ #
1426
+ # @example Response structure
1427
+ # resp.successful #=> Array
1428
+ # resp.successful[0].id #=> String
1429
+ # resp.successful[0].message_id #=> String
1430
+ # resp.successful[0].md5_of_message_body #=> String
1431
+ # resp.successful[0].md5_of_message_attributes #=> String
1432
+ # resp.successful[0].sequence_number #=> String
1433
+ # resp.failed #=> Array
1434
+ # resp.failed[0].id #=> String
1435
+ # resp.failed[0].sender_fault #=> Boolean
1436
+ # resp.failed[0].code #=> String
1437
+ # resp.failed[0].message #=> String
1438
+ # @overload send_message_batch(params = {})
1439
+ # @param [Hash] params ({})
1440
+ def send_message_batch(params = {}, options = {})
1441
+ req = build_request(:send_message_batch, params)
1442
+ req.send_request(options)
1443
+ end
1444
+
1445
+ # Sets the value of one or more queue attributes. When you change a
1446
+ # queue's attributes, the change can take up to 60 seconds for most of
1447
+ # the attributes to propagate throughout the SQS system. Changes made to
1448
+ # the `MessageRetentionPeriod` attribute can take up to 15 minutes.
1449
+ #
1450
+ # <note markdown="1"> In the future, new attributes might be added. When you write code that
1451
+ # calls this action, we recommend structuring your code so that it can
1452
+ # handle new attributes gracefully.
1453
+ #
1454
+ # </note>
1455
+ # @option params [required, String] :queue_url
1456
+ # The URL of the Amazon SQS queue to take action on.
1457
+ #
1458
+ # Queue URLs are case-sensitive.
1459
+ # @option params [required, Hash<String,String>] :attributes
1460
+ # A map of attributes to set.
1461
+ #
1462
+ # The following lists the names, descriptions, and values of the special
1463
+ # request parameters that the `SetQueueAttributes` action uses:
1464
+ #
1465
+ # * `DelaySeconds` - The number of seconds for which the delivery of all
1466
+ # messages in the queue is delayed. An integer from 0 to 900 (15
1467
+ # minutes). The default is 0 (zero).
1468
+ #
1469
+ # * `MaximumMessageSize` - The limit of how many bytes a message can
1470
+ # contain before Amazon SQS rejects it. An integer from 1,024 bytes (1
1471
+ # KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256
1472
+ # KiB).
1473
+ #
1474
+ # * `MessageRetentionPeriod` - The number of seconds for which Amazon
1475
+ # SQS retains a message. An integer representing seconds, from 60 (1
1476
+ # minute) to 120,9600 (14 days). The default is 345,600 (4 days).
1477
+ #
1478
+ # * `Policy` - The queue's policy. A valid AWS policy. For more
1479
+ # information about policy structure, see [Overview of AWS IAM
1480
+ # Policies][1] in the *Amazon IAM User Guide*.
1481
+ #
1482
+ # * `ReceiveMessageWaitTimeSeconds` - The number of seconds for which a
1483
+ # ReceiveMessage action will wait for a message to arrive. An integer
1484
+ # from 0 to 20 (seconds). The default is 0.
1485
+ #
1486
+ # * `RedrivePolicy` - The parameters for the dead letter queue
1487
+ # functionality of the source queue. For more information about the
1488
+ # redrive policy and dead letter queues, see [Using Amazon SQS Dead
1489
+ # Letter Queues][2] in the *Amazon SQS Developer Guide*.
1490
+ #
1491
+ # <note markdown="1"> The dead letter queue of a FIFO queue must also be a FIFO queue.
1492
+ # Similarly, the dead letter queue of a standard queue must also be a
1493
+ # standard queue.
1494
+ #
1495
+ # </note>
1496
+ #
1497
+ # * `VisibilityTimeout` - The visibility timeout for the queue. An
1498
+ # integer from 0 to 43200 (12 hours). The default is 30. For more
1499
+ # information about the visibility timeout, see [Visibility
1500
+ # Timeout][3] in the *Amazon SQS Developer Guide*.
1501
+ #
1502
+ # The following attribute applies only to [FIFO (first-in-first-out)
1503
+ # queues][4]\:
1504
+ #
1505
+ # * `ContentBasedDeduplication` - Enables content-based deduplication.
1506
+ # For more information, see [Exactly-Once Processing][5] in the
1507
+ # *Amazon SQS Developer Guide*.
1508
+ #
1509
+ # * Every message must have a unique `MessageDeduplicationId`,
1510
+ #
1511
+ # * You may provide a `MessageDeduplicationId` explicitly.
1512
+ #
1513
+ # * If you aren't able to provide a `MessageDeduplicationId` and
1514
+ # you enable `ContentBasedDeduplication` for your queue, Amazon
1515
+ # SQS uses a SHA-256 hash to generate the `MessageDeduplicationId`
1516
+ # using the body of the message (but not the attributes of the
1517
+ # message).
1518
+ #
1519
+ # * If you don't provide a `MessageDeduplicationId` and the queue
1520
+ # doesn't have `ContentBasedDeduplication` set, the action fails
1521
+ # with an error.
1522
+ #
1523
+ # * If the queue has `ContentBasedDeduplication` set, your
1524
+ # `MessageDeduplicationId` overrides the generated one.
1525
+ #
1526
+ # * When `ContentBasedDeduplication` is in effect, messages with
1527
+ # identical content sent within the deduplication interval are
1528
+ # treated as duplicates and only one copy of the message is
1529
+ # delivered.
1530
+ #
1531
+ # * You can also use `ContentBasedDeduplication` for messages with
1532
+ # identical content to be treated as duplicates.
1533
+ #
1534
+ # * If you send one message with `ContentBasedDeduplication` enabled
1535
+ # and then another message with a `MessageDeduplicationId` that is
1536
+ # the same as the one generated for the first
1537
+ # `MessageDeduplicationId`, the two messages are treated as
1538
+ # duplicates and only one copy of the message is delivered.
1539
+ #
1540
+ # Any other valid special request parameters that are specified (such as
1541
+ # `ApproximateNumberOfMessages`, `ApproximateNumberOfMessagesDelayed`,
1542
+ # `ApproximateNumberOfMessagesNotVisible`, `CreatedTimestamp`,
1543
+ # `LastModifiedTimestamp`, and `QueueArn`) will be ignored.
1544
+ #
1545
+ #
1546
+ #
1547
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html
1548
+ # [2]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html
1549
+ # [3]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html
1550
+ # [4]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html
1551
+ # [5]: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing
1552
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1553
+ #
1554
+ # @example Request syntax with placeholder values
1555
+ # resp = client.set_queue_attributes({
1556
+ # queue_url: "String", # required
1557
+ # attributes: { # required
1558
+ # "All" => "String",
1559
+ # },
1560
+ # })
1561
+ # @overload set_queue_attributes(params = {})
1562
+ # @param [Hash] params ({})
1563
+ def set_queue_attributes(params = {}, options = {})
1564
+ req = build_request(:set_queue_attributes, params)
1565
+ req.send_request(options)
1566
+ end
1567
+
1568
+ # @!endgroup
1569
+
1570
+ # @param params ({})
1571
+ # @api private
1572
+ def build_request(operation_name, params = {})
1573
+ handlers = @handlers.for(operation_name)
1574
+ context = Seahorse::Client::RequestContext.new(
1575
+ operation_name: operation_name,
1576
+ operation: config.api.operation(operation_name),
1577
+ client: self,
1578
+ params: params,
1579
+ config: config)
1580
+ context[:gem_name] = 'aws-sdk-sqs'
1581
+ context[:gem_version] = '1.0.0.rc1'
1582
+ Seahorse::Client::Request.new(handlers, context)
1583
+ end
1584
+
1585
+ # @api private
1586
+ # @deprecated
1587
+ def waiter_names
1588
+ []
1589
+ end
1590
+
1591
+ class << self
1592
+
1593
+ # @api private
1594
+ attr_reader :identifier
1595
+
1596
+ # @api private
1597
+ def errors_module
1598
+ Errors
1599
+ end
1600
+
1601
+ end
1602
+ end
1603
+ end
1604
+ end