/*
 * 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 redshift-data-2019-12-20.normal.json service model.
 */
using System;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.RedshiftDataAPIService.Model;
namespace Amazon.RedshiftDataAPIService
{
    /// 
    /// Interface for accessing RedshiftDataAPIService
    ///
    /// You can use the Amazon Redshift Data API to run queries on Amazon Redshift tables.
    /// You can run SQL statements, which are committed if the statement succeeds. 
    /// 
    ///  
    /// 
    /// For more information about the Amazon Redshift Data API and CLI usage examples, see
    /// Using the
    /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
    /// 
    /// 
    public partial interface IAmazonRedshiftDataAPIService : IAmazonService, IDisposable
    {
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        /// 
        /// Paginators for the service
        /// 
        IRedshiftDataAPIServicePaginatorFactory Paginators { get; }
#endif
        
        #region  BatchExecuteStatement
        /// 
        /// Runs one or more SQL statements, which can be data manipulation language (DML) or
        /// data definition language (DDL). Depending on the authorization method, use one of
        /// the following combinations of request parameters: 
        /// 
        ///   -  
        /// 
        /// Secrets Manager - when connecting to a cluster, provide the secret-arn/// of a secret stored in Secrets Manager which hasusernameandpassword.
        /// The specified secret contains credentials to connect to thedatabase/// you specify. When you are connecting to a cluster, you also supply the database name,
        /// If you provide a cluster identifier (dbClusterIdentifier), it must match
        /// the cluster identifier stored in the secret. When you are connecting to a serverless
        /// workgroup, you also supply the database name.
        /// 
        ///
-  
        /// 
        /// Temporary credentials - when connecting to your data warehouse, choose one of the
        /// following options:
        /// 
        ///   -  
        /// 
        /// When connecting to a serverless workgroup, specify the workgroup name and database
        /// name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo/// has the database user nameIAM:foo. Also, permission to call theredshift-serverless:GetCredentials/// operation is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as an IAM identity, specify the cluster identifier and
        /// the database name. The database user name is derived from the IAM identity. For example,
        /// arn:iam::123456789012:user:foohas the database user nameIAM:foo.
        /// Also, permission to call theredshift:GetClusterCredentialsWithIAMoperation
        /// is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as a database user, specify the cluster identifier, the
        /// database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials/// operation is required.
        /// 
        ///
 
/// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the BatchExecuteStatement service method.
        /// 
        /// The response from the BatchExecuteStatement service method, as returned by RedshiftDataAPIService.
        /// 
        /// The number of active statements exceeds the limit.
        /// 
        /// 
        /// An SQL statement encountered an environmental error while running.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for BatchExecuteStatement Operation
        BatchExecuteStatementResponse BatchExecuteStatement(BatchExecuteStatementRequest request);
        /// 
        /// Initiates the asynchronous execution of the BatchExecuteStatement operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the BatchExecuteStatement operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndBatchExecuteStatement
        ///         operation.
        /// REST API Reference for BatchExecuteStatement Operation
        IAsyncResult BeginBatchExecuteStatement(BatchExecuteStatementRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  BatchExecuteStatement operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginBatchExecuteStatement.
        /// 
        /// Returns a  BatchExecuteStatementResult from RedshiftDataAPIService.
        /// REST API Reference for BatchExecuteStatement Operation
        BatchExecuteStatementResponse EndBatchExecuteStatement(IAsyncResult asyncResult);
        #endregion
        
        #region  CancelStatement
        /// 
        /// Cancels a running query. To be canceled, a query must be running. 
        /// 
        ///  
        /// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the CancelStatement service method.
        /// 
        /// The response from the CancelStatement service method, as returned by RedshiftDataAPIService.
        /// 
        /// Connection to a database failed.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to a missing resource.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for CancelStatement Operation
        CancelStatementResponse CancelStatement(CancelStatementRequest request);
        /// 
        /// Initiates the asynchronous execution of the CancelStatement operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CancelStatement operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndCancelStatement
        ///         operation.
        /// REST API Reference for CancelStatement Operation
        IAsyncResult BeginCancelStatement(CancelStatementRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CancelStatement operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCancelStatement.
        /// 
        /// Returns a  CancelStatementResult from RedshiftDataAPIService.
        /// REST API Reference for CancelStatement Operation
        CancelStatementResponse EndCancelStatement(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeStatement
        /// 
        /// Describes the details about a specific instance when a query was run by the Amazon
        /// Redshift Data API. The information includes when the query started, when it finished,
        /// the query status, the number of rows returned, and the SQL statement. 
        /// 
        ///  
        /// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeStatement service method.
        /// 
        /// The response from the DescribeStatement service method, as returned by RedshiftDataAPIService.
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to a missing resource.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for DescribeStatement Operation
        DescribeStatementResponse DescribeStatement(DescribeStatementRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeStatement operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeStatement operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndDescribeStatement
        ///         operation.
        /// REST API Reference for DescribeStatement Operation
        IAsyncResult BeginDescribeStatement(DescribeStatementRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeStatement operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeStatement.
        /// 
        /// Returns a  DescribeStatementResult from RedshiftDataAPIService.
        /// REST API Reference for DescribeStatement Operation
        DescribeStatementResponse EndDescribeStatement(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeTable
        /// 
        /// Describes the detailed information about a table from metadata in the cluster. The
        /// information includes its columns. A token is returned to page through the column list.
        /// Depending on the authorization method, use one of the following combinations of request
        /// parameters: 
        /// 
        /// -  
        /// 
        /// Secrets Manager - when connecting to a cluster, provide the secret-arn/// of a secret stored in Secrets Manager which hasusernameandpassword.
        /// The specified secret contains credentials to connect to thedatabase/// you specify. When you are connecting to a cluster, you also supply the database name,
        /// If you provide a cluster identifier (dbClusterIdentifier), it must match
        /// the cluster identifier stored in the secret. When you are connecting to a serverless
        /// workgroup, you also supply the database name.
        /// 
        ///
-  
        /// 
        /// Temporary credentials - when connecting to your data warehouse, choose one of the
        /// following options:
        /// 
        ///   -  
        /// 
        /// When connecting to a serverless workgroup, specify the workgroup name and database
        /// name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo/// has the database user nameIAM:foo. Also, permission to call theredshift-serverless:GetCredentials/// operation is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as an IAM identity, specify the cluster identifier and
        /// the database name. The database user name is derived from the IAM identity. For example,
        /// arn:iam::123456789012:user:foohas the database user nameIAM:foo.
        /// Also, permission to call theredshift:GetClusterCredentialsWithIAMoperation
        /// is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as a database user, specify the cluster identifier, the
        /// database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials/// operation is required.
        /// 
        ///
 
/// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeTable service method.
        /// 
        /// The response from the DescribeTable service method, as returned by RedshiftDataAPIService.
        /// 
        /// Connection to a database failed.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for DescribeTable Operation
        DescribeTableResponse DescribeTable(DescribeTableRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeTable operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeTable operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndDescribeTable
        ///         operation.
        /// REST API Reference for DescribeTable Operation
        IAsyncResult BeginDescribeTable(DescribeTableRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeTable operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeTable.
        /// 
        /// Returns a  DescribeTableResult from RedshiftDataAPIService.
        /// REST API Reference for DescribeTable Operation
        DescribeTableResponse EndDescribeTable(IAsyncResult asyncResult);
        #endregion
        
        #region  ExecuteStatement
        /// 
        /// Runs an SQL statement, which can be data manipulation language (DML) or data definition
        /// language (DDL). This statement must be a single SQL statement. Depending on the authorization
        /// method, use one of the following combinations of request parameters: 
        /// 
        /// -  
        /// 
        /// Secrets Manager - when connecting to a cluster, provide the secret-arn/// of a secret stored in Secrets Manager which hasusernameandpassword.
        /// The specified secret contains credentials to connect to thedatabase/// you specify. When you are connecting to a cluster, you also supply the database name,
        /// If you provide a cluster identifier (dbClusterIdentifier), it must match
        /// the cluster identifier stored in the secret. When you are connecting to a serverless
        /// workgroup, you also supply the database name.
        /// 
        ///
-  
        /// 
        /// Temporary credentials - when connecting to your data warehouse, choose one of the
        /// following options:
        /// 
        ///   -  
        /// 
        /// When connecting to a serverless workgroup, specify the workgroup name and database
        /// name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo/// has the database user nameIAM:foo. Also, permission to call theredshift-serverless:GetCredentials/// operation is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as an IAM identity, specify the cluster identifier and
        /// the database name. The database user name is derived from the IAM identity. For example,
        /// arn:iam::123456789012:user:foohas the database user nameIAM:foo.
        /// Also, permission to call theredshift:GetClusterCredentialsWithIAMoperation
        /// is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as a database user, specify the cluster identifier, the
        /// database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials/// operation is required.
        /// 
        ///
 
/// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ExecuteStatement service method.
        /// 
        /// The response from the ExecuteStatement service method, as returned by RedshiftDataAPIService.
        /// 
        /// The number of active statements exceeds the limit.
        /// 
        /// 
        /// The SQL statement encountered an environmental error while running.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for ExecuteStatement Operation
        ExecuteStatementResponse ExecuteStatement(ExecuteStatementRequest request);
        /// 
        /// Initiates the asynchronous execution of the ExecuteStatement operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ExecuteStatement operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndExecuteStatement
        ///         operation.
        /// REST API Reference for ExecuteStatement Operation
        IAsyncResult BeginExecuteStatement(ExecuteStatementRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ExecuteStatement operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginExecuteStatement.
        /// 
        /// Returns a  ExecuteStatementResult from RedshiftDataAPIService.
        /// REST API Reference for ExecuteStatement Operation
        ExecuteStatementResponse EndExecuteStatement(IAsyncResult asyncResult);
        #endregion
        
        #region  GetStatementResult
        /// 
        /// Fetches the temporarily cached result of an SQL statement. A token is returned to
        /// page through the statement results. 
        /// 
        ///  
        /// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStatementResult service method.
        /// 
        /// The response from the GetStatementResult service method, as returned by RedshiftDataAPIService.
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to a missing resource.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for GetStatementResult Operation
        GetStatementResultResponse GetStatementResult(GetStatementResultRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetStatementResult operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStatementResult operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndGetStatementResult
        ///         operation.
        /// REST API Reference for GetStatementResult Operation
        IAsyncResult BeginGetStatementResult(GetStatementResultRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetStatementResult operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStatementResult.
        /// 
        /// Returns a  GetStatementResultResult from RedshiftDataAPIService.
        /// REST API Reference for GetStatementResult Operation
        GetStatementResultResponse EndGetStatementResult(IAsyncResult asyncResult);
        #endregion
        
        #region  ListDatabases
        /// 
        /// List the databases in a cluster. A token is returned to page through the database
        /// list. Depending on the authorization method, use one of the following combinations
        /// of request parameters: 
        /// 
        /// -  
        /// 
        /// Secrets Manager - when connecting to a cluster, provide the secret-arn/// of a secret stored in Secrets Manager which hasusernameandpassword.
        /// The specified secret contains credentials to connect to thedatabase/// you specify. When you are connecting to a cluster, you also supply the database name,
        /// If you provide a cluster identifier (dbClusterIdentifier), it must match
        /// the cluster identifier stored in the secret. When you are connecting to a serverless
        /// workgroup, you also supply the database name.
        /// 
        ///
-  
        /// 
        /// Temporary credentials - when connecting to your data warehouse, choose one of the
        /// following options:
        /// 
        ///   -  
        /// 
        /// When connecting to a serverless workgroup, specify the workgroup name and database
        /// name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo/// has the database user nameIAM:foo. Also, permission to call theredshift-serverless:GetCredentials/// operation is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as an IAM identity, specify the cluster identifier and
        /// the database name. The database user name is derived from the IAM identity. For example,
        /// arn:iam::123456789012:user:foohas the database user nameIAM:foo.
        /// Also, permission to call theredshift:GetClusterCredentialsWithIAMoperation
        /// is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as a database user, specify the cluster identifier, the
        /// database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials/// operation is required.
        /// 
        ///
 
/// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListDatabases service method.
        /// 
        /// The response from the ListDatabases service method, as returned by RedshiftDataAPIService.
        /// 
        /// Connection to a database failed.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for ListDatabases Operation
        ListDatabasesResponse ListDatabases(ListDatabasesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListDatabases operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListDatabases operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndListDatabases
        ///         operation.
        /// REST API Reference for ListDatabases Operation
        IAsyncResult BeginListDatabases(ListDatabasesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListDatabases operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListDatabases.
        /// 
        /// Returns a  ListDatabasesResult from RedshiftDataAPIService.
        /// REST API Reference for ListDatabases Operation
        ListDatabasesResponse EndListDatabases(IAsyncResult asyncResult);
        #endregion
        
        #region  ListSchemas
        /// 
        /// Lists the schemas in a database. A token is returned to page through the schema list.
        /// Depending on the authorization method, use one of the following combinations of request
        /// parameters: 
        /// 
        /// -  
        /// 
        /// Secrets Manager - when connecting to a cluster, provide the secret-arn/// of a secret stored in Secrets Manager which hasusernameandpassword.
        /// The specified secret contains credentials to connect to thedatabase/// you specify. When you are connecting to a cluster, you also supply the database name,
        /// If you provide a cluster identifier (dbClusterIdentifier), it must match
        /// the cluster identifier stored in the secret. When you are connecting to a serverless
        /// workgroup, you also supply the database name.
        /// 
        ///
-  
        /// 
        /// Temporary credentials - when connecting to your data warehouse, choose one of the
        /// following options:
        /// 
        ///   -  
        /// 
        /// When connecting to a serverless workgroup, specify the workgroup name and database
        /// name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo/// has the database user nameIAM:foo. Also, permission to call theredshift-serverless:GetCredentials/// operation is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as an IAM identity, specify the cluster identifier and
        /// the database name. The database user name is derived from the IAM identity. For example,
        /// arn:iam::123456789012:user:foohas the database user nameIAM:foo.
        /// Also, permission to call theredshift:GetClusterCredentialsWithIAMoperation
        /// is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as a database user, specify the cluster identifier, the
        /// database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials/// operation is required.
        /// 
        ///
 
/// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListSchemas service method.
        /// 
        /// The response from the ListSchemas service method, as returned by RedshiftDataAPIService.
        /// 
        /// Connection to a database failed.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for ListSchemas Operation
        ListSchemasResponse ListSchemas(ListSchemasRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListSchemas operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListSchemas operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndListSchemas
        ///         operation.
        /// REST API Reference for ListSchemas Operation
        IAsyncResult BeginListSchemas(ListSchemasRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListSchemas operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListSchemas.
        /// 
        /// Returns a  ListSchemasResult from RedshiftDataAPIService.
        /// REST API Reference for ListSchemas Operation
        ListSchemasResponse EndListSchemas(IAsyncResult asyncResult);
        #endregion
        
        #region  ListStatements
        /// 
        /// List of SQL statements. By default, only finished statements are shown. A token is
        /// returned to page through the statement list. 
        /// 
        ///  
        /// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStatements service method.
        /// 
        /// The response from the ListStatements service method, as returned by RedshiftDataAPIService.
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// REST API Reference for ListStatements Operation
        ListStatementsResponse ListStatements(ListStatementsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListStatements operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStatements operation on AmazonRedshiftDataAPIServiceClient.
        /// 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 EndListStatements
        ///         operation.
        /// REST API Reference for ListStatements Operation
        IAsyncResult BeginListStatements(ListStatementsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListStatements operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListStatements.
        /// 
        /// Returns a  ListStatementsResult from RedshiftDataAPIService.
        /// REST API Reference for ListStatements Operation
        ListStatementsResponse EndListStatements(IAsyncResult asyncResult);
        #endregion
        
        #region  ListTables
        /// 
        /// List the tables in a database. If neitherSchemaPattern nor TablePattern
        /// are specified, then all tables in the database are returned. A token is returned to
        /// page through the table list. Depending on the authorization method, use one of the
        /// following combinations of request parameters: 
        /// 
        ///   -  
        /// 
        /// Secrets Manager - when connecting to a cluster, provide the secret-arn/// of a secret stored in Secrets Manager which hasusernameandpassword.
        /// The specified secret contains credentials to connect to thedatabase/// you specify. When you are connecting to a cluster, you also supply the database name,
        /// If you provide a cluster identifier (dbClusterIdentifier), it must match
        /// the cluster identifier stored in the secret. When you are connecting to a serverless
        /// workgroup, you also supply the database name.
        /// 
        ///
-  
        /// 
        /// Temporary credentials - when connecting to your data warehouse, choose one of the
        /// following options:
        /// 
        ///   -  
        /// 
        /// When connecting to a serverless workgroup, specify the workgroup name and database
        /// name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo/// has the database user nameIAM:foo. Also, permission to call theredshift-serverless:GetCredentials/// operation is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as an IAM identity, specify the cluster identifier and
        /// the database name. The database user name is derived from the IAM identity. For example,
        /// arn:iam::123456789012:user:foohas the database user nameIAM:foo.
        /// Also, permission to call theredshift:GetClusterCredentialsWithIAMoperation
        /// is required.
        /// 
        ///
-  
        /// 
        /// When connecting to a cluster as a database user, specify the cluster identifier, the
        /// database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials/// operation is required.
        /// 
        ///
 
/// 
        /// For more information about the Amazon Redshift Data API and CLI usage examples, see
        /// Using the
        /// Amazon Redshift Data API in the Amazon Redshift Management Guide. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTables service method.
        /// 
        /// The response from the ListTables service method, as returned by RedshiftDataAPIService.
        /// 
        /// Connection to a database failed.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 
        /// The Amazon Redshift Data API operation failed due to invalid input.
        /// 
        /// 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 AmazonRedshiftDataAPIServiceClient.
        /// 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 RedshiftDataAPIService.
        /// REST API Reference for ListTables Operation
        ListTablesResponse EndListTables(IAsyncResult asyncResult);
        #endregion
        
    }
}