/*
 * Copyright 2010-2014 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 cognito-sync-2014-06-30.normal.json service model.
 */
using System;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.CognitoSync.Model;
namespace Amazon.CognitoSync
{
    /// 
    /// Interface for accessing CognitoSync
    ///
    /// Amazon Cognito Sync 
    /// 
    /// Amazon Cognito Sync provides an AWS service and client library that enable cross-device
    /// syncing of application-related user data. High-level client libraries are available
    /// for both iOS and Android. You can use these libraries to persist data locally so that
    /// it's available even if the device is offline. Developer credentials don't need to
    /// be stored on the mobile device to access the service. You can use Amazon Cognito to
    /// obtain a normalized user ID and credentials. User data is persisted in a dataset that
    /// can store up to 1 MB of key-value pairs, and you can have up to 20 datasets per user
    /// identity.
    /// 
    ///  
    /// 
    /// With Amazon Cognito Sync, the data stored for each identity is accessible only to
    /// credentials assigned to that identity. In order to use the Cognito Sync service, you
    /// need to make API calls using credentials retrieved with Amazon
    /// Cognito Identity service.
    /// 
    ///  
    /// 
    /// If you want to use Cognito Sync in an Android or iOS application, you will probably
    /// want to make API calls via the AWS Mobile SDK. To learn more, see the Developer
    /// Guide for Android and the Developer
    /// Guide for iOS.
    /// 
    /// 
    public partial interface IAmazonCognitoSync : IAmazonService, IDisposable
    {
        
        #region  BulkPublish
        /// 
        /// Initiates the asynchronous execution of the BulkPublish operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the BulkPublish operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for BulkPublish Operation
        void BulkPublishAsync(BulkPublishRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  DeleteDataset
        /// 
        /// Initiates the asynchronous execution of the DeleteDataset operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteDataset operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for DeleteDataset Operation
        void DeleteDatasetAsync(DeleteDatasetRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  DescribeDataset
        /// 
        /// Initiates the asynchronous execution of the DescribeDataset operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeDataset operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for DescribeDataset Operation
        void DescribeDatasetAsync(DescribeDatasetRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  DescribeIdentityPoolUsage
        /// 
        /// Gets usage details (for example, data storage) about a particular identity pool.
        /// 
        ///  
        /// 
        /// This API can only be called with developer credentials. You cannot call this API with
        /// the temporary user credentials provided by Cognito Identity.
        /// 
        /// 
        /// A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.
        /// An Action 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.
        /// 
        /// 
        /// The response from the DescribeIdentityPoolUsage service method, as returned by CognitoSync.
        /// 
        /// Indicates an internal service error.
        /// 
        /// 
        /// Thrown when a request parameter does not comply with the associated constraints.
        /// 
        /// 
        /// Thrown when a user is not authorized to access the requested resource.
        /// 
        /// 
        /// Thrown if the resource doesn't exist.
        /// 
        /// 
        /// Thrown if the request is throttled.
        /// 
        /// REST API Reference for DescribeIdentityPoolUsage Operation
        void DescribeIdentityPoolUsageAsync(string identityPoolId,  AmazonServiceCallback callback, AsyncOptions options = null);
        /// 
        /// Initiates the asynchronous execution of the DescribeIdentityPoolUsage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeIdentityPoolUsage operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for DescribeIdentityPoolUsage Operation
        void DescribeIdentityPoolUsageAsync(DescribeIdentityPoolUsageRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  DescribeIdentityUsage
        /// 
        /// Initiates the asynchronous execution of the DescribeIdentityUsage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeIdentityUsage operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for DescribeIdentityUsage Operation
        void DescribeIdentityUsageAsync(DescribeIdentityUsageRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  GetBulkPublishDetails
        /// 
        /// Initiates the asynchronous execution of the GetBulkPublishDetails operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetBulkPublishDetails operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for GetBulkPublishDetails Operation
        void GetBulkPublishDetailsAsync(GetBulkPublishDetailsRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  GetCognitoEvents
        /// 
        /// Initiates the asynchronous execution of the GetCognitoEvents operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetCognitoEvents operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for GetCognitoEvents Operation
        void GetCognitoEventsAsync(GetCognitoEventsRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  GetIdentityPoolConfiguration
        /// 
        /// Gets the configuration settings of an identity pool.
        /// 
        ///  
        /// 
        /// This API can only be called with developer credentials. You cannot call this API with
        /// the temporary user credentials provided by Cognito Identity.
        /// 
        /// 
        /// A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. This is the ID of the pool for which to return a configuration.
        /// An Action 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.
        /// 
        /// 
        /// The response from the GetIdentityPoolConfiguration service method, as returned by CognitoSync.
        /// 
        /// Indicates an internal service error.
        /// 
        /// 
        /// Thrown when a request parameter does not comply with the associated constraints.
        /// 
        /// 
        /// Thrown when a user is not authorized to access the requested resource.
        /// 
        /// 
        /// Thrown if the resource doesn't exist.
        /// 
        /// 
        /// Thrown if the request is throttled.
        /// 
        /// REST API Reference for GetIdentityPoolConfiguration Operation
        void GetIdentityPoolConfigurationAsync(string identityPoolId,  AmazonServiceCallback callback, AsyncOptions options = null);
        /// 
        /// Initiates the asynchronous execution of the GetIdentityPoolConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetIdentityPoolConfiguration operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for GetIdentityPoolConfiguration Operation
        void GetIdentityPoolConfigurationAsync(GetIdentityPoolConfigurationRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  ListDatasets
        /// 
        /// Initiates the asynchronous execution of the ListDatasets operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListDatasets operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for ListDatasets Operation
        void ListDatasetsAsync(ListDatasetsRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  ListIdentityPoolUsage
        /// 
        /// Initiates the asynchronous execution of the ListIdentityPoolUsage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListIdentityPoolUsage operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for ListIdentityPoolUsage Operation
        void ListIdentityPoolUsageAsync(ListIdentityPoolUsageRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  ListRecords
        /// 
        /// Initiates the asynchronous execution of the ListRecords operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListRecords operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for ListRecords Operation
        void ListRecordsAsync(ListRecordsRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  RegisterDevice
        /// 
        /// Initiates the asynchronous execution of the RegisterDevice operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RegisterDevice operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for RegisterDevice Operation
        void RegisterDeviceAsync(RegisterDeviceRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  SetCognitoEvents
        /// 
        /// Initiates the asynchronous execution of the SetCognitoEvents operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SetCognitoEvents operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for SetCognitoEvents Operation
        void SetCognitoEventsAsync(SetCognitoEventsRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  SetIdentityPoolConfiguration
        /// 
        /// Initiates the asynchronous execution of the SetIdentityPoolConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SetIdentityPoolConfiguration operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for SetIdentityPoolConfiguration Operation
        void SetIdentityPoolConfigurationAsync(SetIdentityPoolConfigurationRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  SubscribeToDataset
        /// 
        /// Initiates the asynchronous execution of the SubscribeToDataset operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SubscribeToDataset operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for SubscribeToDataset Operation
        void SubscribeToDatasetAsync(SubscribeToDatasetRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  UnsubscribeFromDataset
        /// 
        /// Initiates the asynchronous execution of the UnsubscribeFromDataset operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UnsubscribeFromDataset operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for UnsubscribeFromDataset Operation
        void UnsubscribeFromDatasetAsync(UnsubscribeFromDatasetRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
        #region  UpdateRecords
        /// 
        /// Initiates the asynchronous execution of the UpdateRecords operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateRecords operation on AmazonCognitoSyncClient.
        /// An Action 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.
        /// REST API Reference for UpdateRecords Operation
        void UpdateRecordsAsync(UpdateRecordsRequest request, AmazonServiceCallback callback, AsyncOptions options = null);
        #endregion
        
    }
}