code: @Override
      public DescribeClusterSnapshotsResult describeClusterSnapshots(DescribeClusterSnapshotsRequest request) {
          request = beforeClientExecution(request);
          return executeDescribeClusterSnapshots(request);
      }
docs: <p>
  Returns one or more snapshot objects, which contain metadata about your cluster snapshots. By default, this
  operation returns information about all snapshots of all clusters that are owned by you AWS customer account. No
  information is returned for snapshots owned by inactive AWS customer accounts.
  </p>
  <p>
  If you specify both tag keys and tag values in the same request, Amazon Redshift returns all snapshots that match
  any combination of the specified keys and values. For example, if you have <code>owner</code> and
  <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all snapshots
  that have any combination of those values are returned. Only snapshots that you own are returned in the response;
  shared snapshots are not returned with the tag key and tag value request parameters.
  </p>
  <p>
  If both tag keys and values are omitted from the request, snapshots are returned regardless of whether they have
  tag keys or values associated with them.
  </p>
  
  @param describeClusterSnapshotsRequest
  @return Result of the DescribeClusterSnapshots operation returned by the service.
  @throws ClusterNotFoundException
  The <code>ClusterIdentifier</code> parameter does not refer to an existing cluster.
  @throws ClusterSnapshotNotFoundException
  The snapshot identifier does not refer to an existing cluster snapshot.
  @throws InvalidTagException
  The tag is invalid.
  @sample AmazonRedshift.DescribeClusterSnapshots
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSnapshots"
  target="_top">AWS API Documentation</a>