1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Contains details of a table archival operation.
10type ArchivalSummary struct {
11
12	// The Amazon Resource Name (ARN) of the backup the table was archived to, when
13	// applicable in the archival reason. If you wish to restore this backup to the
14	// same table name, you will need to delete the original table.
15	ArchivalBackupArn *string
16
17	// The date and time when table archival was initiated by DynamoDB, in UNIX epoch
18	// time format.
19	ArchivalDateTime *time.Time
20
21	// The reason DynamoDB archived the table. Currently, the only possible value
22	// is:
23	//
24	// * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The table was archived due to the
25	// table's AWS KMS key being inaccessible for more than seven days. An On-Demand
26	// backup was created at the archival time.
27	ArchivalReason *string
28}
29
30// Represents an attribute for describing the key schema for the table and indexes.
31type AttributeDefinition struct {
32
33	// A name for the attribute.
34	//
35	// This member is required.
36	AttributeName *string
37
38	// The data type for the attribute, where:
39	//
40	// * S - the attribute is of type
41	// String
42	//
43	// * N - the attribute is of type Number
44	//
45	// * B - the attribute is of type
46	// Binary
47	//
48	// This member is required.
49	AttributeType ScalarAttributeType
50}
51
52// Represents the data for an attribute. Each attribute value is described as a
53// name-value pair. The name is the data type, and the value is the data itself.
54// For more information, see Data Types
55// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)
56// in the Amazon DynamoDB Developer Guide.
57//
58// The following types satisfy this interface:
59//  AttributeValueMemberS
60//  AttributeValueMemberN
61//  AttributeValueMemberB
62//  AttributeValueMemberSS
63//  AttributeValueMemberNS
64//  AttributeValueMemberBS
65//  AttributeValueMemberM
66//  AttributeValueMemberL
67//  AttributeValueMemberNULL
68//  AttributeValueMemberBOOL
69type AttributeValue interface {
70	isAttributeValue()
71}
72
73// An attribute of type String. For example: "S": "Hello"
74type AttributeValueMemberS struct {
75	Value string
76}
77
78func (*AttributeValueMemberS) isAttributeValue() {}
79
80// An attribute of type Number. For example: "N": "123.45" Numbers are sent across
81// the network to DynamoDB as strings, to maximize compatibility across languages
82// and libraries. However, DynamoDB treats them as number type attributes for
83// mathematical operations.
84type AttributeValueMemberN struct {
85	Value string
86}
87
88func (*AttributeValueMemberN) isAttributeValue() {}
89
90// An attribute of type Binary. For example: "B":
91// "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk"
92type AttributeValueMemberB struct {
93	Value []byte
94}
95
96func (*AttributeValueMemberB) isAttributeValue() {}
97
98// An attribute of type String Set. For example: "SS": ["Giraffe", "Hippo"
99// ,"Zebra"]
100type AttributeValueMemberSS struct {
101	Value []string
102}
103
104func (*AttributeValueMemberSS) isAttributeValue() {}
105
106// An attribute of type Number Set. For example: "NS": ["42.2", "-19", "7.5",
107// "3.14"] Numbers are sent across the network to DynamoDB as strings, to maximize
108// compatibility across languages and libraries. However, DynamoDB treats them as
109// number type attributes for mathematical operations.
110type AttributeValueMemberNS struct {
111	Value []string
112}
113
114func (*AttributeValueMemberNS) isAttributeValue() {}
115
116// An attribute of type Binary Set. For example: "BS": ["U3Vubnk=", "UmFpbnk=",
117// "U25vd3k="]
118type AttributeValueMemberBS struct {
119	Value [][]byte
120}
121
122func (*AttributeValueMemberBS) isAttributeValue() {}
123
124// An attribute of type Map. For example: "M": {"Name": {"S": "Joe"}, "Age": {"N":
125// "35"}}
126type AttributeValueMemberM struct {
127	Value map[string]AttributeValue
128}
129
130func (*AttributeValueMemberM) isAttributeValue() {}
131
132// An attribute of type List. For example: "L": [ {"S": "Cookies"} , {"S":
133// "Coffee"}, {"N", "3.14159"}]
134type AttributeValueMemberL struct {
135	Value []AttributeValue
136}
137
138func (*AttributeValueMemberL) isAttributeValue() {}
139
140// An attribute of type Null. For example: "NULL": true
141type AttributeValueMemberNULL struct {
142	Value bool
143}
144
145func (*AttributeValueMemberNULL) isAttributeValue() {}
146
147// An attribute of type Boolean. For example: "BOOL": true
148type AttributeValueMemberBOOL struct {
149	Value bool
150}
151
152func (*AttributeValueMemberBOOL) isAttributeValue() {}
153
154// For the UpdateItem operation, represents the attributes to be modified, the
155// action to perform on each, and the new value for each. You cannot use UpdateItem
156// to update any primary key attributes. Instead, you will need to delete the item,
157// and then use PutItem to create a new item with new attributes. Attribute values
158// cannot be null; string and binary type attributes must have lengths greater than
159// zero; and set type attributes must not be empty. Requests with empty values will
160// be rejected with a ValidationException exception.
161type AttributeValueUpdate struct {
162
163	// Specifies how to perform the update. Valid values are PUT (default), DELETE, and
164	// ADD. The behavior depends on whether the specified primary key already exists in
165	// the table. If an item with the specified Key is found in the table:
166	//
167	// * PUT -
168	// Adds the specified attribute to the item. If the attribute already exists, it is
169	// replaced by the new value.
170	//
171	// * DELETE - If no value is specified, the attribute
172	// and its value are removed from the item. The data type of the specified value
173	// must match the existing value's data type. If a set of values is specified, then
174	// those values are subtracted from the old set. For example, if the attribute
175	// value was the set [a,b,c] and the DELETE action specified [a,c], then the final
176	// attribute value would be [b]. Specifying an empty set is an error.
177	//
178	// * ADD - If
179	// the attribute does not already exist, then the attribute and its values are
180	// added to the item. If the attribute does exist, then the behavior of ADD depends
181	// on the data type of the attribute:
182	//
183	// * If the existing attribute is a number, and
184	// if Value is also a number, then the Value is mathematically added to the
185	// existing attribute. If Value is a negative number, then it is subtracted from
186	// the existing attribute. If you use ADD to increment or decrement a number value
187	// for an item that doesn't exist before the update, DynamoDB uses 0 as the initial
188	// value. In addition, if you use ADD to update an existing item, and intend to
189	// increment or decrement an attribute value which does not yet exist, DynamoDB
190	// uses 0 as the initial value. For example, suppose that the item you want to
191	// update does not yet have an attribute named itemcount, but you decide to ADD the
192	// number 3 to this attribute anyway, even though it currently does not exist.
193	// DynamoDB will create the itemcount attribute, set its initial value to 0, and
194	// finally add 3 to it. The result will be a new itemcount attribute in the item,
195	// with a value of 3.
196	//
197	// * If the existing data type is a set, and if the Value is
198	// also a set, then the Value is added to the existing set. (This is a set
199	// operation, not mathematical addition.) For example, if the attribute value was
200	// the set [1,2], and the ADD action specified [3], then the final attribute value
201	// would be [1,2,3]. An error occurs if an Add action is specified for a set
202	// attribute and the attribute type specified does not match the existing set type.
203	// Both sets must have the same primitive data type. For example, if the existing
204	// data type is a set of strings, the Value must also be a set of strings. The same
205	// holds true for number sets and binary sets.
206	//
207	// This action is only valid for an
208	// existing attribute whose data type is number or is a set. Do not use ADD for any
209	// other data types.
210	//
211	// If no item with the specified Key is found:
212	//
213	// * PUT - DynamoDB
214	// creates a new item with the specified primary key, and then adds the
215	// attribute.
216	//
217	// * DELETE - Nothing happens; there is no attribute to delete.
218	//
219	// * ADD
220	// - DynamoDB creates an item with the supplied primary key and number (or set of
221	// numbers) for the attribute value. The only data types allowed are number and
222	// number set; no other data types can be specified.
223	Action AttributeAction
224
225	// Represents the data for an attribute. Each attribute value is described as a
226	// name-value pair. The name is the data type, and the value is the data itself.
227	// For more information, see Data Types
228	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)
229	// in the Amazon DynamoDB Developer Guide.
230	Value AttributeValue
231}
232
233// Represents the properties of the scaling policy.
234type AutoScalingPolicyDescription struct {
235
236	// The name of the scaling policy.
237	PolicyName *string
238
239	// Represents a target tracking scaling policy configuration.
240	TargetTrackingScalingPolicyConfiguration *AutoScalingTargetTrackingScalingPolicyConfigurationDescription
241}
242
243// Represents the auto scaling policy to be modified.
244type AutoScalingPolicyUpdate struct {
245
246	// Represents a target tracking scaling policy configuration.
247	//
248	// This member is required.
249	TargetTrackingScalingPolicyConfiguration *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate
250
251	// The name of the scaling policy.
252	PolicyName *string
253}
254
255// Represents the auto scaling settings for a global table or global secondary
256// index.
257type AutoScalingSettingsDescription struct {
258
259	// Disabled auto scaling for this global table or global secondary index.
260	AutoScalingDisabled *bool
261
262	// Role ARN used for configuring the auto scaling policy.
263	AutoScalingRoleArn *string
264
265	// The maximum capacity units that a global table or global secondary index should
266	// be scaled up to.
267	MaximumUnits *int64
268
269	// The minimum capacity units that a global table or global secondary index should
270	// be scaled down to.
271	MinimumUnits *int64
272
273	// Information about the scaling policies.
274	ScalingPolicies []AutoScalingPolicyDescription
275}
276
277// Represents the auto scaling settings to be modified for a global table or global
278// secondary index.
279type AutoScalingSettingsUpdate struct {
280
281	// Disabled auto scaling for this global table or global secondary index.
282	AutoScalingDisabled *bool
283
284	// Role ARN used for configuring auto scaling policy.
285	AutoScalingRoleArn *string
286
287	// The maximum capacity units that a global table or global secondary index should
288	// be scaled up to.
289	MaximumUnits *int64
290
291	// The minimum capacity units that a global table or global secondary index should
292	// be scaled down to.
293	MinimumUnits *int64
294
295	// The scaling policy to apply for scaling target global table or global secondary
296	// index capacity units.
297	ScalingPolicyUpdate *AutoScalingPolicyUpdate
298}
299
300// Represents the properties of a target tracking scaling policy.
301type AutoScalingTargetTrackingScalingPolicyConfigurationDescription struct {
302
303	// The target value for the metric. The range is 8.515920e-109 to 1.174271e+108
304	// (Base 10) or 2e-360 to 2e360 (Base 2).
305	//
306	// This member is required.
307	TargetValue *float64
308
309	// Indicates whether scale in by the target tracking policy is disabled. If the
310	// value is true, scale in is disabled and the target tracking policy won't remove
311	// capacity from the scalable resource. Otherwise, scale in is enabled and the
312	// target tracking policy can remove capacity from the scalable resource. The
313	// default value is false.
314	DisableScaleIn *bool
315
316	// The amount of time, in seconds, after a scale in activity completes before
317	// another scale in activity can start. The cooldown period is used to block
318	// subsequent scale in requests until it has expired. You should scale in
319	// conservatively to protect your application's availability. However, if another
320	// alarm triggers a scale out policy during the cooldown period after a scale-in,
321	// application auto scaling scales out your scalable target immediately.
322	ScaleInCooldown *int32
323
324	// The amount of time, in seconds, after a scale out activity completes before
325	// another scale out activity can start. While the cooldown period is in effect,
326	// the capacity that has been added by the previous scale out event that initiated
327	// the cooldown is calculated as part of the desired capacity for the next scale
328	// out. You should continuously (but not excessively) scale out.
329	ScaleOutCooldown *int32
330}
331
332// Represents the settings of a target tracking scaling policy that will be
333// modified.
334type AutoScalingTargetTrackingScalingPolicyConfigurationUpdate struct {
335
336	// The target value for the metric. The range is 8.515920e-109 to 1.174271e+108
337	// (Base 10) or 2e-360 to 2e360 (Base 2).
338	//
339	// This member is required.
340	TargetValue *float64
341
342	// Indicates whether scale in by the target tracking policy is disabled. If the
343	// value is true, scale in is disabled and the target tracking policy won't remove
344	// capacity from the scalable resource. Otherwise, scale in is enabled and the
345	// target tracking policy can remove capacity from the scalable resource. The
346	// default value is false.
347	DisableScaleIn *bool
348
349	// The amount of time, in seconds, after a scale in activity completes before
350	// another scale in activity can start. The cooldown period is used to block
351	// subsequent scale in requests until it has expired. You should scale in
352	// conservatively to protect your application's availability. However, if another
353	// alarm triggers a scale out policy during the cooldown period after a scale-in,
354	// application auto scaling scales out your scalable target immediately.
355	ScaleInCooldown *int32
356
357	// The amount of time, in seconds, after a scale out activity completes before
358	// another scale out activity can start. While the cooldown period is in effect,
359	// the capacity that has been added by the previous scale out event that initiated
360	// the cooldown is calculated as part of the desired capacity for the next scale
361	// out. You should continuously (but not excessively) scale out.
362	ScaleOutCooldown *int32
363}
364
365// Contains the description of the backup created for the table.
366type BackupDescription struct {
367
368	// Contains the details of the backup created for the table.
369	BackupDetails *BackupDetails
370
371	// Contains the details of the table when the backup was created.
372	SourceTableDetails *SourceTableDetails
373
374	// Contains the details of the features enabled on the table when the backup was
375	// created. For example, LSIs, GSIs, streams, TTL.
376	SourceTableFeatureDetails *SourceTableFeatureDetails
377}
378
379// Contains the details of the backup created for the table.
380type BackupDetails struct {
381
382	// ARN associated with the backup.
383	//
384	// This member is required.
385	BackupArn *string
386
387	// Time at which the backup was created. This is the request time of the backup.
388	//
389	// This member is required.
390	BackupCreationDateTime *time.Time
391
392	// Name of the requested backup.
393	//
394	// This member is required.
395	BackupName *string
396
397	// Backup can be in one of the following states: CREATING, ACTIVE, DELETED.
398	//
399	// This member is required.
400	BackupStatus BackupStatus
401
402	// BackupType:
403	//
404	// * USER - You create and manage these using the on-demand backup
405	// feature.
406	//
407	// * SYSTEM - If you delete a table with point-in-time recovery enabled,
408	// a SYSTEM backup is automatically created and is retained for 35 days (at no
409	// additional cost). System backups allow you to restore the deleted table to the
410	// state it was in just before the point of deletion.
411	//
412	// * AWS_BACKUP - On-demand
413	// backup created by you from AWS Backup service.
414	//
415	// This member is required.
416	BackupType BackupType
417
418	// Time at which the automatic on-demand backup created by DynamoDB will expire.
419	// This SYSTEM on-demand backup expires automatically 35 days after its creation.
420	BackupExpiryDateTime *time.Time
421
422	// Size of the backup in bytes.
423	BackupSizeBytes *int64
424}
425
426// Contains details for the backup.
427type BackupSummary struct {
428
429	// ARN associated with the backup.
430	BackupArn *string
431
432	// Time at which the backup was created.
433	BackupCreationDateTime *time.Time
434
435	// Time at which the automatic on-demand backup created by DynamoDB will expire.
436	// This SYSTEM on-demand backup expires automatically 35 days after its creation.
437	BackupExpiryDateTime *time.Time
438
439	// Name of the specified backup.
440	BackupName *string
441
442	// Size of the backup in bytes.
443	BackupSizeBytes *int64
444
445	// Backup can be in one of the following states: CREATING, ACTIVE, DELETED.
446	BackupStatus BackupStatus
447
448	// BackupType:
449	//
450	// * USER - You create and manage these using the on-demand backup
451	// feature.
452	//
453	// * SYSTEM - If you delete a table with point-in-time recovery enabled,
454	// a SYSTEM backup is automatically created and is retained for 35 days (at no
455	// additional cost). System backups allow you to restore the deleted table to the
456	// state it was in just before the point of deletion.
457	//
458	// * AWS_BACKUP - On-demand
459	// backup created by you from AWS Backup service.
460	BackupType BackupType
461
462	// ARN associated with the table.
463	TableArn *string
464
465	// Unique identifier for the table.
466	TableId *string
467
468	// Name of the table.
469	TableName *string
470}
471
472// An error associated with a statement in a PartiQL batch that was run.
473type BatchStatementError struct {
474
475	// The error code associated with the failed PartiQL batch statement.
476	Code BatchStatementErrorCodeEnum
477
478	// The error message associated with the PartiQL batch resposne.
479	Message *string
480}
481
482// A PartiQL batch statement request.
483type BatchStatementRequest struct {
484
485	// A valid PartiQL statement.
486	//
487	// This member is required.
488	Statement *string
489
490	// The read consistency of the PartiQL batch request.
491	ConsistentRead *bool
492
493	// The parameters associated with a PartiQL statement in the batch request.
494	Parameters []AttributeValue
495}
496
497// A PartiQL batch statement response..
498type BatchStatementResponse struct {
499
500	// The error associated with a failed PartiQL batch statement.
501	Error *BatchStatementError
502
503	// A DynamoDB item associated with a BatchStatementResponse
504	Item map[string]AttributeValue
505
506	// The table name associated with a failed PartiQL batch statement.
507	TableName *string
508}
509
510// Contains the details for the read/write capacity mode.
511type BillingModeSummary struct {
512
513	// Controls how you are charged for read and write throughput and how you manage
514	// capacity. This setting can be changed later.
515	//
516	// * PROVISIONED - Sets the
517	// read/write capacity mode to PROVISIONED. We recommend using PROVISIONED for
518	// predictable workloads.
519	//
520	// * PAY_PER_REQUEST - Sets the read/write capacity mode to
521	// PAY_PER_REQUEST. We recommend using PAY_PER_REQUEST for unpredictable workloads.
522	BillingMode BillingMode
523
524	// Represents the time when PAY_PER_REQUEST was last set as the read/write capacity
525	// mode.
526	LastUpdateToPayPerRequestDateTime *time.Time
527}
528
529// An ordered list of errors for each item in the request which caused the
530// transaction to get cancelled. The values of the list are ordered according to
531// the ordering of the TransactWriteItems request parameter. If no error occurred
532// for the associated item an error with a Null code and Null message will be
533// present.
534type CancellationReason struct {
535
536	// Status code for the result of the cancelled transaction.
537	Code *string
538
539	// Item in the request which caused the transaction to get cancelled.
540	Item map[string]AttributeValue
541
542	// Cancellation reason message description.
543	Message *string
544}
545
546// Represents the amount of provisioned throughput capacity consumed on a table or
547// an index.
548type Capacity struct {
549
550	// The total number of capacity units consumed on a table or an index.
551	CapacityUnits *float64
552
553	// The total number of read capacity units consumed on a table or an index.
554	ReadCapacityUnits *float64
555
556	// The total number of write capacity units consumed on a table or an index.
557	WriteCapacityUnits *float64
558}
559
560// Represents the selection criteria for a Query or Scan operation:
561//
562// * For a Query
563// operation, Condition is used for specifying the KeyConditions to use when
564// querying a table or an index. For KeyConditions, only the following comparison
565// operators are supported: EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEENCondition
566// is also used in a QueryFilter, which evaluates the query results and returns
567// only the desired values.
568//
569// * For a Scan operation, Condition is used in a
570// ScanFilter, which evaluates the scan results and returns only the desired
571// values.
572type Condition struct {
573
574	// A comparator for evaluating attributes. For example, equals, greater than, less
575	// than, etc. The following comparison operators are available: EQ | NE | LE | LT |
576	// GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN
577	// The following are descriptions of each comparison operator.
578	//
579	// * EQ : Equal. EQ is
580	// supported for all data types, including lists and maps. AttributeValueList can
581	// contain only one AttributeValue element of type String, Number, Binary, String
582	// Set, Number Set, or Binary Set. If an item contains an AttributeValue element of
583	// a different type than the one provided in the request, the value does not match.
584	// For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not equal
585	// {"NS":["6", "2", "1"]}.
586	//
587	// * NE : Not equal. NE is supported for all data types,
588	// including lists and maps. AttributeValueList can contain only one AttributeValue
589	// of type String, Number, Binary, String Set, Number Set, or Binary Set. If an
590	// item contains an AttributeValue of a different type than the one provided in the
591	// request, the value does not match. For example, {"S":"6"} does not equal
592	// {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
593	//
594	// * LE : Less
595	// than or equal. AttributeValueList can contain only one AttributeValue element of
596	// type String, Number, or Binary (not a set type). If an item contains an
597	// AttributeValue element of a different type than the one provided in the request,
598	// the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also,
599	// {"N":"6"} does not compare to {"NS":["6", "2", "1"]}.
600	//
601	// * LT : Less than.
602	// AttributeValueList can contain only one AttributeValue of type String, Number,
603	// or Binary (not a set type). If an item contains an AttributeValue element of a
604	// different type than the one provided in the request, the value does not match.
605	// For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not
606	// compare to {"NS":["6", "2", "1"]}.
607	//
608	// * GE : Greater than or equal.
609	// AttributeValueList can contain only one AttributeValue element of type String,
610	// Number, or Binary (not a set type). If an item contains an AttributeValue
611	// element of a different type than the one provided in the request, the value does
612	// not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does
613	// not compare to {"NS":["6", "2", "1"]}.
614	//
615	// * GT : Greater than. AttributeValueList
616	// can contain only one AttributeValue element of type String, Number, or Binary
617	// (not a set type). If an item contains an AttributeValue element of a different
618	// type than the one provided in the request, the value does not match. For
619	// example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to
620	// {"NS":["6", "2", "1"]}.
621	//
622	// * NOT_NULL : The attribute exists. NOT_NULL is
623	// supported for all data types, including lists and maps. This operator tests for
624	// the existence of an attribute, not its data type. If the data type of attribute
625	// "a" is null, and you evaluate it using NOT_NULL, the result is a Boolean true.
626	// This result is because the attribute "a" exists; its data type is not relevant
627	// to the NOT_NULL comparison operator.
628	//
629	// * NULL : The attribute does not exist.
630	// NULL is supported for all data types, including lists and maps. This operator
631	// tests for the nonexistence of an attribute, not its data type. If the data type
632	// of attribute "a" is null, and you evaluate it using NULL, the result is a
633	// Boolean false. This is because the attribute "a" exists; its data type is not
634	// relevant to the NULL comparison operator.
635	//
636	// * CONTAINS : Checks for a
637	// subsequence, or value in a set. AttributeValueList can contain only one
638	// AttributeValue element of type String, Number, or Binary (not a set type). If
639	// the target attribute of the comparison is of type String, then the operator
640	// checks for a substring match. If the target attribute of the comparison is of
641	// type Binary, then the operator looks for a subsequence of the target that
642	// matches the input. If the target attribute of the comparison is a set ("SS",
643	// "NS", or "BS"), then the operator evaluates to true if it finds an exact match
644	// with any member of the set. CONTAINS is supported for lists: When evaluating "a
645	// CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a
646	// list.
647	//
648	// * NOT_CONTAINS : Checks for absence of a subsequence, or absence of a
649	// value in a set. AttributeValueList can contain only one AttributeValue element
650	// of type String, Number, or Binary (not a set type). If the target attribute of
651	// the comparison is a String, then the operator checks for the absence of a
652	// substring match. If the target attribute of the comparison is Binary, then the
653	// operator checks for the absence of a subsequence of the target that matches the
654	// input. If the target attribute of the comparison is a set ("SS", "NS", or "BS"),
655	// then the operator evaluates to true if it does not find an exact match with any
656	// member of the set. NOT_CONTAINS is supported for lists: When evaluating "a NOT
657	// CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a
658	// list.
659	//
660	// * BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only
661	// one AttributeValue of type String or Binary (not a Number or a set type). The
662	// target attribute of the comparison must be of type String or Binary (not a
663	// Number or a set type).
664	//
665	// * IN : Checks for matching elements in a list.
666	// AttributeValueList can contain one or more AttributeValue elements of type
667	// String, Number, or Binary. These attributes are compared against an existing
668	// attribute of an item. If any elements of the input are equal to the item
669	// attribute, the expression evaluates to true.
670	//
671	// * BETWEEN : Greater than or equal
672	// to the first value, and less than or equal to the second value.
673	// AttributeValueList must contain two AttributeValue elements of the same type,
674	// either String, Number, or Binary (not a set type). A target attribute matches if
675	// the target value is greater than, or equal to, the first element and less than,
676	// or equal to, the second element. If an item contains an AttributeValue element
677	// of a different type than the one provided in the request, the value does not
678	// match. For example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"}
679	// does not compare to {"NS":["6", "2", "1"]}
680	//
681	// For usage examples of
682	// AttributeValueList and ComparisonOperator, see Legacy Conditional Parameters
683	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
684	// in the Amazon DynamoDB Developer Guide.
685	//
686	// This member is required.
687	ComparisonOperator ComparisonOperator
688
689	// One or more values to evaluate against the supplied attribute. The number of
690	// values in the list depends on the ComparisonOperator being used. For type
691	// Number, value comparisons are numeric. String value comparisons for greater
692	// than, equals, or less than are based on ASCII character code values. For
693	// example, a is greater than A, and a is greater than B. For a list of code
694	// values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
695	// (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). For Binary,
696	// DynamoDB treats each byte of the binary data as unsigned when it compares binary
697	// values.
698	AttributeValueList []AttributeValue
699}
700
701// Represents a request to perform a check that an item exists or to check the
702// condition of specific attributes of the item.
703type ConditionCheck struct {
704
705	// A condition that must be satisfied in order for a conditional update to succeed.
706	//
707	// This member is required.
708	ConditionExpression *string
709
710	// The primary key of the item to be checked. Each element consists of an attribute
711	// name and a value for that attribute.
712	//
713	// This member is required.
714	Key map[string]AttributeValue
715
716	// Name of the table for the check item request.
717	//
718	// This member is required.
719	TableName *string
720
721	// One or more substitution tokens for attribute names in an expression.
722	ExpressionAttributeNames map[string]string
723
724	// One or more values that can be substituted in an expression.
725	ExpressionAttributeValues map[string]AttributeValue
726
727	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the
728	// ConditionCheck condition fails. For ReturnValuesOnConditionCheckFailure, the
729	// valid values are: NONE and ALL_OLD.
730	ReturnValuesOnConditionCheckFailure ReturnValuesOnConditionCheckFailure
731}
732
733// The capacity units consumed by an operation. The data returned includes the
734// total provisioned throughput consumed, along with statistics for the table and
735// any indexes involved in the operation. ConsumedCapacity is only returned if the
736// request asked for it. For more information, see Provisioned Throughput
737// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
738// in the Amazon DynamoDB Developer Guide.
739type ConsumedCapacity struct {
740
741	// The total number of capacity units consumed by the operation.
742	CapacityUnits *float64
743
744	// The amount of throughput consumed on each global index affected by the
745	// operation.
746	GlobalSecondaryIndexes map[string]Capacity
747
748	// The amount of throughput consumed on each local index affected by the operation.
749	LocalSecondaryIndexes map[string]Capacity
750
751	// The total number of read capacity units consumed by the operation.
752	ReadCapacityUnits *float64
753
754	// The amount of throughput consumed on the table affected by the operation.
755	Table *Capacity
756
757	// The name of the table that was affected by the operation.
758	TableName *string
759
760	// The total number of write capacity units consumed by the operation.
761	WriteCapacityUnits *float64
762}
763
764// Represents the continuous backups and point in time recovery settings on the
765// table.
766type ContinuousBackupsDescription struct {
767
768	// ContinuousBackupsStatus can be one of the following states: ENABLED, DISABLED
769	//
770	// This member is required.
771	ContinuousBackupsStatus ContinuousBackupsStatus
772
773	// The description of the point in time recovery settings applied to the table.
774	PointInTimeRecoveryDescription *PointInTimeRecoveryDescription
775}
776
777// Represents a Contributor Insights summary entry.
778type ContributorInsightsSummary struct {
779
780	// Describes the current status for contributor insights for the given table and
781	// index, if applicable.
782	ContributorInsightsStatus ContributorInsightsStatus
783
784	// Name of the index associated with the summary, if any.
785	IndexName *string
786
787	// Name of the table associated with the summary.
788	TableName *string
789}
790
791// Represents a new global secondary index to be added to an existing table.
792type CreateGlobalSecondaryIndexAction struct {
793
794	// The name of the global secondary index to be created.
795	//
796	// This member is required.
797	IndexName *string
798
799	// The key schema for the global secondary index.
800	//
801	// This member is required.
802	KeySchema []KeySchemaElement
803
804	// Represents attributes that are copied (projected) from the table into an index.
805	// These are in addition to the primary key attributes and index key attributes,
806	// which are automatically projected.
807	//
808	// This member is required.
809	Projection *Projection
810
811	// Represents the provisioned throughput settings for the specified global
812	// secondary index. For current minimum and maximum provisioned throughput values,
813	// see Service, Account, and Table Quotas
814	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
815	// in the Amazon DynamoDB Developer Guide.
816	ProvisionedThroughput *ProvisionedThroughput
817}
818
819// Represents a replica to be added.
820type CreateReplicaAction struct {
821
822	// The Region of the replica to be added.
823	//
824	// This member is required.
825	RegionName *string
826}
827
828// Represents a replica to be created.
829type CreateReplicationGroupMemberAction struct {
830
831	// The Region where the new replica will be created.
832	//
833	// This member is required.
834	RegionName *string
835
836	// Replica-specific global secondary index settings.
837	GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndex
838
839	// The AWS KMS customer master key (CMK) that should be used for AWS KMS encryption
840	// in the new replica. To specify a CMK, use its key ID, Amazon Resource Name
841	// (ARN), alias name, or alias ARN. Note that you should only provide this
842	// parameter if the key is different from the default DynamoDB KMS master key
843	// alias/aws/dynamodb.
844	KMSMasterKeyId *string
845
846	// Replica-specific provisioned throughput. If not specified, uses the source
847	// table's provisioned throughput settings.
848	ProvisionedThroughputOverride *ProvisionedThroughputOverride
849}
850
851// Represents a request to perform a DeleteItem operation.
852type Delete struct {
853
854	// The primary key of the item to be deleted. Each element consists of an attribute
855	// name and a value for that attribute.
856	//
857	// This member is required.
858	Key map[string]AttributeValue
859
860	// Name of the table in which the item to be deleted resides.
861	//
862	// This member is required.
863	TableName *string
864
865	// A condition that must be satisfied in order for a conditional delete to succeed.
866	ConditionExpression *string
867
868	// One or more substitution tokens for attribute names in an expression.
869	ExpressionAttributeNames map[string]string
870
871	// One or more values that can be substituted in an expression.
872	ExpressionAttributeValues map[string]AttributeValue
873
874	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the Delete
875	// condition fails. For ReturnValuesOnConditionCheckFailure, the valid values are:
876	// NONE and ALL_OLD.
877	ReturnValuesOnConditionCheckFailure ReturnValuesOnConditionCheckFailure
878}
879
880// Represents a global secondary index to be deleted from an existing table.
881type DeleteGlobalSecondaryIndexAction struct {
882
883	// The name of the global secondary index to be deleted.
884	//
885	// This member is required.
886	IndexName *string
887}
888
889// Represents a replica to be removed.
890type DeleteReplicaAction struct {
891
892	// The Region of the replica to be removed.
893	//
894	// This member is required.
895	RegionName *string
896}
897
898// Represents a replica to be deleted.
899type DeleteReplicationGroupMemberAction struct {
900
901	// The Region where the replica exists.
902	//
903	// This member is required.
904	RegionName *string
905}
906
907// Represents a request to perform a DeleteItem operation on an item.
908type DeleteRequest struct {
909
910	// A map of attribute name to attribute values, representing the primary key of the
911	// item to delete. All of the table's primary key attributes must be specified, and
912	// their data types must match those of the table's key schema.
913	//
914	// This member is required.
915	Key map[string]AttributeValue
916}
917
918// An endpoint information details.
919type Endpoint struct {
920
921	// IP address of the endpoint.
922	//
923	// This member is required.
924	Address *string
925
926	// Endpoint cache time to live (TTL) value.
927	//
928	// This member is required.
929	CachePeriodInMinutes int64
930}
931
932// Represents a condition to be compared with an attribute value. This condition
933// can be used with DeleteItem, PutItem, or UpdateItem operations; if the
934// comparison evaluates to true, the operation succeeds; if not, the operation
935// fails. You can use ExpectedAttributeValue in one of two different ways:
936//
937// * Use
938// AttributeValueList to specify one or more values to compare against an
939// attribute. Use ComparisonOperator to specify how you want to perform the
940// comparison. If the comparison evaluates to true, then the conditional operation
941// succeeds.
942//
943// * Use Value to specify a value that DynamoDB will compare against an
944// attribute. If the values match, then ExpectedAttributeValue evaluates to true
945// and the conditional operation succeeds. Optionally, you can also set Exists to
946// false, indicating that you do not expect to find the attribute value in the
947// table. In this case, the conditional operation succeeds only if the comparison
948// evaluates to false.
949//
950// Value and Exists are incompatible with AttributeValueList
951// and ComparisonOperator. Note that if you use both sets of parameters at once,
952// DynamoDB will return a ValidationException exception.
953type ExpectedAttributeValue struct {
954
955	// One or more values to evaluate against the supplied attribute. The number of
956	// values in the list depends on the ComparisonOperator being used. For type
957	// Number, value comparisons are numeric. String value comparisons for greater
958	// than, equals, or less than are based on ASCII character code values. For
959	// example, a is greater than A, and a is greater than B. For a list of code
960	// values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
961	// (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). For Binary,
962	// DynamoDB treats each byte of the binary data as unsigned when it compares binary
963	// values. For information on specifying data types in JSON, see JSON Data Format
964	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html)
965	// in the Amazon DynamoDB Developer Guide.
966	AttributeValueList []AttributeValue
967
968	// A comparator for evaluating attributes in the AttributeValueList. For example,
969	// equals, greater than, less than, etc. The following comparison operators are
970	// available: EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS |
971	// NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN The following are descriptions of each
972	// comparison operator.
973	//
974	// * EQ : Equal. EQ is supported for all data types,
975	// including lists and maps. AttributeValueList can contain only one AttributeValue
976	// element of type String, Number, Binary, String Set, Number Set, or Binary Set.
977	// If an item contains an AttributeValue element of a different type than the one
978	// provided in the request, the value does not match. For example, {"S":"6"} does
979	// not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
980	//
981	// *
982	// NE : Not equal. NE is supported for all data types, including lists and maps.
983	// AttributeValueList can contain only one AttributeValue of type String, Number,
984	// Binary, String Set, Number Set, or Binary Set. If an item contains an
985	// AttributeValue of a different type than the one provided in the request, the
986	// value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also,
987	// {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
988	//
989	// * LE : Less than or equal.
990	// AttributeValueList can contain only one AttributeValue element of type String,
991	// Number, or Binary (not a set type). If an item contains an AttributeValue
992	// element of a different type than the one provided in the request, the value does
993	// not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does
994	// not compare to {"NS":["6", "2", "1"]}.
995	//
996	// * LT : Less than. AttributeValueList can
997	// contain only one AttributeValue of type String, Number, or Binary (not a set
998	// type). If an item contains an AttributeValue element of a different type than
999	// the one provided in the request, the value does not match. For example,
1000	// {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to
1001	// {"NS":["6", "2", "1"]}.
1002	//
1003	// * GE : Greater than or equal. AttributeValueList can
1004	// contain only one AttributeValue element of type String, Number, or Binary (not a
1005	// set type). If an item contains an AttributeValue element of a different type
1006	// than the one provided in the request, the value does not match. For example,
1007	// {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to
1008	// {"NS":["6", "2", "1"]}.
1009	//
1010	// * GT : Greater than. AttributeValueList can contain
1011	// only one AttributeValue element of type String, Number, or Binary (not a set
1012	// type). If an item contains an AttributeValue element of a different type than
1013	// the one provided in the request, the value does not match. For example,
1014	// {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to
1015	// {"NS":["6", "2", "1"]}.
1016	//
1017	// * NOT_NULL : The attribute exists. NOT_NULL is
1018	// supported for all data types, including lists and maps. This operator tests for
1019	// the existence of an attribute, not its data type. If the data type of attribute
1020	// "a" is null, and you evaluate it using NOT_NULL, the result is a Boolean true.
1021	// This result is because the attribute "a" exists; its data type is not relevant
1022	// to the NOT_NULL comparison operator.
1023	//
1024	// * NULL : The attribute does not exist.
1025	// NULL is supported for all data types, including lists and maps. This operator
1026	// tests for the nonexistence of an attribute, not its data type. If the data type
1027	// of attribute "a" is null, and you evaluate it using NULL, the result is a
1028	// Boolean false. This is because the attribute "a" exists; its data type is not
1029	// relevant to the NULL comparison operator.
1030	//
1031	// * CONTAINS : Checks for a
1032	// subsequence, or value in a set. AttributeValueList can contain only one
1033	// AttributeValue element of type String, Number, or Binary (not a set type). If
1034	// the target attribute of the comparison is of type String, then the operator
1035	// checks for a substring match. If the target attribute of the comparison is of
1036	// type Binary, then the operator looks for a subsequence of the target that
1037	// matches the input. If the target attribute of the comparison is a set ("SS",
1038	// "NS", or "BS"), then the operator evaluates to true if it finds an exact match
1039	// with any member of the set. CONTAINS is supported for lists: When evaluating "a
1040	// CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a
1041	// list.
1042	//
1043	// * NOT_CONTAINS : Checks for absence of a subsequence, or absence of a
1044	// value in a set. AttributeValueList can contain only one AttributeValue element
1045	// of type String, Number, or Binary (not a set type). If the target attribute of
1046	// the comparison is a String, then the operator checks for the absence of a
1047	// substring match. If the target attribute of the comparison is Binary, then the
1048	// operator checks for the absence of a subsequence of the target that matches the
1049	// input. If the target attribute of the comparison is a set ("SS", "NS", or "BS"),
1050	// then the operator evaluates to true if it does not find an exact match with any
1051	// member of the set. NOT_CONTAINS is supported for lists: When evaluating "a NOT
1052	// CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a
1053	// list.
1054	//
1055	// * BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only
1056	// one AttributeValue of type String or Binary (not a Number or a set type). The
1057	// target attribute of the comparison must be of type String or Binary (not a
1058	// Number or a set type).
1059	//
1060	// * IN : Checks for matching elements in a list.
1061	// AttributeValueList can contain one or more AttributeValue elements of type
1062	// String, Number, or Binary. These attributes are compared against an existing
1063	// attribute of an item. If any elements of the input are equal to the item
1064	// attribute, the expression evaluates to true.
1065	//
1066	// * BETWEEN : Greater than or equal
1067	// to the first value, and less than or equal to the second value.
1068	// AttributeValueList must contain two AttributeValue elements of the same type,
1069	// either String, Number, or Binary (not a set type). A target attribute matches if
1070	// the target value is greater than, or equal to, the first element and less than,
1071	// or equal to, the second element. If an item contains an AttributeValue element
1072	// of a different type than the one provided in the request, the value does not
1073	// match. For example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"}
1074	// does not compare to {"NS":["6", "2", "1"]}
1075	ComparisonOperator ComparisonOperator
1076
1077	// Causes DynamoDB to evaluate the value before attempting a conditional
1078	// operation:
1079	//
1080	// * If Exists is true, DynamoDB will check to see if that attribute
1081	// value already exists in the table. If it is found, then the operation succeeds.
1082	// If it is not found, the operation fails with a ConditionCheckFailedException.
1083	//
1084	// *
1085	// If Exists is false, DynamoDB assumes that the attribute value does not exist in
1086	// the table. If in fact the value does not exist, then the assumption is valid and
1087	// the operation succeeds. If the value is found, despite the assumption that it
1088	// does not exist, the operation fails with a ConditionCheckFailedException.
1089	//
1090	// The
1091	// default setting for Exists is true. If you supply a Value all by itself,
1092	// DynamoDB assumes the attribute exists: You don't have to set Exists to true,
1093	// because it is implied. DynamoDB returns a ValidationException if:
1094	//
1095	// * Exists is
1096	// true but there is no Value to check. (You expect a value to exist, but don't
1097	// specify what that value is.)
1098	//
1099	// * Exists is false but you also provide a Value.
1100	// (You cannot expect an attribute to have a value, while also expecting it not to
1101	// exist.)
1102	Exists *bool
1103
1104	// Represents the data for the expected attribute. Each attribute value is
1105	// described as a name-value pair. The name is the data type, and the value is the
1106	// data itself. For more information, see Data Types
1107	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)
1108	// in the Amazon DynamoDB Developer Guide.
1109	Value AttributeValue
1110}
1111
1112// Represents the properties of the exported table.
1113type ExportDescription struct {
1114
1115	// The billable size of the table export.
1116	BilledSizeBytes *int64
1117
1118	// The client token that was provided for the export task. A client token makes
1119	// calls to ExportTableToPointInTimeInput idempotent, meaning that multiple
1120	// identical calls have the same effect as one single call.
1121	ClientToken *string
1122
1123	// The time at which the export task completed.
1124	EndTime *time.Time
1125
1126	// The Amazon Resource Name (ARN) of the table export.
1127	ExportArn *string
1128
1129	// The format of the exported data. Valid values for ExportFormat are DYNAMODB_JSON
1130	// or ION.
1131	ExportFormat ExportFormat
1132
1133	// The name of the manifest file for the export task.
1134	ExportManifest *string
1135
1136	// Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.
1137	ExportStatus ExportStatus
1138
1139	// Point in time from which table data was exported.
1140	ExportTime *time.Time
1141
1142	// Status code for the result of the failed export.
1143	FailureCode *string
1144
1145	// Export failure reason description.
1146	FailureMessage *string
1147
1148	// The number of items exported.
1149	ItemCount *int64
1150
1151	// The name of the Amazon S3 bucket containing the export.
1152	S3Bucket *string
1153
1154	// The ID of the AWS account that owns the bucket containing the export.
1155	S3BucketOwner *string
1156
1157	// The Amazon S3 bucket prefix used as the file name and path of the exported
1158	// snapshot.
1159	S3Prefix *string
1160
1161	// Type of encryption used on the bucket where export data is stored. Valid values
1162	// for S3SseAlgorithm are:
1163	//
1164	// * AES256 - server-side encryption with Amazon S3
1165	// managed keys
1166	//
1167	// * KMS - server-side encryption with AWS KMS managed keys
1168	S3SseAlgorithm S3SseAlgorithm
1169
1170	// The ID of the AWS KMS managed key used to encrypt the S3 bucket where export
1171	// data is stored (if applicable).
1172	S3SseKmsKeyId *string
1173
1174	// The time at which the export task began.
1175	StartTime *time.Time
1176
1177	// The Amazon Resource Name (ARN) of the table that was exported.
1178	TableArn *string
1179
1180	// Unique ID of the table that was exported.
1181	TableId *string
1182}
1183
1184// Summary information about an export task.
1185type ExportSummary struct {
1186
1187	// The Amazon Resource Name (ARN) of the export.
1188	ExportArn *string
1189
1190	// Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.
1191	ExportStatus ExportStatus
1192}
1193
1194// Represents a failure a contributor insights operation.
1195type FailureException struct {
1196
1197	// Description of the failure.
1198	ExceptionDescription *string
1199
1200	// Exception name.
1201	ExceptionName *string
1202}
1203
1204// Specifies an item and related attribute values to retrieve in a TransactGetItem
1205// object.
1206type Get struct {
1207
1208	// A map of attribute names to AttributeValue objects that specifies the primary
1209	// key of the item to retrieve.
1210	//
1211	// This member is required.
1212	Key map[string]AttributeValue
1213
1214	// The name of the table from which to retrieve the specified item.
1215	//
1216	// This member is required.
1217	TableName *string
1218
1219	// One or more substitution tokens for attribute names in the ProjectionExpression
1220	// parameter.
1221	ExpressionAttributeNames map[string]string
1222
1223	// A string that identifies one or more attributes of the specified item to
1224	// retrieve from the table. The attributes in the expression must be separated by
1225	// commas. If no attribute names are specified, then all attributes of the
1226	// specified item are returned. If any of the requested attributes are not found,
1227	// they do not appear in the result.
1228	ProjectionExpression *string
1229}
1230
1231// Represents the properties of a global secondary index.
1232type GlobalSecondaryIndex struct {
1233
1234	// The name of the global secondary index. The name must be unique among all other
1235	// indexes on this table.
1236	//
1237	// This member is required.
1238	IndexName *string
1239
1240	// The complete key schema for a global secondary index, which consists of one or
1241	// more pairs of attribute names and key types:
1242	//
1243	// * HASH - partition key
1244	//
1245	// * RANGE -
1246	// sort key
1247	//
1248	// The partition key of an item is also known as its hash attribute. The
1249	// term "hash attribute" derives from DynamoDB's usage of an internal hash function
1250	// to evenly distribute data items across partitions, based on their partition key
1251	// values. The sort key of an item is also known as its range attribute. The term
1252	// "range attribute" derives from the way DynamoDB stores items with the same
1253	// partition key physically close together, in sorted order by the sort key value.
1254	//
1255	// This member is required.
1256	KeySchema []KeySchemaElement
1257
1258	// Represents attributes that are copied (projected) from the table into the global
1259	// secondary index. These are in addition to the primary key attributes and index
1260	// key attributes, which are automatically projected.
1261	//
1262	// This member is required.
1263	Projection *Projection
1264
1265	// Represents the provisioned throughput settings for the specified global
1266	// secondary index. For current minimum and maximum provisioned throughput values,
1267	// see Service, Account, and Table Quotas
1268	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
1269	// in the Amazon DynamoDB Developer Guide.
1270	ProvisionedThroughput *ProvisionedThroughput
1271}
1272
1273// Represents the auto scaling settings of a global secondary index for a global
1274// table that will be modified.
1275type GlobalSecondaryIndexAutoScalingUpdate struct {
1276
1277	// The name of the global secondary index.
1278	IndexName *string
1279
1280	// Represents the auto scaling settings to be modified for a global table or global
1281	// secondary index.
1282	ProvisionedWriteCapacityAutoScalingUpdate *AutoScalingSettingsUpdate
1283}
1284
1285// Represents the properties of a global secondary index.
1286type GlobalSecondaryIndexDescription struct {
1287
1288	// Indicates whether the index is currently backfilling. Backfilling is the process
1289	// of reading items from the table and determining whether they can be added to the
1290	// index. (Not all items will qualify: For example, a partition key cannot have any
1291	// duplicate values.) If an item can be added to the index, DynamoDB will do so.
1292	// After all items have been processed, the backfilling operation is complete and
1293	// Backfilling is false. You can delete an index that is being created during the
1294	// Backfilling phase when IndexStatus is set to CREATING and Backfilling is true.
1295	// You can't delete the index that is being created when IndexStatus is set to
1296	// CREATING and Backfilling is false. For indexes that were created during a
1297	// CreateTable operation, the Backfilling attribute does not appear in the
1298	// DescribeTable output.
1299	Backfilling *bool
1300
1301	// The Amazon Resource Name (ARN) that uniquely identifies the index.
1302	IndexArn *string
1303
1304	// The name of the global secondary index.
1305	IndexName *string
1306
1307	// The total size of the specified index, in bytes. DynamoDB updates this value
1308	// approximately every six hours. Recent changes might not be reflected in this
1309	// value.
1310	IndexSizeBytes int64
1311
1312	// The current state of the global secondary index:
1313	//
1314	// * CREATING - The index is
1315	// being created.
1316	//
1317	// * UPDATING - The index is being updated.
1318	//
1319	// * DELETING - The index
1320	// is being deleted.
1321	//
1322	// * ACTIVE - The index is ready for use.
1323	IndexStatus IndexStatus
1324
1325	// The number of items in the specified index. DynamoDB updates this value
1326	// approximately every six hours. Recent changes might not be reflected in this
1327	// value.
1328	ItemCount int64
1329
1330	// The complete key schema for a global secondary index, which consists of one or
1331	// more pairs of attribute names and key types:
1332	//
1333	// * HASH - partition key
1334	//
1335	// * RANGE -
1336	// sort key
1337	//
1338	// The partition key of an item is also known as its hash attribute. The
1339	// term "hash attribute" derives from DynamoDB's usage of an internal hash function
1340	// to evenly distribute data items across partitions, based on their partition key
1341	// values. The sort key of an item is also known as its range attribute. The term
1342	// "range attribute" derives from the way DynamoDB stores items with the same
1343	// partition key physically close together, in sorted order by the sort key value.
1344	KeySchema []KeySchemaElement
1345
1346	// Represents attributes that are copied (projected) from the table into the global
1347	// secondary index. These are in addition to the primary key attributes and index
1348	// key attributes, which are automatically projected.
1349	Projection *Projection
1350
1351	// Represents the provisioned throughput settings for the specified global
1352	// secondary index. For current minimum and maximum provisioned throughput values,
1353	// see Service, Account, and Table Quotas
1354	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
1355	// in the Amazon DynamoDB Developer Guide.
1356	ProvisionedThroughput *ProvisionedThroughputDescription
1357}
1358
1359// Represents the properties of a global secondary index for the table when the
1360// backup was created.
1361type GlobalSecondaryIndexInfo struct {
1362
1363	// The name of the global secondary index.
1364	IndexName *string
1365
1366	// The complete key schema for a global secondary index, which consists of one or
1367	// more pairs of attribute names and key types:
1368	//
1369	// * HASH - partition key
1370	//
1371	// * RANGE -
1372	// sort key
1373	//
1374	// The partition key of an item is also known as its hash attribute. The
1375	// term "hash attribute" derives from DynamoDB's usage of an internal hash function
1376	// to evenly distribute data items across partitions, based on their partition key
1377	// values. The sort key of an item is also known as its range attribute. The term
1378	// "range attribute" derives from the way DynamoDB stores items with the same
1379	// partition key physically close together, in sorted order by the sort key value.
1380	KeySchema []KeySchemaElement
1381
1382	// Represents attributes that are copied (projected) from the table into the global
1383	// secondary index. These are in addition to the primary key attributes and index
1384	// key attributes, which are automatically projected.
1385	Projection *Projection
1386
1387	// Represents the provisioned throughput settings for the specified global
1388	// secondary index.
1389	ProvisionedThroughput *ProvisionedThroughput
1390}
1391
1392// Represents one of the following:
1393//
1394// * A new global secondary index to be added to
1395// an existing table.
1396//
1397// * New provisioned throughput parameters for an existing
1398// global secondary index.
1399//
1400// * An existing global secondary index to be removed from
1401// an existing table.
1402type GlobalSecondaryIndexUpdate struct {
1403
1404	// The parameters required for creating a global secondary index on an existing
1405	// table:
1406	//
1407	// * IndexName
1408	//
1409	// * KeySchema
1410	//
1411	// * AttributeDefinitions
1412	//
1413	// * Projection
1414	//
1415	// *
1416	// ProvisionedThroughput
1417	Create *CreateGlobalSecondaryIndexAction
1418
1419	// The name of an existing global secondary index to be removed.
1420	Delete *DeleteGlobalSecondaryIndexAction
1421
1422	// The name of an existing global secondary index, along with new provisioned
1423	// throughput settings to be applied to that index.
1424	Update *UpdateGlobalSecondaryIndexAction
1425}
1426
1427// Represents the properties of a global table.
1428type GlobalTable struct {
1429
1430	// The global table name.
1431	GlobalTableName *string
1432
1433	// The Regions where the global table has replicas.
1434	ReplicationGroup []Replica
1435}
1436
1437// Contains details about the global table.
1438type GlobalTableDescription struct {
1439
1440	// The creation time of the global table.
1441	CreationDateTime *time.Time
1442
1443	// The unique identifier of the global table.
1444	GlobalTableArn *string
1445
1446	// The global table name.
1447	GlobalTableName *string
1448
1449	// The current state of the global table:
1450	//
1451	// * CREATING - The global table is being
1452	// created.
1453	//
1454	// * UPDATING - The global table is being updated.
1455	//
1456	// * DELETING - The
1457	// global table is being deleted.
1458	//
1459	// * ACTIVE - The global table is ready for use.
1460	GlobalTableStatus GlobalTableStatus
1461
1462	// The Regions where the global table has replicas.
1463	ReplicationGroup []ReplicaDescription
1464}
1465
1466// Represents the settings of a global secondary index for a global table that will
1467// be modified.
1468type GlobalTableGlobalSecondaryIndexSettingsUpdate struct {
1469
1470	// The name of the global secondary index. The name must be unique among all other
1471	// indexes on this table.
1472	//
1473	// This member is required.
1474	IndexName *string
1475
1476	// Auto scaling settings for managing a global secondary index's write capacity
1477	// units.
1478	ProvisionedWriteCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate
1479
1480	// The maximum number of writes consumed per second before DynamoDB returns a
1481	// ThrottlingException.
1482	ProvisionedWriteCapacityUnits *int64
1483}
1484
1485// Information about item collections, if any, that were affected by the operation.
1486// ItemCollectionMetrics is only returned if the request asked for it. If the table
1487// does not have any local secondary indexes, this information is not returned in
1488// the response.
1489type ItemCollectionMetrics struct {
1490
1491	// The partition key value of the item collection. This value is the same as the
1492	// partition key value of the item.
1493	ItemCollectionKey map[string]AttributeValue
1494
1495	// An estimate of item collection size, in gigabytes. This value is a two-element
1496	// array containing a lower bound and an upper bound for the estimate. The estimate
1497	// includes the size of all the items in the table, plus the size of all attributes
1498	// projected into all of the local secondary indexes on that table. Use this
1499	// estimate to measure whether a local secondary index is approaching its size
1500	// limit. The estimate is subject to change over time; therefore, do not rely on
1501	// the precision or accuracy of the estimate.
1502	SizeEstimateRangeGB []float64
1503}
1504
1505// Details for the requested item.
1506type ItemResponse struct {
1507
1508	// Map of attribute data consisting of the data type and attribute value.
1509	Item map[string]AttributeValue
1510}
1511
1512// Represents a set of primary keys and, for each key, the attributes to retrieve
1513// from the table. For each primary key, you must provide all of the key
1514// attributes. For example, with a simple primary key, you only need to provide the
1515// partition key. For a composite primary key, you must provide both the partition
1516// key and the sort key.
1517type KeysAndAttributes struct {
1518
1519	// The primary key attribute values that define the items and the attributes
1520	// associated with the items.
1521	//
1522	// This member is required.
1523	Keys []map[string]AttributeValue
1524
1525	// This is a legacy parameter. Use ProjectionExpression instead. For more
1526	// information, see Legacy Conditional Parameters
1527	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
1528	// in the Amazon DynamoDB Developer Guide.
1529	AttributesToGet []string
1530
1531	// The consistency of a read operation. If set to true, then a strongly consistent
1532	// read is used; otherwise, an eventually consistent read is used.
1533	ConsistentRead *bool
1534
1535	// One or more substitution tokens for attribute names in an expression. The
1536	// following are some use cases for using ExpressionAttributeNames:
1537	//
1538	// * To access an
1539	// attribute whose name conflicts with a DynamoDB reserved word.
1540	//
1541	// * To create a
1542	// placeholder for repeating occurrences of an attribute name in an expression.
1543	//
1544	// *
1545	// To prevent special characters in an attribute name from being misinterpreted in
1546	// an expression.
1547	//
1548	// Use the # character in an expression to dereference an attribute
1549	// name. For example, consider the following attribute name:
1550	//
1551	// * Percentile
1552	//
1553	// The
1554	// name of this attribute conflicts with a reserved word, so it cannot be used
1555	// directly in an expression. (For the complete list of reserved words, see
1556	// Reserved Words
1557	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
1558	// in the Amazon DynamoDB Developer Guide). To work around this, you could specify
1559	// the following for ExpressionAttributeNames:
1560	//
1561	// * {"#P":"Percentile"}
1562	//
1563	// You could
1564	// then use this substitution in an expression, as in this example:
1565	//
1566	// * #P =
1567	// :val
1568	//
1569	// Tokens that begin with the : character are expression attribute values,
1570	// which are placeholders for the actual value at runtime. For more information on
1571	// expression attribute names, see Accessing Item Attributes
1572	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
1573	// in the Amazon DynamoDB Developer Guide.
1574	ExpressionAttributeNames map[string]string
1575
1576	// A string that identifies one or more attributes to retrieve from the table.
1577	// These attributes can include scalars, sets, or elements of a JSON document. The
1578	// attributes in the ProjectionExpression must be separated by commas. If no
1579	// attribute names are specified, then all attributes will be returned. If any of
1580	// the requested attributes are not found, they will not appear in the result. For
1581	// more information, see Accessing Item Attributes
1582	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
1583	// in the Amazon DynamoDB Developer Guide.
1584	ProjectionExpression *string
1585}
1586
1587// Represents a single element of a key schema. A key schema specifies the
1588// attributes that make up the primary key of a table, or the key attributes of an
1589// index. A KeySchemaElement represents exactly one attribute of the primary key.
1590// For example, a simple primary key would be represented by one KeySchemaElement
1591// (for the partition key). A composite primary key would require one
1592// KeySchemaElement for the partition key, and another KeySchemaElement for the
1593// sort key. A KeySchemaElement must be a scalar, top-level attribute (not a nested
1594// attribute). The data type must be one of String, Number, or Binary. The
1595// attribute cannot be nested within a List or a Map.
1596type KeySchemaElement struct {
1597
1598	// The name of a key attribute.
1599	//
1600	// This member is required.
1601	AttributeName *string
1602
1603	// The role that this key attribute will assume:
1604	//
1605	// * HASH - partition key
1606	//
1607	// * RANGE -
1608	// sort key
1609	//
1610	// The partition key of an item is also known as its hash attribute. The
1611	// term "hash attribute" derives from DynamoDB's usage of an internal hash function
1612	// to evenly distribute data items across partitions, based on their partition key
1613	// values. The sort key of an item is also known as its range attribute. The term
1614	// "range attribute" derives from the way DynamoDB stores items with the same
1615	// partition key physically close together, in sorted order by the sort key value.
1616	//
1617	// This member is required.
1618	KeyType KeyType
1619}
1620
1621// Describes a Kinesis data stream destination.
1622type KinesisDataStreamDestination struct {
1623
1624	// The current status of replication.
1625	DestinationStatus DestinationStatus
1626
1627	// The human-readable string that corresponds to the replica status.
1628	DestinationStatusDescription *string
1629
1630	// The ARN for a specific Kinesis data stream.
1631	StreamArn *string
1632}
1633
1634// Represents the properties of a local secondary index.
1635type LocalSecondaryIndex struct {
1636
1637	// The name of the local secondary index. The name must be unique among all other
1638	// indexes on this table.
1639	//
1640	// This member is required.
1641	IndexName *string
1642
1643	// The complete key schema for the local secondary index, consisting of one or more
1644	// pairs of attribute names and key types:
1645	//
1646	// * HASH - partition key
1647	//
1648	// * RANGE - sort
1649	// key
1650	//
1651	// The partition key of an item is also known as its hash attribute. The term
1652	// "hash attribute" derives from DynamoDB's usage of an internal hash function to
1653	// evenly distribute data items across partitions, based on their partition key
1654	// values. The sort key of an item is also known as its range attribute. The term
1655	// "range attribute" derives from the way DynamoDB stores items with the same
1656	// partition key physically close together, in sorted order by the sort key value.
1657	//
1658	// This member is required.
1659	KeySchema []KeySchemaElement
1660
1661	// Represents attributes that are copied (projected) from the table into the local
1662	// secondary index. These are in addition to the primary key attributes and index
1663	// key attributes, which are automatically projected.
1664	//
1665	// This member is required.
1666	Projection *Projection
1667}
1668
1669// Represents the properties of a local secondary index.
1670type LocalSecondaryIndexDescription struct {
1671
1672	// The Amazon Resource Name (ARN) that uniquely identifies the index.
1673	IndexArn *string
1674
1675	// Represents the name of the local secondary index.
1676	IndexName *string
1677
1678	// The total size of the specified index, in bytes. DynamoDB updates this value
1679	// approximately every six hours. Recent changes might not be reflected in this
1680	// value.
1681	IndexSizeBytes int64
1682
1683	// The number of items in the specified index. DynamoDB updates this value
1684	// approximately every six hours. Recent changes might not be reflected in this
1685	// value.
1686	ItemCount int64
1687
1688	// The complete key schema for the local secondary index, consisting of one or more
1689	// pairs of attribute names and key types:
1690	//
1691	// * HASH - partition key
1692	//
1693	// * RANGE - sort
1694	// key
1695	//
1696	// The partition key of an item is also known as its hash attribute. The term
1697	// "hash attribute" derives from DynamoDB's usage of an internal hash function to
1698	// evenly distribute data items across partitions, based on their partition key
1699	// values. The sort key of an item is also known as its range attribute. The term
1700	// "range attribute" derives from the way DynamoDB stores items with the same
1701	// partition key physically close together, in sorted order by the sort key value.
1702	KeySchema []KeySchemaElement
1703
1704	// Represents attributes that are copied (projected) from the table into the global
1705	// secondary index. These are in addition to the primary key attributes and index
1706	// key attributes, which are automatically projected.
1707	Projection *Projection
1708}
1709
1710// Represents the properties of a local secondary index for the table when the
1711// backup was created.
1712type LocalSecondaryIndexInfo struct {
1713
1714	// Represents the name of the local secondary index.
1715	IndexName *string
1716
1717	// The complete key schema for a local secondary index, which consists of one or
1718	// more pairs of attribute names and key types:
1719	//
1720	// * HASH - partition key
1721	//
1722	// * RANGE -
1723	// sort key
1724	//
1725	// The partition key of an item is also known as its hash attribute. The
1726	// term "hash attribute" derives from DynamoDB's usage of an internal hash function
1727	// to evenly distribute data items across partitions, based on their partition key
1728	// values. The sort key of an item is also known as its range attribute. The term
1729	// "range attribute" derives from the way DynamoDB stores items with the same
1730	// partition key physically close together, in sorted order by the sort key value.
1731	KeySchema []KeySchemaElement
1732
1733	// Represents attributes that are copied (projected) from the table into the global
1734	// secondary index. These are in addition to the primary key attributes and index
1735	// key attributes, which are automatically projected.
1736	Projection *Projection
1737}
1738
1739// Represents a PartiQL statment that uses parameters.
1740type ParameterizedStatement struct {
1741
1742	// A PartiQL statment that uses parameters.
1743	//
1744	// This member is required.
1745	Statement *string
1746
1747	// The parameter values.
1748	Parameters []AttributeValue
1749}
1750
1751// The description of the point in time settings applied to the table.
1752type PointInTimeRecoveryDescription struct {
1753
1754	// Specifies the earliest point in time you can restore your table to. You can
1755	// restore your table to any point in time during the last 35 days.
1756	EarliestRestorableDateTime *time.Time
1757
1758	// LatestRestorableDateTime is typically 5 minutes before the current time.
1759	LatestRestorableDateTime *time.Time
1760
1761	// The current state of point in time recovery:
1762	//
1763	// * ENABLING - Point in time
1764	// recovery is being enabled.
1765	//
1766	// * ENABLED - Point in time recovery is enabled.
1767	//
1768	// *
1769	// DISABLED - Point in time recovery is disabled.
1770	PointInTimeRecoveryStatus PointInTimeRecoveryStatus
1771}
1772
1773// Represents the settings used to enable point in time recovery.
1774type PointInTimeRecoverySpecification struct {
1775
1776	// Indicates whether point in time recovery is enabled (true) or disabled (false)
1777	// on the table.
1778	//
1779	// This member is required.
1780	PointInTimeRecoveryEnabled *bool
1781}
1782
1783// Represents attributes that are copied (projected) from the table into an index.
1784// These are in addition to the primary key attributes and index key attributes,
1785// which are automatically projected.
1786type Projection struct {
1787
1788	// Represents the non-key attribute names which will be projected into the index.
1789	// For local secondary indexes, the total count of NonKeyAttributes summed across
1790	// all of the local secondary indexes, must not exceed 20. If you project the same
1791	// attribute into two different indexes, this counts as two distinct attributes
1792	// when determining the total.
1793	NonKeyAttributes []string
1794
1795	// The set of attributes that are projected into the index:
1796	//
1797	// * KEYS_ONLY - Only the
1798	// index and primary keys are projected into the index.
1799	//
1800	// * INCLUDE - In addition to
1801	// the attributes described in KEYS_ONLY, the secondary index will include other
1802	// non-key attributes that you specify.
1803	//
1804	// * ALL - All of the table attributes are
1805	// projected into the index.
1806	ProjectionType ProjectionType
1807}
1808
1809// Represents the provisioned throughput settings for a specified table or index.
1810// The settings can be modified using the UpdateTable operation. For current
1811// minimum and maximum provisioned throughput values, see Service, Account, and
1812// Table Quotas
1813// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
1814// in the Amazon DynamoDB Developer Guide.
1815type ProvisionedThroughput struct {
1816
1817	// The maximum number of strongly consistent reads consumed per second before
1818	// DynamoDB returns a ThrottlingException. For more information, see Specifying
1819	// Read and Write Requirements
1820	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
1821	// in the Amazon DynamoDB Developer Guide. If read/write capacity mode is
1822	// PAY_PER_REQUEST the value is set to 0.
1823	//
1824	// This member is required.
1825	ReadCapacityUnits *int64
1826
1827	// The maximum number of writes consumed per second before DynamoDB returns a
1828	// ThrottlingException. For more information, see Specifying Read and Write
1829	// Requirements
1830	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
1831	// in the Amazon DynamoDB Developer Guide. If read/write capacity mode is
1832	// PAY_PER_REQUEST the value is set to 0.
1833	//
1834	// This member is required.
1835	WriteCapacityUnits *int64
1836}
1837
1838// Represents the provisioned throughput settings for the table, consisting of read
1839// and write capacity units, along with data about increases and decreases.
1840type ProvisionedThroughputDescription struct {
1841
1842	// The date and time of the last provisioned throughput decrease for this table.
1843	LastDecreaseDateTime *time.Time
1844
1845	// The date and time of the last provisioned throughput increase for this table.
1846	LastIncreaseDateTime *time.Time
1847
1848	// The number of provisioned throughput decreases for this table during this UTC
1849	// calendar day. For current maximums on provisioned throughput decreases, see
1850	// Service, Account, and Table Quotas
1851	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
1852	// in the Amazon DynamoDB Developer Guide.
1853	NumberOfDecreasesToday *int64
1854
1855	// The maximum number of strongly consistent reads consumed per second before
1856	// DynamoDB returns a ThrottlingException. Eventually consistent reads require less
1857	// effort than strongly consistent reads, so a setting of 50 ReadCapacityUnits per
1858	// second provides 100 eventually consistent ReadCapacityUnits per second.
1859	ReadCapacityUnits *int64
1860
1861	// The maximum number of writes consumed per second before DynamoDB returns a
1862	// ThrottlingException.
1863	WriteCapacityUnits *int64
1864}
1865
1866// Replica-specific provisioned throughput settings. If not specified, uses the
1867// source table's provisioned throughput settings.
1868type ProvisionedThroughputOverride struct {
1869
1870	// Replica-specific read capacity units. If not specified, uses the source table's
1871	// read capacity settings.
1872	ReadCapacityUnits *int64
1873}
1874
1875// Represents a request to perform a PutItem operation.
1876type Put struct {
1877
1878	// A map of attribute name to attribute values, representing the primary key of the
1879	// item to be written by PutItem. All of the table's primary key attributes must be
1880	// specified, and their data types must match those of the table's key schema. If
1881	// any attributes are present in the item that are part of an index key schema for
1882	// the table, their types must match the index key schema.
1883	//
1884	// This member is required.
1885	Item map[string]AttributeValue
1886
1887	// Name of the table in which to write the item.
1888	//
1889	// This member is required.
1890	TableName *string
1891
1892	// A condition that must be satisfied in order for a conditional update to succeed.
1893	ConditionExpression *string
1894
1895	// One or more substitution tokens for attribute names in an expression.
1896	ExpressionAttributeNames map[string]string
1897
1898	// One or more values that can be substituted in an expression.
1899	ExpressionAttributeValues map[string]AttributeValue
1900
1901	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the Put
1902	// condition fails. For ReturnValuesOnConditionCheckFailure, the valid values are:
1903	// NONE and ALL_OLD.
1904	ReturnValuesOnConditionCheckFailure ReturnValuesOnConditionCheckFailure
1905}
1906
1907// Represents a request to perform a PutItem operation on an item.
1908type PutRequest struct {
1909
1910	// A map of attribute name to attribute values, representing the primary key of an
1911	// item to be processed by PutItem. All of the table's primary key attributes must
1912	// be specified, and their data types must match those of the table's key schema.
1913	// If any attributes are present in the item that are part of an index key schema
1914	// for the table, their types must match the index key schema.
1915	//
1916	// This member is required.
1917	Item map[string]AttributeValue
1918}
1919
1920// Represents the properties of a replica.
1921type Replica struct {
1922
1923	// The Region where the replica needs to be created.
1924	RegionName *string
1925}
1926
1927// Represents the auto scaling settings of the replica.
1928type ReplicaAutoScalingDescription struct {
1929
1930	// Replica-specific global secondary index auto scaling settings.
1931	GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndexAutoScalingDescription
1932
1933	// The Region where the replica exists.
1934	RegionName *string
1935
1936	// Represents the auto scaling settings for a global table or global secondary
1937	// index.
1938	ReplicaProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription
1939
1940	// Represents the auto scaling settings for a global table or global secondary
1941	// index.
1942	ReplicaProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription
1943
1944	// The current state of the replica:
1945	//
1946	// * CREATING - The replica is being created.
1947	//
1948	// *
1949	// UPDATING - The replica is being updated.
1950	//
1951	// * DELETING - The replica is being
1952	// deleted.
1953	//
1954	// * ACTIVE - The replica is ready for use.
1955	ReplicaStatus ReplicaStatus
1956}
1957
1958// Represents the auto scaling settings of a replica that will be modified.
1959type ReplicaAutoScalingUpdate struct {
1960
1961	// The Region where the replica exists.
1962	//
1963	// This member is required.
1964	RegionName *string
1965
1966	// Represents the auto scaling settings of global secondary indexes that will be
1967	// modified.
1968	ReplicaGlobalSecondaryIndexUpdates []ReplicaGlobalSecondaryIndexAutoScalingUpdate
1969
1970	// Represents the auto scaling settings to be modified for a global table or global
1971	// secondary index.
1972	ReplicaProvisionedReadCapacityAutoScalingUpdate *AutoScalingSettingsUpdate
1973}
1974
1975// Contains the details of the replica.
1976type ReplicaDescription struct {
1977
1978	// Replica-specific global secondary index settings.
1979	GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndexDescription
1980
1981	// The AWS KMS customer master key (CMK) of the replica that will be used for AWS
1982	// KMS encryption.
1983	KMSMasterKeyId *string
1984
1985	// Replica-specific provisioned throughput. If not described, uses the source
1986	// table's provisioned throughput settings.
1987	ProvisionedThroughputOverride *ProvisionedThroughputOverride
1988
1989	// The name of the Region.
1990	RegionName *string
1991
1992	// The time at which the replica was first detected as inaccessible. To determine
1993	// cause of inaccessibility check the ReplicaStatus property.
1994	ReplicaInaccessibleDateTime *time.Time
1995
1996	// The current state of the replica:
1997	//
1998	// * CREATING - The replica is being created.
1999	//
2000	// *
2001	// UPDATING - The replica is being updated.
2002	//
2003	// * DELETING - The replica is being
2004	// deleted.
2005	//
2006	// * ACTIVE - The replica is ready for use.
2007	//
2008	// * REGION_DISABLED - The
2009	// replica is inaccessible because the AWS Region has been disabled. If the AWS
2010	// Region remains inaccessible for more than 20 hours, DynamoDB will remove this
2011	// replica from the replication group. The replica will not be deleted and
2012	// replication will stop from and to this region.
2013	//
2014	// *
2015	// INACCESSIBLE_ENCRYPTION_CREDENTIALS  - The AWS KMS key used to encrypt the table
2016	// is inaccessible. If the AWS KMS key remains inaccessible for more than 20 hours,
2017	// DynamoDB will remove this replica from the replication group. The replica will
2018	// not be deleted and replication will stop from and to this region.
2019	ReplicaStatus ReplicaStatus
2020
2021	// Detailed information about the replica status.
2022	ReplicaStatusDescription *string
2023
2024	// Specifies the progress of a Create, Update, or Delete action on the replica as a
2025	// percentage.
2026	ReplicaStatusPercentProgress *string
2027}
2028
2029// Represents the properties of a replica global secondary index.
2030type ReplicaGlobalSecondaryIndex struct {
2031
2032	// The name of the global secondary index.
2033	//
2034	// This member is required.
2035	IndexName *string
2036
2037	// Replica table GSI-specific provisioned throughput. If not specified, uses the
2038	// source table GSI's read capacity settings.
2039	ProvisionedThroughputOverride *ProvisionedThroughputOverride
2040}
2041
2042// Represents the auto scaling configuration for a replica global secondary index.
2043type ReplicaGlobalSecondaryIndexAutoScalingDescription struct {
2044
2045	// The name of the global secondary index.
2046	IndexName *string
2047
2048	// The current state of the replica global secondary index:
2049	//
2050	// * CREATING - The index
2051	// is being created.
2052	//
2053	// * UPDATING - The index is being updated.
2054	//
2055	// * DELETING - The
2056	// index is being deleted.
2057	//
2058	// * ACTIVE - The index is ready for use.
2059	IndexStatus IndexStatus
2060
2061	// Represents the auto scaling settings for a global table or global secondary
2062	// index.
2063	ProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription
2064
2065	// Represents the auto scaling settings for a global table or global secondary
2066	// index.
2067	ProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription
2068}
2069
2070// Represents the auto scaling settings of a global secondary index for a replica
2071// that will be modified.
2072type ReplicaGlobalSecondaryIndexAutoScalingUpdate struct {
2073
2074	// The name of the global secondary index.
2075	IndexName *string
2076
2077	// Represents the auto scaling settings to be modified for a global table or global
2078	// secondary index.
2079	ProvisionedReadCapacityAutoScalingUpdate *AutoScalingSettingsUpdate
2080}
2081
2082// Represents the properties of a replica global secondary index.
2083type ReplicaGlobalSecondaryIndexDescription struct {
2084
2085	// The name of the global secondary index.
2086	IndexName *string
2087
2088	// If not described, uses the source table GSI's read capacity settings.
2089	ProvisionedThroughputOverride *ProvisionedThroughputOverride
2090}
2091
2092// Represents the properties of a global secondary index.
2093type ReplicaGlobalSecondaryIndexSettingsDescription struct {
2094
2095	// The name of the global secondary index. The name must be unique among all other
2096	// indexes on this table.
2097	//
2098	// This member is required.
2099	IndexName *string
2100
2101	// The current status of the global secondary index:
2102	//
2103	// * CREATING - The global
2104	// secondary index is being created.
2105	//
2106	// * UPDATING - The global secondary index is
2107	// being updated.
2108	//
2109	// * DELETING - The global secondary index is being deleted.
2110	//
2111	// *
2112	// ACTIVE - The global secondary index is ready for use.
2113	IndexStatus IndexStatus
2114
2115	// Auto scaling settings for a global secondary index replica's read capacity
2116	// units.
2117	ProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription
2118
2119	// The maximum number of strongly consistent reads consumed per second before
2120	// DynamoDB returns a ThrottlingException.
2121	ProvisionedReadCapacityUnits *int64
2122
2123	// Auto scaling settings for a global secondary index replica's write capacity
2124	// units.
2125	ProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription
2126
2127	// The maximum number of writes consumed per second before DynamoDB returns a
2128	// ThrottlingException.
2129	ProvisionedWriteCapacityUnits *int64
2130}
2131
2132// Represents the settings of a global secondary index for a global table that will
2133// be modified.
2134type ReplicaGlobalSecondaryIndexSettingsUpdate struct {
2135
2136	// The name of the global secondary index. The name must be unique among all other
2137	// indexes on this table.
2138	//
2139	// This member is required.
2140	IndexName *string
2141
2142	// Auto scaling settings for managing a global secondary index replica's read
2143	// capacity units.
2144	ProvisionedReadCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate
2145
2146	// The maximum number of strongly consistent reads consumed per second before
2147	// DynamoDB returns a ThrottlingException.
2148	ProvisionedReadCapacityUnits *int64
2149}
2150
2151// Represents the properties of a replica.
2152type ReplicaSettingsDescription struct {
2153
2154	// The Region name of the replica.
2155	//
2156	// This member is required.
2157	RegionName *string
2158
2159	// The read/write capacity mode of the replica.
2160	ReplicaBillingModeSummary *BillingModeSummary
2161
2162	// Replica global secondary index settings for the global table.
2163	ReplicaGlobalSecondaryIndexSettings []ReplicaGlobalSecondaryIndexSettingsDescription
2164
2165	// Auto scaling settings for a global table replica's read capacity units.
2166	ReplicaProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription
2167
2168	// The maximum number of strongly consistent reads consumed per second before
2169	// DynamoDB returns a ThrottlingException. For more information, see Specifying
2170	// Read and Write Requirements
2171	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
2172	// in the Amazon DynamoDB Developer Guide.
2173	ReplicaProvisionedReadCapacityUnits *int64
2174
2175	// Auto scaling settings for a global table replica's write capacity units.
2176	ReplicaProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription
2177
2178	// The maximum number of writes consumed per second before DynamoDB returns a
2179	// ThrottlingException. For more information, see Specifying Read and Write
2180	// Requirements
2181	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
2182	// in the Amazon DynamoDB Developer Guide.
2183	ReplicaProvisionedWriteCapacityUnits *int64
2184
2185	// The current state of the Region:
2186	//
2187	// * CREATING - The Region is being created.
2188	//
2189	// *
2190	// UPDATING - The Region is being updated.
2191	//
2192	// * DELETING - The Region is being
2193	// deleted.
2194	//
2195	// * ACTIVE - The Region is ready for use.
2196	ReplicaStatus ReplicaStatus
2197}
2198
2199// Represents the settings for a global table in a Region that will be modified.
2200type ReplicaSettingsUpdate struct {
2201
2202	// The Region of the replica to be added.
2203	//
2204	// This member is required.
2205	RegionName *string
2206
2207	// Represents the settings of a global secondary index for a global table that will
2208	// be modified.
2209	ReplicaGlobalSecondaryIndexSettingsUpdate []ReplicaGlobalSecondaryIndexSettingsUpdate
2210
2211	// Auto scaling settings for managing a global table replica's read capacity units.
2212	ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate
2213
2214	// The maximum number of strongly consistent reads consumed per second before
2215	// DynamoDB returns a ThrottlingException. For more information, see Specifying
2216	// Read and Write Requirements
2217	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
2218	// in the Amazon DynamoDB Developer Guide.
2219	ReplicaProvisionedReadCapacityUnits *int64
2220}
2221
2222// Represents one of the following:
2223//
2224// * A new replica to be added to an existing
2225// regional table or global table. This request invokes the CreateTableReplica
2226// action in the destination Region.
2227//
2228// * New parameters for an existing replica.
2229// This request invokes the UpdateTable action in the destination Region.
2230//
2231// * An
2232// existing replica to be deleted. The request invokes the DeleteTableReplica
2233// action in the destination Region, deleting the replica and all if its items in
2234// the destination Region.
2235type ReplicationGroupUpdate struct {
2236
2237	// The parameters required for creating a replica for the table.
2238	Create *CreateReplicationGroupMemberAction
2239
2240	// The parameters required for deleting a replica for the table.
2241	Delete *DeleteReplicationGroupMemberAction
2242
2243	// The parameters required for updating a replica for the table.
2244	Update *UpdateReplicationGroupMemberAction
2245}
2246
2247// Represents one of the following:
2248//
2249// * A new replica to be added to an existing
2250// global table.
2251//
2252// * New parameters for an existing replica.
2253//
2254// * An existing replica
2255// to be removed from an existing global table.
2256type ReplicaUpdate struct {
2257
2258	// The parameters required for creating a replica on an existing global table.
2259	Create *CreateReplicaAction
2260
2261	// The name of the existing replica to be removed.
2262	Delete *DeleteReplicaAction
2263}
2264
2265// Contains details for the restore.
2266type RestoreSummary struct {
2267
2268	// Point in time or source backup time.
2269	//
2270	// This member is required.
2271	RestoreDateTime *time.Time
2272
2273	// Indicates if a restore is in progress or not.
2274	//
2275	// This member is required.
2276	RestoreInProgress *bool
2277
2278	// The Amazon Resource Name (ARN) of the backup from which the table was restored.
2279	SourceBackupArn *string
2280
2281	// The ARN of the source table of the backup that is being restored.
2282	SourceTableArn *string
2283}
2284
2285// Contains the details of the table when the backup was created.
2286type SourceTableDetails struct {
2287
2288	// Schema of the table.
2289	//
2290	// This member is required.
2291	KeySchema []KeySchemaElement
2292
2293	// Read IOPs and Write IOPS on the table when the backup was created.
2294	//
2295	// This member is required.
2296	ProvisionedThroughput *ProvisionedThroughput
2297
2298	// Time when the source table was created.
2299	//
2300	// This member is required.
2301	TableCreationDateTime *time.Time
2302
2303	// Unique identifier for the table for which the backup was created.
2304	//
2305	// This member is required.
2306	TableId *string
2307
2308	// The name of the table for which the backup was created.
2309	//
2310	// This member is required.
2311	TableName *string
2312
2313	// Controls how you are charged for read and write throughput and how you manage
2314	// capacity. This setting can be changed later.
2315	//
2316	// * PROVISIONED - Sets the
2317	// read/write capacity mode to PROVISIONED. We recommend using PROVISIONED for
2318	// predictable workloads.
2319	//
2320	// * PAY_PER_REQUEST - Sets the read/write capacity mode to
2321	// PAY_PER_REQUEST. We recommend using PAY_PER_REQUEST for unpredictable workloads.
2322	BillingMode BillingMode
2323
2324	// Number of items in the table. Note that this is an approximate value.
2325	ItemCount *int64
2326
2327	// ARN of the table for which backup was created.
2328	TableArn *string
2329
2330	// Size of the table in bytes. Note that this is an approximate value.
2331	TableSizeBytes int64
2332}
2333
2334// Contains the details of the features enabled on the table when the backup was
2335// created. For example, LSIs, GSIs, streams, TTL.
2336type SourceTableFeatureDetails struct {
2337
2338	// Represents the GSI properties for the table when the backup was created. It
2339	// includes the IndexName, KeySchema, Projection, and ProvisionedThroughput for the
2340	// GSIs on the table at the time of backup.
2341	GlobalSecondaryIndexes []GlobalSecondaryIndexInfo
2342
2343	// Represents the LSI properties for the table when the backup was created. It
2344	// includes the IndexName, KeySchema and Projection for the LSIs on the table at
2345	// the time of backup.
2346	LocalSecondaryIndexes []LocalSecondaryIndexInfo
2347
2348	// The description of the server-side encryption status on the table when the
2349	// backup was created.
2350	SSEDescription *SSEDescription
2351
2352	// Stream settings on the table when the backup was created.
2353	StreamDescription *StreamSpecification
2354
2355	// Time to Live settings on the table when the backup was created.
2356	TimeToLiveDescription *TimeToLiveDescription
2357}
2358
2359// The description of the server-side encryption status on the specified table.
2360type SSEDescription struct {
2361
2362	// Indicates the time, in UNIX epoch date format, when DynamoDB detected that the
2363	// table's AWS KMS key was inaccessible. This attribute will automatically be
2364	// cleared when DynamoDB detects that the table's AWS KMS key is accessible again.
2365	// DynamoDB will initiate the table archival process when table's AWS KMS key
2366	// remains inaccessible for more than seven days from this date.
2367	InaccessibleEncryptionDateTime *time.Time
2368
2369	// The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.
2370	KMSMasterKeyArn *string
2371
2372	// Server-side encryption type. The only supported value is:
2373	//
2374	// * KMS - Server-side
2375	// encryption that uses AWS Key Management Service. The key is stored in your
2376	// account and is managed by AWS KMS (AWS KMS charges apply).
2377	SSEType SSEType
2378
2379	// Represents the current state of server-side encryption. The only supported
2380	// values are:
2381	//
2382	// * ENABLED - Server-side encryption is enabled.
2383	//
2384	// * UPDATING -
2385	// Server-side encryption is being updated.
2386	Status SSEStatus
2387}
2388
2389// Represents the settings used to enable server-side encryption.
2390type SSESpecification struct {
2391
2392	// Indicates whether server-side encryption is done using an AWS managed CMK or an
2393	// AWS owned CMK. If enabled (true), server-side encryption type is set to KMS and
2394	// an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not
2395	// specified, server-side encryption is set to AWS owned CMK.
2396	Enabled *bool
2397
2398	// The AWS KMS customer master key (CMK) that should be used for the AWS KMS
2399	// encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias
2400	// name, or alias ARN. Note that you should only provide this parameter if the key
2401	// is different from the default DynamoDB customer master key alias/aws/dynamodb.
2402	KMSMasterKeyId *string
2403
2404	// Server-side encryption type. The only supported value is:
2405	//
2406	// * KMS - Server-side
2407	// encryption that uses AWS Key Management Service. The key is stored in your
2408	// account and is managed by AWS KMS (AWS KMS charges apply).
2409	SSEType SSEType
2410}
2411
2412// Represents the DynamoDB Streams configuration for a table in DynamoDB.
2413type StreamSpecification struct {
2414
2415	// Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the
2416	// table.
2417	//
2418	// This member is required.
2419	StreamEnabled *bool
2420
2421	// When an item in the table is modified, StreamViewType determines what
2422	// information is written to the stream for this table. Valid values for
2423	// StreamViewType are:
2424	//
2425	// * KEYS_ONLY - Only the key attributes of the modified item
2426	// are written to the stream.
2427	//
2428	// * NEW_IMAGE - The entire item, as it appears after
2429	// it was modified, is written to the stream.
2430	//
2431	// * OLD_IMAGE - The entire item, as it
2432	// appeared before it was modified, is written to the stream.
2433	//
2434	// * NEW_AND_OLD_IMAGES
2435	// - Both the new and the old item images of the item are written to the stream.
2436	StreamViewType StreamViewType
2437}
2438
2439// Represents the auto scaling configuration for a global table.
2440type TableAutoScalingDescription struct {
2441
2442	// Represents replicas of the global table.
2443	Replicas []ReplicaAutoScalingDescription
2444
2445	// The name of the table.
2446	TableName *string
2447
2448	// The current state of the table:
2449	//
2450	// * CREATING - The table is being created.
2451	//
2452	// *
2453	// UPDATING - The table is being updated.
2454	//
2455	// * DELETING - The table is being
2456	// deleted.
2457	//
2458	// * ACTIVE - The table is ready for use.
2459	TableStatus TableStatus
2460}
2461
2462// Represents the properties of a table.
2463type TableDescription struct {
2464
2465	// Contains information about the table archive.
2466	ArchivalSummary *ArchivalSummary
2467
2468	// An array of AttributeDefinition objects. Each of these objects describes one
2469	// attribute in the table and index key schema. Each AttributeDefinition object in
2470	// this array is composed of:
2471	//
2472	// * AttributeName - The name of the attribute.
2473	//
2474	// *
2475	// AttributeType - The data type for the attribute.
2476	AttributeDefinitions []AttributeDefinition
2477
2478	// Contains the details for the read/write capacity mode.
2479	BillingModeSummary *BillingModeSummary
2480
2481	// The date and time when the table was created, in UNIX epoch time
2482	// (http://www.epochconverter.com/) format.
2483	CreationDateTime *time.Time
2484
2485	// The global secondary indexes, if any, on the table. Each index is scoped to a
2486	// given partition key value. Each element is composed of:
2487	//
2488	// * Backfilling - If
2489	// true, then the index is currently in the backfilling phase. Backfilling occurs
2490	// only when a new global secondary index is added to the table. It is the process
2491	// by which DynamoDB populates the new index with data from the table. (This
2492	// attribute does not appear for indexes that were created during a CreateTable
2493	// operation.) You can delete an index that is being created during the Backfilling
2494	// phase when IndexStatus is set to CREATING and Backfilling is true. You can't
2495	// delete the index that is being created when IndexStatus is set to CREATING and
2496	// Backfilling is false. (This attribute does not appear for indexes that were
2497	// created during a CreateTable operation.)
2498	//
2499	// * IndexName - The name of the global
2500	// secondary index.
2501	//
2502	// * IndexSizeBytes - The total size of the global secondary
2503	// index, in bytes. DynamoDB updates this value approximately every six hours.
2504	// Recent changes might not be reflected in this value.
2505	//
2506	// * IndexStatus - The
2507	// current status of the global secondary index:
2508	//
2509	// * CREATING - The index is being
2510	// created.
2511	//
2512	// * UPDATING - The index is being updated.
2513	//
2514	// * DELETING - The index is
2515	// being deleted.
2516	//
2517	// * ACTIVE - The index is ready for use.
2518	//
2519	// * ItemCount - The number
2520	// of items in the global secondary index. DynamoDB updates this value
2521	// approximately every six hours. Recent changes might not be reflected in this
2522	// value.
2523	//
2524	// * KeySchema - Specifies the complete index key schema. The attribute
2525	// names in the key schema must be between 1 and 255 characters (inclusive). The
2526	// key schema must begin with the same partition key as the table.
2527	//
2528	// * Projection -
2529	// Specifies attributes that are copied (projected) from the table into the index.
2530	// These are in addition to the primary key attributes and index key attributes,
2531	// which are automatically projected. Each attribute specification is composed
2532	// of:
2533	//
2534	// * ProjectionType - One of the following:
2535	//
2536	// * KEYS_ONLY - Only the index and
2537	// primary keys are projected into the index.
2538	//
2539	// * INCLUDE - In addition to the
2540	// attributes described in KEYS_ONLY, the secondary index will include other
2541	// non-key attributes that you specify.
2542	//
2543	// * ALL - All of the table attributes are
2544	// projected into the index.
2545	//
2546	// * NonKeyAttributes - A list of one or more non-key
2547	// attribute names that are projected into the secondary index. The total count of
2548	// attributes provided in NonKeyAttributes, summed across all of the secondary
2549	// indexes, must not exceed 20. If you project the same attribute into two
2550	// different indexes, this counts as two distinct attributes when determining the
2551	// total.
2552	//
2553	// * ProvisionedThroughput - The provisioned throughput settings for the
2554	// global secondary index, consisting of read and write capacity units, along with
2555	// data about increases and decreases.
2556	//
2557	// If the table is in the DELETING state, no
2558	// information about indexes will be returned.
2559	GlobalSecondaryIndexes []GlobalSecondaryIndexDescription
2560
2561	// Represents the version of global tables
2562	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html)
2563	// in use, if the table is replicated across AWS Regions.
2564	GlobalTableVersion *string
2565
2566	// The number of items in the specified table. DynamoDB updates this value
2567	// approximately every six hours. Recent changes might not be reflected in this
2568	// value.
2569	ItemCount int64
2570
2571	// The primary key structure for the table. Each KeySchemaElement consists of:
2572	//
2573	// *
2574	// AttributeName - The name of the attribute.
2575	//
2576	// * KeyType - The role of the
2577	// attribute:
2578	//
2579	// * HASH - partition key
2580	//
2581	// * RANGE - sort key
2582	//
2583	// The partition key of an
2584	// item is also known as its hash attribute. The term "hash attribute" derives from
2585	// DynamoDB's usage of an internal hash function to evenly distribute data items
2586	// across partitions, based on their partition key values. The sort key of an item
2587	// is also known as its range attribute. The term "range attribute" derives from
2588	// the way DynamoDB stores items with the same partition key physically close
2589	// together, in sorted order by the sort key value.
2590	//
2591	// For more information about
2592	// primary keys, see Primary Key
2593	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey)
2594	// in the Amazon DynamoDB Developer Guide.
2595	KeySchema []KeySchemaElement
2596
2597	// The Amazon Resource Name (ARN) that uniquely identifies the latest stream for
2598	// this table.
2599	LatestStreamArn *string
2600
2601	// A timestamp, in ISO 8601 format, for this stream. Note that LatestStreamLabel is
2602	// not a unique identifier for the stream, because it is possible that a stream
2603	// from another table might have the same timestamp. However, the combination of
2604	// the following three elements is guaranteed to be unique:
2605	//
2606	// * AWS customer ID
2607	//
2608	// *
2609	// Table name
2610	//
2611	// * StreamLabel
2612	LatestStreamLabel *string
2613
2614	// Represents one or more local secondary indexes on the table. Each index is
2615	// scoped to a given partition key value. Tables with one or more local secondary
2616	// indexes are subject to an item collection size limit, where the amount of data
2617	// within a given item collection cannot exceed 10 GB. Each element is composed
2618	// of:
2619	//
2620	// * IndexName - The name of the local secondary index.
2621	//
2622	// * KeySchema -
2623	// Specifies the complete index key schema. The attribute names in the key schema
2624	// must be between 1 and 255 characters (inclusive). The key schema must begin with
2625	// the same partition key as the table.
2626	//
2627	// * Projection - Specifies attributes that
2628	// are copied (projected) from the table into the index. These are in addition to
2629	// the primary key attributes and index key attributes, which are automatically
2630	// projected. Each attribute specification is composed of:
2631	//
2632	// * ProjectionType - One
2633	// of the following:
2634	//
2635	// * KEYS_ONLY - Only the index and primary keys are projected
2636	// into the index.
2637	//
2638	// * INCLUDE - Only the specified table attributes are projected
2639	// into the index. The list of projected attributes is in NonKeyAttributes.
2640	//
2641	// * ALL
2642	// - All of the table attributes are projected into the index.
2643	//
2644	// * NonKeyAttributes
2645	// - A list of one or more non-key attribute names that are projected into the
2646	// secondary index. The total count of attributes provided in NonKeyAttributes,
2647	// summed across all of the secondary indexes, must not exceed 20. If you project
2648	// the same attribute into two different indexes, this counts as two distinct
2649	// attributes when determining the total.
2650	//
2651	// * IndexSizeBytes - Represents the total
2652	// size of the index, in bytes. DynamoDB updates this value approximately every six
2653	// hours. Recent changes might not be reflected in this value.
2654	//
2655	// * ItemCount -
2656	// Represents the number of items in the index. DynamoDB updates this value
2657	// approximately every six hours. Recent changes might not be reflected in this
2658	// value.
2659	//
2660	// If the table is in the DELETING state, no information about indexes will
2661	// be returned.
2662	LocalSecondaryIndexes []LocalSecondaryIndexDescription
2663
2664	// The provisioned throughput settings for the table, consisting of read and write
2665	// capacity units, along with data about increases and decreases.
2666	ProvisionedThroughput *ProvisionedThroughputDescription
2667
2668	// Represents replicas of the table.
2669	Replicas []ReplicaDescription
2670
2671	// Contains details for the restore.
2672	RestoreSummary *RestoreSummary
2673
2674	// The description of the server-side encryption status on the specified table.
2675	SSEDescription *SSEDescription
2676
2677	// The current DynamoDB Streams configuration for the table.
2678	StreamSpecification *StreamSpecification
2679
2680	// The Amazon Resource Name (ARN) that uniquely identifies the table.
2681	TableArn *string
2682
2683	// Unique identifier for the table for which the backup was created.
2684	TableId *string
2685
2686	// The name of the table.
2687	TableName *string
2688
2689	// The total size of the specified table, in bytes. DynamoDB updates this value
2690	// approximately every six hours. Recent changes might not be reflected in this
2691	// value.
2692	TableSizeBytes int64
2693
2694	// The current state of the table:
2695	//
2696	// * CREATING - The table is being created.
2697	//
2698	// *
2699	// UPDATING - The table is being updated.
2700	//
2701	// * DELETING - The table is being
2702	// deleted.
2703	//
2704	// * ACTIVE - The table is ready for use.
2705	//
2706	// *
2707	// INACCESSIBLE_ENCRYPTION_CREDENTIALS - The AWS KMS key used to encrypt the table
2708	// in inaccessible. Table operations may fail due to failure to use the AWS KMS
2709	// key. DynamoDB will initiate the table archival process when a table's AWS KMS
2710	// key remains inaccessible for more than seven days.
2711	//
2712	// * ARCHIVING - The table is
2713	// being archived. Operations are not allowed until archival is complete.
2714	//
2715	// *
2716	// ARCHIVED - The table has been archived. See the ArchivalReason for more
2717	// information.
2718	TableStatus TableStatus
2719}
2720
2721// Describes a tag. A tag is a key-value pair. You can add up to 50 tags to a
2722// single DynamoDB table. AWS-assigned tag names and values are automatically
2723// assigned the aws: prefix, which the user cannot assign. AWS-assigned tag names
2724// do not count towards the tag limit of 50. User-assigned tag names have the
2725// prefix user: in the Cost Allocation Report. You cannot backdate the application
2726// of a tag. For an overview on tagging DynamoDB resources, see Tagging for
2727// DynamoDB
2728// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)
2729// in the Amazon DynamoDB Developer Guide.
2730type Tag struct {
2731
2732	// The key of the tag. Tag keys are case sensitive. Each DynamoDB table can only
2733	// have up to one tag with the same key. If you try to add an existing tag (same
2734	// key), the existing tag value will be updated to the new value.
2735	//
2736	// This member is required.
2737	Key *string
2738
2739	// The value of the tag. Tag values are case-sensitive and can be null.
2740	//
2741	// This member is required.
2742	Value *string
2743}
2744
2745// The description of the Time to Live (TTL) status on the specified table.
2746type TimeToLiveDescription struct {
2747
2748	// The name of the TTL attribute for items in the table.
2749	AttributeName *string
2750
2751	// The TTL status for the table.
2752	TimeToLiveStatus TimeToLiveStatus
2753}
2754
2755// Represents the settings used to enable or disable Time to Live (TTL) for the
2756// specified table.
2757type TimeToLiveSpecification struct {
2758
2759	// The name of the TTL attribute used to store the expiration time for items in the
2760	// table.
2761	//
2762	// This member is required.
2763	AttributeName *string
2764
2765	// Indicates whether TTL is to be enabled (true) or disabled (false) on the table.
2766	//
2767	// This member is required.
2768	Enabled *bool
2769}
2770
2771// Specifies an item to be retrieved as part of the transaction.
2772type TransactGetItem struct {
2773
2774	// Contains the primary key that identifies the item to get, together with the name
2775	// of the table that contains the item, and optionally the specific attributes of
2776	// the item to retrieve.
2777	//
2778	// This member is required.
2779	Get *Get
2780}
2781
2782// A list of requests that can perform update, put, delete, or check operations on
2783// multiple items in one or more tables atomically.
2784type TransactWriteItem struct {
2785
2786	// A request to perform a check item operation.
2787	ConditionCheck *ConditionCheck
2788
2789	// A request to perform a DeleteItem operation.
2790	Delete *Delete
2791
2792	// A request to perform a PutItem operation.
2793	Put *Put
2794
2795	// A request to perform an UpdateItem operation.
2796	Update *Update
2797}
2798
2799// Represents a request to perform an UpdateItem operation.
2800type Update struct {
2801
2802	// The primary key of the item to be updated. Each element consists of an attribute
2803	// name and a value for that attribute.
2804	//
2805	// This member is required.
2806	Key map[string]AttributeValue
2807
2808	// Name of the table for the UpdateItem request.
2809	//
2810	// This member is required.
2811	TableName *string
2812
2813	// An expression that defines one or more attributes to be updated, the action to
2814	// be performed on them, and new value(s) for them.
2815	//
2816	// This member is required.
2817	UpdateExpression *string
2818
2819	// A condition that must be satisfied in order for a conditional update to succeed.
2820	ConditionExpression *string
2821
2822	// One or more substitution tokens for attribute names in an expression.
2823	ExpressionAttributeNames map[string]string
2824
2825	// One or more values that can be substituted in an expression.
2826	ExpressionAttributeValues map[string]AttributeValue
2827
2828	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the Update
2829	// condition fails. For ReturnValuesOnConditionCheckFailure, the valid values are:
2830	// NONE, ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW.
2831	ReturnValuesOnConditionCheckFailure ReturnValuesOnConditionCheckFailure
2832}
2833
2834// Represents the new provisioned throughput settings to be applied to a global
2835// secondary index.
2836type UpdateGlobalSecondaryIndexAction struct {
2837
2838	// The name of the global secondary index to be updated.
2839	//
2840	// This member is required.
2841	IndexName *string
2842
2843	// Represents the provisioned throughput settings for the specified global
2844	// secondary index. For current minimum and maximum provisioned throughput values,
2845	// see Service, Account, and Table Quotas
2846	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
2847	// in the Amazon DynamoDB Developer Guide.
2848	//
2849	// This member is required.
2850	ProvisionedThroughput *ProvisionedThroughput
2851}
2852
2853// Represents a replica to be modified.
2854type UpdateReplicationGroupMemberAction struct {
2855
2856	// The Region where the replica exists.
2857	//
2858	// This member is required.
2859	RegionName *string
2860
2861	// Replica-specific global secondary index settings.
2862	GlobalSecondaryIndexes []ReplicaGlobalSecondaryIndex
2863
2864	// The AWS KMS customer master key (CMK) of the replica that should be used for AWS
2865	// KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN),
2866	// alias name, or alias ARN. Note that you should only provide this parameter if
2867	// the key is different from the default DynamoDB KMS master key
2868	// alias/aws/dynamodb.
2869	KMSMasterKeyId *string
2870
2871	// Replica-specific provisioned throughput. If not specified, uses the source
2872	// table's provisioned throughput settings.
2873	ProvisionedThroughputOverride *ProvisionedThroughputOverride
2874}
2875
2876// Represents an operation to perform - either DeleteItem or PutItem. You can only
2877// request one of these operations, not both, in a single WriteRequest. If you do
2878// need to perform both of these operations, you need to provide two separate
2879// WriteRequest objects.
2880type WriteRequest struct {
2881
2882	// A request to perform a DeleteItem operation.
2883	DeleteRequest *DeleteRequest
2884
2885	// A request to perform a PutItem operation.
2886	PutRequest *PutRequest
2887}
2888
2889// UnknownUnionMember is returned when a union member is returned over the wire,
2890// but has an unknown tag.
2891type UnknownUnionMember struct {
2892	Tag   string
2893	Value []byte
2894}
2895
2896func (*UnknownUnionMember) isAttributeValue() {}
2897