fake_dynamo 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color --backtrace
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
3
+
4
+ group :development do
5
+ gem 'rspec'
6
+ gem 'rack-test'
7
+ gem 'pry'
8
+ gem 'simplecov'
9
+ gem 'guard-rspec'
10
+ gem 'growl'
11
+ end
data/Guardfile ADDED
@@ -0,0 +1,19 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ watch('config/routes.rb') { "spec/routing" }
15
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+ # Capybara request specs
17
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
18
+ end
19
+
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Anantha Kumaran
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ # FakeDynamo
2
+
3
+ local hosted, inmemory fake dynamodb
4
+
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
data/bin/fake_dynamo ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
3
+
4
+ require 'fake_dynamo'
5
+ require 'optparse'
6
+
7
+ options = {:port => 4567}
8
+ OptionParser.new do |opts|
9
+ opts.banner = "Usage: fake_dynamo [options]"
10
+
11
+ opts.on("-p", "--port PORT") do |v|
12
+ options[:port] = v
13
+ end
14
+ end.parse!
15
+
16
+ FakeDynamo::Storage.instance.load_aof
17
+ FakeDynamo::Server.run!(:port => options[:port])
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/fake_dynamo/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Anantha Kumaran"]
6
+ gem.email = ["ananthakumaran@gmail.com"]
7
+ gem.summary = "local hosted, inmemory fake dynamodb"
8
+
9
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
10
+ gem.files = `git ls-files`.split("\n")
11
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
12
+ gem.name = "fake_dynamo"
13
+ gem.require_paths = ["lib"]
14
+ gem.version = FakeDynamo::VERSION
15
+
16
+ gem.add_dependency 'sinatra'
17
+ gem.add_dependency 'activesupport'
18
+ end
@@ -0,0 +1,20 @@
1
+ require 'fake_dynamo/version'
2
+ require 'json'
3
+ require 'active_support/inflector'
4
+ require 'active_support/core_ext/class/attribute'
5
+ require 'fake_dynamo/exceptions'
6
+ require 'fake_dynamo/validation'
7
+ require 'fake_dynamo/filter'
8
+ require 'fake_dynamo/attribute'
9
+ require 'fake_dynamo/key_schema'
10
+ require 'fake_dynamo/item'
11
+ require 'fake_dynamo/key'
12
+ require 'fake_dynamo/table'
13
+ require 'fake_dynamo/db'
14
+ require 'fake_dynamo/storage'
15
+ require 'fake_dynamo/server'
16
+ require 'pp'
17
+
18
+ at_exit {
19
+ FakeDynamo::Storage.instance.shutdown
20
+ }
@@ -0,0 +1,734 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ ---
15
+ :operations:
16
+ GetItem:
17
+ :input:
18
+ TableName:
19
+ - :string
20
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
21
+ - :within: !ruby/range 3..255
22
+ - :required
23
+ Key:
24
+ - :structure:
25
+ HashKeyElement:
26
+ - :structure:
27
+ S:
28
+ - :string
29
+ N:
30
+ - :string
31
+ SS:
32
+ - :list:
33
+ - :string
34
+ NS:
35
+ - :list:
36
+ - :string
37
+ - :required
38
+ RangeKeyElement:
39
+ - :structure:
40
+ S:
41
+ - :string
42
+ N:
43
+ - :string
44
+ SS:
45
+ - :list:
46
+ - :string
47
+ NS:
48
+ - :list:
49
+ - :string
50
+ - :required
51
+ AttributesToGet:
52
+ - :list:
53
+ - :string
54
+ ConsistentRead:
55
+ - :boolean
56
+ :output:
57
+ - Item:
58
+ - :map:
59
+ - entry
60
+ - key
61
+ - value
62
+ - entry:
63
+ - value:
64
+ - SS:
65
+ - :list: member
66
+ - NS:
67
+ - :list: member
68
+ - ConsumedCapacityUnits:
69
+ - :float
70
+ BatchGetItem:
71
+ :input:
72
+ RequestItems:
73
+ - :map:
74
+ :key:
75
+ - :string
76
+ :value:
77
+ - :structure:
78
+ Keys:
79
+ - :list:
80
+ - :structure:
81
+ HashKeyElement:
82
+ - :structure:
83
+ S:
84
+ - :string
85
+ N:
86
+ - :string
87
+ SS:
88
+ - :list:
89
+ - :string
90
+ NS:
91
+ - :list:
92
+ - :string
93
+ - :required
94
+ RangeKeyElement:
95
+ - :structure:
96
+ S:
97
+ - :string
98
+ N:
99
+ - :string
100
+ SS:
101
+ - :list:
102
+ - :string
103
+ NS:
104
+ - :list:
105
+ - :string
106
+ - :required
107
+ AttributesToGet:
108
+ - :list:
109
+ - :string
110
+ - :required
111
+ :output:
112
+ - Responses:
113
+ - :map:
114
+ - entry
115
+ - key
116
+ - value
117
+ - entry:
118
+ - value:
119
+ - Items:
120
+ - :list: member
121
+ - member:
122
+ - :map:
123
+ - entry
124
+ - key
125
+ - value
126
+ - entry:
127
+ - value:
128
+ - SS:
129
+ - :list: member
130
+ - NS:
131
+ - :list: member
132
+ - ConsumedCapacityUnits:
133
+ - :float
134
+ - UnprocessedKeys:
135
+ - :map:
136
+ - entry
137
+ - key
138
+ - value
139
+ - entry:
140
+ - value:
141
+ - Keys:
142
+ - :list: member
143
+ - member:
144
+ - HashKeyElement:
145
+ - SS:
146
+ - :list: member
147
+ - NS:
148
+ - :list: member
149
+ - RangeKeyElement:
150
+ - SS:
151
+ - :list: member
152
+ - NS:
153
+ - :list: member
154
+ - AttributesToGet:
155
+ - :list: member
156
+ PutItem:
157
+ :input:
158
+ TableName:
159
+ - :string
160
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
161
+ - :within: !ruby/range 3..255
162
+ - :required
163
+ Item:
164
+ - :map:
165
+ :key:
166
+ - :string
167
+ :value:
168
+ - :structure:
169
+ S:
170
+ - :string
171
+ N:
172
+ - :string
173
+ SS:
174
+ - :list:
175
+ - :string
176
+ NS:
177
+ - :list:
178
+ - :string
179
+ - :required
180
+ Expected:
181
+ - :map:
182
+ :key:
183
+ - :string
184
+ :value:
185
+ - :structure:
186
+ Value:
187
+ - :structure:
188
+ S:
189
+ - :string
190
+ N:
191
+ - :string
192
+ SS:
193
+ - :list:
194
+ - :string
195
+ NS:
196
+ - :list:
197
+ - :string
198
+ Exists:
199
+ - :boolean
200
+ ReturnValues:
201
+ - :string
202
+ - :enum: [ALL_NEW, UPDATED_OLD, ALL_OLD, NONE, UPDATED_NEW]
203
+ :output:
204
+ - Attributes:
205
+ - :map:
206
+ - entry
207
+ - key
208
+ - value
209
+ - entry:
210
+ - value:
211
+ - SS:
212
+ - :list: member
213
+ - NS:
214
+ - :list: member
215
+ - ConsumedCapacityUnits:
216
+ - :float
217
+ DeleteItem:
218
+ :input:
219
+ TableName:
220
+ - :string
221
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
222
+ - :within: !ruby/range 3..255
223
+ - :required
224
+ Key:
225
+ - :structure:
226
+ HashKeyElement:
227
+ - :structure:
228
+ S:
229
+ - :string
230
+ N:
231
+ - :string
232
+ SS:
233
+ - :list:
234
+ - :string
235
+ NS:
236
+ - :list:
237
+ - :string
238
+ - :required
239
+ RangeKeyElement:
240
+ - :structure:
241
+ S:
242
+ - :string
243
+ N:
244
+ - :string
245
+ SS:
246
+ - :list:
247
+ - :string
248
+ NS:
249
+ - :list:
250
+ - :string
251
+ - :required
252
+ Expected:
253
+ - :map:
254
+ :key:
255
+ - :string
256
+ :value:
257
+ - :structure:
258
+ Value:
259
+ - :structure:
260
+ S:
261
+ - :string
262
+ N:
263
+ - :string
264
+ SS:
265
+ - :list:
266
+ - :string
267
+ NS:
268
+ - :list:
269
+ - :string
270
+ Exists:
271
+ - :boolean
272
+ ReturnValues:
273
+ - :string
274
+ - :enum: [ALL_NEW, UPDATED_OLD, ALL_OLD, NONE, UPDATED_NEW]
275
+ :output:
276
+ - Attributes:
277
+ - :map:
278
+ - entry
279
+ - key
280
+ - value
281
+ - entry:
282
+ - value:
283
+ - SS:
284
+ - :list: member
285
+ - NS:
286
+ - :list: member
287
+ - ConsumedCapacityUnits:
288
+ - :float
289
+ UpdateItem:
290
+ :input:
291
+ TableName:
292
+ - :string
293
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
294
+ - :within: !ruby/range 3..255
295
+ - :required
296
+ Key:
297
+ - :structure:
298
+ HashKeyElement:
299
+ - :structure:
300
+ S:
301
+ - :string
302
+ N:
303
+ - :string
304
+ SS:
305
+ - :list:
306
+ - :string
307
+ NS:
308
+ - :list:
309
+ - :string
310
+ - :required
311
+ RangeKeyElement:
312
+ - :structure:
313
+ S:
314
+ - :string
315
+ N:
316
+ - :string
317
+ SS:
318
+ - :list:
319
+ - :string
320
+ NS:
321
+ - :list:
322
+ - :string
323
+ - :required
324
+ AttributeUpdates:
325
+ - :map:
326
+ :key:
327
+ - :string
328
+ :value:
329
+ - :structure:
330
+ Value:
331
+ - :structure:
332
+ S:
333
+ - :string
334
+ N:
335
+ - :string
336
+ SS:
337
+ - :list:
338
+ - :string
339
+ NS:
340
+ - :list:
341
+ - :string
342
+ Action:
343
+ - :string
344
+ - :required
345
+ Expected:
346
+ - :map:
347
+ :key:
348
+ - :string
349
+ :value:
350
+ - :structure:
351
+ Value:
352
+ - :structure:
353
+ S:
354
+ - :string
355
+ N:
356
+ - :string
357
+ SS:
358
+ - :list:
359
+ - :string
360
+ NS:
361
+ - :list:
362
+ - :string
363
+ Exists:
364
+ - :boolean
365
+ ReturnValues:
366
+ - :string
367
+ - :enum: [ALL_NEW, UPDATED_OLD, ALL_OLD, NONE, UPDATED_NEW]
368
+ :output:
369
+ - Attributes:
370
+ - :map:
371
+ - entry
372
+ - key
373
+ - value
374
+ - entry:
375
+ - value:
376
+ - SS:
377
+ - :list: member
378
+ - NS:
379
+ - :list: member
380
+ - ConsumedCapacityUnits:
381
+ - :float
382
+ CreateTable:
383
+ :input:
384
+ TableName:
385
+ - :string
386
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
387
+ - :within: !ruby/range 3..255
388
+ - :required
389
+ KeySchema:
390
+ - :structure:
391
+ HashKeyElement:
392
+ - :structure:
393
+ AttributeName:
394
+ - :string
395
+ - :required
396
+ AttributeType:
397
+ - :string
398
+ - :required
399
+ - :required
400
+ RangeKeyElement:
401
+ - :structure:
402
+ AttributeName:
403
+ - :string
404
+ - :required
405
+ AttributeType:
406
+ - :string
407
+ - :required
408
+ - :required
409
+ ProvisionedThroughput:
410
+ - :structure:
411
+ ReadCapacityUnits:
412
+ - :long
413
+ - :required
414
+ WriteCapacityUnits:
415
+ - :long
416
+ - :required
417
+ - :required
418
+ :output:
419
+ - TableDescription:
420
+ - CreationDateTime:
421
+ - :timestamp
422
+ - ProvisionedThroughput:
423
+ - LastIncreaseDateTime:
424
+ - :timestamp
425
+ - LastDecreaseDateTime:
426
+ - :timestamp
427
+ - ReadCapacityUnits:
428
+ - :long
429
+ - WriteCapacityUnits:
430
+ - :long
431
+ - TableSizeBytes:
432
+ - :long
433
+ - ItemCount:
434
+ - :long
435
+ UpdateTable:
436
+ :input:
437
+ TableName:
438
+ - :string
439
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
440
+ - :within: !ruby/range 3..255
441
+ - :required
442
+ ProvisionedThroughput:
443
+ - :structure:
444
+ ReadCapacityUnits:
445
+ - :long
446
+ - :required
447
+ WriteCapacityUnits:
448
+ - :long
449
+ - :required
450
+ - :required
451
+ :output:
452
+ - TableDescription:
453
+ - CreationDateTime:
454
+ - :timestamp
455
+ - ProvisionedThroughput:
456
+ - LastIncreaseDateTime:
457
+ - :timestamp
458
+ - LastDecreaseDateTime:
459
+ - :timestamp
460
+ - ReadCapacityUnits:
461
+ - :long
462
+ - WriteCapacityUnits:
463
+ - :long
464
+ - TableSizeBytes:
465
+ - :long
466
+ - ItemCount:
467
+ - :long
468
+ DeleteTable:
469
+ :input:
470
+ TableName:
471
+ - :string
472
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
473
+ - :within: !ruby/range 3..255
474
+ - :required
475
+ :output:
476
+ - TableDescription:
477
+ - CreationDateTime:
478
+ - :timestamp
479
+ - ProvisionedThroughput:
480
+ - LastIncreaseDateTime:
481
+ - :timestamp
482
+ - LastDecreaseDateTime:
483
+ - :timestamp
484
+ - ReadCapacityUnits:
485
+ - :long
486
+ - WriteCapacityUnits:
487
+ - :long
488
+ - TableSizeBytes:
489
+ - :long
490
+ - ItemCount:
491
+ - :long
492
+ DescribeTable:
493
+ :input:
494
+ TableName:
495
+ - :string
496
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
497
+ - :within: !ruby/range 3..255
498
+ - :required
499
+ :output:
500
+ - Table:
501
+ - CreationDateTime:
502
+ - :timestamp
503
+ - ProvisionedThroughput:
504
+ - LastIncreaseDateTime:
505
+ - :timestamp
506
+ - LastDecreaseDateTime:
507
+ - :timestamp
508
+ - ReadCapacityUnits:
509
+ - :long
510
+ - WriteCapacityUnits:
511
+ - :long
512
+ - TableSizeBytes:
513
+ - :long
514
+ - ItemCount:
515
+ - :long
516
+ ListTables:
517
+ :input:
518
+ ExclusiveStartTableName:
519
+ - :string
520
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
521
+ Limit:
522
+ - :integer
523
+ :output:
524
+ - TableNames:
525
+ - :list: member
526
+ Scan:
527
+ :input:
528
+ TableName:
529
+ - :string
530
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
531
+ - :required
532
+ AttributesToGet:
533
+ - :list:
534
+ - :string
535
+ Limit:
536
+ - :integer
537
+ Count:
538
+ - :boolean
539
+ ScanFilter:
540
+ - :map:
541
+ :key:
542
+ - :string
543
+ :value:
544
+ - :structure:
545
+ AttributeValueList:
546
+ - :list:
547
+ - :structure:
548
+ S:
549
+ - :string
550
+ N:
551
+ - :string
552
+ SS:
553
+ - :list:
554
+ - :string
555
+ NS:
556
+ - :list:
557
+ - :string
558
+ ComparisonOperator:
559
+ - :string
560
+ - :enum: [EQ, NE, LE, LT, GE, GT, NOT_NULL, NULL, CONTAINS, NOT_CONTAINS, BEGINS_WITH, IN, BETWEEN]
561
+ ExclusiveStartKey:
562
+ - :structure:
563
+ HashKeyElement:
564
+ - :structure:
565
+ S:
566
+ - :string
567
+ N:
568
+ - :string
569
+ SS:
570
+ - :list:
571
+ - :string
572
+ NS:
573
+ - :list:
574
+ - :string
575
+ - :required
576
+ RangeKeyElement:
577
+ - :structure:
578
+ S:
579
+ - :string
580
+ N:
581
+ - :string
582
+ SS:
583
+ - :list:
584
+ - :string
585
+ NS:
586
+ - :list:
587
+ - :string
588
+ :output:
589
+ - Items:
590
+ - :list: member
591
+ - member:
592
+ - :map:
593
+ - entry
594
+ - key
595
+ - value
596
+ - entry:
597
+ - value:
598
+ - SS:
599
+ - :list: member
600
+ - NS:
601
+ - :list: member
602
+ - Count:
603
+ - :integer
604
+ - ScannedCount:
605
+ - :integer
606
+ - LastEvaluatedKey:
607
+ - HashKeyElement:
608
+ - SS:
609
+ - :list: member
610
+ - NS:
611
+ - :list: member
612
+ - RangeKeyElement:
613
+ - SS:
614
+ - :list: member
615
+ - NS:
616
+ - :list: member
617
+ - ConsumedCapacityUnits:
618
+ - :float
619
+ Query:
620
+ :input:
621
+ TableName:
622
+ - :string
623
+ - :pattern: !ruby/regexp /[a-zA-Z0-9_.-]+/
624
+ - :required
625
+ AttributesToGet:
626
+ - :list:
627
+ - :string
628
+ Limit:
629
+ - :integer
630
+ ConsistentRead:
631
+ - :boolean
632
+ Count:
633
+ - :boolean
634
+ HashKeyValue:
635
+ - :structure:
636
+ S:
637
+ - :string
638
+ N:
639
+ - :string
640
+ SS:
641
+ - :list:
642
+ - :string
643
+ NS:
644
+ - :list:
645
+ - :string
646
+ - :required
647
+ RangeKeyCondition:
648
+ - :structure:
649
+ AttributeValueList:
650
+ - :list:
651
+ - :structure:
652
+ S:
653
+ - :string
654
+ N:
655
+ - :string
656
+ SS:
657
+ - :list:
658
+ - :string
659
+ NS:
660
+ - :list:
661
+ - :string
662
+ ComparisonOperator:
663
+ - :string
664
+ - :enum: [EQ, LE, LT, GE, GT, BEGINS_WITH, BETWEEN]
665
+ ScanIndexForward:
666
+ - :boolean
667
+ ExclusiveStartKey:
668
+ - :structure:
669
+ HashKeyElement:
670
+ - :structure:
671
+ S:
672
+ - :string
673
+ N:
674
+ - :string
675
+ SS:
676
+ - :list:
677
+ - :string
678
+ NS:
679
+ - :list:
680
+ - :string
681
+ - :required
682
+ RangeKeyElement:
683
+ - :structure:
684
+ S:
685
+ - :string
686
+ N:
687
+ - :string
688
+ SS:
689
+ - :list:
690
+ - :string
691
+ NS:
692
+ - :list:
693
+ - :string
694
+ :output:
695
+ - Items:
696
+ - :list: member
697
+ - member:
698
+ - :map:
699
+ - entry
700
+ - key
701
+ - value
702
+ - entry:
703
+ - value:
704
+ - SS:
705
+ - :list: member
706
+ - NS:
707
+ - :list: member
708
+ - Count:
709
+ - :integer
710
+ - LastEvaluatedKey:
711
+ - HashKeyElement:
712
+ - SS:
713
+ - :list: member
714
+ - NS:
715
+ - :list: member
716
+ - RangeKeyElement:
717
+ - SS:
718
+ - :list: member
719
+ - NS:
720
+ - :list: member
721
+ - ConsumedCapacityUnits:
722
+ - :float
723
+ :client_errors:
724
+ ConditionalCheckFailed: []
725
+
726
+ ResourceInUseException: []
727
+
728
+ ResourceNotFoundException: []
729
+
730
+ LimitExceededException: []
731
+
732
+ ProvisionedThroughputExceededException: []
733
+
734
+ :server_errors: {}