transactGetItems method
- required List<
TransactGetItem> transactItems, - ReturnConsumedCapacity? returnConsumedCapacity,
TransactGetItems is a synchronous operation that atomically
retrieves multiple items from one or more tables (but not from indexes) in
a single account and Region. A TransactGetItems call can
contain up to 100 TransactGetItem objects, each of which
contains a Get structure that specifies an item to retrieve
from a table in the account and Region. A call to
TransactGetItems cannot retrieve items from tables in more
than one Amazon Web Services account or Region. The aggregate size of the
items in the transaction cannot exceed 4 MB.
DynamoDB rejects the entire TransactGetItems request if any
of the following is true:
- A conflicting operation is in the process of updating an item to be read.
- There is insufficient provisioned capacity for the transaction to be completed.
- There is a user error, such as an invalid data format.
- The aggregate size of the items in the transaction exceeded 4 MB.
May throw InternalServerError.
May throw InvalidEndpointException.
May throw ProvisionedThroughputExceededException.
May throw RequestLimitExceeded.
May throw ResourceNotFoundException.
May throw ThrottlingException.
May throw TransactionCanceledException.
Parameter transactItems :
An ordered array of up to 100 TransactGetItem objects, each
of which contains a Get structure.
Parameter returnConsumedCapacity :
A value of TOTAL causes consumed capacity information to be
returned, and a value of NONE prevents that information from
being returned. No other value is valid.
Implementation
Future<TransactGetItemsOutput> transactGetItems({
required List<TransactGetItem> transactItems,
ReturnConsumedCapacity? returnConsumedCapacity,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.0',
'X-Amz-Target': 'DynamoDB_20120810.TransactGetItems'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'TransactItems': transactItems,
if (returnConsumedCapacity != null)
'ReturnConsumedCapacity': returnConsumedCapacity.value,
},
);
return TransactGetItemsOutput.fromJson(jsonResponse.body);
}