/* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ /** * Before running this C++ code example, set up your development environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started.html * * For information on the structure of the code examples and how to build and run the examples, see * https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started-code-examples.html. * **/ //snippet-start:[dynamodb.cpp.update_table.inc] #include #include #include #include #include #include //snippet-end:[dynamodb.cpp.update_table.inc] #include "dynamodb_samples.h" /** * This example sets the provisioned throughput of an Amazon DynamoDB table. * * For information about provisioned throughput, * see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html. * */ // snippet-start:[dynamodb.cpp.update_table.code] //! Update a DynamoDB table. /*! \sa updateTable() \param tableName: Name for the DynamoDB table. \param readCapacity: Provisioned read capacity. \param writeCapacity: Provisioned write capacity. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::DynamoDB::updateTable(const Aws::String &tableName, long long readCapacity, long long writeCapacity, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::DynamoDB::DynamoDBClient dynamoClient(clientConfiguration); std::cout << "Updating " << tableName << " with new provisioned throughput values" << std::endl; std::cout << "Read capacity : " << readCapacity << std::endl; std::cout << "Write capacity: " << writeCapacity << std::endl; Aws::DynamoDB::Model::UpdateTableRequest request; Aws::DynamoDB::Model::ProvisionedThroughput provisionedThroughput; provisionedThroughput.WithReadCapacityUnits(readCapacity).WithWriteCapacityUnits( writeCapacity); request.WithProvisionedThroughput(provisionedThroughput).WithTableName(tableName); const Aws::DynamoDB::Model::UpdateTableOutcome &outcome = dynamoClient.UpdateTable( request); if (outcome.IsSuccess()) { std::cout << "Successfully updated the table." << std::endl; } else { std::cerr << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); } // snippet-end:[dynamodb.cpp.update_table.code] /* * * main function * * Usage: 'run_update_table ' * * Prerequisites: Create a DynamoDB table. * */ #ifndef TESTING_BUILD int main(int argc, char **argv) { if (argc < 4) { std::cout << R"( Usage: runupdate_table
Where: table - the table to put the item in. read - the new read capacity of the table. write - the new write capacity of the table. )"; return 1; } Aws::SDKOptions options; Aws::InitAPI(options); { const Aws::String tableName(argv[1]); const long long readCapacity = Aws::Utils::StringUtils::ConvertToInt64(argv[2]); const long long writeCapacity = Aws::Utils::StringUtils::ConvertToInt64( argv[3]); Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region (overrides config file). // clientConfig.region = "us-east-1"; AwsDoc::DynamoDB::updateTable(tableName, readCapacity, writeCapacity, clientConfig); } Aws::ShutdownAPI(options); return 0; } #endif // TESTING_BUILD