aws-sdk-dynamodb 1.132.0 → 1.140.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,9 +12,551 @@ module Aws::DynamoDB
12
12
  # @api private
13
13
  module Endpoints
14
14
 
15
+ class BatchGetItem
16
+ def self.build(context)
17
+ Aws::DynamoDB::EndpointParameters.create(
18
+ context.config,
19
+ resource_arn_list: JMESPath.search("keys(request_items)", context.params),
20
+ )
21
+ end
22
+ end
23
+
24
+ class BatchWriteItem
25
+ def self.build(context)
26
+ Aws::DynamoDB::EndpointParameters.create(
27
+ context.config,
28
+ resource_arn_list: JMESPath.search("keys(request_items)", context.params),
29
+ )
30
+ end
31
+ end
32
+
33
+ class CreateBackup
34
+ def self.build(context)
35
+ Aws::DynamoDB::EndpointParameters.create(
36
+ context.config,
37
+ resource_arn: context.params[:table_name],
38
+ )
39
+ end
40
+ end
41
+
42
+ class CreateGlobalTable
43
+ def self.build(context)
44
+ Aws::DynamoDB::EndpointParameters.create(
45
+ context.config,
46
+ resource_arn: context.params[:global_table_name],
47
+ )
48
+ end
49
+ end
50
+
51
+ class CreateTable
52
+ def self.build(context)
53
+ Aws::DynamoDB::EndpointParameters.create(
54
+ context.config,
55
+ resource_arn: context.params[:table_name],
56
+ )
57
+ end
58
+ end
59
+
60
+ class DeleteBackup
61
+ def self.build(context)
62
+ Aws::DynamoDB::EndpointParameters.create(
63
+ context.config,
64
+ resource_arn: context.params[:backup_arn],
65
+ )
66
+ end
67
+ end
68
+
69
+ class DeleteItem
70
+ def self.build(context)
71
+ Aws::DynamoDB::EndpointParameters.create(
72
+ context.config,
73
+ resource_arn: context.params[:table_name],
74
+ )
75
+ end
76
+ end
77
+
78
+ class DeleteResourcePolicy
79
+ def self.build(context)
80
+ Aws::DynamoDB::EndpointParameters.create(
81
+ context.config,
82
+ resource_arn: context.params[:resource_arn],
83
+ )
84
+ end
85
+ end
86
+
87
+ class DeleteTable
88
+ def self.build(context)
89
+ Aws::DynamoDB::EndpointParameters.create(
90
+ context.config,
91
+ resource_arn: context.params[:table_name],
92
+ )
93
+ end
94
+ end
95
+
96
+ class DescribeBackup
97
+ def self.build(context)
98
+ Aws::DynamoDB::EndpointParameters.create(
99
+ context.config,
100
+ resource_arn: context.params[:backup_arn],
101
+ )
102
+ end
103
+ end
104
+
105
+ class DescribeContinuousBackups
106
+ def self.build(context)
107
+ Aws::DynamoDB::EndpointParameters.create(
108
+ context.config,
109
+ resource_arn: context.params[:table_name],
110
+ )
111
+ end
112
+ end
113
+
114
+ class DescribeContributorInsights
115
+ def self.build(context)
116
+ Aws::DynamoDB::EndpointParameters.create(
117
+ context.config,
118
+ resource_arn: context.params[:table_name],
119
+ )
120
+ end
121
+ end
122
+
123
+ class DescribeExport
124
+ def self.build(context)
125
+ Aws::DynamoDB::EndpointParameters.create(
126
+ context.config,
127
+ resource_arn: context.params[:export_arn],
128
+ )
129
+ end
130
+ end
131
+
132
+ class DescribeGlobalTable
133
+ def self.build(context)
134
+ Aws::DynamoDB::EndpointParameters.create(
135
+ context.config,
136
+ resource_arn: context.params[:global_table_name],
137
+ )
138
+ end
139
+ end
140
+
141
+ class DescribeGlobalTableSettings
142
+ def self.build(context)
143
+ Aws::DynamoDB::EndpointParameters.create(
144
+ context.config,
145
+ resource_arn: context.params[:global_table_name],
146
+ )
147
+ end
148
+ end
149
+
150
+ class DescribeImport
151
+ def self.build(context)
152
+ Aws::DynamoDB::EndpointParameters.create(
153
+ context.config,
154
+ resource_arn: context.params[:import_arn],
155
+ )
156
+ end
157
+ end
158
+
159
+ class DescribeKinesisStreamingDestination
160
+ def self.build(context)
161
+ Aws::DynamoDB::EndpointParameters.create(
162
+ context.config,
163
+ resource_arn: context.params[:table_name],
164
+ )
165
+ end
166
+ end
167
+
168
+ class DescribeTable
169
+ def self.build(context)
170
+ Aws::DynamoDB::EndpointParameters.create(
171
+ context.config,
172
+ resource_arn: context.params[:table_name],
173
+ )
174
+ end
175
+ end
176
+
177
+ class DescribeTableReplicaAutoScaling
178
+ def self.build(context)
179
+ Aws::DynamoDB::EndpointParameters.create(
180
+ context.config,
181
+ resource_arn: context.params[:table_name],
182
+ )
183
+ end
184
+ end
185
+
186
+ class DescribeTimeToLive
187
+ def self.build(context)
188
+ Aws::DynamoDB::EndpointParameters.create(
189
+ context.config,
190
+ resource_arn: context.params[:table_name],
191
+ )
192
+ end
193
+ end
194
+
195
+ class DisableKinesisStreamingDestination
196
+ def self.build(context)
197
+ Aws::DynamoDB::EndpointParameters.create(
198
+ context.config,
199
+ resource_arn: context.params[:table_name],
200
+ )
201
+ end
202
+ end
203
+
204
+ class EnableKinesisStreamingDestination
205
+ def self.build(context)
206
+ Aws::DynamoDB::EndpointParameters.create(
207
+ context.config,
208
+ resource_arn: context.params[:table_name],
209
+ )
210
+ end
211
+ end
212
+
213
+ class ExportTableToPointInTime
214
+ def self.build(context)
215
+ Aws::DynamoDB::EndpointParameters.create(
216
+ context.config,
217
+ resource_arn: context.params[:table_arn],
218
+ )
219
+ end
220
+ end
221
+
222
+ class GetItem
223
+ def self.build(context)
224
+ Aws::DynamoDB::EndpointParameters.create(
225
+ context.config,
226
+ resource_arn: context.params[:table_name],
227
+ )
228
+ end
229
+ end
230
+
231
+ class GetResourcePolicy
232
+ def self.build(context)
233
+ Aws::DynamoDB::EndpointParameters.create(
234
+ context.config,
235
+ resource_arn: context.params[:resource_arn],
236
+ )
237
+ end
238
+ end
239
+
240
+ class ImportTable
241
+ def self.build(context)
242
+ Aws::DynamoDB::EndpointParameters.create(
243
+ context.config,
244
+ resource_arn: JMESPath.search("table_creation_parameters.table_name", context.params),
245
+ )
246
+ end
247
+ end
248
+
249
+ class ListBackups
250
+ def self.build(context)
251
+ Aws::DynamoDB::EndpointParameters.create(
252
+ context.config,
253
+ resource_arn: context.params[:table_name],
254
+ )
255
+ end
256
+ end
257
+
258
+ class ListContributorInsights
259
+ def self.build(context)
260
+ Aws::DynamoDB::EndpointParameters.create(
261
+ context.config,
262
+ resource_arn: context.params[:table_name],
263
+ )
264
+ end
265
+ end
266
+
267
+ class ListExports
268
+ def self.build(context)
269
+ Aws::DynamoDB::EndpointParameters.create(
270
+ context.config,
271
+ resource_arn: context.params[:table_arn],
272
+ )
273
+ end
274
+ end
275
+
276
+ class ListImports
277
+ def self.build(context)
278
+ Aws::DynamoDB::EndpointParameters.create(
279
+ context.config,
280
+ resource_arn: context.params[:table_arn],
281
+ )
282
+ end
283
+ end
284
+
285
+ class ListTagsOfResource
286
+ def self.build(context)
287
+ Aws::DynamoDB::EndpointParameters.create(
288
+ context.config,
289
+ resource_arn: context.params[:resource_arn],
290
+ )
291
+ end
292
+ end
293
+
294
+ class PutItem
295
+ def self.build(context)
296
+ Aws::DynamoDB::EndpointParameters.create(
297
+ context.config,
298
+ resource_arn: context.params[:table_name],
299
+ )
300
+ end
301
+ end
302
+
303
+ class PutResourcePolicy
304
+ def self.build(context)
305
+ Aws::DynamoDB::EndpointParameters.create(
306
+ context.config,
307
+ resource_arn: context.params[:resource_arn],
308
+ )
309
+ end
310
+ end
311
+
312
+ class Query
313
+ def self.build(context)
314
+ Aws::DynamoDB::EndpointParameters.create(
315
+ context.config,
316
+ resource_arn: context.params[:table_name],
317
+ )
318
+ end
319
+ end
320
+
321
+ class RestoreTableFromBackup
322
+ def self.build(context)
323
+ Aws::DynamoDB::EndpointParameters.create(
324
+ context.config,
325
+ resource_arn: context.params[:target_table_name],
326
+ )
327
+ end
328
+ end
329
+
330
+ class RestoreTableToPointInTime
331
+ def self.build(context)
332
+ Aws::DynamoDB::EndpointParameters.create(
333
+ context.config,
334
+ resource_arn: context.params[:target_table_name],
335
+ )
336
+ end
337
+ end
338
+
339
+ class Scan
340
+ def self.build(context)
341
+ Aws::DynamoDB::EndpointParameters.create(
342
+ context.config,
343
+ resource_arn: context.params[:table_name],
344
+ )
345
+ end
346
+ end
347
+
348
+ class TagResource
349
+ def self.build(context)
350
+ Aws::DynamoDB::EndpointParameters.create(
351
+ context.config,
352
+ resource_arn: context.params[:resource_arn],
353
+ )
354
+ end
355
+ end
356
+
357
+ class TransactGetItems
358
+ def self.build(context)
359
+ Aws::DynamoDB::EndpointParameters.create(
360
+ context.config,
361
+ resource_arn_list: JMESPath.search("transact_items[*].get.table_name", context.params),
362
+ )
363
+ end
364
+ end
365
+
366
+ class UntagResource
367
+ def self.build(context)
368
+ Aws::DynamoDB::EndpointParameters.create(
369
+ context.config,
370
+ resource_arn: context.params[:resource_arn],
371
+ )
372
+ end
373
+ end
374
+
375
+ class UpdateContinuousBackups
376
+ def self.build(context)
377
+ Aws::DynamoDB::EndpointParameters.create(
378
+ context.config,
379
+ resource_arn: context.params[:table_name],
380
+ )
381
+ end
382
+ end
383
+
384
+ class UpdateContributorInsights
385
+ def self.build(context)
386
+ Aws::DynamoDB::EndpointParameters.create(
387
+ context.config,
388
+ resource_arn: context.params[:table_name],
389
+ )
390
+ end
391
+ end
392
+
393
+ class UpdateGlobalTable
394
+ def self.build(context)
395
+ Aws::DynamoDB::EndpointParameters.create(
396
+ context.config,
397
+ resource_arn: context.params[:global_table_name],
398
+ )
399
+ end
400
+ end
401
+
402
+ class UpdateGlobalTableSettings
403
+ def self.build(context)
404
+ Aws::DynamoDB::EndpointParameters.create(
405
+ context.config,
406
+ resource_arn: context.params[:global_table_name],
407
+ )
408
+ end
409
+ end
410
+
411
+ class UpdateItem
412
+ def self.build(context)
413
+ Aws::DynamoDB::EndpointParameters.create(
414
+ context.config,
415
+ resource_arn: context.params[:table_name],
416
+ )
417
+ end
418
+ end
419
+
420
+ class UpdateKinesisStreamingDestination
421
+ def self.build(context)
422
+ Aws::DynamoDB::EndpointParameters.create(
423
+ context.config,
424
+ resource_arn: context.params[:table_name],
425
+ )
426
+ end
427
+ end
428
+
429
+ class UpdateTable
430
+ def self.build(context)
431
+ Aws::DynamoDB::EndpointParameters.create(
432
+ context.config,
433
+ resource_arn: context.params[:table_name],
434
+ )
435
+ end
436
+ end
437
+
438
+ class UpdateTableReplicaAutoScaling
439
+ def self.build(context)
440
+ Aws::DynamoDB::EndpointParameters.create(
441
+ context.config,
442
+ resource_arn: context.params[:table_name],
443
+ )
444
+ end
445
+ end
446
+
447
+ class UpdateTimeToLive
448
+ def self.build(context)
449
+ Aws::DynamoDB::EndpointParameters.create(
450
+ context.config,
451
+ resource_arn: context.params[:table_name],
452
+ )
453
+ end
454
+ end
455
+
15
456
 
16
457
  def self.parameters_for_operation(context)
17
- Aws::DynamoDB::EndpointParameters.create(context.config)
458
+ case context.operation_name
459
+ when :batch_get_item
460
+ BatchGetItem.build(context)
461
+ when :batch_write_item
462
+ BatchWriteItem.build(context)
463
+ when :create_backup
464
+ CreateBackup.build(context)
465
+ when :create_global_table
466
+ CreateGlobalTable.build(context)
467
+ when :create_table
468
+ CreateTable.build(context)
469
+ when :delete_backup
470
+ DeleteBackup.build(context)
471
+ when :delete_item
472
+ DeleteItem.build(context)
473
+ when :delete_resource_policy
474
+ DeleteResourcePolicy.build(context)
475
+ when :delete_table
476
+ DeleteTable.build(context)
477
+ when :describe_backup
478
+ DescribeBackup.build(context)
479
+ when :describe_continuous_backups
480
+ DescribeContinuousBackups.build(context)
481
+ when :describe_contributor_insights
482
+ DescribeContributorInsights.build(context)
483
+ when :describe_export
484
+ DescribeExport.build(context)
485
+ when :describe_global_table
486
+ DescribeGlobalTable.build(context)
487
+ when :describe_global_table_settings
488
+ DescribeGlobalTableSettings.build(context)
489
+ when :describe_import
490
+ DescribeImport.build(context)
491
+ when :describe_kinesis_streaming_destination
492
+ DescribeKinesisStreamingDestination.build(context)
493
+ when :describe_table
494
+ DescribeTable.build(context)
495
+ when :describe_table_replica_auto_scaling
496
+ DescribeTableReplicaAutoScaling.build(context)
497
+ when :describe_time_to_live
498
+ DescribeTimeToLive.build(context)
499
+ when :disable_kinesis_streaming_destination
500
+ DisableKinesisStreamingDestination.build(context)
501
+ when :enable_kinesis_streaming_destination
502
+ EnableKinesisStreamingDestination.build(context)
503
+ when :export_table_to_point_in_time
504
+ ExportTableToPointInTime.build(context)
505
+ when :get_item
506
+ GetItem.build(context)
507
+ when :get_resource_policy
508
+ GetResourcePolicy.build(context)
509
+ when :import_table
510
+ ImportTable.build(context)
511
+ when :list_backups
512
+ ListBackups.build(context)
513
+ when :list_contributor_insights
514
+ ListContributorInsights.build(context)
515
+ when :list_exports
516
+ ListExports.build(context)
517
+ when :list_imports
518
+ ListImports.build(context)
519
+ when :list_tags_of_resource
520
+ ListTagsOfResource.build(context)
521
+ when :put_item
522
+ PutItem.build(context)
523
+ when :put_resource_policy
524
+ PutResourcePolicy.build(context)
525
+ when :query
526
+ Query.build(context)
527
+ when :restore_table_from_backup
528
+ RestoreTableFromBackup.build(context)
529
+ when :restore_table_to_point_in_time
530
+ RestoreTableToPointInTime.build(context)
531
+ when :scan
532
+ Scan.build(context)
533
+ when :tag_resource
534
+ TagResource.build(context)
535
+ when :transact_get_items
536
+ TransactGetItems.build(context)
537
+ when :untag_resource
538
+ UntagResource.build(context)
539
+ when :update_continuous_backups
540
+ UpdateContinuousBackups.build(context)
541
+ when :update_contributor_insights
542
+ UpdateContributorInsights.build(context)
543
+ when :update_global_table
544
+ UpdateGlobalTable.build(context)
545
+ when :update_global_table_settings
546
+ UpdateGlobalTableSettings.build(context)
547
+ when :update_item
548
+ UpdateItem.build(context)
549
+ when :update_kinesis_streaming_destination
550
+ UpdateKinesisStreamingDestination.build(context)
551
+ when :update_table
552
+ UpdateTable.build(context)
553
+ when :update_table_replica_auto_scaling
554
+ UpdateTableReplicaAutoScaling.build(context)
555
+ when :update_time_to_live
556
+ UpdateTimeToLive.build(context)
557
+ else
558
+ Aws::DynamoDB::EndpointParameters.create(context.config)
559
+ end
18
560
  end
19
561
  end
20
562
  end
@@ -4,25 +4,49 @@ module Aws
4
4
  module DynamoDB
5
5
  module Plugins
6
6
  class ExtendedRetries < Seahorse::Client::Plugin
7
+ DEFAULT_BACKOFF = lambda do |c|
8
+ return unless c.retries > 1
7
9
 
8
- option(:retry_limit,
10
+ delay = 2**(c.retries - 1) * c.config.retry_base_delay
11
+ if (c.config.retry_max_delay || 0) > 0
12
+ delay = [delay, c.config.retry_max_delay].min
13
+ end
14
+ jitter = c.config.retry_jitter
15
+ jitter = Aws::Plugins::RetryErrors::JITTERS[jitter] if jitter.is_a?(Symbol)
16
+ delay = jitter.call(delay) if jitter
17
+ Kernel.sleep(delay)
18
+ end
19
+
20
+ option(
21
+ :retry_limit,
9
22
  default: 10,
10
- required: false,
11
23
  doc_type: Integer,
12
24
  docstring: <<-DOCS)
13
25
  The maximum number of times to retry failed requests. Only
14
26
  ~ 500 level server errors and certain ~ 400 level client errors
15
27
  are retried. Generally, these are throttling errors, data
16
- checksum errors, networking errors, timeout errors and auth
17
- errors from expired credentials.
18
- DOCS
28
+ checksum errors, networking errors, timeout errors, auth errors,
29
+ endpoint discovery, and errors from expired credentials.
30
+ This option is only used in the `legacy` retry mode.
31
+ DOCS
19
32
 
20
- option(:retry_backoff, default: lambda { |context|
21
- if context.retries > 1
22
- Kernel.sleep(50 * (2 ** (context.retries - 1)) / 1000.0)
23
- end
24
- })
33
+ option(
34
+ :retry_base_delay,
35
+ default: 0.05,
36
+ doc_type: Float,
37
+ docstring: <<-DOCS)
38
+ The base delay in seconds used by the default backoff function. This option
39
+ is only used in the `legacy` retry mode.
40
+ DOCS
25
41
 
42
+ option(
43
+ :retry_backoff,
44
+ default: DEFAULT_BACKOFF,
45
+ doc_type: Proc,
46
+ docstring: <<-DOCS)
47
+ A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
48
+ This option is only used in the `legacy` retry mode.
49
+ DOCS
26
50
  end
27
51
  end
28
52
  end
@@ -422,7 +422,11 @@ module Aws::DynamoDB
422
422
  # attributes provided in `NonKeyAttributes`, summed across all of
423
423
  # the secondary indexes, must not exceed 100. If you project the
424
424
  # same attribute into two different indexes, this counts as two
425
- # distinct attributes when determining the total.
425
+ # distinct attributes when determining the total. This limit only
426
+ # applies when you specify the ProjectionType of `INCLUDE`. You
427
+ # still can specify the ProjectionType of `ALL` to project all
428
+ # attributes from the source table, even if the table has more than
429
+ # 100 attributes.
426
430
  # @option options [Array<Types::GlobalSecondaryIndex>] :global_secondary_indexes
427
431
  # One or more global secondary indexes (the maximum is 20) to be created
428
432
  # on the table. Each global secondary index in the array includes the
@@ -457,7 +461,11 @@ module Aws::DynamoDB
457
461
  # attributes provided in `NonKeyAttributes`, summed across all of
458
462
  # the secondary indexes, must not exceed 100. If you project the
459
463
  # same attribute into two different indexes, this counts as two
460
- # distinct attributes when determining the total.
464
+ # distinct attributes when determining the total. This limit only
465
+ # applies when you specify the ProjectionType of `INCLUDE`. You
466
+ # still can specify the ProjectionType of `ALL` to project all
467
+ # attributes from the source table, even if the table has more than
468
+ # 100 attributes.
461
469
  # * `ProvisionedThroughput` - The provisioned throughput settings for
462
470
  # the global secondary index, consisting of read and write capacity
463
471
  # units.
@@ -465,18 +473,19 @@ module Aws::DynamoDB
465
473
  # Controls how you are charged for read and write throughput and how you
466
474
  # manage capacity. This setting can be changed later.
467
475
  #
468
- # * `PROVISIONED` - We recommend using `PROVISIONED` for predictable
469
- # workloads. `PROVISIONED` sets the billing mode to [Provisioned
470
- # capacity mode][1].
476
+ # * `PAY_PER_REQUEST` - We recommend using `PAY_PER_REQUEST` for most
477
+ # DynamoDB workloads. `PAY_PER_REQUEST` sets the billing mode to
478
+ # [On-demand capacity mode][1].
471
479
  #
472
- # * `PAY_PER_REQUEST` - We recommend using `PAY_PER_REQUEST` for
473
- # unpredictable workloads. `PAY_PER_REQUEST` sets the billing mode to
474
- # [On-demand capacity mode][2].
480
+ # * `PROVISIONED` - We recommend using `PROVISIONED` for steady
481
+ # workloads with predictable growth where capacity requirements can be
482
+ # reliably forecasted. `PROVISIONED` sets the billing mode to
483
+ # [Provisioned capacity mode][2].
475
484
  #
476
485
  #
477
486
  #
478
- # [1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html
479
- # [2]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html
487
+ # [1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html
488
+ # [2]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html
480
489
  # @option options [Types::ProvisionedThroughput] :provisioned_throughput
481
490
  # Represents the provisioned throughput settings for a specified table
482
491
  # or index. The settings can be modified using the `UpdateTable`