%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/jkakar/aws-codegen for more details.
%% @doc BatchGetItem operation returns the attributes of one
%% or more items from one or more tables. You identify requested items by
%% primary key.
%%
%% A single operation can retrieve up to 16 MB of data, which can contain as
%% many as 100 items. BatchGetItem will return a partial result
%% if the response size limit is exceeded, the table's provisioned throughput
%% is exceeded, or an internal processing failure occurs. If a partial result
%% is returned, the operation returns a value for
%% UnprocessedKeys. You can use this value to retry the
%% operation starting with the next item to get.
%%
%% BatchGetItem
%% will return a ValidationException with the message "Too many
%% items requested for the BatchGetItem call".
%%
%% UnprocessedKeys value so you can get the next page of
%% results. If desired, your application can include its own logic to
%% assemble the pages of results into one data set.
%%
%% If none of the items can be processed due to insufficient
%% provisioned throughput on all of the tables in the request, then
%% BatchGetItem will return a
%% ProvisionedThroughputExceededException. If at least
%% one of the items is successfully processed, then
%% BatchGetItem completes successfully, while returning the keys
%% of the unread items in UnprocessedKeys.
%%
%% BatchGetItem performs eventually
%% consistent reads on every table in the request. If you want strongly
%% consistent reads instead, you can set ConsistentRead to
%% true for any or all tables.
%%
%% In order to minimize response latency, BatchGetItem retrieves
%% items in parallel.
%%
%% When designing your application, keep in mind that DynamoDB does not
%% return items in any particular order. To help parse the response by item,
%% include the primary key values for the items in your request in the
%% ProjectionExpression parameter.
%%
%% If a requested item does not exist, it is not returned in the result.
%% Requests for nonexistent items consume the minimum read capacity units
%% according to the type of read. For more information, see Capacity
%% Units Calculations in the Amazon DynamoDB Developer Guide.
batch_get_item(Client, Input)
when is_map(Client), is_map(Input) ->
batch_get_item(Client, Input, []).
batch_get_item(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"BatchGetItem">>, Input, Options).
%% @doc The BatchWriteItem operation puts or deletes multiple
%% items in one or more tables. A single call to BatchWriteItem
%% can write up to 16 MB of data, which can comprise as many as 25 put or
%% delete requests. Individual items to be written can be as large as 400 KB.
%%
%% BatchWriteItem cannot update items. To update items,
%% use the UpdateItem action.
%%
%% PutItem and DeleteItem
%% operations specified in BatchWriteItem are atomic; however
%% BatchWriteItem as a whole is not. If any requested operations
%% fail because the table's provisioned throughput is exceeded or an internal
%% processing failure occurs, the failed operations are returned in the
%% UnprocessedItems response parameter. You can investigate and
%% optionally resend the requests. Typically, you would call
%% BatchWriteItem in a loop. Each iteration would check for
%% unprocessed items and submit a new BatchWriteItem request
%% with those unprocessed items until all items have been processed.
%%
%% Note that if none of the items can be processed due to insufficient
%% provisioned throughput on all of the tables in the request, then
%% BatchWriteItem will return a
%% ProvisionedThroughputExceededException.
%%
%% BatchWriteItem, you can efficiently write
%% or delete large amounts of data, such as from Amazon Elastic MapReduce
%% (EMR), or copy data from another database into DynamoDB. In order to
%% improve performance with these large-scale operations,
%% BatchWriteItem does not behave in the same way as individual
%% PutItem and DeleteItem calls would. For example,
%% you cannot specify conditions on individual put and delete requests, and
%% BatchWriteItem does not return deleted items in the response.
%%
%% If you use a programming language that supports concurrency, you can use
%% threads to write items in parallel. Your application must include the
%% necessary logic to manage the threads. With languages that don't support
%% threading, you must update or delete the specified items one at a time. In
%% both situations, BatchWriteItem performs the specified put
%% and delete operations in parallel, giving you the power of the thread pool
%% approach without having to introduce complexity into your application.
%%
%% Parallel processing reduces latency, but each specified put and delete
%% request consumes the same number of write capacity units whether it is
%% processed in parallel or not. Delete operations on nonexistent items
%% consume one write capacity unit.
%%
%% If one or more of the following is true, DynamoDB rejects the entire batch
%% write operation:
%%
%%
BatchWriteItem
%% request does not exist.
%%
%% BatchWriteItem request. For example, you cannot put and
%% delete the same item in the same BatchWriteItem request.
%%
%% CreateBackup at a maximum rate of 50 times per
%% second.
%%
%% All backups in DynamoDB work without consuming any provisioned throughput
%% on the table.
%%
%% If you submit a backup request on 2018-12-14 at 14:25:00, the backup is
%% guaranteed to contain all data committed to the table up to 14:24:00, and
%% data committed after 14:26:00 will not be. The backup may or may not
%% contain data modifications made between 14:24:00 and 14:26:00. On-Demand
%% Backup does not support causal consistency.
%%
%% Along with data, the following are also included on the backups:
%%
%% CreateTable operation adds a new table to your
%% account. In an AWS account, table names must be unique within each region.
%% That is, you can have two tables with same name if you create the tables
%% in different regions.
%%
%% CreateTable is an asynchronous operation. Upon receiving a
%% CreateTable request, DynamoDB immediately returns a response
%% with a TableStatus of CREATING. After the table
%% is created, DynamoDB sets the TableStatus to
%% ACTIVE. You can perform read and write operations only on an
%% ACTIVE table.
%%
%% You can optionally define secondary indexes on the new table, as part of
%% the CreateTable operation. If you want to create multiple
%% tables with secondary indexes on them, you must create the tables
%% sequentially. Only one table with secondary indexes can be in the
%% CREATING state at any given time.
%%
%% You can use the DescribeTable action to check the table
%% status.
create_table(Client, Input)
when is_map(Client), is_map(Input) ->
create_table(Client, Input, []).
create_table(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateTable">>, Input, Options).
%% @doc Deletes an existing backup of a table.
%%
%% You can call DeleteBackup at a maximum rate of 10 times per
%% second.
delete_backup(Client, Input)
when is_map(Client), is_map(Input) ->
delete_backup(Client, Input, []).
delete_backup(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteBackup">>, Input, Options).
%% @doc 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.
%%
%% In addition to deleting an item, you can also return the item's attribute
%% values in the same operation, using the ReturnValues
%% parameter.
%%
%% Unless you specify conditions, the DeleteItem is an
%% idempotent operation; running it multiple times on the same item or
%% attribute does not result in an error response.
%%
%% 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.
delete_item(Client, Input)
when is_map(Client), is_map(Input) ->
delete_item(Client, Input, []).
delete_item(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteItem">>, Input, Options).
%% @doc The DeleteTable operation deletes a table and all of its
%% items. After a DeleteTable request, the specified table is in
%% the DELETING state until DynamoDB completes the deletion. If
%% the table is in the ACTIVE state, you can delete it. If a
%% table is in CREATING or UPDATING states, then
%% DynamoDB returns a ResourceInUseException. If the specified
%% table does not exist, DynamoDB returns a
%% ResourceNotFoundException. If table is already in the
%% DELETING state, no error is returned.
%%
%% GetItem and PutItem, on a table in the
%% DELETING state until the table deletion is complete.
%%
%% DISABLED state, and the
%% stream is automatically deleted after 24 hours.
%%
%% Use the DescribeTable action to check the status of the
%% table.
delete_table(Client, Input)
when is_map(Client), is_map(Input) ->
delete_table(Client, Input, []).
delete_table(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteTable">>, Input, Options).
%% @doc Describes an existing backup of a table.
%%
%% You can call DescribeBackup at a maximum rate of 10 times per
%% second.
describe_backup(Client, Input)
when is_map(Client), is_map(Input) ->
describe_backup(Client, Input, []).
describe_backup(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeBackup">>, Input, Options).
%% @doc Checks the status of continuous backups and point in time recovery on
%% the specified table. Continuous backups are ENABLED on all
%% tables at table creation. If point in time recovery is enabled,
%% PointInTimeRecoveryStatus will be set to ENABLED.
%%
%% Once continuous backups and point in time recovery are enabled, you can
%% restore to any point in time within
%% EarliestRestorableDateTime and
%% LatestRestorableDateTime.
%%
%% LatestRestorableDateTime is typically 5 minutes before the
%% current time. You can restore your table to any point in time during the
%% last 35 days.
%%
%% You can call DescribeContinuousBackups at a maximum rate of
%% 10 times per second.
describe_continuous_backups(Client, Input)
when is_map(Client), is_map(Input) ->
describe_continuous_backups(Client, Input, []).
describe_continuous_backups(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeContinuousBackups">>, Input, Options).
describe_endpoints(Client, Input)
when is_map(Client), is_map(Input) ->
describe_endpoints(Client, Input, []).
describe_endpoints(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeEndpoints">>, Input, Options).
%% @doc Returns information about the specified global table.
describe_global_table(Client, Input)
when is_map(Client), is_map(Input) ->
describe_global_table(Client, Input, []).
describe_global_table(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGlobalTable">>, Input, Options).
%% @doc Describes region specific settings for a global table.
describe_global_table_settings(Client, Input)
when is_map(Client), is_map(Input) ->
describe_global_table_settings(Client, Input, []).
describe_global_table_settings(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGlobalTableSettings">>, Input, Options).
%% @doc Returns the current provisioned-capacity limits for your AWS account
%% in a region, both for the region as a whole and for any one DynamoDB table
%% that you create there.
%%
%% When you establish an AWS account, the account has initial limits on the
%% maximum read capacity units and write capacity units that you can
%% provision across all of your DynamoDB tables in a given region. Also,
%% there are per-table limits that apply when you create a table there. For
%% more information, see Limits
%% page in the Amazon DynamoDB Developer Guide.
%%
%% Although you can increase these limits by filing a case at AWS Support
%% Center, obtaining the increase is not instantaneous. The
%% DescribeLimits action lets you write code to compare the
%% capacity you are currently using to those limits imposed by your account
%% so that you have enough time to apply for an increase before you hit a
%% limit.
%%
%% For example, you could use one of the AWS SDKs to do the following:
%%
%% DescribeLimits for a particular region to
%% obtain your current account limits on provisioned capacity there.
%%
%% ListTables to obtain a list of all your
%% DynamoDB tables.
%%
%% ListTables, do the
%% following:
%%
%% DescribeTable with the table name.
%%
%% DescribeTable to add the
%% read capacity units and write capacity units provisioned for the table
%% itself to your variables.
%%
%% DescribeLimits, along with the total current provisioned
%% capacity levels you have calculated.
%%
%% DescribeLimits should only be called periodically. You
%% can expect throttling errors if you call it more than once in a minute.
%%
%% DescribeLimits Request element has no content.
describe_limits(Client, Input)
when is_map(Client), is_map(Input) ->
describe_limits(Client, Input, []).
describe_limits(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeLimits">>, Input, Options).
%% @doc Returns information about the table, including the current status of
%% the table, when it was created, the primary key schema, and any indexes on
%% the table.
%%
%% DescribeTable request immediately after
%% a CreateTable request, DynamoDB might return a
%% ResourceNotFoundException. This is because
%% DescribeTable uses an eventually consistent query, and the
%% metadata for your table might not be available at that moment. Wait for a
%% few seconds, and then try the DescribeTable request again.
%%
%% GetItem operation returns a set of attributes for
%% the item with the given primary key. If there is no matching item,
%% GetItem does not return any data and there will be no
%% Item element in the response.
%%
%% GetItem provides an eventually consistent read by default. If
%% your application requires a strongly consistent read, set
%% ConsistentRead to true. Although a strongly
%% consistent read might take more time than an eventually consistent read,
%% it always returns the last updated value.
get_item(Client, Input)
when is_map(Client), is_map(Input) ->
get_item(Client, Input, []).
get_item(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetItem">>, Input, Options).
%% @doc List backups associated with an AWS account. To list backups for a
%% given table, specify TableName. ListBackups
%% returns a paginated list of results with at most 1MB worth of items in a
%% page. You can also specify a limit for the maximum number of entries to be
%% returned in a page.
%%
%% In the request, start time is inclusive but end time is exclusive. Note
%% that these limits are for the time at which the original backup was
%% requested.
%%
%% You can call ListBackups a maximum of 5 times per second.
list_backups(Client, Input)
when is_map(Client), is_map(Input) ->
list_backups(Client, Input, []).
list_backups(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListBackups">>, Input, Options).
%% @doc Lists all global tables that have a replica in the specified region.
list_global_tables(Client, Input)
when is_map(Client), is_map(Input) ->
list_global_tables(Client, Input, []).
list_global_tables(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListGlobalTables">>, Input, Options).
%% @doc Returns an array of table names associated with the current account
%% and endpoint. The output from ListTables is paginated, with
%% each page returning a maximum of 100 table names.
list_tables(Client, Input)
when is_map(Client), is_map(Input) ->
list_tables(Client, Input, []).
list_tables(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListTables">>, Input, Options).
%% @doc List all tags on an Amazon DynamoDB resource. You can call
%% ListTagsOfResource up to 10 times per second, per account.
%%
%% For an overview on tagging DynamoDB resources, see Tagging
%% for DynamoDB in the Amazon DynamoDB Developer Guide.
list_tags_of_resource(Client, Input)
when is_map(Client), is_map(Input) ->
list_tags_of_resource(Client, Input, []).
list_tags_of_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListTagsOfResource">>, Input, Options).
%% @doc 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 ReturnValues parameter.
%%
%% PutItem API.
%%
%% For information on how to call the PutItem API using the AWS
%% SDK in specific languages, see the following:
%%
%% ValidationException exception.
%%
%% attribute_not_exists
%% function with the name of the attribute being used as the partition key
%% for the table. Since every record must contain that attribute, the
%% attribute_not_exists function will only succeed if no
%% matching item exists.
%%
%% PutItem, see Working
%% with Items in the Amazon DynamoDB Developer Guide.
put_item(Client, Input)
when is_map(Client), is_map(Input) ->
put_item(Client, Input, []).
put_item(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutItem">>, Input, Options).
%% @doc The Query operation finds items based on primary key
%% values. You can query any table or secondary index that has a composite
%% primary key (a partition key and a sort key).
%%
%% Use the KeyConditionExpression parameter to provide a
%% specific value for the partition key. The Query operation
%% will return all of the items from the table or index with that partition
%% key value. You can optionally narrow the scope of the Query
%% operation by specifying a sort key value and a comparison operator in
%% KeyConditionExpression. To further refine the
%% Query results, you can optionally provide a
%% FilterExpression. A FilterExpression determines
%% which items within the results should be returned to you. All of the other
%% results are discarded.
%%
%% A Query operation always returns a result set. If no matching
%% items are found, the result set will be empty. Queries that do not return
%% results consume the minimum number of read capacity units for that type of
%% read operation.
%%
%% FilterExpression.
%%
%% Query results are always sorted by the sort key
%% value. If the data type of the sort key is Number, the results are
%% returned in numeric order; otherwise, the results are returned in order of
%% UTF-8 bytes. By default, the sort order is ascending. To reverse the
%% order, set the ScanIndexForward parameter to false.
%%
%% A single Query operation will read up to the maximum number
%% of items set (if using the Limit parameter) or a maximum of 1
%% MB of data and then apply any filtering to the results using
%% FilterExpression. If LastEvaluatedKey is present
%% in the response, you will need to paginate the result set. For more
%% information, see Paginating
%% the Results in the Amazon DynamoDB Developer Guide.
%%
%% FilterExpression is applied after a Query
%% finishes, but before the results are returned. A
%% FilterExpression cannot contain partition key or sort key
%% attributes. You need to specify those attributes in the
%% KeyConditionExpression.
%%
%% Query operation can return an empty result set and a
%% LastEvaluatedKey if all the items read for the page of
%% results are filtered out.
%%
%% ConsistentRead parameter to true and
%% obtain a strongly consistent result. Global secondary indexes support
%% eventually consistent reads only, so do not specify
%% ConsistentRead when querying a global secondary index.
query(Client, Input)
when is_map(Client), is_map(Input) ->
query(Client, Input, []).
query(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"Query">>, Input, Options).
%% @doc Creates a new table from an existing backup. Any number of users can
%% execute up to 4 concurrent restores (any type of restore) in a given
%% account.
%%
%% You can call RestoreTableFromBackup at a maximum rate of 10
%% times per second.
%%
%% You must manually set up the following on the restored table:
%%
%% EarliestRestorableDateTime and
%% LatestRestorableDateTime. You can restore your table to any
%% point in time during the last 35 days. Any number of users can execute up
%% to 4 concurrent restores (any type of restore) in a given account.
%%
%% When you restore using point in time recovery, DynamoDB restores your
%% table data to the state based on the selected date and time
%% (day:hour:minute:second) to a new table.
%%
%% Along with data, the following are also included on the new restored table
%% using point in time recovery:
%%
%% Scan operation returns one or more items and item
%% attributes by accessing every item in a table or a secondary index. To
%% have DynamoDB return fewer items, you can provide a
%% FilterExpression operation.
%%
%% If the total number of scanned items exceeds the maximum data set size
%% limit of 1 MB, the scan stops and results are returned to the user as a
%% LastEvaluatedKey value to continue the scan in a subsequent
%% operation. The results also include the number of items exceeding the
%% limit. A scan can result in no table data meeting the filter criteria.
%%
%% A single Scan operation will read up to the maximum number of
%% items set (if using the Limit parameter) or a maximum of 1 MB
%% of data and then apply any filtering to the results using
%% FilterExpression. If LastEvaluatedKey is present
%% in the response, you will need to paginate the result set. For more
%% information, see Paginating
%% the Results in the Amazon DynamoDB Developer Guide.
%%
%% Scan operations proceed sequentially; however, for faster
%% performance on a large table or secondary index, applications can request
%% a parallel Scan operation by providing the
%% Segment and TotalSegments parameters. For more
%% information, see Parallel
%% Scan in the Amazon DynamoDB Developer Guide.
%%
%% Scan uses eventually consistent reads when accessing the data
%% in a table; therefore, the result set might not include the changes to
%% data in the table immediately before the operation began. If you need a
%% consistent copy of the data, as of the time that the Scan
%% begins, you can set the ConsistentRead parameter to
%% true.
scan(Client, Input)
when is_map(Client), is_map(Input) ->
scan(Client, Input, []).
scan(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"Scan">>, Input, Options).
%% @doc Associate a set of tags with an Amazon DynamoDB resource. You can
%% then activate these user-defined tags so that they appear on the Billing
%% and Cost Management console for cost allocation tracking. You can call
%% TagResource up to 5 times per second, per account.
%%
%% For an overview on tagging DynamoDB resources, see Tagging
%% for DynamoDB in the Amazon DynamoDB Developer Guide.
tag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
tag_resource(Client, Input, []).
tag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"TagResource">>, Input, Options).
%% @doc Removes the association of tags from an Amazon DynamoDB resource. You
%% can call UntagResource up to 5 times per second, per account.
%%
%% For an overview on tagging DynamoDB resources, see Tagging
%% for DynamoDB in the Amazon DynamoDB Developer Guide.
untag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
untag_resource(Client, Input, []).
untag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UntagResource">>, Input, Options).
%% @doc UpdateContinuousBackups enables or disables point in
%% time recovery for the specified table. A successful
%% UpdateContinuousBackups call returns the current
%% ContinuousBackupsDescription. Continuous backups are
%% ENABLED on all tables at table creation. If point in time
%% recovery is enabled, PointInTimeRecoveryStatus will be set to
%% ENABLED.
%%
%% Once continuous backups and point in time recovery are enabled, you can
%% restore to any point in time within
%% EarliestRestorableDateTime and
%% LatestRestorableDateTime.
%%
%% LatestRestorableDateTime is typically 5 minutes before the
%% current time. You can restore your table to any point in time during the
%% last 35 days..
update_continuous_backups(Client, Input)
when is_map(Client), is_map(Input) ->
update_continuous_backups(Client, Input, []).
update_continuous_backups(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateContinuousBackups">>, Input, Options).
%% @doc Adds or removes replicas in the specified global table. The global
%% table must already exist to be able to use this operation. Any replica to
%% be added must be empty, must have the same name as the global table, must
%% have the same key schema, and must have DynamoDB Streams enabled and must
%% have same provisioned and maximum write capacity units.
%%
%% UpdateGlobalTable to add replicas
%% and remove replicas in a single request, for simplicity we recommend that
%% you issue separate requests for adding or removing replicas.
%%
%% UpdateItem operation using the ReturnValues
%% parameter.
update_item(Client, Input)
when is_map(Client), is_map(Input) ->
update_item(Client, Input, []).
update_item(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateItem">>, Input, Options).
%% @doc Modifies the provisioned throughput settings, global secondary
%% indexes, or DynamoDB Streams settings for a given table.
%%
%% You can only perform one of the following operations at once:
%%
%% UpdateTable to perform
%% other operations.
%%
%% UpdateTable is an asynchronous operation; while
%% it is executing, the table status changes from ACTIVE to
%% UPDATING. While it is UPDATING, you cannot issue
%% another UpdateTable request. When the table returns to the
%% ACTIVE state, the UpdateTable operation is
%% complete.
update_table(Client, Input)
when is_map(Client), is_map(Input) ->
update_table(Client, Input, []).
update_table(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateTable">>, Input, Options).
%% @doc The UpdateTimeToLive method will enable or disable TTL for the
%% specified table. A successful UpdateTimeToLive call returns
%% the current TimeToLiveSpecification; it may take up to one
%% hour for the change to fully process. Any additional
%% UpdateTimeToLive calls for the same table during this one
%% hour duration result in a ValidationException.
%%
%% TTL compares the current time in epoch time format to the time stored in
%% the TTL attribute of an item. If the epoch time value stored in the
%% attribute is less than the current time, the item is marked as expired and
%% subsequently deleted.
%%
%%