aws-sdk-sqs 1.0.0.rc1

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