This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-sdb/include/aws/sdb/SimpleDBClient.h

766 lines
52 KiB
C
Raw Normal View History

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/sdb/SimpleDB_EXPORTS.h>
#include <aws/sdb/SimpleDBErrors.h>
#include <aws/core/client/AWSError.h>
#include <aws/core/client/ClientConfiguration.h>
#include <aws/core/AmazonSerializableWebServiceRequest.h>
#include <aws/core/client/AWSClient.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/utils/xml/XmlSerializer.h>
#include <aws/sdb/model/DomainMetadataResult.h>
#include <aws/sdb/model/GetAttributesResult.h>
#include <aws/sdb/model/ListDomainsResult.h>
#include <aws/sdb/model/SelectResult.h>
#include <aws/core/NoResult.h>
#include <aws/core/client/AsyncCallerContext.h>
#include <aws/core/http/HttpTypes.h>
#include <future>
#include <functional>
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<Aws::NoResult, SimpleDBError> BatchDeleteAttributesOutcome;
typedef Aws::Utils::Outcome<Aws::NoResult, SimpleDBError> BatchPutAttributesOutcome;
typedef Aws::Utils::Outcome<Aws::NoResult, SimpleDBError> CreateDomainOutcome;
typedef Aws::Utils::Outcome<Aws::NoResult, SimpleDBError> DeleteAttributesOutcome;
typedef Aws::Utils::Outcome<Aws::NoResult, SimpleDBError> DeleteDomainOutcome;
typedef Aws::Utils::Outcome<DomainMetadataResult, SimpleDBError> DomainMetadataOutcome;
typedef Aws::Utils::Outcome<GetAttributesResult, SimpleDBError> GetAttributesOutcome;
typedef Aws::Utils::Outcome<ListDomainsResult, SimpleDBError> ListDomainsOutcome;
typedef Aws::Utils::Outcome<Aws::NoResult, SimpleDBError> PutAttributesOutcome;
typedef Aws::Utils::Outcome<SelectResult, SimpleDBError> SelectOutcome;
typedef std::future<BatchDeleteAttributesOutcome> BatchDeleteAttributesOutcomeCallable;
typedef std::future<BatchPutAttributesOutcome> BatchPutAttributesOutcomeCallable;
typedef std::future<CreateDomainOutcome> CreateDomainOutcomeCallable;
typedef std::future<DeleteAttributesOutcome> DeleteAttributesOutcomeCallable;
typedef std::future<DeleteDomainOutcome> DeleteDomainOutcomeCallable;
typedef std::future<DomainMetadataOutcome> DomainMetadataOutcomeCallable;
typedef std::future<GetAttributesOutcome> GetAttributesOutcomeCallable;
typedef std::future<ListDomainsOutcome> ListDomainsOutcomeCallable;
typedef std::future<PutAttributesOutcome> PutAttributesOutcomeCallable;
typedef std::future<SelectOutcome> SelectOutcomeCallable;
} // namespace Model
class SimpleDBClient;
typedef std::function<void(const SimpleDBClient*, const Model::BatchDeleteAttributesRequest&, const Model::BatchDeleteAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchDeleteAttributesResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::BatchPutAttributesRequest&, const Model::BatchPutAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchPutAttributesResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::CreateDomainRequest&, const Model::CreateDomainOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDomainResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::DeleteAttributesRequest&, const Model::DeleteAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteAttributesResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::DeleteDomainRequest&, const Model::DeleteDomainOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDomainResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::DomainMetadataRequest&, const Model::DomainMetadataOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DomainMetadataResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::GetAttributesRequest&, const Model::GetAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAttributesResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::ListDomainsRequest&, const Model::ListDomainsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDomainsResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::PutAttributesRequest&, const Model::PutAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutAttributesResponseReceivedHandler;
typedef std::function<void(const SimpleDBClient*, const Model::SelectRequest&, const Model::SelectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > 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. <p> 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. </p> <p> Visit <a
* href="http://aws.amazon.com/simpledb/">http://aws.amazon.com/simpledb/</a> for
* more information. </p>
*/
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<Aws::Auth::AWSCredentialsProvider>& 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;
/**
* <p> 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. </p> <p> The following
* limitations are enforced for this operation: <ul> <li>1 MB request size</li>
* <li>25 item limit per BatchDeleteAttributes operation</li> </ul> </p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/BatchDeleteAttributes">AWS
* API Reference</a></p>
*/
virtual Model::BatchDeleteAttributesOutcome BatchDeleteAttributes(const Model::BatchDeleteAttributesRequest& request) const;
/**
* <p> 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. </p> <p> The following
* limitations are enforced for this operation: <ul> <li>1 MB request size</li>
* <li>25 item limit per BatchDeleteAttributes operation</li> </ul> </p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/BatchDeleteAttributes">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> 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. </p> <p> The following
* limitations are enforced for this operation: <ul> <li>1 MB request size</li>
* <li>25 item limit per BatchDeleteAttributes operation</li> </ul> </p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/BatchDeleteAttributes">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> The <code>BatchPutAttributes</code> operation creates or replaces attributes
* within one or more items. By using this operation, the client can perform
* multiple <a>PutAttribute</a> 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. </p> <p> The client may
* specify the item name with the <code>Item.X.ItemName</code> parameter. The
* client may specify new attributes using a combination of the
* <code>Item.X.Attribute.Y.Name</code> and <code>Item.X.Attribute.Y.Value</code>
* parameters. The client may specify the first attribute for the first item using
* the parameters <code>Item.0.Attribute.0.Name</code> and
* <code>Item.0.Attribute.0.Value</code>, and for the second attribute for the
* first item by the parameters <code>Item.0.Attribute.1.Name</code> and
* <code>Item.0.Attribute.1.Value</code>, and so on. </p> <p> Attributes are
* uniquely identified within an item by their name/value combination. For example,
* a single item can have the attributes <code>{ "first_name", "first_value"
* }</code> and <code>{ "first_name", "second_value" }</code>. However, it cannot
* have two attribute instances where both the <code>Item.X.Attribute.Y.Name</code>
* and <code>Item.X.Attribute.Y.Value</code> are the same. </p> <p> Optionally, the
* requester can supply the <code>Replace</code> parameter for each individual
* value. Setting this value to <code>true</code> will cause the new attribute
* values to replace the existing attribute values. For example, if an item
* <code>I</code> has the attributes <code>{ 'a', '1' }, { 'b', '2'}</code> and
* <code>{ 'b', '3' }</code> and the requester does a BatchPutAttributes of
* <code>{'I', 'b', '4' }</code> with the Replace parameter set to true, the final
* attributes of the item will be <code>{ 'a', '1' }</code> and <code>{ 'b', '4'
* }</code>, replacing the previous values of the 'b' attribute with the new value.
* </p> 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 <code>Expected.X.Name</code>,
* <code>Expected.X.Value</code>, or <code>Expected.X.Exists</code>.
* <p> You can execute multiple <code>BatchPutAttributes</code> operations and
* other operations in parallel. However, large numbers of concurrent
* <code>BatchPutAttributes</code> calls can result in Service Unavailable (503)
* responses. </p> <p> The following limitations are enforced for this operation:
* <ul> <li>256 attribute name-value pairs per item</li> <li>1 MB request size</li>
* <li>1 billion attributes per domain</li> <li>10 GB of total user data storage
* per domain</li> <li>25 item limit per <code>BatchPutAttributes</code>
* operation</li> </ul> </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/BatchPutAttributes">AWS
* API Reference</a></p>
*/
virtual Model::BatchPutAttributesOutcome BatchPutAttributes(const Model::BatchPutAttributesRequest& request) const;
/**
* <p> The <code>BatchPutAttributes</code> operation creates or replaces attributes
* within one or more items. By using this operation, the client can perform
* multiple <a>PutAttribute</a> 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. </p> <p> The client may
* specify the item name with the <code>Item.X.ItemName</code> parameter. The
* client may specify new attributes using a combination of the
* <code>Item.X.Attribute.Y.Name</code> and <code>Item.X.Attribute.Y.Value</code>
* parameters. The client may specify the first attribute for the first item using
* the parameters <code>Item.0.Attribute.0.Name</code> and
* <code>Item.0.Attribute.0.Value</code>, and for the second attribute for the
* first item by the parameters <code>Item.0.Attribute.1.Name</code> and
* <code>Item.0.Attribute.1.Value</code>, and so on. </p> <p> Attributes are
* uniquely identified within an item by their name/value combination. For example,
* a single item can have the attributes <code>{ "first_name", "first_value"
* }</code> and <code>{ "first_name", "second_value" }</code>. However, it cannot
* have two attribute instances where both the <code>Item.X.Attribute.Y.Name</code>
* and <code>Item.X.Attribute.Y.Value</code> are the same. </p> <p> Optionally, the
* requester can supply the <code>Replace</code> parameter for each individual
* value. Setting this value to <code>true</code> will cause the new attribute
* values to replace the existing attribute values. For example, if an item
* <code>I</code> has the attributes <code>{ 'a', '1' }, { 'b', '2'}</code> and
* <code>{ 'b', '3' }</code> and the requester does a BatchPutAttributes of
* <code>{'I', 'b', '4' }</code> with the Replace parameter set to true, the final
* attributes of the item will be <code>{ 'a', '1' }</code> and <code>{ 'b', '4'
* }</code>, replacing the previous values of the 'b' attribute with the new value.
* </p> 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 <code>Expected.X.Name</code>,
* <code>Expected.X.Value</code>, or <code>Expected.X.Exists</code>.
* <p> You can execute multiple <code>BatchPutAttributes</code> operations and
* other operations in parallel. However, large numbers of concurrent
* <code>BatchPutAttributes</code> calls can result in Service Unavailable (503)
* responses. </p> <p> The following limitations are enforced for this operation:
* <ul> <li>256 attribute name-value pairs per item</li> <li>1 MB request size</li>
* <li>1 billion attributes per domain</li> <li>10 GB of total user data storage
* per domain</li> <li>25 item limit per <code>BatchPutAttributes</code>
* operation</li> </ul> </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/BatchPutAttributes">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> The <code>BatchPutAttributes</code> operation creates or replaces attributes
* within one or more items. By using this operation, the client can perform
* multiple <a>PutAttribute</a> 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. </p> <p> The client may
* specify the item name with the <code>Item.X.ItemName</code> parameter. The
* client may specify new attributes using a combination of the
* <code>Item.X.Attribute.Y.Name</code> and <code>Item.X.Attribute.Y.Value</code>
* parameters. The client may specify the first attribute for the first item using
* the parameters <code>Item.0.Attribute.0.Name</code> and
* <code>Item.0.Attribute.0.Value</code>, and for the second attribute for the
* first item by the parameters <code>Item.0.Attribute.1.Name</code> and
* <code>Item.0.Attribute.1.Value</code>, and so on. </p> <p> Attributes are
* uniquely identified within an item by their name/value combination. For example,
* a single item can have the attributes <code>{ "first_name", "first_value"
* }</code> and <code>{ "first_name", "second_value" }</code>. However, it cannot
* have two attribute instances where both the <code>Item.X.Attribute.Y.Name</code>
* and <code>Item.X.Attribute.Y.Value</code> are the same. </p> <p> Optionally, the
* requester can supply the <code>Replace</code> parameter for each individual
* value. Setting this value to <code>true</code> will cause the new attribute
* values to replace the existing attribute values. For example, if an item
* <code>I</code> has the attributes <code>{ 'a', '1' }, { 'b', '2'}</code> and
* <code>{ 'b', '3' }</code> and the requester does a BatchPutAttributes of
* <code>{'I', 'b', '4' }</code> with the Replace parameter set to true, the final
* attributes of the item will be <code>{ 'a', '1' }</code> and <code>{ 'b', '4'
* }</code>, replacing the previous values of the 'b' attribute with the new value.
* </p> 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 <code>Expected.X.Name</code>,
* <code>Expected.X.Value</code>, or <code>Expected.X.Exists</code>.
* <p> You can execute multiple <code>BatchPutAttributes</code> operations and
* other operations in parallel. However, large numbers of concurrent
* <code>BatchPutAttributes</code> calls can result in Service Unavailable (503)
* responses. </p> <p> The following limitations are enforced for this operation:
* <ul> <li>256 attribute name-value pairs per item</li> <li>1 MB request size</li>
* <li>1 billion attributes per domain</li> <li>10 GB of total user data storage
* per domain</li> <li>25 item limit per <code>BatchPutAttributes</code>
* operation</li> </ul> </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/BatchPutAttributes">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> The <code>CreateDomain</code> 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 <code>CreateDomain</code> operation may take 10 or
* more seconds to complete. </p> <p> The client can create up to 100 domains per
* account. </p> <p> If the client requires additional domains, go to <a
* href="http://aws.amazon.com/contact-us/simpledb-limit-request/">
* http://aws.amazon.com/contact-us/simpledb-limit-request/</a>. </p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/CreateDomain">AWS
* API Reference</a></p>
*/
virtual Model::CreateDomainOutcome CreateDomain(const Model::CreateDomainRequest& request) const;
/**
* <p> The <code>CreateDomain</code> 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 <code>CreateDomain</code> operation may take 10 or
* more seconds to complete. </p> <p> The client can create up to 100 domains per
* account. </p> <p> If the client requires additional domains, go to <a
* href="http://aws.amazon.com/contact-us/simpledb-limit-request/">
* http://aws.amazon.com/contact-us/simpledb-limit-request/</a>. </p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/CreateDomain">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> The <code>CreateDomain</code> 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 <code>CreateDomain</code> operation may take 10 or
* more seconds to complete. </p> <p> The client can create up to 100 domains per
* account. </p> <p> If the client requires additional domains, go to <a
* href="http://aws.amazon.com/contact-us/simpledb-limit-request/">
* http://aws.amazon.com/contact-us/simpledb-limit-request/</a>. </p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/CreateDomain">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> Deletes one or more attributes associated with an item. If all attributes of
* the item are deleted, the item is deleted. </p> <p>
* <code>DeleteAttributes</code> is an idempotent operation; running it multiple
* times on the same item or attribute does not result in an error response. </p>
* <p> Because Amazon SimpleDB makes multiple copies of item data and uses an
* eventual consistency update model, performing a <a>GetAttributes</a> or
* <a>Select</a> operation (read) immediately after a <code>DeleteAttributes</code>
* or <a>PutAttributes</a> operation (write) might not return updated item data.
* </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DeleteAttributes">AWS
* API Reference</a></p>
*/
virtual Model::DeleteAttributesOutcome DeleteAttributes(const Model::DeleteAttributesRequest& request) const;
/**
* <p> Deletes one or more attributes associated with an item. If all attributes of
* the item are deleted, the item is deleted. </p> <p>
* <code>DeleteAttributes</code> is an idempotent operation; running it multiple
* times on the same item or attribute does not result in an error response. </p>
* <p> Because Amazon SimpleDB makes multiple copies of item data and uses an
* eventual consistency update model, performing a <a>GetAttributes</a> or
* <a>Select</a> operation (read) immediately after a <code>DeleteAttributes</code>
* or <a>PutAttributes</a> operation (write) might not return updated item data.
* </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DeleteAttributes">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> Deletes one or more attributes associated with an item. If all attributes of
* the item are deleted, the item is deleted. </p> <p>
* <code>DeleteAttributes</code> is an idempotent operation; running it multiple
* times on the same item or attribute does not result in an error response. </p>
* <p> Because Amazon SimpleDB makes multiple copies of item data and uses an
* eventual consistency update model, performing a <a>GetAttributes</a> or
* <a>Select</a> operation (read) immediately after a <code>DeleteAttributes</code>
* or <a>PutAttributes</a> operation (write) might not return updated item data.
* </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DeleteAttributes">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> The <code>DeleteDomain</code> operation deletes a domain. Any items (and
* their attributes) in the domain are deleted as well. The
* <code>DeleteDomain</code> operation might take 10 or more seconds to complete.
* </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DeleteDomain">AWS
* API Reference</a></p>
*/
virtual Model::DeleteDomainOutcome DeleteDomain(const Model::DeleteDomainRequest& request) const;
/**
* <p> The <code>DeleteDomain</code> operation deletes a domain. Any items (and
* their attributes) in the domain are deleted as well. The
* <code>DeleteDomain</code> operation might take 10 or more seconds to complete.
* </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DeleteDomain">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> The <code>DeleteDomain</code> operation deletes a domain. Any items (and
* their attributes) in the domain are deleted as well. The
* <code>DeleteDomain</code> operation might take 10 or more seconds to complete.
* </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DeleteDomain">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> 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. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DomainMetadata">AWS
* API Reference</a></p>
*/
virtual Model::DomainMetadataOutcome DomainMetadata(const Model::DomainMetadataRequest& request) const;
/**
* <p> 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. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DomainMetadata">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> 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. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/DomainMetadata">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> 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. </p> <p> 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. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/GetAttributes">AWS
* API Reference</a></p>
*/
virtual Model::GetAttributesOutcome GetAttributes(const Model::GetAttributesRequest& request) const;
/**
* <p> 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. </p> <p> 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. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/GetAttributes">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> 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. </p> <p> 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. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/GetAttributes">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> The <code>ListDomains</code> operation lists all domains associated with the
* Access Key ID. It returns domain names up to the limit set by <a
* href="#MaxNumberOfDomains">MaxNumberOfDomains</a>. A <a
* href="#NextToken">NextToken</a> is returned if there are more than
* <code>MaxNumberOfDomains</code> domains. Calling <code>ListDomains</code>
* successive times with the <code>NextToken</code> provided by the operation
* returns up to <code>MaxNumberOfDomains</code> more domain names with each
* successive operation call. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/ListDomains">AWS API
* Reference</a></p>
*/
virtual Model::ListDomainsOutcome ListDomains(const Model::ListDomainsRequest& request) const;
/**
* <p> The <code>ListDomains</code> operation lists all domains associated with the
* Access Key ID. It returns domain names up to the limit set by <a
* href="#MaxNumberOfDomains">MaxNumberOfDomains</a>. A <a
* href="#NextToken">NextToken</a> is returned if there are more than
* <code>MaxNumberOfDomains</code> domains. Calling <code>ListDomains</code>
* successive times with the <code>NextToken</code> provided by the operation
* returns up to <code>MaxNumberOfDomains</code> more domain names with each
* successive operation call. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/ListDomains">AWS API
* Reference</a></p>
*
* 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;
/**
* <p> The <code>ListDomains</code> operation lists all domains associated with the
* Access Key ID. It returns domain names up to the limit set by <a
* href="#MaxNumberOfDomains">MaxNumberOfDomains</a>. A <a
* href="#NextToken">NextToken</a> is returned if there are more than
* <code>MaxNumberOfDomains</code> domains. Calling <code>ListDomains</code>
* successive times with the <code>NextToken</code> provided by the operation
* returns up to <code>MaxNumberOfDomains</code> more domain names with each
* successive operation call. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/ListDomains">AWS API
* Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> The PutAttributes operation creates or replaces attributes in an item. The
* client may specify new attributes using a combination of the
* <code>Attribute.X.Name</code> and <code>Attribute.X.Value</code> parameters. The
* client specifies the first attribute by the parameters
* <code>Attribute.0.Name</code> and <code>Attribute.0.Value</code>, the second
* attribute by the parameters <code>Attribute.1.Name</code> and
* <code>Attribute.1.Value</code>, and so on. </p> <p> Attributes are uniquely
* identified in an item by their name/value combination. For example, a single
* item can have the attributes <code>{ "first_name", "first_value" }</code> and
* <code>{ "first_name", second_value" }</code>. However, it cannot have two
* attribute instances where both the <code>Attribute.X.Name</code> and
* <code>Attribute.X.Value</code> are the same. </p> <p> Optionally, the requestor
* can supply the <code>Replace</code> parameter for each individual attribute.
* Setting this value to <code>true</code> causes the new attribute value to
* replace the existing attribute value(s). For example, if an item has the
* attributes <code>{ 'a', '1' }</code>, <code>{ 'b', '2'}</code> and <code>{ 'b',
* '3' }</code> and the requestor calls <code>PutAttributes</code> using the
* attributes <code>{ 'b', '4' }</code> with the <code>Replace</code> parameter set
* to true, the final attributes of the item are changed to <code>{ 'a', '1'
* }</code> and <code>{ 'b', '4' }</code>, which replaces the previous values of
* the 'b' attribute with the new value. </p> <p> You cannot specify an empty
* string as an attribute name. </p> <p> Because Amazon SimpleDB makes multiple
* copies of client data and uses an eventual consistency update model, an
* immediate <a>GetAttributes</a> or <a>Select</a> operation (read) immediately
* after a <a>PutAttributes</a> or <a>DeleteAttributes</a> operation (write) might
* not return the updated data. </p> <p> The following limitations are enforced for
* this operation: <ul> <li>256 total attribute name-value pairs per item</li>
* <li>One billion attributes per domain</li> <li>10 GB of total user data storage
* per domain</li> </ul> </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/PutAttributes">AWS
* API Reference</a></p>
*/
virtual Model::PutAttributesOutcome PutAttributes(const Model::PutAttributesRequest& request) const;
/**
* <p> The PutAttributes operation creates or replaces attributes in an item. The
* client may specify new attributes using a combination of the
* <code>Attribute.X.Name</code> and <code>Attribute.X.Value</code> parameters. The
* client specifies the first attribute by the parameters
* <code>Attribute.0.Name</code> and <code>Attribute.0.Value</code>, the second
* attribute by the parameters <code>Attribute.1.Name</code> and
* <code>Attribute.1.Value</code>, and so on. </p> <p> Attributes are uniquely
* identified in an item by their name/value combination. For example, a single
* item can have the attributes <code>{ "first_name", "first_value" }</code> and
* <code>{ "first_name", second_value" }</code>. However, it cannot have two
* attribute instances where both the <code>Attribute.X.Name</code> and
* <code>Attribute.X.Value</code> are the same. </p> <p> Optionally, the requestor
* can supply the <code>Replace</code> parameter for each individual attribute.
* Setting this value to <code>true</code> causes the new attribute value to
* replace the existing attribute value(s). For example, if an item has the
* attributes <code>{ 'a', '1' }</code>, <code>{ 'b', '2'}</code> and <code>{ 'b',
* '3' }</code> and the requestor calls <code>PutAttributes</code> using the
* attributes <code>{ 'b', '4' }</code> with the <code>Replace</code> parameter set
* to true, the final attributes of the item are changed to <code>{ 'a', '1'
* }</code> and <code>{ 'b', '4' }</code>, which replaces the previous values of
* the 'b' attribute with the new value. </p> <p> You cannot specify an empty
* string as an attribute name. </p> <p> Because Amazon SimpleDB makes multiple
* copies of client data and uses an eventual consistency update model, an
* immediate <a>GetAttributes</a> or <a>Select</a> operation (read) immediately
* after a <a>PutAttributes</a> or <a>DeleteAttributes</a> operation (write) might
* not return the updated data. </p> <p> The following limitations are enforced for
* this operation: <ul> <li>256 total attribute name-value pairs per item</li>
* <li>One billion attributes per domain</li> <li>10 GB of total user data storage
* per domain</li> </ul> </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/PutAttributes">AWS
* API Reference</a></p>
*
* 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;
/**
* <p> The PutAttributes operation creates or replaces attributes in an item. The
* client may specify new attributes using a combination of the
* <code>Attribute.X.Name</code> and <code>Attribute.X.Value</code> parameters. The
* client specifies the first attribute by the parameters
* <code>Attribute.0.Name</code> and <code>Attribute.0.Value</code>, the second
* attribute by the parameters <code>Attribute.1.Name</code> and
* <code>Attribute.1.Value</code>, and so on. </p> <p> Attributes are uniquely
* identified in an item by their name/value combination. For example, a single
* item can have the attributes <code>{ "first_name", "first_value" }</code> and
* <code>{ "first_name", second_value" }</code>. However, it cannot have two
* attribute instances where both the <code>Attribute.X.Name</code> and
* <code>Attribute.X.Value</code> are the same. </p> <p> Optionally, the requestor
* can supply the <code>Replace</code> parameter for each individual attribute.
* Setting this value to <code>true</code> causes the new attribute value to
* replace the existing attribute value(s). For example, if an item has the
* attributes <code>{ 'a', '1' }</code>, <code>{ 'b', '2'}</code> and <code>{ 'b',
* '3' }</code> and the requestor calls <code>PutAttributes</code> using the
* attributes <code>{ 'b', '4' }</code> with the <code>Replace</code> parameter set
* to true, the final attributes of the item are changed to <code>{ 'a', '1'
* }</code> and <code>{ 'b', '4' }</code>, which replaces the previous values of
* the 'b' attribute with the new value. </p> <p> You cannot specify an empty
* string as an attribute name. </p> <p> Because Amazon SimpleDB makes multiple
* copies of client data and uses an eventual consistency update model, an
* immediate <a>GetAttributes</a> or <a>Select</a> operation (read) immediately
* after a <a>PutAttributes</a> or <a>DeleteAttributes</a> operation (write) might
* not return the updated data. </p> <p> The following limitations are enforced for
* this operation: <ul> <li>256 total attribute name-value pairs per item</li>
* <li>One billion attributes per domain</li> <li>10 GB of total user data storage
* per domain</li> </ul> </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/PutAttributes">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p> The <code>Select</code> operation returns a set of attributes for
* <code>ItemNames</code> that match the select expression. <code>Select</code> is
* similar to the standard SQL SELECT statement. </p> <p> 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 <code>NextToken</code> so the
* client can access the next page of results. </p> <p> For information on how to
* construct select expressions, see Using Select to Create Amazon SimpleDB Queries
* in the Developer Guide. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/Select">AWS API
* Reference</a></p>
*/
virtual Model::SelectOutcome Select(const Model::SelectRequest& request) const;
/**
* <p> The <code>Select</code> operation returns a set of attributes for
* <code>ItemNames</code> that match the select expression. <code>Select</code> is
* similar to the standard SQL SELECT statement. </p> <p> 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 <code>NextToken</code> so the
* client can access the next page of results. </p> <p> For information on how to
* construct select expressions, see Using Select to Create Amazon SimpleDB Queries
* in the Developer Guide. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/Select">AWS API
* Reference</a></p>
*
* 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;
/**
* <p> The <code>Select</code> operation returns a set of attributes for
* <code>ItemNames</code> that match the select expression. <code>Select</code> is
* similar to the standard SQL SELECT statement. </p> <p> 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 <code>NextToken</code> so the
* client can access the next page of results. </p> <p> For information on how to
* construct select expressions, see Using Select to Create Amazon SimpleDB Queries
* in the Developer Guide. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/sdb-2009-04-15/Select">AWS API
* Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& 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<const Aws::Client::AsyncCallerContext>& context) const;
void BatchPutAttributesAsyncHelper(const Model::BatchPutAttributesRequest& request, const BatchPutAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void CreateDomainAsyncHelper(const Model::CreateDomainRequest& request, const CreateDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DeleteAttributesAsyncHelper(const Model::DeleteAttributesRequest& request, const DeleteAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DeleteDomainAsyncHelper(const Model::DeleteDomainRequest& request, const DeleteDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DomainMetadataAsyncHelper(const Model::DomainMetadataRequest& request, const DomainMetadataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void GetAttributesAsyncHelper(const Model::GetAttributesRequest& request, const GetAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void ListDomainsAsyncHelper(const Model::ListDomainsRequest& request, const ListDomainsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void PutAttributesAsyncHelper(const Model::PutAttributesRequest& request, const PutAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void SelectAsyncHelper(const Model::SelectRequest& request, const SelectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
Aws::String m_uri;
Aws::String m_configScheme;
std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
};
} // namespace SimpleDB
} // namespace Aws