/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the sdb-2009-04-15.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Net;
using Amazon.SimpleDB.Model;
using Amazon.SimpleDB.Model.Internal.MarshallTransformations;
using Amazon.SimpleDB.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.SimpleDB
{
///
/// Implementation for accessing SimpleDB
///
/// 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.
///
///
public partial class AmazonSimpleDBClient : AmazonServiceClient, IAmazonSimpleDB
{
private static IServiceMetadata serviceMetadata = new AmazonSimpleDBMetadata();
#region Constructors
///
/// Constructs AmazonSimpleDBClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
public AmazonSimpleDBClient()
: base(FallbackCredentialsFactory.GetCredentials(), new AmazonSimpleDBConfig()) { }
///
/// Constructs AmazonSimpleDBClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
/// The region to connect.
public AmazonSimpleDBClient(RegionEndpoint region)
: base(FallbackCredentialsFactory.GetCredentials(), new AmazonSimpleDBConfig{RegionEndpoint = region}) { }
///
/// Constructs AmazonSimpleDBClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
/// The AmazonSimpleDBClient Configuration Object
public AmazonSimpleDBClient(AmazonSimpleDBConfig config)
: base(FallbackCredentialsFactory.GetCredentials(config), config){}
///
/// Constructs AmazonSimpleDBClient with AWS Credentials
///
/// AWS Credentials
public AmazonSimpleDBClient(AWSCredentials credentials)
: this(credentials, new AmazonSimpleDBConfig())
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Credentials
///
/// AWS Credentials
/// The region to connect.
public AmazonSimpleDBClient(AWSCredentials credentials, RegionEndpoint region)
: this(credentials, new AmazonSimpleDBConfig{RegionEndpoint = region})
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Credentials and an
/// AmazonSimpleDBClient Configuration object.
///
/// AWS Credentials
/// The AmazonSimpleDBClient Configuration Object
public AmazonSimpleDBClient(AWSCredentials credentials, AmazonSimpleDBConfig clientConfig)
: base(credentials, clientConfig)
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
public AmazonSimpleDBClient(string awsAccessKeyId, string awsSecretAccessKey)
: this(awsAccessKeyId, awsSecretAccessKey, new AmazonSimpleDBConfig())
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// The region to connect.
public AmazonSimpleDBClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
: this(awsAccessKeyId, awsSecretAccessKey, new AmazonSimpleDBConfig() {RegionEndpoint=region})
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Access Key ID, AWS Secret Key and an
/// AmazonSimpleDBClient Configuration object.
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// The AmazonSimpleDBClient Configuration Object
public AmazonSimpleDBClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonSimpleDBConfig clientConfig)
: base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
public AmazonSimpleDBClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
: this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonSimpleDBConfig())
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
/// The region to connect.
public AmazonSimpleDBClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
: this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonSimpleDBConfig{RegionEndpoint = region})
{
}
///
/// Constructs AmazonSimpleDBClient with AWS Access Key ID, AWS Secret Key and an
/// AmazonSimpleDBClient Configuration object.
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
/// The AmazonSimpleDBClient Configuration Object
public AmazonSimpleDBClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonSimpleDBConfig clientConfig)
: base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig)
{
}
#endregion
#region Overrides
///
/// Creates the signer for the service.
///
protected override AbstractAWSSigner CreateSigner()
{
return new QueryStringSigner();
}
///
/// Customize the pipeline
///
///
protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline)
{
pipeline.RemoveHandler();
pipeline.AddHandlerAfter(new AmazonSimpleDBEndpointResolver());
}
///
/// Capture metadata for the service.
///
protected override IServiceMetadata ServiceMetadata
{
get
{
return serviceMetadata;
}
}
#endregion
#region Dispose
///
/// Disposes the service client.
///
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
#endregion
#region BatchDeleteAttributes
///
/// 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
///
///
/// Container for the necessary parameters to execute the BatchDeleteAttributes service method.
///
/// The response from the BatchDeleteAttributes service method, as returned by SimpleDB.
/// REST API Reference for BatchDeleteAttributes Operation
public virtual BatchDeleteAttributesResponse BatchDeleteAttributes(BatchDeleteAttributesRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = BatchDeleteAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = BatchDeleteAttributesResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the BatchDeleteAttributes operation.
///
///
/// Container for the necessary parameters to execute the BatchDeleteAttributes operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndBatchDeleteAttributes
/// operation.
/// REST API Reference for BatchDeleteAttributes Operation
public virtual IAsyncResult BeginBatchDeleteAttributes(BatchDeleteAttributesRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = BatchDeleteAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = BatchDeleteAttributesResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the BatchDeleteAttributes operation.
///
///
/// The IAsyncResult returned by the call to BeginBatchDeleteAttributes.
///
/// Returns a BatchDeleteAttributesResult from SimpleDB.
/// REST API Reference for BatchDeleteAttributes Operation
public virtual BatchDeleteAttributesResponse EndBatchDeleteAttributes(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region BatchPutAttributes
///
/// 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
///
///
/// Container for the necessary parameters to execute the BatchPutAttributes service method.
///
/// The response from the BatchPutAttributes service method, as returned by SimpleDB.
///
/// The item name was specified more than once.
///
///
/// The value for a parameter is invalid.
///
///
/// The request must contain the specified missing parameter.
///
///
/// The specified domain does not exist.
///
///
/// Too many attributes in this domain.
///
///
/// Too many bytes in this domain.
///
///
/// Too many attributes in this item.
///
///
/// Too many attributes exist in a single call.
///
///
/// Too many items exist in a single call.
///
/// REST API Reference for BatchPutAttributes Operation
public virtual BatchPutAttributesResponse BatchPutAttributes(BatchPutAttributesRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = BatchPutAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = BatchPutAttributesResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the BatchPutAttributes operation.
///
///
/// Container for the necessary parameters to execute the BatchPutAttributes operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndBatchPutAttributes
/// operation.
/// REST API Reference for BatchPutAttributes Operation
public virtual IAsyncResult BeginBatchPutAttributes(BatchPutAttributesRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = BatchPutAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = BatchPutAttributesResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the BatchPutAttributes operation.
///
///
/// The IAsyncResult returned by the call to BeginBatchPutAttributes.
///
/// Returns a BatchPutAttributesResult from SimpleDB.
/// REST API Reference for BatchPutAttributes Operation
public virtual BatchPutAttributesResponse EndBatchPutAttributes(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region CreateDomain
///
/// 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/.
///
///
/// Container for the necessary parameters to execute the CreateDomain service method.
///
/// The response from the CreateDomain service method, as returned by SimpleDB.
///
/// The value for a parameter is invalid.
///
///
/// The request must contain the specified missing parameter.
///
///
/// Too many domains exist per this account.
///
/// REST API Reference for CreateDomain Operation
public virtual CreateDomainResponse CreateDomain(CreateDomainRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = CreateDomainRequestMarshaller.Instance;
options.ResponseUnmarshaller = CreateDomainResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the CreateDomain operation.
///
///
/// Container for the necessary parameters to execute the CreateDomain operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateDomain
/// operation.
/// REST API Reference for CreateDomain Operation
public virtual IAsyncResult BeginCreateDomain(CreateDomainRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = CreateDomainRequestMarshaller.Instance;
options.ResponseUnmarshaller = CreateDomainResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the CreateDomain operation.
///
///
/// The IAsyncResult returned by the call to BeginCreateDomain.
///
/// Returns a CreateDomainResult from SimpleDB.
/// REST API Reference for CreateDomain Operation
public virtual CreateDomainResponse EndCreateDomain(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region DeleteAttributes
///
/// 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.
///
///
/// Container for the necessary parameters to execute the DeleteAttributes service method.
///
/// The response from the DeleteAttributes service method, as returned by SimpleDB.
///
/// The specified attribute does not exist.
///
///
/// The value for a parameter is invalid.
///
///
/// The request must contain the specified missing parameter.
///
///
/// The specified domain does not exist.
///
/// REST API Reference for DeleteAttributes Operation
public virtual DeleteAttributesResponse DeleteAttributes(DeleteAttributesRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = DeleteAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = DeleteAttributesResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the DeleteAttributes operation.
///
///
/// Container for the necessary parameters to execute the DeleteAttributes operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteAttributes
/// operation.
/// REST API Reference for DeleteAttributes Operation
public virtual IAsyncResult BeginDeleteAttributes(DeleteAttributesRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = DeleteAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = DeleteAttributesResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the DeleteAttributes operation.
///
///
/// The IAsyncResult returned by the call to BeginDeleteAttributes.
///
/// Returns a DeleteAttributesResult from SimpleDB.
/// REST API Reference for DeleteAttributes Operation
public virtual DeleteAttributesResponse EndDeleteAttributes(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region DeleteDomain
///
/// 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.
///
/// Container for the necessary parameters to execute the DeleteDomain service method.
///
/// The response from the DeleteDomain service method, as returned by SimpleDB.
///
/// The request must contain the specified missing parameter.
///
/// REST API Reference for DeleteDomain Operation
public virtual DeleteDomainResponse DeleteDomain(DeleteDomainRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = DeleteDomainRequestMarshaller.Instance;
options.ResponseUnmarshaller = DeleteDomainResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the DeleteDomain operation.
///
///
/// Container for the necessary parameters to execute the DeleteDomain operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteDomain
/// operation.
/// REST API Reference for DeleteDomain Operation
public virtual IAsyncResult BeginDeleteDomain(DeleteDomainRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = DeleteDomainRequestMarshaller.Instance;
options.ResponseUnmarshaller = DeleteDomainResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the DeleteDomain operation.
///
///
/// The IAsyncResult returned by the call to BeginDeleteDomain.
///
/// Returns a DeleteDomainResult from SimpleDB.
/// REST API Reference for DeleteDomain Operation
public virtual DeleteDomainResponse EndDeleteDomain(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region DomainMetadata
///
/// 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.
///
/// Container for the necessary parameters to execute the DomainMetadata service method.
///
/// The response from the DomainMetadata service method, as returned by SimpleDB.
///
/// The request must contain the specified missing parameter.
///
///
/// The specified domain does not exist.
///
/// REST API Reference for DomainMetadata Operation
public virtual DomainMetadataResponse DomainMetadata(DomainMetadataRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = DomainMetadataRequestMarshaller.Instance;
options.ResponseUnmarshaller = DomainMetadataResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the DomainMetadata operation.
///
///
/// Container for the necessary parameters to execute the DomainMetadata operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDomainMetadata
/// operation.
/// REST API Reference for DomainMetadata Operation
public virtual IAsyncResult BeginDomainMetadata(DomainMetadataRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = DomainMetadataRequestMarshaller.Instance;
options.ResponseUnmarshaller = DomainMetadataResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the DomainMetadata operation.
///
///
/// The IAsyncResult returned by the call to BeginDomainMetadata.
///
/// Returns a DomainMetadataResult from SimpleDB.
/// REST API Reference for DomainMetadata Operation
public virtual DomainMetadataResponse EndDomainMetadata(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region GetAttributes
///
/// 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.
///
///
/// Container for the necessary parameters to execute the GetAttributes service method.
///
/// The response from the GetAttributes service method, as returned by SimpleDB.
///
/// The value for a parameter is invalid.
///
///
/// The request must contain the specified missing parameter.
///
///
/// The specified domain does not exist.
///
/// REST API Reference for GetAttributes Operation
public virtual GetAttributesResponse GetAttributes(GetAttributesRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = GetAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = GetAttributesResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the GetAttributes operation.
///
///
/// Container for the necessary parameters to execute the GetAttributes operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetAttributes
/// operation.
/// REST API Reference for GetAttributes Operation
public virtual IAsyncResult BeginGetAttributes(GetAttributesRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = GetAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = GetAttributesResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the GetAttributes operation.
///
///
/// The IAsyncResult returned by the call to BeginGetAttributes.
///
/// Returns a GetAttributesResult from SimpleDB.
/// REST API Reference for GetAttributes Operation
public virtual GetAttributesResponse EndGetAttributes(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region ListDomains
///
/// 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.
///
///
/// The response from the ListDomains service method, as returned by SimpleDB.
///
/// The specified NextToken is not valid.
///
///
/// The value for a parameter is invalid.
///
/// REST API Reference for ListDomains Operation
public virtual ListDomainsResponse ListDomains()
{
return ListDomains(new ListDomainsRequest());
}
///
/// 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.
///
/// Container for the necessary parameters to execute the ListDomains service method.
///
/// The response from the ListDomains service method, as returned by SimpleDB.
///
/// The specified NextToken is not valid.
///
///
/// The value for a parameter is invalid.
///
/// REST API Reference for ListDomains Operation
public virtual ListDomainsResponse ListDomains(ListDomainsRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = ListDomainsRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListDomainsResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the ListDomains operation.
///
///
/// Container for the necessary parameters to execute the ListDomains operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListDomains
/// operation.
/// REST API Reference for ListDomains Operation
public virtual IAsyncResult BeginListDomains(ListDomainsRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = ListDomainsRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListDomainsResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the ListDomains operation.
///
///
/// The IAsyncResult returned by the call to BeginListDomains.
///
/// Returns a ListDomainsResult from SimpleDB.
/// REST API Reference for ListDomains Operation
public virtual ListDomainsResponse EndListDomains(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region PutAttributes
///
/// 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
///
///
/// Container for the necessary parameters to execute the PutAttributes service method.
///
/// The response from the PutAttributes service method, as returned by SimpleDB.
///
/// The specified attribute does not exist.
///
///
/// The value for a parameter is invalid.
///
///
/// The request must contain the specified missing parameter.
///
///
/// The specified domain does not exist.
///
///
/// Too many attributes in this domain.
///
///
/// Too many bytes in this domain.
///
///
/// Too many attributes in this item.
///
/// REST API Reference for PutAttributes Operation
public virtual PutAttributesResponse PutAttributes(PutAttributesRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = PutAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = PutAttributesResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the PutAttributes operation.
///
///
/// Container for the necessary parameters to execute the PutAttributes operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutAttributes
/// operation.
/// REST API Reference for PutAttributes Operation
public virtual IAsyncResult BeginPutAttributes(PutAttributesRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = PutAttributesRequestMarshaller.Instance;
options.ResponseUnmarshaller = PutAttributesResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the PutAttributes operation.
///
///
/// The IAsyncResult returned by the call to BeginPutAttributes.
///
/// Returns a PutAttributesResult from SimpleDB.
/// REST API Reference for PutAttributes Operation
public virtual PutAttributesResponse EndPutAttributes(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
#region Select
///
/// 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.
///
///
/// Container for the necessary parameters to execute the Select service method.
///
/// The response from the Select service method, as returned by SimpleDB.
///
/// The specified NextToken is not valid.
///
///
/// Too many predicates exist in the query expression.
///
///
/// Too many predicates exist in the query expression.
///
///
/// The value for a parameter is invalid.
///
///
/// The specified query expression syntax is not valid.
///
///
/// The request must contain the specified missing parameter.
///
///
/// The specified domain does not exist.
///
///
/// A timeout occurred when attempting to query the specified domain with specified query
/// expression.
///
///
/// Too many attributes requested.
///
/// REST API Reference for Select Operation
public virtual SelectResponse Select(SelectRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = SelectRequestMarshaller.Instance;
options.ResponseUnmarshaller = SelectResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Initiates the asynchronous execution of the Select operation.
///
///
/// Container for the necessary parameters to execute the Select operation on AmazonSimpleDBClient.
/// An AsyncCallback delegate that is invoked when the operation completes.
/// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
/// procedure using the AsyncState property.
///
/// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndSelect
/// operation.
/// REST API Reference for Select Operation
public virtual IAsyncResult BeginSelect(SelectRequest request, AsyncCallback callback, object state)
{
var options = new InvokeOptions();
options.RequestMarshaller = SelectRequestMarshaller.Instance;
options.ResponseUnmarshaller = SelectResponseUnmarshaller.Instance;
return BeginInvoke(request, options, callback, state);
}
///
/// Finishes the asynchronous execution of the Select operation.
///
///
/// The IAsyncResult returned by the call to BeginSelect.
///
/// Returns a SelectResult from SimpleDB.
/// REST API Reference for Select Operation
public virtual SelectResponse EndSelect(IAsyncResult asyncResult)
{
return EndInvoke(asyncResult);
}
#endregion
}
}