def restore_table_from_cluster_snapshot(ClusterIdentifier=None,
    SnapshotIdentifier=None, SourceDatabaseName=None, SourceSchemaName=None,
    SourceTableName=None, TargetDatabaseName=None, TargetSchemaName=None,
    NewTableName=None):
    """
    Creates a new table from a table in an Amazon Redshift cluster snapshot. You must create the new table within the Amazon Redshift cluster that the snapshot was taken from.
    You cannot use RestoreTableFromClusterSnapshot to restore a table with the same name as an existing table in an Amazon Redshift cluster. That is, you cannot overwrite an existing table in a cluster with a restored table. If you want to replace your original table with a new, restored table, then rename or drop your original table before you call RestoreTableFromClusterSnapshot . When you have renamed your original table, then you can pass the original name of the table as the NewTableName parameter value in the call to RestoreTableFromClusterSnapshot . This way, you can replace the original table with the table created from the snapshot.
    See also: AWS API Documentation
    
    
    :example: response = client.restore_table_from_cluster_snapshot(
        ClusterIdentifier='string',
        SnapshotIdentifier='string',
        SourceDatabaseName='string',
        SourceSchemaName='string',
        SourceTableName='string',
        TargetDatabaseName='string',
        TargetSchemaName='string',
        NewTableName='string'
    )
    
    
    :type ClusterIdentifier: string
    :param ClusterIdentifier: [REQUIRED]
            The identifier of the Amazon Redshift cluster to restore the table to.
            

    :type SnapshotIdentifier: string
    :param SnapshotIdentifier: [REQUIRED]
            The identifier of the snapshot to restore the table from. This snapshot must have been created from the Amazon Redshift cluster specified by the ClusterIdentifier parameter.
            

    :type SourceDatabaseName: string
    :param SourceDatabaseName: [REQUIRED]
            The name of the source database that contains the table to restore from.
            

    :type SourceSchemaName: string
    :param SourceSchemaName: The name of the source schema that contains the table to restore from. If you do not specify a SourceSchemaName value, the default is public .

    :type SourceTableName: string
    :param SourceTableName: [REQUIRED]
            The name of the source table to restore from.
            

    :type TargetDatabaseName: string
    :param TargetDatabaseName: The name of the database to restore the table to.

    :type TargetSchemaName: string
    :param TargetSchemaName: The name of the schema to restore the table to.

    :type NewTableName: string
    :param NewTableName: [REQUIRED]
            The name of the table to create as a result of the current request.
            

    :rtype: dict
    :return: {
        'TableRestoreStatus': {
            'TableRestoreRequestId': 'string',
            'Status': 'PENDING'|'IN_PROGRESS'|'SUCCEEDED'|'FAILED'|'CANCELED',
            'Message': 'string',
            'RequestTime': datetime(2015, 1, 1),
            'ProgressInMegaBytes': 123,
            'TotalDataInMegaBytes': 123,
            'ClusterIdentifier': 'string',
            'SnapshotIdentifier': 'string',
            'SourceDatabaseName': 'string',
            'SourceSchemaName': 'string',
            'SourceTableName': 'string',
            'TargetDatabaseName': 'string',
            'TargetSchemaName': 'string',
            'NewTableName': 'string'
        }
    }
    
    
    """
    pass
