aws-sdk-dynamodbstreams 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ # 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
+
@@ -0,0 +1,23 @@
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
+ module Aws
9
+ module DynamoDBStreams
10
+ module Errors
11
+
12
+ extend Aws::Errors::DynamicErrors
13
+
14
+ # Raised when calling #load or #data on a resource class that can not be
15
+ # loaded. This can happen when:
16
+ #
17
+ # * A resource class has identifiers, but no data attributes.
18
+ # * Resource data is only available when making an API call that
19
+ # enumerates all resources of that type.
20
+ class ResourceNotLoadable < RuntimeError; end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
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
+ module Aws
9
+ module DynamoDBStreams
10
+ class Resource
11
+
12
+ # @param options ({})
13
+ # @option options [Client] :client
14
+ def initialize(options = {})
15
+ @client = options[:client] || Client.new(options)
16
+ end
17
+
18
+ # @return [Client]
19
+ def client
20
+ @client
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,579 @@
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
+ module Aws
9
+ module DynamoDBStreams
10
+ module Types
11
+
12
+ # Represents the data for an attribute. You can set one, and only one,
13
+ # of the elements.
14
+ #
15
+ # Each attribute in an item is a name-value pair. An attribute can be
16
+ # single-valued or multi-valued set. For example, a book item can have
17
+ # title and authors attributes. Each book has one title but can have
18
+ # many authors. The multi-valued attribute is a set; duplicate values
19
+ # are not allowed.
20
+ # @!attribute [rw] s
21
+ # A String data type.
22
+ # @return [String]
23
+ #
24
+ # @!attribute [rw] n
25
+ # A Number data type.
26
+ # @return [String]
27
+ #
28
+ # @!attribute [rw] b
29
+ # A Binary data type.
30
+ # @return [String]
31
+ #
32
+ # @!attribute [rw] ss
33
+ # A String Set data type.
34
+ # @return [Array<String>]
35
+ #
36
+ # @!attribute [rw] ns
37
+ # A Number Set data type.
38
+ # @return [Array<String>]
39
+ #
40
+ # @!attribute [rw] bs
41
+ # A Binary Set data type.
42
+ # @return [Array<String>]
43
+ #
44
+ # @!attribute [rw] m
45
+ # A Map data type.
46
+ # @return [Hash<String,Types::AttributeValue>]
47
+ #
48
+ # @!attribute [rw] l
49
+ # A List data type.
50
+ # @return [Array<Types::AttributeValue>]
51
+ #
52
+ # @!attribute [rw] null
53
+ # A Null data type.
54
+ # @return [Boolean]
55
+ #
56
+ # @!attribute [rw] bool
57
+ # A Boolean data type.
58
+ # @return [Boolean]
59
+ class AttributeValue < Struct.new(
60
+ :s,
61
+ :n,
62
+ :b,
63
+ :ss,
64
+ :ns,
65
+ :bs,
66
+ :m,
67
+ :l,
68
+ :null,
69
+ :bool)
70
+ include Aws::Structure
71
+ end
72
+
73
+ # Represents the input of a *DescribeStream* operation.
74
+ # @note When making an API call, pass DescribeStreamInput
75
+ # data as a hash:
76
+ #
77
+ # {
78
+ # stream_arn: "StreamArn", # required
79
+ # limit: 1,
80
+ # exclusive_start_shard_id: "ShardId",
81
+ # }
82
+ # @!attribute [rw] stream_arn
83
+ # The Amazon Resource Name (ARN) for the stream.
84
+ # @return [String]
85
+ #
86
+ # @!attribute [rw] limit
87
+ # The maximum number of shard objects to return. The upper limit is
88
+ # 100.
89
+ # @return [Integer]
90
+ #
91
+ # @!attribute [rw] exclusive_start_shard_id
92
+ # The shard ID of the first item that this operation will evaluate.
93
+ # Use the value that was returned for `LastEvaluatedShardId` in the
94
+ # previous operation.
95
+ # @return [String]
96
+ class DescribeStreamInput < Struct.new(
97
+ :stream_arn,
98
+ :limit,
99
+ :exclusive_start_shard_id)
100
+ include Aws::Structure
101
+ end
102
+
103
+ # Represents the output of a *DescribeStream* operation.
104
+ # @!attribute [rw] stream_description
105
+ # A complete description of the stream, including its creation date
106
+ # and time, the DynamoDB table associated with the stream, the shard
107
+ # IDs within the stream, and the beginning and ending sequence numbers
108
+ # of stream records within the shards.
109
+ # @return [Types::StreamDescription]
110
+ class DescribeStreamOutput < Struct.new(
111
+ :stream_description)
112
+ include Aws::Structure
113
+ end
114
+
115
+ # Represents the input of a *GetRecords* operation.
116
+ # @note When making an API call, pass GetRecordsInput
117
+ # data as a hash:
118
+ #
119
+ # {
120
+ # shard_iterator: "ShardIterator", # required
121
+ # limit: 1,
122
+ # }
123
+ # @!attribute [rw] shard_iterator
124
+ # A shard iterator that was retrieved from a previous GetShardIterator
125
+ # operation. This iterator can be used to access the stream records in
126
+ # this shard.
127
+ # @return [String]
128
+ #
129
+ # @!attribute [rw] limit
130
+ # The maximum number of records to return from the shard. The upper
131
+ # limit is 1000.
132
+ # @return [Integer]
133
+ class GetRecordsInput < Struct.new(
134
+ :shard_iterator,
135
+ :limit)
136
+ include Aws::Structure
137
+ end
138
+
139
+ # Represents the output of a *GetRecords* operation.
140
+ # @!attribute [rw] records
141
+ # The stream records from the shard, which were retrieved using the
142
+ # shard iterator.
143
+ # @return [Array<Types::Record>]
144
+ #
145
+ # @!attribute [rw] next_shard_iterator
146
+ # The next position in the shard from which to start sequentially
147
+ # reading stream records. If set to `null`, the shard has been closed
148
+ # and the requested iterator will not return any more data.
149
+ # @return [String]
150
+ class GetRecordsOutput < Struct.new(
151
+ :records,
152
+ :next_shard_iterator)
153
+ include Aws::Structure
154
+ end
155
+
156
+ # Represents the input of a *GetShardIterator* operation.
157
+ # @note When making an API call, pass GetShardIteratorInput
158
+ # data as a hash:
159
+ #
160
+ # {
161
+ # stream_arn: "StreamArn", # required
162
+ # shard_id: "ShardId", # required
163
+ # shard_iterator_type: "TRIM_HORIZON", # required, accepts TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER
164
+ # sequence_number: "SequenceNumber",
165
+ # }
166
+ # @!attribute [rw] stream_arn
167
+ # The Amazon Resource Name (ARN) for the stream.
168
+ # @return [String]
169
+ #
170
+ # @!attribute [rw] shard_id
171
+ # The identifier of the shard. The iterator will be returned for this
172
+ # shard ID.
173
+ # @return [String]
174
+ #
175
+ # @!attribute [rw] shard_iterator_type
176
+ # Determines how the shard iterator is used to start reading stream
177
+ # records from the shard:
178
+ #
179
+ # * `AT_SEQUENCE_NUMBER` - Start reading exactly from the position
180
+ # denoted by a specific sequence number.
181
+ #
182
+ # * `AFTER_SEQUENCE_NUMBER` - Start reading right after the position
183
+ # denoted by a specific sequence number.
184
+ #
185
+ # * `TRIM_HORIZON` - Start reading at the last (untrimmed) stream
186
+ # record, which is the oldest record in the shard. In DynamoDB
187
+ # Streams, there is a 24 hour limit on data retention. Stream
188
+ # records whose age exceeds this limit are subject to removal
189
+ # (trimming) from the stream.
190
+ #
191
+ # * `LATEST` - Start reading just after the most recent stream record
192
+ # in the shard, so that you always read the most recent data in the
193
+ # shard.
194
+ # @return [String]
195
+ #
196
+ # @!attribute [rw] sequence_number
197
+ # The sequence number of a stream record in the shard from which to
198
+ # start reading.
199
+ # @return [String]
200
+ class GetShardIteratorInput < Struct.new(
201
+ :stream_arn,
202
+ :shard_id,
203
+ :shard_iterator_type,
204
+ :sequence_number)
205
+ include Aws::Structure
206
+ end
207
+
208
+ # Represents the output of a *GetShardIterator* operation.
209
+ # @!attribute [rw] shard_iterator
210
+ # The position in the shard from which to start reading stream records
211
+ # sequentially. A shard iterator specifies this position using the
212
+ # sequence number of a stream record in a shard.
213
+ # @return [String]
214
+ class GetShardIteratorOutput < Struct.new(
215
+ :shard_iterator)
216
+ include Aws::Structure
217
+ end
218
+
219
+ # Represents *a single element* of a key schema. A key schema specifies
220
+ # the attributes that make up the primary key of a table, or the key
221
+ # attributes of an index.
222
+ #
223
+ # A *KeySchemaElement* represents exactly one attribute of the primary
224
+ # key. For example, a simple primary key (partition key) would be
225
+ # represented by one *KeySchemaElement*. A composite primary key
226
+ # (partition key and sort key) would require one *KeySchemaElement* for
227
+ # the partition key, and another *KeySchemaElement* for the sort key.
228
+ #
229
+ # <note markdown="1"> The partition key of an item is also known as its *hash attribute*.
230
+ # The term "hash attribute" derives from DynamoDB's usage of an
231
+ # internal hash function to evenly distribute data items across
232
+ # partitions, based on their partition key values.
233
+ #
234
+ # The sort key of an item is also known as its *range attribute*. The
235
+ # term "range attribute" derives from the way DynamoDB stores items
236
+ # with the same partition key physically close together, in sorted order
237
+ # by the sort key value.
238
+ #
239
+ # </note>
240
+ # @!attribute [rw] attribute_name
241
+ # The name of a key attribute.
242
+ # @return [String]
243
+ #
244
+ # @!attribute [rw] key_type
245
+ # The attribute data, consisting of the data type and the attribute
246
+ # value itself.
247
+ # @return [String]
248
+ class KeySchemaElement < Struct.new(
249
+ :attribute_name,
250
+ :key_type)
251
+ include Aws::Structure
252
+ end
253
+
254
+ # Represents the input of a *ListStreams* operation.
255
+ # @note When making an API call, pass ListStreamsInput
256
+ # data as a hash:
257
+ #
258
+ # {
259
+ # table_name: "TableName",
260
+ # limit: 1,
261
+ # exclusive_start_stream_arn: "StreamArn",
262
+ # }
263
+ # @!attribute [rw] table_name
264
+ # If this parameter is provided, then only the streams associated with
265
+ # this table name are returned.
266
+ # @return [String]
267
+ #
268
+ # @!attribute [rw] limit
269
+ # The maximum number of streams to return. The upper limit is 100.
270
+ # @return [Integer]
271
+ #
272
+ # @!attribute [rw] exclusive_start_stream_arn
273
+ # The ARN (Amazon Resource Name) of the first item that this operation
274
+ # will evaluate. Use the value that was returned for
275
+ # `LastEvaluatedStreamArn` in the previous operation.
276
+ # @return [String]
277
+ class ListStreamsInput < Struct.new(
278
+ :table_name,
279
+ :limit,
280
+ :exclusive_start_stream_arn)
281
+ include Aws::Structure
282
+ end
283
+
284
+ # Represents the output of a *ListStreams* operation.
285
+ # @!attribute [rw] streams
286
+ # A list of stream descriptors associated with the current account and
287
+ # endpoint.
288
+ # @return [Array<Types::Stream>]
289
+ #
290
+ # @!attribute [rw] last_evaluated_stream_arn
291
+ # The stream ARN of the item where the operation stopped, inclusive of
292
+ # the previous result set. Use this value to start a new operation,
293
+ # excluding this value in the new request.
294
+ #
295
+ # If `LastEvaluatedStreamArn` is empty, then the "last page" of
296
+ # results has been processed and there is no more data to be
297
+ # retrieved.
298
+ #
299
+ # If `LastEvaluatedStreamArn` is not empty, it does not necessarily
300
+ # mean that there is more data in the result set. The only way to know
301
+ # when you have reached the end of the result set is when
302
+ # `LastEvaluatedStreamArn` is empty.
303
+ # @return [String]
304
+ class ListStreamsOutput < Struct.new(
305
+ :streams,
306
+ :last_evaluated_stream_arn)
307
+ include Aws::Structure
308
+ end
309
+
310
+ # A description of a unique event within a stream.
311
+ # @!attribute [rw] event_id
312
+ # A globally unique identifier for the event that was recorded in this
313
+ # stream record.
314
+ # @return [String]
315
+ #
316
+ # @!attribute [rw] event_name
317
+ # The type of data modification that was performed on the DynamoDB
318
+ # table:
319
+ #
320
+ # * `INSERT` - a new item was added to the table.
321
+ #
322
+ # * `MODIFY` - one or more of an existing item's attributes were
323
+ # modified.
324
+ #
325
+ # * `REMOVE` - the item was deleted from the table
326
+ # @return [String]
327
+ #
328
+ # @!attribute [rw] event_version
329
+ # The version number of the stream record format. This number is
330
+ # updated whenever the structure of *Record* is modified.
331
+ #
332
+ # Client applications must not assume that *eventVersion* will remain
333
+ # at a particular value, as this number is subject to change at any
334
+ # time. In general, *eventVersion* will only increase as the low-level
335
+ # DynamoDB Streams API evolves.
336
+ # @return [String]
337
+ #
338
+ # @!attribute [rw] event_source
339
+ # The AWS service from which the stream record originated. For
340
+ # DynamoDB Streams, this is *aws:dynamodb*.
341
+ # @return [String]
342
+ #
343
+ # @!attribute [rw] aws_region
344
+ # The region in which the *GetRecords* request was received.
345
+ # @return [String]
346
+ #
347
+ # @!attribute [rw] dynamodb
348
+ # The main body of the stream record, containing all of the
349
+ # DynamoDB-specific fields.
350
+ # @return [Types::StreamRecord]
351
+ class Record < Struct.new(
352
+ :event_id,
353
+ :event_name,
354
+ :event_version,
355
+ :event_source,
356
+ :aws_region,
357
+ :dynamodb)
358
+ include Aws::Structure
359
+ end
360
+
361
+ # The beginning and ending sequence numbers for the stream records
362
+ # contained within a shard.
363
+ # @!attribute [rw] starting_sequence_number
364
+ # The first sequence number.
365
+ # @return [String]
366
+ #
367
+ # @!attribute [rw] ending_sequence_number
368
+ # The last sequence number.
369
+ # @return [String]
370
+ class SequenceNumberRange < Struct.new(
371
+ :starting_sequence_number,
372
+ :ending_sequence_number)
373
+ include Aws::Structure
374
+ end
375
+
376
+ # A uniquely identified group of stream records within a stream.
377
+ # @!attribute [rw] shard_id
378
+ # The system-generated identifier for this shard.
379
+ # @return [String]
380
+ #
381
+ # @!attribute [rw] sequence_number_range
382
+ # The range of possible sequence numbers for the shard.
383
+ # @return [Types::SequenceNumberRange]
384
+ #
385
+ # @!attribute [rw] parent_shard_id
386
+ # The shard ID of the current shard's parent.
387
+ # @return [String]
388
+ class Shard < Struct.new(
389
+ :shard_id,
390
+ :sequence_number_range,
391
+ :parent_shard_id)
392
+ include Aws::Structure
393
+ end
394
+
395
+ # Represents all of the data describing a particular stream.
396
+ # @!attribute [rw] stream_arn
397
+ # The Amazon Resource Name (ARN) for the stream.
398
+ # @return [String]
399
+ #
400
+ # @!attribute [rw] table_name
401
+ # The DynamoDB table with which the stream is associated.
402
+ # @return [String]
403
+ #
404
+ # @!attribute [rw] stream_label
405
+ # A timestamp, in ISO 8601 format, for this stream.
406
+ #
407
+ # Note that *LatestStreamLabel* is not a unique identifier for the
408
+ # stream, because it is possible that a stream from another table
409
+ # might have the same timestamp. However, the combination of the
410
+ # following three elements is guaranteed to be unique:
411
+ #
412
+ # * the AWS customer ID.
413
+ #
414
+ # * the table name
415
+ #
416
+ # * the *StreamLabel*
417
+ # @return [String]
418
+ class Stream < Struct.new(
419
+ :stream_arn,
420
+ :table_name,
421
+ :stream_label)
422
+ include Aws::Structure
423
+ end
424
+
425
+ # Represents all of the data describing a particular stream.
426
+ # @!attribute [rw] stream_arn
427
+ # The Amazon Resource Name (ARN) for the stream.
428
+ # @return [String]
429
+ #
430
+ # @!attribute [rw] stream_label
431
+ # A timestamp, in ISO 8601 format, for this stream.
432
+ #
433
+ # Note that *LatestStreamLabel* is not a unique identifier for the
434
+ # stream, because it is possible that a stream from another table
435
+ # might have the same timestamp. However, the combination of the
436
+ # following three elements is guaranteed to be unique:
437
+ #
438
+ # * the AWS customer ID.
439
+ #
440
+ # * the table name
441
+ #
442
+ # * the *StreamLabel*
443
+ # @return [String]
444
+ #
445
+ # @!attribute [rw] stream_status
446
+ # Indicates the current status of the stream:
447
+ #
448
+ # * `ENABLING` - Streams is currently being enabled on the DynamoDB
449
+ # table.
450
+ #
451
+ # * `ENABLED` - the stream is enabled.
452
+ #
453
+ # * `DISABLING` - Streams is currently being disabled on the DynamoDB
454
+ # table.
455
+ #
456
+ # * `DISABLED` - the stream is disabled.
457
+ # @return [String]
458
+ #
459
+ # @!attribute [rw] stream_view_type
460
+ # Indicates the format of the records within this stream:
461
+ #
462
+ # * `KEYS_ONLY` - only the key attributes of items that were modified
463
+ # in the DynamoDB table.
464
+ #
465
+ # * `NEW_IMAGE` - entire items from the table, as they appeared after
466
+ # they were modified.
467
+ #
468
+ # * `OLD_IMAGE` - entire items from the table, as they appeared before
469
+ # they were modified.
470
+ #
471
+ # * `NEW_AND_OLD_IMAGES` - both the new and the old images of the
472
+ # items from the table.
473
+ # @return [String]
474
+ #
475
+ # @!attribute [rw] creation_request_date_time
476
+ # The date and time when the request to create this stream was issued.
477
+ # @return [Time]
478
+ #
479
+ # @!attribute [rw] table_name
480
+ # The DynamoDB table with which the stream is associated.
481
+ # @return [String]
482
+ #
483
+ # @!attribute [rw] key_schema
484
+ # The key attribute(s) of the stream's DynamoDB table.
485
+ # @return [Array<Types::KeySchemaElement>]
486
+ #
487
+ # @!attribute [rw] shards
488
+ # The shards that comprise the stream.
489
+ # @return [Array<Types::Shard>]
490
+ #
491
+ # @!attribute [rw] last_evaluated_shard_id
492
+ # The shard ID of the item where the operation stopped, inclusive of
493
+ # the previous result set. Use this value to start a new operation,
494
+ # excluding this value in the new request.
495
+ #
496
+ # If `LastEvaluatedShardId` is empty, then the "last page" of
497
+ # results has been processed and there is currently no more data to be
498
+ # retrieved.
499
+ #
500
+ # If `LastEvaluatedShardId` is not empty, it does not necessarily mean
501
+ # that there is more data in the result set. The only way to know when
502
+ # you have reached the end of the result set is when
503
+ # `LastEvaluatedShardId` is empty.
504
+ # @return [String]
505
+ class StreamDescription < Struct.new(
506
+ :stream_arn,
507
+ :stream_label,
508
+ :stream_status,
509
+ :stream_view_type,
510
+ :creation_request_date_time,
511
+ :table_name,
512
+ :key_schema,
513
+ :shards,
514
+ :last_evaluated_shard_id)
515
+ include Aws::Structure
516
+ end
517
+
518
+ # A description of a single data modification that was performed on an
519
+ # item in a DynamoDB table.
520
+ # @!attribute [rw] approximate_creation_date_time
521
+ # The approximate date and time when the stream record was created, in
522
+ # [UNIX epoch time][1] format.
523
+ #
524
+ #
525
+ #
526
+ # [1]: http://www.epochconverter.com/
527
+ # @return [Time]
528
+ #
529
+ # @!attribute [rw] keys
530
+ # The primary key attribute(s) for the DynamoDB item that was
531
+ # modified.
532
+ # @return [Hash<String,Types::AttributeValue>]
533
+ #
534
+ # @!attribute [rw] new_image
535
+ # The item in the DynamoDB table as it appeared after it was modified.
536
+ # @return [Hash<String,Types::AttributeValue>]
537
+ #
538
+ # @!attribute [rw] old_image
539
+ # The item in the DynamoDB table as it appeared before it was
540
+ # modified.
541
+ # @return [Hash<String,Types::AttributeValue>]
542
+ #
543
+ # @!attribute [rw] sequence_number
544
+ # The sequence number of the stream record.
545
+ # @return [String]
546
+ #
547
+ # @!attribute [rw] size_bytes
548
+ # The size of the stream record, in bytes.
549
+ # @return [Integer]
550
+ #
551
+ # @!attribute [rw] stream_view_type
552
+ # The type of data from the modified DynamoDB item that was captured
553
+ # in this stream record:
554
+ #
555
+ # * `KEYS_ONLY` - only the key attributes of the modified item.
556
+ #
557
+ # * `NEW_IMAGE` - the entire item, as it appeared after it was
558
+ # modified.
559
+ #
560
+ # * `OLD_IMAGE` - the entire item, as it appeared before it was
561
+ # modified.
562
+ #
563
+ # * `NEW_AND_OLD_IMAGES` - both the new and the old item images of the
564
+ # item.
565
+ # @return [String]
566
+ class StreamRecord < Struct.new(
567
+ :approximate_creation_date_time,
568
+ :keys,
569
+ :new_image,
570
+ :old_image,
571
+ :sequence_number,
572
+ :size_bytes,
573
+ :stream_view_type)
574
+ include Aws::Structure
575
+ end
576
+
577
+ end
578
+ end
579
+ end