/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading namespace Xml { class XmlDocument; } // namespace Xml } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace SimpleDB { namespace Model { class BatchDeleteAttributesRequest; class BatchPutAttributesRequest; class CreateDomainRequest; class DeleteAttributesRequest; class DeleteDomainRequest; class DomainMetadataRequest; class GetAttributesRequest; class ListDomainsRequest; class PutAttributesRequest; class SelectRequest; typedef Aws::Utils::Outcome BatchDeleteAttributesOutcome; typedef Aws::Utils::Outcome BatchPutAttributesOutcome; typedef Aws::Utils::Outcome CreateDomainOutcome; typedef Aws::Utils::Outcome DeleteAttributesOutcome; typedef Aws::Utils::Outcome DeleteDomainOutcome; typedef Aws::Utils::Outcome DomainMetadataOutcome; typedef Aws::Utils::Outcome GetAttributesOutcome; typedef Aws::Utils::Outcome ListDomainsOutcome; typedef Aws::Utils::Outcome PutAttributesOutcome; typedef Aws::Utils::Outcome SelectOutcome; typedef std::future BatchDeleteAttributesOutcomeCallable; typedef std::future BatchPutAttributesOutcomeCallable; typedef std::future CreateDomainOutcomeCallable; typedef std::future DeleteAttributesOutcomeCallable; typedef std::future DeleteDomainOutcomeCallable; typedef std::future DomainMetadataOutcomeCallable; typedef std::future GetAttributesOutcomeCallable; typedef std::future ListDomainsOutcomeCallable; typedef std::future PutAttributesOutcomeCallable; typedef std::future SelectOutcomeCallable; } // namespace Model class SimpleDBClient; typedef std::function&) > BatchDeleteAttributesResponseReceivedHandler; typedef std::function&) > BatchPutAttributesResponseReceivedHandler; typedef std::function&) > CreateDomainResponseReceivedHandler; typedef std::function&) > DeleteAttributesResponseReceivedHandler; typedef std::function&) > DeleteDomainResponseReceivedHandler; typedef std::function&) > DomainMetadataResponseReceivedHandler; typedef std::function&) > GetAttributesResponseReceivedHandler; typedef std::function&) > ListDomainsResponseReceivedHandler; typedef std::function&) > PutAttributesResponseReceivedHandler; typedef std::function&) > SelectResponseReceivedHandler; /** * Amazon SimpleDB is a web service providing the core database functions of data * indexing and querying in the cloud. By offloading the time and effort associated * with building and operating a web-scale database, SimpleDB provides developers * the freedom to focus on application development.

A traditional, clustered * relational database requires a sizable upfront capital outlay, is complex to * design, and often requires extensive and repetitive database administration. * Amazon SimpleDB is dramatically simpler, requiring no schema, automatically * indexing your data and providing a simple API for storage and access. This * approach eliminates the administrative burden of data modeling, index * maintenance, and performance tuning. Developers gain access to this * functionality within Amazon's proven computing environment, are able to scale * instantly, and pay only for what they use.

Visit http://aws.amazon.com/simpledb/ for * more information.

*/ class AWS_SIMPLEDB_API SimpleDBClient : public Aws::Client::AWSXMLClient { public: typedef Aws::Client::AWSXMLClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SimpleDBClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SimpleDBClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SimpleDBClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~SimpleDBClient(); /** * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes. */ Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const; /** *

Performs multiple DeleteAttributes operations in a single call, which * reduces round trips and latencies. This enables Amazon SimpleDB to optimize * requests, which generally yields better throughput.

The following * limitations are enforced for this operation:

  • 1 MB request size
  • *
  • 25 item limit per BatchDeleteAttributes operation

See * Also:

AWS * API Reference

*/ virtual Model::BatchDeleteAttributesOutcome BatchDeleteAttributes(const Model::BatchDeleteAttributesRequest& request) const; /** *

Performs multiple DeleteAttributes operations in a single call, which * reduces round trips and latencies. This enables Amazon SimpleDB to optimize * requests, which generally yields better throughput.

The following * limitations are enforced for this operation:

  • 1 MB request size
  • *
  • 25 item limit per BatchDeleteAttributes operation

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::BatchDeleteAttributesOutcomeCallable BatchDeleteAttributesCallable(const Model::BatchDeleteAttributesRequest& request) const; /** *

Performs multiple DeleteAttributes operations in a single call, which * reduces round trips and latencies. This enables Amazon SimpleDB to optimize * requests, which generally yields better throughput.

The following * limitations are enforced for this operation:

  • 1 MB request size
  • *
  • 25 item limit per BatchDeleteAttributes operation

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void BatchDeleteAttributesAsync(const Model::BatchDeleteAttributesRequest& request, const BatchDeleteAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

The BatchPutAttributes operation creates or replaces attributes * within one or more items. By using this operation, the client can perform * multiple PutAttribute operation with a single call. This helps yield * savings in round trips and latencies, enabling Amazon SimpleDB to optimize * requests and generally produce better throughput.

The client may * specify the item name with the Item.X.ItemName parameter. The * client may specify new attributes using a combination of the * Item.X.Attribute.Y.Name and Item.X.Attribute.Y.Value * parameters. The client may specify the first attribute for the first item using * the parameters Item.0.Attribute.0.Name and * Item.0.Attribute.0.Value, and for the second attribute for the * first item by the parameters Item.0.Attribute.1.Name and * Item.0.Attribute.1.Value, and so on.

Attributes are * uniquely identified within an item by their name/value combination. For example, * a single item can have the attributes { "first_name", "first_value" * } and { "first_name", "second_value" }. However, it cannot * have two attribute instances where both the Item.X.Attribute.Y.Name * and Item.X.Attribute.Y.Value are the same.

Optionally, the * requester can supply the Replace parameter for each individual * value. Setting this value to true will cause the new attribute * values to replace the existing attribute values. For example, if an item * I has the attributes { 'a', '1' }, { 'b', '2'} and * { 'b', '3' } and the requester does a BatchPutAttributes of * {'I', 'b', '4' } with the Replace parameter set to true, the final * attributes of the item will be { 'a', '1' } and { 'b', '4' * }, replacing the previous values of the 'b' attribute with the new value. *

This operation is vulnerable to exceeding the maximum URL size * when making a REST request using the HTTP GET method. This operation does not * support conditions using Expected.X.Name, * Expected.X.Value, or Expected.X.Exists. *

You can execute multiple BatchPutAttributes operations and * other operations in parallel. However, large numbers of concurrent * BatchPutAttributes calls can result in Service Unavailable (503) * responses.

The following limitations are enforced for this operation: *

  • 256 attribute name-value pairs per item
  • 1 MB request size
  • *
  • 1 billion attributes per domain
  • 10 GB of total user data storage * per domain
  • 25 item limit per BatchPutAttributes * operation

See Also:

AWS * API Reference

*/ virtual Model::BatchPutAttributesOutcome BatchPutAttributes(const Model::BatchPutAttributesRequest& request) const; /** *

The BatchPutAttributes operation creates or replaces attributes * within one or more items. By using this operation, the client can perform * multiple PutAttribute operation with a single call. This helps yield * savings in round trips and latencies, enabling Amazon SimpleDB to optimize * requests and generally produce better throughput.

The client may * specify the item name with the Item.X.ItemName parameter. The * client may specify new attributes using a combination of the * Item.X.Attribute.Y.Name and Item.X.Attribute.Y.Value * parameters. The client may specify the first attribute for the first item using * the parameters Item.0.Attribute.0.Name and * Item.0.Attribute.0.Value, and for the second attribute for the * first item by the parameters Item.0.Attribute.1.Name and * Item.0.Attribute.1.Value, and so on.

Attributes are * uniquely identified within an item by their name/value combination. For example, * a single item can have the attributes { "first_name", "first_value" * } and { "first_name", "second_value" }. However, it cannot * have two attribute instances where both the Item.X.Attribute.Y.Name * and Item.X.Attribute.Y.Value are the same.

Optionally, the * requester can supply the Replace parameter for each individual * value. Setting this value to true will cause the new attribute * values to replace the existing attribute values. For example, if an item * I has the attributes { 'a', '1' }, { 'b', '2'} and * { 'b', '3' } and the requester does a BatchPutAttributes of * {'I', 'b', '4' } with the Replace parameter set to true, the final * attributes of the item will be { 'a', '1' } and { 'b', '4' * }, replacing the previous values of the 'b' attribute with the new value. *

This operation is vulnerable to exceeding the maximum URL size * when making a REST request using the HTTP GET method. This operation does not * support conditions using Expected.X.Name, * Expected.X.Value, or Expected.X.Exists. *

You can execute multiple BatchPutAttributes operations and * other operations in parallel. However, large numbers of concurrent * BatchPutAttributes calls can result in Service Unavailable (503) * responses.

The following limitations are enforced for this operation: *

  • 256 attribute name-value pairs per item
  • 1 MB request size
  • *
  • 1 billion attributes per domain
  • 10 GB of total user data storage * per domain
  • 25 item limit per BatchPutAttributes * operation

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::BatchPutAttributesOutcomeCallable BatchPutAttributesCallable(const Model::BatchPutAttributesRequest& request) const; /** *

The BatchPutAttributes operation creates or replaces attributes * within one or more items. By using this operation, the client can perform * multiple PutAttribute operation with a single call. This helps yield * savings in round trips and latencies, enabling Amazon SimpleDB to optimize * requests and generally produce better throughput.

The client may * specify the item name with the Item.X.ItemName parameter. The * client may specify new attributes using a combination of the * Item.X.Attribute.Y.Name and Item.X.Attribute.Y.Value * parameters. The client may specify the first attribute for the first item using * the parameters Item.0.Attribute.0.Name and * Item.0.Attribute.0.Value, and for the second attribute for the * first item by the parameters Item.0.Attribute.1.Name and * Item.0.Attribute.1.Value, and so on.

Attributes are * uniquely identified within an item by their name/value combination. For example, * a single item can have the attributes { "first_name", "first_value" * } and { "first_name", "second_value" }. However, it cannot * have two attribute instances where both the Item.X.Attribute.Y.Name * and Item.X.Attribute.Y.Value are the same.

Optionally, the * requester can supply the Replace parameter for each individual * value. Setting this value to true will cause the new attribute * values to replace the existing attribute values. For example, if an item * I has the attributes { 'a', '1' }, { 'b', '2'} and * { 'b', '3' } and the requester does a BatchPutAttributes of * {'I', 'b', '4' } with the Replace parameter set to true, the final * attributes of the item will be { 'a', '1' } and { 'b', '4' * }, replacing the previous values of the 'b' attribute with the new value. *

This operation is vulnerable to exceeding the maximum URL size * when making a REST request using the HTTP GET method. This operation does not * support conditions using Expected.X.Name, * Expected.X.Value, or Expected.X.Exists. *

You can execute multiple BatchPutAttributes operations and * other operations in parallel. However, large numbers of concurrent * BatchPutAttributes calls can result in Service Unavailable (503) * responses.

The following limitations are enforced for this operation: *

  • 256 attribute name-value pairs per item
  • 1 MB request size
  • *
  • 1 billion attributes per domain
  • 10 GB of total user data storage * per domain
  • 25 item limit per BatchPutAttributes * operation

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void BatchPutAttributesAsync(const Model::BatchPutAttributesRequest& request, const BatchPutAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

The CreateDomain operation creates a new domain. The domain * name should be unique among the domains associated with the Access Key ID * provided in the request. The CreateDomain operation may take 10 or * more seconds to complete.

The client can create up to 100 domains per * account.

If the client requires additional domains, go to * http://aws.amazon.com/contact-us/simpledb-limit-request/.

See * Also:

AWS * API Reference

*/ virtual Model::CreateDomainOutcome CreateDomain(const Model::CreateDomainRequest& request) const; /** *

The CreateDomain operation creates a new domain. The domain * name should be unique among the domains associated with the Access Key ID * provided in the request. The CreateDomain operation may take 10 or * more seconds to complete.

The client can create up to 100 domains per * account.

If the client requires additional domains, go to * http://aws.amazon.com/contact-us/simpledb-limit-request/.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateDomainOutcomeCallable CreateDomainCallable(const Model::CreateDomainRequest& request) const; /** *

The CreateDomain operation creates a new domain. The domain * name should be unique among the domains associated with the Access Key ID * provided in the request. The CreateDomain operation may take 10 or * more seconds to complete.

The client can create up to 100 domains per * account.

If the client requires additional domains, go to * http://aws.amazon.com/contact-us/simpledb-limit-request/.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateDomainAsync(const Model::CreateDomainRequest& request, const CreateDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes one or more attributes associated with an item. If all attributes of * the item are deleted, the item is deleted.

* DeleteAttributes is an idempotent operation; running it multiple * times on the same item or attribute does not result in an error response.

*

Because Amazon SimpleDB makes multiple copies of item data and uses an * eventual consistency update model, performing a GetAttributes or * Select operation (read) immediately after a DeleteAttributes * or PutAttributes operation (write) might not return updated item data. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteAttributesOutcome DeleteAttributes(const Model::DeleteAttributesRequest& request) const; /** *

Deletes one or more attributes associated with an item. If all attributes of * the item are deleted, the item is deleted.

* DeleteAttributes is an idempotent operation; running it multiple * times on the same item or attribute does not result in an error response.

*

Because Amazon SimpleDB makes multiple copies of item data and uses an * eventual consistency update model, performing a GetAttributes or * Select operation (read) immediately after a DeleteAttributes * or PutAttributes operation (write) might not return updated item data. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteAttributesOutcomeCallable DeleteAttributesCallable(const Model::DeleteAttributesRequest& request) const; /** *

Deletes one or more attributes associated with an item. If all attributes of * the item are deleted, the item is deleted.

* DeleteAttributes is an idempotent operation; running it multiple * times on the same item or attribute does not result in an error response.

*

Because Amazon SimpleDB makes multiple copies of item data and uses an * eventual consistency update model, performing a GetAttributes or * Select operation (read) immediately after a DeleteAttributes * or PutAttributes operation (write) might not return updated item data. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteAttributesAsync(const Model::DeleteAttributesRequest& request, const DeleteAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

The DeleteDomain operation deletes a domain. Any items (and * their attributes) in the domain are deleted as well. The * DeleteDomain operation might take 10 or more seconds to complete. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteDomainOutcome DeleteDomain(const Model::DeleteDomainRequest& request) const; /** *

The DeleteDomain operation deletes a domain. Any items (and * their attributes) in the domain are deleted as well. The * DeleteDomain operation might take 10 or more seconds to complete. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteDomainOutcomeCallable DeleteDomainCallable(const Model::DeleteDomainRequest& request) const; /** *

The DeleteDomain operation deletes a domain. Any items (and * their attributes) in the domain are deleted as well. The * DeleteDomain operation might take 10 or more seconds to complete. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteDomainAsync(const Model::DeleteDomainRequest& request, const DeleteDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the domain, including when the domain was created, * the number of items and attributes in the domain, and the size of the attribute * names and values.

See Also:

AWS * API Reference

*/ virtual Model::DomainMetadataOutcome DomainMetadata(const Model::DomainMetadataRequest& request) const; /** *

Returns information about the domain, including when the domain was created, * the number of items and attributes in the domain, and the size of the attribute * names and values.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DomainMetadataOutcomeCallable DomainMetadataCallable(const Model::DomainMetadataRequest& request) const; /** *

Returns information about the domain, including when the domain was created, * the number of items and attributes in the domain, and the size of the attribute * names and values.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DomainMetadataAsync(const Model::DomainMetadataRequest& request, const DomainMetadataResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns all of the attributes associated with the specified item. * Optionally, the attributes returned can be limited to one or more attributes by * specifying an attribute name parameter.

If the item does not exist on * the replica that was accessed for this operation, an empty set is returned. The * system does not return an error as it cannot guarantee the item does not exist * on other replicas.

See Also:

AWS * API Reference

*/ virtual Model::GetAttributesOutcome GetAttributes(const Model::GetAttributesRequest& request) const; /** *

Returns all of the attributes associated with the specified item. * Optionally, the attributes returned can be limited to one or more attributes by * specifying an attribute name parameter.

If the item does not exist on * the replica that was accessed for this operation, an empty set is returned. The * system does not return an error as it cannot guarantee the item does not exist * on other replicas.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetAttributesOutcomeCallable GetAttributesCallable(const Model::GetAttributesRequest& request) const; /** *

Returns all of the attributes associated with the specified item. * Optionally, the attributes returned can be limited to one or more attributes by * specifying an attribute name parameter.

If the item does not exist on * the replica that was accessed for this operation, an empty set is returned. The * system does not return an error as it cannot guarantee the item does not exist * on other replicas.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetAttributesAsync(const Model::GetAttributesRequest& request, const GetAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

The ListDomains operation lists all domains associated with the * Access Key ID. It returns domain names up to the limit set by MaxNumberOfDomains. A NextToken is returned if there are more than * MaxNumberOfDomains domains. Calling ListDomains * successive times with the NextToken provided by the operation * returns up to MaxNumberOfDomains more domain names with each * successive operation call.

See Also:

AWS API * Reference

*/ virtual Model::ListDomainsOutcome ListDomains(const Model::ListDomainsRequest& request) const; /** *

The ListDomains operation lists all domains associated with the * Access Key ID. It returns domain names up to the limit set by MaxNumberOfDomains. A NextToken is returned if there are more than * MaxNumberOfDomains domains. Calling ListDomains * successive times with the NextToken provided by the operation * returns up to MaxNumberOfDomains more domain names with each * successive operation call.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListDomainsOutcomeCallable ListDomainsCallable(const Model::ListDomainsRequest& request) const; /** *

The ListDomains operation lists all domains associated with the * Access Key ID. It returns domain names up to the limit set by MaxNumberOfDomains. A NextToken is returned if there are more than * MaxNumberOfDomains domains. Calling ListDomains * successive times with the NextToken provided by the operation * returns up to MaxNumberOfDomains more domain names with each * successive operation call.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListDomainsAsync(const Model::ListDomainsRequest& request, const ListDomainsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

The PutAttributes operation creates or replaces attributes in an item. The * client may specify new attributes using a combination of the * Attribute.X.Name and Attribute.X.Value parameters. The * client specifies the first attribute by the parameters * Attribute.0.Name and Attribute.0.Value, the second * attribute by the parameters Attribute.1.Name and * Attribute.1.Value, and so on.

Attributes are uniquely * identified in an item by their name/value combination. For example, a single * item can have the attributes { "first_name", "first_value" } and * { "first_name", second_value" }. However, it cannot have two * attribute instances where both the Attribute.X.Name and * Attribute.X.Value are the same.

Optionally, the requestor * can supply the Replace parameter for each individual attribute. * Setting this value to true causes the new attribute value to * replace the existing attribute value(s). For example, if an item has the * attributes { 'a', '1' }, { 'b', '2'} and { 'b', * '3' } and the requestor calls PutAttributes using the * attributes { 'b', '4' } with the Replace parameter set * to true, the final attributes of the item are changed to { 'a', '1' * } and { 'b', '4' }, which replaces the previous values of * the 'b' attribute with the new value.

You cannot specify an empty * string as an attribute name.

Because Amazon SimpleDB makes multiple * copies of client data and uses an eventual consistency update model, an * immediate GetAttributes or Select operation (read) immediately * after a PutAttributes or DeleteAttributes operation (write) might * not return the updated data.

The following limitations are enforced for * this operation:

  • 256 total attribute name-value pairs per item
  • *
  • One billion attributes per domain
  • 10 GB of total user data storage * per domain

See Also:

AWS * API Reference

*/ virtual Model::PutAttributesOutcome PutAttributes(const Model::PutAttributesRequest& request) const; /** *

The PutAttributes operation creates or replaces attributes in an item. The * client may specify new attributes using a combination of the * Attribute.X.Name and Attribute.X.Value parameters. The * client specifies the first attribute by the parameters * Attribute.0.Name and Attribute.0.Value, the second * attribute by the parameters Attribute.1.Name and * Attribute.1.Value, and so on.

Attributes are uniquely * identified in an item by their name/value combination. For example, a single * item can have the attributes { "first_name", "first_value" } and * { "first_name", second_value" }. However, it cannot have two * attribute instances where both the Attribute.X.Name and * Attribute.X.Value are the same.

Optionally, the requestor * can supply the Replace parameter for each individual attribute. * Setting this value to true causes the new attribute value to * replace the existing attribute value(s). For example, if an item has the * attributes { 'a', '1' }, { 'b', '2'} and { 'b', * '3' } and the requestor calls PutAttributes using the * attributes { 'b', '4' } with the Replace parameter set * to true, the final attributes of the item are changed to { 'a', '1' * } and { 'b', '4' }, which replaces the previous values of * the 'b' attribute with the new value.

You cannot specify an empty * string as an attribute name.

Because Amazon SimpleDB makes multiple * copies of client data and uses an eventual consistency update model, an * immediate GetAttributes or Select operation (read) immediately * after a PutAttributes or DeleteAttributes operation (write) might * not return the updated data.

The following limitations are enforced for * this operation:

  • 256 total attribute name-value pairs per item
  • *
  • One billion attributes per domain
  • 10 GB of total user data storage * per domain

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutAttributesOutcomeCallable PutAttributesCallable(const Model::PutAttributesRequest& request) const; /** *

The PutAttributes operation creates or replaces attributes in an item. The * client may specify new attributes using a combination of the * Attribute.X.Name and Attribute.X.Value parameters. The * client specifies the first attribute by the parameters * Attribute.0.Name and Attribute.0.Value, the second * attribute by the parameters Attribute.1.Name and * Attribute.1.Value, and so on.

Attributes are uniquely * identified in an item by their name/value combination. For example, a single * item can have the attributes { "first_name", "first_value" } and * { "first_name", second_value" }. However, it cannot have two * attribute instances where both the Attribute.X.Name and * Attribute.X.Value are the same.

Optionally, the requestor * can supply the Replace parameter for each individual attribute. * Setting this value to true causes the new attribute value to * replace the existing attribute value(s). For example, if an item has the * attributes { 'a', '1' }, { 'b', '2'} and { 'b', * '3' } and the requestor calls PutAttributes using the * attributes { 'b', '4' } with the Replace parameter set * to true, the final attributes of the item are changed to { 'a', '1' * } and { 'b', '4' }, which replaces the previous values of * the 'b' attribute with the new value.

You cannot specify an empty * string as an attribute name.

Because Amazon SimpleDB makes multiple * copies of client data and uses an eventual consistency update model, an * immediate GetAttributes or Select operation (read) immediately * after a PutAttributes or DeleteAttributes operation (write) might * not return the updated data.

The following limitations are enforced for * this operation:

  • 256 total attribute name-value pairs per item
  • *
  • One billion attributes per domain
  • 10 GB of total user data storage * per domain

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutAttributesAsync(const Model::PutAttributesRequest& request, const PutAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

The Select operation returns a set of attributes for * ItemNames that match the select expression. Select is * similar to the standard SQL SELECT statement.

The total size of the * response cannot exceed 1 MB in total size. Amazon SimpleDB automatically adjusts * the number of items returned per page to enforce this limit. For example, if the * client asks to retrieve 2500 items, but each individual item is 10 kB in size, * the system returns 100 items and an appropriate NextToken so the * client can access the next page of results.

For information on how to * construct select expressions, see Using Select to Create Amazon SimpleDB Queries * in the Developer Guide.

See Also:

AWS API * Reference

*/ virtual Model::SelectOutcome Select(const Model::SelectRequest& request) const; /** *

The Select operation returns a set of attributes for * ItemNames that match the select expression. Select is * similar to the standard SQL SELECT statement.

The total size of the * response cannot exceed 1 MB in total size. Amazon SimpleDB automatically adjusts * the number of items returned per page to enforce this limit. For example, if the * client asks to retrieve 2500 items, but each individual item is 10 kB in size, * the system returns 100 items and an appropriate NextToken so the * client can access the next page of results.

For information on how to * construct select expressions, see Using Select to Create Amazon SimpleDB Queries * in the Developer Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SelectOutcomeCallable SelectCallable(const Model::SelectRequest& request) const; /** *

The Select operation returns a set of attributes for * ItemNames that match the select expression. Select is * similar to the standard SQL SELECT statement.

The total size of the * response cannot exceed 1 MB in total size. Amazon SimpleDB automatically adjusts * the number of items returned per page to enforce this limit. For example, if the * client asks to retrieve 2500 items, but each individual item is 10 kB in size, * the system returns 100 items and an appropriate NextToken so the * client can access the next page of results.

For information on how to * construct select expressions, see Using Select to Create Amazon SimpleDB Queries * in the Developer Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SelectAsync(const Model::SelectRequest& request, const SelectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void BatchDeleteAttributesAsyncHelper(const Model::BatchDeleteAttributesRequest& request, const BatchDeleteAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void BatchPutAttributesAsyncHelper(const Model::BatchPutAttributesRequest& request, const BatchPutAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateDomainAsyncHelper(const Model::CreateDomainRequest& request, const CreateDomainResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteAttributesAsyncHelper(const Model::DeleteAttributesRequest& request, const DeleteAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteDomainAsyncHelper(const Model::DeleteDomainRequest& request, const DeleteDomainResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DomainMetadataAsyncHelper(const Model::DomainMetadataRequest& request, const DomainMetadataResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetAttributesAsyncHelper(const Model::GetAttributesRequest& request, const GetAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListDomainsAsyncHelper(const Model::ListDomainsRequest& request, const ListDomainsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutAttributesAsyncHelper(const Model::PutAttributesRequest& request, const PutAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SelectAsyncHelper(const Model::SelectRequest& request, const SelectResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace SimpleDB } // namespace Aws