<!--Generated by WRITEME on 2023-05-18 22:34:02.321347 (UTC)-->
# DynamoDB code examples for the SDK for Ruby

## Overview

Shows how to use the AWS SDK for Ruby to work with Amazon DynamoDB.

<!--custom.overview.start-->
<!--custom.overview.end-->

*DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability.*

## ⚠ Important

* Running this code might result in charges to your AWS account.
* Running the tests might result in charges to your AWS account.
* We recommend that you grant your code least privilege. At most, grant only the minimum permissions required to perform the task. For more information, see [Grant least privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
* This code is not tested in every AWS Region. For more information, see [AWS Regional Services](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services).

<!--custom.important.start-->
<!--custom.important.end-->

## Code examples

### Prerequisites

For prerequisites, see the [README](../../README.md#Prerequisites) in the `ruby` folder.


<!--custom.prerequisites.start-->
<!--custom.prerequisites.end-->

### Single actions

Code excerpts that show you how to call individual service functions.

* [Create a table](scaffold.rb#L56) (`CreateTable`)
* [Delete a table](scaffold.rb#L109) (`DeleteTable`)
* [Delete an item from a table](basics/dynamodb_basics.rb#L127) (`DeleteItem`)
* [Get an item from a table](basics/dynamodb_basics.rb#L40) (`GetItem`)
* [Get information about a table](scaffold.rb#L37) (`DescribeTable`)
* [List tables](None) (`ListTables`)
* [Put an item in a table](basics/dynamodb_basics.rb#L23) (`PutItem`)
* [Query a table](basics/dynamodb_basics.rb#L75) (`Query`)
* [Run a PartiQL statement](partiql/partiql_single.rb#L12) (`ExecuteStatement`)
* [Run batches of PartiQL statements](partiql/partiql_batch.rb#L12) (`BatchExecuteStatement`)
* [Scan a table](basics/dynamodb_basics.rb#L94) (`Scan`)
* [Update an item in a table](basics/dynamodb_basics.rb#L55) (`UpdateItem`)
* [Write a batch of items](scaffold.rb#L83) (`BatchWriteItem`)

### Scenarios

Code examples that show you how to accomplish a specific task by calling multiple
functions within the same service.

* [Get started with tables, items, and queries](scaffold.rb) 
* [Query a table by using batches of PartiQL statements](partiql/scenario_partiql_batch.rb) 
* [Query a table using PartiQL](partiql/scenario_partiql_single.rb) 

## Run the examples

### Instructions


<!--custom.instructions.start-->
<!--custom.instructions.end-->



#### Get started with tables, items, and queries

This example shows you how to do the following:

* Create a table that can hold movie data.
* Put, get, and update a single movie in the table.
* Write movie data to the table from a sample JSON file.
* Query for movies that were released in a given year.
* Scan for movies that were released in a range of years.
* Delete a movie from the table, then delete the table.

<!--custom.scenario_prereqs.dynamodb_Scenario_GettingStartedMovies.start-->
<!--custom.scenario_prereqs.dynamodb_Scenario_GettingStartedMovies.end-->

Start the example by running the following at a command prompt:

```
ruby scaffold.rb
```

<!--custom.scenarios.dynamodb_Scenario_GettingStartedMovies.start-->
<!--custom.scenarios.dynamodb_Scenario_GettingStartedMovies.end-->

#### Query a table by using batches of PartiQL statements

This example shows you how to do the following:

* Get a batch of items by running multiple SELECT statements.
* Add a batch of items by running multiple INSERT statements.
* Update a batch of items by running multiple UPDATE statements.
* Delete a batch of items by running multiple DELETE statements.

<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLBatch.start-->
<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLBatch.end-->

Start the example by running the following at a command prompt:

```
ruby partiql/scenario_partiql_batch.rb
```

<!--custom.scenarios.dynamodb_Scenario_PartiQLBatch.start-->
<!--custom.scenarios.dynamodb_Scenario_PartiQLBatch.end-->

#### Query a table using PartiQL

This example shows you how to do the following:

* Get an item by running a SELECT statement.
* Add an item by running an INSERT statement.
* Update an item by running an UPDATE statement.
* Delete an item by running a DELETE statement.

<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLSingle.start-->
<!--custom.scenario_prereqs.dynamodb_Scenario_PartiQLSingle.end-->

Start the example by running the following at a command prompt:

```
ruby partiql/scenario_partiql_single.rb
```

<!--custom.scenarios.dynamodb_Scenario_PartiQLSingle.start-->
<!--custom.scenarios.dynamodb_Scenario_PartiQLSingle.end-->

### Tests

⚠ Running tests might result in charges to your AWS account.


To find instructions for running these tests, see the [README](../../README.md#Tests)
in the `ruby` folder.



<!--custom.tests.start-->

## Contribute
Code examples thrive on community contribution.

To learn more about the contributing process, see [CONTRIBUTING.md](../../../CONTRIBUTING.md).
<!--custom.tests.end-->

## Additional resources

<!--custom.resources.start-->
* [More Ruby DynamoDB code examples](https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/ruby_dynamodb_code_examples.html)
* [SDK for Ruby Developer Guide](https://aws.amazon.com/developer/language/ruby/)
* [SDK for Ruby DynamoDB Module](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB.html)
* [DynamoDB Developer Guide](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)
* [DynamoDB API Reference](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/Welcome.html)
<!--custom.resources.end-->

---

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0