/*
 * 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 keyspaces-2022-02-10.normal.json service model.
 */
using System;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.Keyspaces.Model;
namespace Amazon.Keyspaces
{
    /// 
    /// Interface for accessing Keyspaces
    ///
    /// Amazon Keyspaces (for Apache Cassandra) is a scalable, highly available, and managed
    /// Apache Cassandra-compatible database service. Amazon Keyspaces makes it easy to migrate,
    /// run, and scale Cassandra workloads in the Amazon Web Services Cloud. With just a few
    /// clicks on the Amazon Web Services Management Console or a few lines of code, you can
    /// create keyspaces and tables in Amazon Keyspaces, without deploying any infrastructure
    /// or installing software. 
    /// 
    ///  
    /// 
    /// In addition to supporting Cassandra Query Language (CQL) requests via open-source
    /// Cassandra drivers, Amazon Keyspaces supports data definition language (DDL) operations
    /// to manage keyspaces and tables using the Amazon Web Services SDK and CLI, as well
    /// as infrastructure as code (IaC) services and tools such as CloudFormation and Terraform.
    /// This API reference describes the supported DDL operations in detail.
    /// 
    ///  
    /// 
    /// For the list of all supported CQL APIs, see Supported
    /// Cassandra APIs, operations, and data types in Amazon Keyspaces in the Amazon
    /// Keyspaces Developer Guide.
    /// 
    ///  
    /// 
    /// To learn how Amazon Keyspaces API actions are recorded with CloudTrail, see Amazon
    /// Keyspaces information in CloudTrail in the Amazon Keyspaces Developer Guide.
    /// 
    ///  
    /// 
    /// For more information about Amazon Web Services APIs, for example how to implement
    /// retry logic or how to sign Amazon Web Services API requests, see Amazon
    /// Web Services APIs in the General Reference.
    /// 
    /// 
    public partial interface IAmazonKeyspaces : IAmazonService, IDisposable
    {
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        /// 
        /// Paginators for the service
        /// 
        IKeyspacesPaginatorFactory Paginators { get; }
#endif
        
        #region  CreateKeyspace
        /// 
        /// The CreateKeyspace operation adds a new keyspace to your account. In
        /// an Amazon Web Services account, keyspace names must be unique within each Region.
        /// 
        ///  
        /// 
        ///  CreateKeyspace is an asynchronous operation. You can monitor the creation
        /// status of the new keyspace by using the GetKeyspace operation.
        /// 
        ///  
        /// 
        /// For more information, see Creating
        /// keyspaces in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateKeyspace service method.
        /// 
        /// The response from the CreateKeyspace service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces could not complete the requested action. This error may occur if
        /// you try to perform an action and the same or a different action is already in progress,
        /// or if you try to create a resource that already exists.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for CreateKeyspace Operation
        CreateKeyspaceResponse CreateKeyspace(CreateKeyspaceRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateKeyspace operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateKeyspace operation on AmazonKeyspacesClient.
        /// 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 EndCreateKeyspace
        ///         operation.
        /// REST API Reference for CreateKeyspace Operation
        IAsyncResult BeginCreateKeyspace(CreateKeyspaceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateKeyspace operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateKeyspace.
        /// 
        /// Returns a  CreateKeyspaceResult from Keyspaces.
        /// REST API Reference for CreateKeyspace Operation
        CreateKeyspaceResponse EndCreateKeyspace(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateTable
        /// 
        /// The CreateTable operation adds a new table to the specified keyspace.
        /// Within a keyspace, table names must be unique.
        /// 
        ///  
        /// 
        ///  CreateTable is an asynchronous operation. When the request is received,
        /// the status of the table is set to CREATING. You can monitor the creation
        /// status of the new table by using the GetTable operation, which returns
        /// the current status of the table. You can start using a table when the
        /// status is ACTIVE.
        /// 
        ///  
        /// 
        /// For more information, see Creating
        /// tables in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateTable service method.
        /// 
        /// The response from the CreateTable service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces could not complete the requested action. This error may occur if
        /// you try to perform an action and the same or a different action is already in progress,
        /// or if you try to create a resource that already exists.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for CreateTable Operation
        CreateTableResponse CreateTable(CreateTableRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateTable operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateTable operation on AmazonKeyspacesClient.
        /// 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 EndCreateTable
        ///         operation.
        /// REST API Reference for CreateTable Operation
        IAsyncResult BeginCreateTable(CreateTableRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateTable operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateTable.
        /// 
        /// Returns a  CreateTableResult from Keyspaces.
        /// REST API Reference for CreateTable Operation
        CreateTableResponse EndCreateTable(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteKeyspace
        /// 
        /// The DeleteKeyspace operation deletes a keyspace and all of its tables.
        /// 
        /// Container for the necessary parameters to execute the DeleteKeyspace service method.
        /// 
        /// The response from the DeleteKeyspace service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces could not complete the requested action. This error may occur if
        /// you try to perform an action and the same or a different action is already in progress,
        /// or if you try to create a resource that already exists.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for DeleteKeyspace Operation
        DeleteKeyspaceResponse DeleteKeyspace(DeleteKeyspaceRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteKeyspace operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteKeyspace operation on AmazonKeyspacesClient.
        /// 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 EndDeleteKeyspace
        ///         operation.
        /// REST API Reference for DeleteKeyspace Operation
        IAsyncResult BeginDeleteKeyspace(DeleteKeyspaceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteKeyspace operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteKeyspace.
        /// 
        /// Returns a  DeleteKeyspaceResult from Keyspaces.
        /// REST API Reference for DeleteKeyspace Operation
        DeleteKeyspaceResponse EndDeleteKeyspace(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteTable
        /// 
        /// The DeleteTable operation deletes a table and all of its data. After
        /// a DeleteTable request is received, the specified table is in the DELETING
        /// state until Amazon Keyspaces completes the deletion. If the table is in the ACTIVE
        /// state, you can delete it. If a table is either in the CREATING or UPDATING
        /// states, then Amazon Keyspaces returns a ResourceInUseException. If the
        /// specified table does not exist, Amazon Keyspaces returns a ResourceNotFoundException.
        /// If the table is already in the DELETING state, no error is returned.
        /// 
        /// Container for the necessary parameters to execute the DeleteTable service method.
        /// 
        /// The response from the DeleteTable service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces could not complete the requested action. This error may occur if
        /// you try to perform an action and the same or a different action is already in progress,
        /// or if you try to create a resource that already exists.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for DeleteTable Operation
        DeleteTableResponse DeleteTable(DeleteTableRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteTable operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteTable operation on AmazonKeyspacesClient.
        /// 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 EndDeleteTable
        ///         operation.
        /// REST API Reference for DeleteTable Operation
        IAsyncResult BeginDeleteTable(DeleteTableRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteTable operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteTable.
        /// 
        /// Returns a  DeleteTableResult from Keyspaces.
        /// REST API Reference for DeleteTable Operation
        DeleteTableResponse EndDeleteTable(IAsyncResult asyncResult);
        #endregion
        
        #region  GetKeyspace
        /// 
        /// Returns the name and the Amazon Resource Name (ARN) of the specified table.
        /// 
        /// Container for the necessary parameters to execute the GetKeyspace service method.
        /// 
        /// The response from the GetKeyspace service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for GetKeyspace Operation
        GetKeyspaceResponse GetKeyspace(GetKeyspaceRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetKeyspace operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetKeyspace operation on AmazonKeyspacesClient.
        /// 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 EndGetKeyspace
        ///         operation.
        /// REST API Reference for GetKeyspace Operation
        IAsyncResult BeginGetKeyspace(GetKeyspaceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetKeyspace operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetKeyspace.
        /// 
        /// Returns a  GetKeyspaceResult from Keyspaces.
        /// REST API Reference for GetKeyspace Operation
        GetKeyspaceResponse EndGetKeyspace(IAsyncResult asyncResult);
        #endregion
        
        #region  GetTable
        /// 
        /// Returns information about the table, including the table's name and current status,
        /// the keyspace name, configuration settings, and metadata.
        /// 
        ///  
        /// 
        /// To read table metadata using GetTable, Select action permissions
        /// for the table and system tables are required to complete the operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetTable service method.
        /// 
        /// The response from the GetTable service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for GetTable Operation
        GetTableResponse GetTable(GetTableRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetTable operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetTable operation on AmazonKeyspacesClient.
        /// 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 EndGetTable
        ///         operation.
        /// REST API Reference for GetTable Operation
        IAsyncResult BeginGetTable(GetTableRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetTable operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetTable.
        /// 
        /// Returns a  GetTableResult from Keyspaces.
        /// REST API Reference for GetTable Operation
        GetTableResponse EndGetTable(IAsyncResult asyncResult);
        #endregion
        
        #region  ListKeyspaces
        /// 
        /// Returns a list of keyspaces.
        /// 
        /// Container for the necessary parameters to execute the ListKeyspaces service method.
        /// 
        /// The response from the ListKeyspaces service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for ListKeyspaces Operation
        ListKeyspacesResponse ListKeyspaces(ListKeyspacesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListKeyspaces operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListKeyspaces operation on AmazonKeyspacesClient.
        /// 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 EndListKeyspaces
        ///         operation.
        /// REST API Reference for ListKeyspaces Operation
        IAsyncResult BeginListKeyspaces(ListKeyspacesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListKeyspaces operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListKeyspaces.
        /// 
        /// Returns a  ListKeyspacesResult from Keyspaces.
        /// REST API Reference for ListKeyspaces Operation
        ListKeyspacesResponse EndListKeyspaces(IAsyncResult asyncResult);
        #endregion
        
        #region  ListTables
        /// 
        /// Returns a list of tables for a specified keyspace.
        /// 
        /// Container for the necessary parameters to execute the ListTables service method.
        /// 
        /// The response from the ListTables service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for ListTables Operation
        ListTablesResponse ListTables(ListTablesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListTables operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTables operation on AmazonKeyspacesClient.
        /// 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 EndListTables
        ///         operation.
        /// REST API Reference for ListTables Operation
        IAsyncResult BeginListTables(ListTablesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListTables operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTables.
        /// 
        /// Returns a  ListTablesResult from Keyspaces.
        /// REST API Reference for ListTables Operation
        ListTablesResponse EndListTables(IAsyncResult asyncResult);
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Returns a list of all tags associated with the specified Amazon Keyspaces resource.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListTagsForResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource operation on AmazonKeyspacesClient.
        /// 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 EndListTagsForResource
        ///         operation.
        /// REST API Reference for ListTagsForResource Operation
        IAsyncResult BeginListTagsForResource(ListTagsForResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListTagsForResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTagsForResource.
        /// 
        /// Returns a  ListTagsForResourceResult from Keyspaces.
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult);
        #endregion
        
        #region  RestoreTable
        /// 
        /// Restores the specified table to the specified point in time within the earliest_restorable_timestamp
        /// and the current time. For more information about restore points, see 
        /// Time window for PITR continuous backups in the Amazon Keyspaces Developer Guide.
        /// 
        ///  
        /// 
        /// Any number of users can execute up to 4 concurrent restores (any type of restore)
        /// in a given account.
        /// 
        ///  
        /// 
        /// When you restore using point in time recovery, Amazon Keyspaces restores your source
        /// table's schema and data to the state based on the selected timestamp (day:hour:minute:second)
        /// to a new table. The Time to Live (TTL) settings are also restored to the state based
        /// on the selected timestamp.
        /// 
        ///  
        /// 
        /// In addition to the table's schema, data, and TTL settings, RestoreTable
        /// restores the capacity mode, encryption, and point-in-time recovery settings from the
        /// source table. Unlike the table's schema data and TTL settings, which are restored
        /// based on the selected timestamp, these settings are always restored based on the table's
        /// settings as of the current time or when the table was deleted.
        /// 
        ///  
        /// 
        /// You can also overwrite these settings during restore:
        /// 
        ///   -  
        /// 
        /// Read/write capacity mode
        /// 
        ///  
-  
        /// 
        /// Provisioned throughput capacity settings
        /// 
        ///  
-  
        /// 
        /// Point-in-time (PITR) settings
        /// 
        ///  
-  
        /// 
        /// Tags
        /// 
        ///  
/// 
        /// For more information, see PITR
        /// restore settings in the Amazon Keyspaces Developer Guide.
        /// 
        ///  
        /// 
        /// Note that the following settings are not restored, and you must configure them manually
        /// for the new table:
        /// 
        /// -  
        /// 
        /// Automatic scaling policies (for tables that use provisioned capacity mode)
        /// 
        ///  
-  
        /// 
        /// Identity and Access Management (IAM) policies
        /// 
        ///  
-  
        /// 
        /// Amazon CloudWatch metrics and alarms
        /// 
        ///  
/// 
        /// Container for the necessary parameters to execute the RestoreTable service method.
        /// 
        /// The response from the RestoreTable service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces could not complete the requested action. This error may occur if
        /// you try to perform an action and the same or a different action is already in progress,
        /// or if you try to create a resource that already exists.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not beACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for RestoreTable Operation
        RestoreTableResponse RestoreTable(RestoreTableRequest request);
        /// 
        /// Initiates the asynchronous execution of the RestoreTable operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RestoreTable operation on AmazonKeyspacesClient.
        /// 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 EndRestoreTable
        ///         operation.
        /// REST API Reference for RestoreTable Operation
        IAsyncResult BeginRestoreTable(RestoreTableRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  RestoreTable operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRestoreTable.
        /// 
        /// Returns a  RestoreTableResult from Keyspaces.
        /// REST API Reference for RestoreTable Operation
        RestoreTableResponse EndRestoreTable(IAsyncResult asyncResult);
        #endregion
        
        #region  TagResource
        /// 
        /// Associates a set of tags with a Amazon Keyspaces resource. You can then activate these
        /// user-defined tags so that they appear on the Cost Management Console for cost allocation
        /// tracking. For more information, see Adding
        /// tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer
        /// Guide.
        /// 
        ///  
        /// 
        /// For IAM policy examples that show how to control access to Amazon Keyspaces resources
        /// based on tags, see Amazon
        /// Keyspaces resource access based on tags in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for TagResource Operation
        TagResourceResponse TagResource(TagResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the TagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TagResource operation on AmazonKeyspacesClient.
        /// 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 EndTagResource
        ///         operation.
        /// REST API Reference for TagResource Operation
        IAsyncResult BeginTagResource(TagResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  TagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginTagResource.
        /// 
        /// Returns a  TagResourceResult from Keyspaces.
        /// REST API Reference for TagResource Operation
        TagResourceResponse EndTagResource(IAsyncResult asyncResult);
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes the association of tags from a Amazon Keyspaces resource.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces could not complete the requested action. This error may occur if
        /// you try to perform an action and the same or a different action is already in progress,
        /// or if you try to create a resource that already exists.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse UntagResource(UntagResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the UntagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UntagResource operation on AmazonKeyspacesClient.
        /// 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 EndUntagResource
        ///         operation.
        /// REST API Reference for UntagResource Operation
        IAsyncResult BeginUntagResource(UntagResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UntagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUntagResource.
        /// 
        /// Returns a  UntagResourceResult from Keyspaces.
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse EndUntagResource(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateTable
        /// 
        /// Adds new columns to the table or updates one of the table's settings, for example
        /// capacity mode, encryption, point-in-time recovery, or ttl settings. Note that you
        /// can only update one specific table setting per update operation.
        /// 
        /// Container for the necessary parameters to execute the UpdateTable service method.
        /// 
        /// The response from the UpdateTable service method, as returned by Keyspaces.
        /// 
        /// You do not have sufficient access to perform this action.
        /// 
        /// 
        /// Amazon Keyspaces could not complete the requested action. This error may occur if
        /// you try to perform an action and the same or a different action is already in progress,
        /// or if you try to create a resource that already exists.
        /// 
        /// 
        /// Amazon Keyspaces was unable to fully process this request because of an internal server
        /// error.
        /// 
        /// 
        /// The operation tried to access a keyspace or table that doesn't exist. The resource
        /// might not be specified correctly, or its status might not be ACTIVE.
        /// 
        /// 
        /// The operation exceeded the service quota for this resource. For more information on
        /// service quotas, see Quotas
        /// in the Amazon Keyspaces Developer Guide.
        /// 
        /// 
        /// The operation failed due to an invalid or malformed request.
        /// 
        /// REST API Reference for UpdateTable Operation
        UpdateTableResponse UpdateTable(UpdateTableRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateTable operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateTable operation on AmazonKeyspacesClient.
        /// 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 EndUpdateTable
        ///         operation.
        /// REST API Reference for UpdateTable Operation
        IAsyncResult BeginUpdateTable(UpdateTableRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateTable operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateTable.
        /// 
        /// Returns a  UpdateTableResult from Keyspaces.
        /// REST API Reference for UpdateTable Operation
        UpdateTableResponse EndUpdateTable(IAsyncResult asyncResult);
        #endregion
        
    }
}