Skip to content

Commit 95a2276

Browse files
author
AWS
committed
Amazon DynamoDB Update: This change adds support for global tables with multi-Region strong consistency (in preview). The UpdateTable API now supports a new attribute MultiRegionConsistency to set consistency when creating global tables. The DescribeTable output now optionally includes the MultiRegionConsistency attribute.
1 parent e8c800d commit 95a2276

File tree

3 files changed

+37
-5
lines changed

3 files changed

+37
-5
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Amazon DynamoDB",
4+
"contributor": "",
5+
"description": "This change adds support for global tables with multi-Region strong consistency (in preview). The UpdateTable API now supports a new attribute MultiRegionConsistency to set consistency when creating global tables. The DescribeTable output now optionally includes the MultiRegionConsistency attribute."
6+
}

services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,9 @@
170170
"properties": {
171171
"authSchemes": [
172172
{
173-
"name": "sigv4",
173+
"signingRegion": "us-east-1",
174174
"signingName": "dynamodb",
175-
"signingRegion": "us-east-1"
175+
"name": "sigv4"
176176
}
177177
]
178178
},

services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,8 @@
154154
{"shape":"ItemCollectionSizeLimitExceededException"},
155155
{"shape":"TransactionConflictException"},
156156
{"shape":"RequestLimitExceeded"},
157-
{"shape":"InternalServerError"}
157+
{"shape":"InternalServerError"},
158+
{"shape":"ReplicatedWriteConflictException"}
158159
],
159160
"documentation":"<p>Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value.</p> <p>In addition to deleting an item, you can also return the item's attribute values in the same operation, using the <code>ReturnValues</code> parameter.</p> <p>Unless you specify conditions, the <code>DeleteItem</code> is an idempotent operation; running it multiple times on the same item or attribute does <i>not</i> result in an error response.</p> <p>Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted.</p>",
160161
"endpointdiscovery":{
@@ -651,7 +652,8 @@
651652
{"shape":"ItemCollectionSizeLimitExceededException"},
652653
{"shape":"TransactionConflictException"},
653654
{"shape":"RequestLimitExceeded"},
654-
{"shape":"InternalServerError"}
655+
{"shape":"InternalServerError"},
656+
{"shape":"ReplicatedWriteConflictException"}
655657
],
656658
"documentation":"<p>Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. You can return the item's attribute values in the same operation, using the <code>ReturnValues</code> parameter.</p> <p>When you add an item, the primary key attributes are the only required attributes. </p> <p>Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index. Set type attributes cannot be empty. </p> <p>Invalid Requests with empty values will be rejected with a <code>ValidationException</code> exception.</p> <note> <p>To prevent a new item from replacing an existing item, use a conditional expression that contains the <code>attribute_not_exists</code> function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the <code>attribute_not_exists</code> function will only succeed if no matching item exists.</p> </note> <p>For more information about <code>PutItem</code>, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html\">Working with Items</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>",
657659
"endpointdiscovery":{
@@ -912,7 +914,8 @@
912914
{"shape":"ItemCollectionSizeLimitExceededException"},
913915
{"shape":"TransactionConflictException"},
914916
{"shape":"RequestLimitExceeded"},
915-
{"shape":"InternalServerError"}
917+
{"shape":"InternalServerError"},
918+
{"shape":"ReplicatedWriteConflictException"}
916919
],
917920
"documentation":"<p>Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values).</p> <p>You can also return the item's attribute values in the same <code>UpdateItem</code> operation using the <code>ReturnValues</code> parameter.</p>",
918921
"endpointdiscovery":{
@@ -4343,6 +4346,13 @@
43434346
"key":{"shape":"AttributeName"},
43444347
"value":{"shape":"AttributeValue"}
43454348
},
4349+
"MultiRegionConsistency":{
4350+
"type":"string",
4351+
"enum":[
4352+
"EVENTUAL",
4353+
"STRONG"
4354+
]
4355+
},
43464356
"NextTokenString":{"type":"string"},
43474357
"NonKeyAttributeName":{
43484358
"type":"string",
@@ -5228,6 +5238,14 @@
52285238
"type":"list",
52295239
"member":{"shape":"ReplicaUpdate"}
52305240
},
5241+
"ReplicatedWriteConflictException":{
5242+
"type":"structure",
5243+
"members":{
5244+
"message":{"shape":"ErrorMessage"}
5245+
},
5246+
"documentation":"<p>The request was rejected because one or more items in the request are being modified by a request in another Region. </p>",
5247+
"exception":true
5248+
},
52315249
"ReplicationGroupUpdate":{
52325250
"type":"structure",
52335251
"members":{
@@ -5979,6 +5997,10 @@
59795997
"WarmThroughput":{
59805998
"shape":"TableWarmThroughputDescription",
59815999
"documentation":"<p>Describes the warm throughput value of the base table.</p>"
6000+
},
6001+
"MultiRegionConsistency":{
6002+
"shape":"MultiRegionConsistency",
6003+
"documentation":"<p>Indicates one of the following consistency modes for a global table:</p> <ul> <li> <p> <code>EVENTUAL</code>: Indicates that the global table is configured for multi-Region eventual consistency.</p> </li> <li> <p> <code>STRONG</code>: Indicates that the global table is configured for multi-Region strong consistency (preview).</p> <note> <p>Multi-Region strong consistency (MRSC) is a new DynamoDB global tables capability currently available in preview mode. For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/PreviewFeatures.html#multi-region-strong-consistency-gt\">Global tables multi-Region strong consistency</a>.</p> </note> </li> </ul> <p>If you don't specify this field, the global table consistency mode defaults to <code>EVENTUAL</code>.</p>"
59826004
}
59836005
},
59846006
"documentation":"<p>Represents the properties of a table.</p>"
@@ -6695,6 +6717,10 @@
66956717
"shape":"DeletionProtectionEnabled",
66966718
"documentation":"<p>Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table.</p>"
66976719
},
6720+
"MultiRegionConsistency":{
6721+
"shape":"MultiRegionConsistency",
6722+
"documentation":"<p>Specifies the consistency mode for a new global table. This parameter is only valid when you create a global table by specifying one or more <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ReplicationGroupUpdate.html#DDB-Type-ReplicationGroupUpdate-Create\">Create</a> actions in the <a href=\"https://docs.aws.amazon.com/https:/docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html#DDB-UpdateTable-request-ReplicaUpdates\">ReplicaUpdates</a> action list.</p> <p>You can specify one of the following consistency modes:</p> <ul> <li> <p> <code>EVENTUAL</code>: Configures a new global table for multi-Region eventual consistency. This is the default consistency mode for global tables.</p> </li> <li> <p> <code>STRONG</code>: Configures a new global table for multi-Region strong consistency (preview).</p> <note> <p>Multi-Region strong consistency (MRSC) is a new DynamoDB global tables capability currently available in preview mode. For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/PreviewFeatures.html#multi-region-strong-consistency-gt\">Global tables multi-Region strong consistency</a>.</p> </note> </li> </ul> <p>If you don't specify this parameter, the global table consistency mode defaults to <code>EVENTUAL</code>.</p>"
6723+
},
66986724
"OnDemandThroughput":{
66996725
"shape":"OnDemandThroughput",
67006726
"documentation":"<p>Updates the maximum number of read and write units for the specified table in on-demand capacity mode. If you use this parameter, you must specify <code>MaxReadRequestUnits</code>, <code>MaxWriteRequestUnits</code>, or both.</p>"

0 commit comments

Comments
 (0)