com.amazonaws.services.redshift.model.DescribeClusterSnapshotsRequest Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 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.
 */
package com.amazonaws.services.redshift.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
 * 
 * 
 */
public class DescribeClusterSnapshotsRequest extends AmazonWebServiceRequest
        implements Serializable, Cloneable {
    /**
     * 
     * The identifier of the cluster for which information about snapshots is
     * requested.
     * 
     */
    private String clusterIdentifier;
    /**
     * 
     * The snapshot identifier of the snapshot about which to return
     * information.
     * 
     */
    private String snapshotIdentifier;
    /**
     * 
     * The type of snapshots for which you are requesting information. By
     * default, snapshots of all types are returned.
     * 
     * 
     * Valid Values: automated | manual
     * 
     */
    private String snapshotType;
    /**
     * 
     * A value that requests only snapshots created at or after the specified
     * time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     */
    private java.util.Date startTime;
    /**
     * 
     * A time value that requests only snapshots created at or before the
     * specified time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     */
    private java.util.Date endTime;
    /**
     * 
     * The maximum number of response records to return in each call. If the
     * number of remaining response records exceeds the specified
     * MaxRecords value, a value is returned in a
     * marker field of the response. You can retrieve the next set
     * of records by retrying the command with the returned marker value.
     * 
     * 
     * Default: 100
     * 
     * 
     * Constraints: minimum 20, maximum 100.
     * 
     */
    private Integer maxRecords;
    /**
     * 
     * An optional parameter that specifies the starting point to return a set
     * of response records. When the results of a
     * DescribeClusterSnapshots request exceed the value specified in
     * MaxRecords, AWS returns a value in the Marker
     * field of the response. You can retrieve the next set of response records
     * by providing the returned marker value in the Marker
     * parameter and retrying the request.
     * 
     */
    private String marker;
    /**
     * 
     * The AWS customer account used to create or copy the snapshot. Use this
     * field to filter the results to snapshots owned by a particular account.
     * To describe snapshots you own, either specify your AWS customer account,
     * or do not specify the parameter.
     * 
     */
    private String ownerAccount;
    /**
     * 
     * A tag key or keys for which you want to return all matching cluster
     * snapshots that are associated with the specified key or keys. For
     * example, suppose that you have snapshots that are tagged with keys called
     * owner and environment. If you specify both of
     * these tag keys in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag keys associated with
     * them.
     * 
     */
    private com.amazonaws.internal.SdkInternalList tagKeys;
    /**
     * 
     * A tag value or values for which you want to return all matching cluster
     * snapshots that are associated with the specified tag value or values. For
     * example, suppose that you have snapshots that are tagged with values
     * called admin and test. If you specify both of
     * these tag values in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag values associated
     * with them.
     * 
     */
    private com.amazonaws.internal.SdkInternalList tagValues;
    /**
     * 
     * The identifier of the cluster for which information about snapshots is
     * requested.
     * 
     * 
     * @param clusterIdentifier
     *        The identifier of the cluster for which information about
     *        snapshots is requested.
     */
    public void setClusterIdentifier(String clusterIdentifier) {
        this.clusterIdentifier = clusterIdentifier;
    }
    /**
     * 
     * The identifier of the cluster for which information about snapshots is
     * requested.
     * 
     * 
     * @return The identifier of the cluster for which information about
     *         snapshots is requested.
     */
    public String getClusterIdentifier() {
        return this.clusterIdentifier;
    }
    /**
     * 
     * The identifier of the cluster for which information about snapshots is
     * requested.
     * 
     * 
     * @param clusterIdentifier
     *        The identifier of the cluster for which information about
     *        snapshots is requested.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withClusterIdentifier(
            String clusterIdentifier) {
        setClusterIdentifier(clusterIdentifier);
        return this;
    }
    /**
     * 
     * The snapshot identifier of the snapshot about which to return
     * information.
     * 
     * 
     * @param snapshotIdentifier
     *        The snapshot identifier of the snapshot about which to return
     *        information.
     */
    public void setSnapshotIdentifier(String snapshotIdentifier) {
        this.snapshotIdentifier = snapshotIdentifier;
    }
    /**
     * 
     * The snapshot identifier of the snapshot about which to return
     * information.
     * 
     * 
     * @return The snapshot identifier of the snapshot about which to return
     *         information.
     */
    public String getSnapshotIdentifier() {
        return this.snapshotIdentifier;
    }
    /**
     * 
     * The snapshot identifier of the snapshot about which to return
     * information.
     * 
     * 
     * @param snapshotIdentifier
     *        The snapshot identifier of the snapshot about which to return
     *        information.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withSnapshotIdentifier(
            String snapshotIdentifier) {
        setSnapshotIdentifier(snapshotIdentifier);
        return this;
    }
    /**
     * 
     * The type of snapshots for which you are requesting information. By
     * default, snapshots of all types are returned.
     * 
     * 
     * Valid Values: automated | manual
     * 
     * 
     * @param snapshotType
     *        The type of snapshots for which you are requesting information. By
     *        default, snapshots of all types are returned. 
     *        
     *        Valid Values: automated | manual
     */
    public void setSnapshotType(String snapshotType) {
        this.snapshotType = snapshotType;
    }
    /**
     * 
     * The type of snapshots for which you are requesting information. By
     * default, snapshots of all types are returned.
     * 
     * 
     * Valid Values: automated | manual
     * 
     * 
     * @return The type of snapshots for which you are requesting information.
     *         By default, snapshots of all types are returned. 
     *         
     *         Valid Values: automated | manual
     */
    public String getSnapshotType() {
        return this.snapshotType;
    }
    /**
     * 
     * The type of snapshots for which you are requesting information. By
     * default, snapshots of all types are returned.
     * 
     * 
     * Valid Values: automated | manual
     * 
     * 
     * @param snapshotType
     *        The type of snapshots for which you are requesting information. By
     *        default, snapshots of all types are returned. 
     *        
     *        Valid Values: automated | manual
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withSnapshotType(String snapshotType) {
        setSnapshotType(snapshotType);
        return this;
    }
    /**
     * 
     * A value that requests only snapshots created at or after the specified
     * time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     * 
     * @param startTime
     *        A value that requests only snapshots created at or after the
     *        specified time. The time value is specified in ISO 8601 format.
     *        For more information about ISO 8601, go to the ISO8601 Wikipedia
     *        page. 
     *        
     *        Example: 2012-07-16T18:00:00Z
     */
    public void setStartTime(java.util.Date startTime) {
        this.startTime = startTime;
    }
    /**
     * 
     * A value that requests only snapshots created at or after the specified
     * time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     * 
     * @return A value that requests only snapshots created at or after the
     *         specified time. The time value is specified in ISO 8601 format.
     *         For more information about ISO 8601, go to the ISO8601 Wikipedia
     *         page. 
     *         
     *         Example: 2012-07-16T18:00:00Z
     */
    public java.util.Date getStartTime() {
        return this.startTime;
    }
    /**
     * 
     * A value that requests only snapshots created at or after the specified
     * time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     * 
     * @param startTime
     *        A value that requests only snapshots created at or after the
     *        specified time. The time value is specified in ISO 8601 format.
     *        For more information about ISO 8601, go to the ISO8601 Wikipedia
     *        page. 
     *        
     *        Example: 2012-07-16T18:00:00Z
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withStartTime(
            java.util.Date startTime) {
        setStartTime(startTime);
        return this;
    }
    /**
     * 
     * A time value that requests only snapshots created at or before the
     * specified time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     * 
     * @param endTime
     *        A time value that requests only snapshots created at or before the
     *        specified time. The time value is specified in ISO 8601 format.
     *        For more information about ISO 8601, go to the ISO8601 Wikipedia
     *        page. 
     *        
     *        Example: 2012-07-16T18:00:00Z
     */
    public void setEndTime(java.util.Date endTime) {
        this.endTime = endTime;
    }
    /**
     * 
     * A time value that requests only snapshots created at or before the
     * specified time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     * 
     * @return A time value that requests only snapshots created at or before
     *         the specified time. The time value is specified in ISO 8601
     *         format. For more information about ISO 8601, go to the ISO8601 Wikipedia
     *         page. 
     *         
     *         Example: 2012-07-16T18:00:00Z
     */
    public java.util.Date getEndTime() {
        return this.endTime;
    }
    /**
     * 
     * A time value that requests only snapshots created at or before the
     * specified time. The time value is specified in ISO 8601 format. For more
     * information about ISO 8601, go to the ISO8601 Wikipedia page.
     * 
     * 
     * Example: 2012-07-16T18:00:00Z
     * 
     * 
     * @param endTime
     *        A time value that requests only snapshots created at or before the
     *        specified time. The time value is specified in ISO 8601 format.
     *        For more information about ISO 8601, go to the ISO8601 Wikipedia
     *        page. 
     *        
     *        Example: 2012-07-16T18:00:00Z
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withEndTime(java.util.Date endTime) {
        setEndTime(endTime);
        return this;
    }
    /**
     * 
     * The maximum number of response records to return in each call. If the
     * number of remaining response records exceeds the specified
     * MaxRecords value, a value is returned in a
     * marker field of the response. You can retrieve the next set
     * of records by retrying the command with the returned marker value.
     * 
     * 
     * Default: 100
     * 
     * 
     * Constraints: minimum 20, maximum 100.
     * 
     * 
     * @param maxRecords
     *        The maximum number of response records to return in each call. If
     *        the number of remaining response records exceeds the specified
     *        MaxRecords value, a value is returned in a
     *        marker field of the response. You can retrieve the
     *        next set of records by retrying the command with the returned
     *        marker value. 
     *        
     *        Default: 100
     *        
     *        
     *        Constraints: minimum 20, maximum 100.
     */
    public void setMaxRecords(Integer maxRecords) {
        this.maxRecords = maxRecords;
    }
    /**
     * 
     * The maximum number of response records to return in each call. If the
     * number of remaining response records exceeds the specified
     * MaxRecords value, a value is returned in a
     * marker field of the response. You can retrieve the next set
     * of records by retrying the command with the returned marker value.
     * 
     * 
     * Default: 100
     * 
     * 
     * Constraints: minimum 20, maximum 100.
     * 
     * 
     * @return The maximum number of response records to return in each call. If
     *         the number of remaining response records exceeds the specified
     *         MaxRecords value, a value is returned in a
     *         marker field of the response. You can retrieve the
     *         next set of records by retrying the command with the returned
     *         marker value. 
     *         
     *         Default: 100
     *         
     *         
     *         Constraints: minimum 20, maximum 100.
     */
    public Integer getMaxRecords() {
        return this.maxRecords;
    }
    /**
     * 
     * The maximum number of response records to return in each call. If the
     * number of remaining response records exceeds the specified
     * MaxRecords value, a value is returned in a
     * marker field of the response. You can retrieve the next set
     * of records by retrying the command with the returned marker value.
     * 
     * 
     * Default: 100
     * 
     * 
     * Constraints: minimum 20, maximum 100.
     * 
     * 
     * @param maxRecords
     *        The maximum number of response records to return in each call. If
     *        the number of remaining response records exceeds the specified
     *        MaxRecords value, a value is returned in a
     *        marker field of the response. You can retrieve the
     *        next set of records by retrying the command with the returned
     *        marker value. 
     *        
     *        Default: 100
     *        
     *        
     *        Constraints: minimum 20, maximum 100.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withMaxRecords(Integer maxRecords) {
        setMaxRecords(maxRecords);
        return this;
    }
    /**
     * 
     * An optional parameter that specifies the starting point to return a set
     * of response records. When the results of a
     * DescribeClusterSnapshots request exceed the value specified in
     * MaxRecords, AWS returns a value in the Marker
     * field of the response. You can retrieve the next set of response records
     * by providing the returned marker value in the Marker
     * parameter and retrying the request.
     * 
     * 
     * @param marker
     *        An optional parameter that specifies the starting point to return
     *        a set of response records. When the results of a
     *        DescribeClusterSnapshots request exceed the value specified
     *        in MaxRecords, AWS returns a value in the
     *        Marker field of the response. You can retrieve the
     *        next set of response records by providing the returned marker
     *        value in the Marker parameter and retrying the
     *        request.
     */
    public void setMarker(String marker) {
        this.marker = marker;
    }
    /**
     * 
     * An optional parameter that specifies the starting point to return a set
     * of response records. When the results of a
     * DescribeClusterSnapshots request exceed the value specified in
     * MaxRecords, AWS returns a value in the Marker
     * field of the response. You can retrieve the next set of response records
     * by providing the returned marker value in the Marker
     * parameter and retrying the request.
     * 
     * 
     * @return An optional parameter that specifies the starting point to return
     *         a set of response records. When the results of a
     *         DescribeClusterSnapshots request exceed the value
     *         specified in MaxRecords, AWS returns a value in the
     *         Marker field of the response. You can retrieve the
     *         next set of response records by providing the returned marker
     *         value in the Marker parameter and retrying the
     *         request.
     */
    public String getMarker() {
        return this.marker;
    }
    /**
     * 
     * An optional parameter that specifies the starting point to return a set
     * of response records. When the results of a
     * DescribeClusterSnapshots request exceed the value specified in
     * MaxRecords, AWS returns a value in the Marker
     * field of the response. You can retrieve the next set of response records
     * by providing the returned marker value in the Marker
     * parameter and retrying the request.
     * 
     * 
     * @param marker
     *        An optional parameter that specifies the starting point to return
     *        a set of response records. When the results of a
     *        DescribeClusterSnapshots request exceed the value specified
     *        in MaxRecords, AWS returns a value in the
     *        Marker field of the response. You can retrieve the
     *        next set of response records by providing the returned marker
     *        value in the Marker parameter and retrying the
     *        request.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withMarker(String marker) {
        setMarker(marker);
        return this;
    }
    /**
     * 
     * The AWS customer account used to create or copy the snapshot. Use this
     * field to filter the results to snapshots owned by a particular account.
     * To describe snapshots you own, either specify your AWS customer account,
     * or do not specify the parameter.
     * 
     * 
     * @param ownerAccount
     *        The AWS customer account used to create or copy the snapshot. Use
     *        this field to filter the results to snapshots owned by a
     *        particular account. To describe snapshots you own, either specify
     *        your AWS customer account, or do not specify the parameter.
     */
    public void setOwnerAccount(String ownerAccount) {
        this.ownerAccount = ownerAccount;
    }
    /**
     * 
     * The AWS customer account used to create or copy the snapshot. Use this
     * field to filter the results to snapshots owned by a particular account.
     * To describe snapshots you own, either specify your AWS customer account,
     * or do not specify the parameter.
     * 
     * 
     * @return The AWS customer account used to create or copy the snapshot. Use
     *         this field to filter the results to snapshots owned by a
     *         particular account. To describe snapshots you own, either specify
     *         your AWS customer account, or do not specify the parameter.
     */
    public String getOwnerAccount() {
        return this.ownerAccount;
    }
    /**
     * 
     * The AWS customer account used to create or copy the snapshot. Use this
     * field to filter the results to snapshots owned by a particular account.
     * To describe snapshots you own, either specify your AWS customer account,
     * or do not specify the parameter.
     * 
     * 
     * @param ownerAccount
     *        The AWS customer account used to create or copy the snapshot. Use
     *        this field to filter the results to snapshots owned by a
     *        particular account. To describe snapshots you own, either specify
     *        your AWS customer account, or do not specify the parameter.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withOwnerAccount(String ownerAccount) {
        setOwnerAccount(ownerAccount);
        return this;
    }
    /**
     * 
     * A tag key or keys for which you want to return all matching cluster
     * snapshots that are associated with the specified key or keys. For
     * example, suppose that you have snapshots that are tagged with keys called
     * owner and environment. If you specify both of
     * these tag keys in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag keys associated with
     * them.
     * 
     * 
     * @return A tag key or keys for which you want to return all matching
     *         cluster snapshots that are associated with the specified key or
     *         keys. For example, suppose that you have snapshots that are
     *         tagged with keys called owner and
     *         environment. If you specify both of these tag keys
     *         in the request, Amazon Redshift returns a response with the
     *         snapshots that have either or both of these tag keys associated
     *         with them.
     */
    public java.util.List getTagKeys() {
        if (tagKeys == null) {
            tagKeys = new com.amazonaws.internal.SdkInternalList();
        }
        return tagKeys;
    }
    /**
     * 
     * A tag key or keys for which you want to return all matching cluster
     * snapshots that are associated with the specified key or keys. For
     * example, suppose that you have snapshots that are tagged with keys called
     * owner and environment. If you specify both of
     * these tag keys in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag keys associated with
     * them.
     * 
     * 
     * @param tagKeys
     *        A tag key or keys for which you want to return all matching
     *        cluster snapshots that are associated with the specified key or
     *        keys. For example, suppose that you have snapshots that are tagged
     *        with keys called owner and environment.
     *        If you specify both of these tag keys in the request, Amazon
     *        Redshift returns a response with the snapshots that have either or
     *        both of these tag keys associated with them.
     */
    public void setTagKeys(java.util.Collection tagKeys) {
        if (tagKeys == null) {
            this.tagKeys = null;
            return;
        }
        this.tagKeys = new com.amazonaws.internal.SdkInternalList(
                tagKeys);
    }
    /**
     * 
     * A tag key or keys for which you want to return all matching cluster
     * snapshots that are associated with the specified key or keys. For
     * example, suppose that you have snapshots that are tagged with keys called
     * owner and environment. If you specify both of
     * these tag keys in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag keys associated with
     * them.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setTagKeys(java.util.Collection)} or
     * {@link #withTagKeys(java.util.Collection)} if you want to override the
     * existing values.
     * 
     * 
     * @param tagKeys
     *        A tag key or keys for which you want to return all matching
     *        cluster snapshots that are associated with the specified key or
     *        keys. For example, suppose that you have snapshots that are tagged
     *        with keys called owner and environment.
     *        If you specify both of these tag keys in the request, Amazon
     *        Redshift returns a response with the snapshots that have either or
     *        both of these tag keys associated with them.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withTagKeys(String... tagKeys) {
        if (this.tagKeys == null) {
            setTagKeys(new com.amazonaws.internal.SdkInternalList(
                    tagKeys.length));
        }
        for (String ele : tagKeys) {
            this.tagKeys.add(ele);
        }
        return this;
    }
    /**
     * 
     * A tag key or keys for which you want to return all matching cluster
     * snapshots that are associated with the specified key or keys. For
     * example, suppose that you have snapshots that are tagged with keys called
     * owner and environment. If you specify both of
     * these tag keys in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag keys associated with
     * them.
     * 
     * 
     * @param tagKeys
     *        A tag key or keys for which you want to return all matching
     *        cluster snapshots that are associated with the specified key or
     *        keys. For example, suppose that you have snapshots that are tagged
     *        with keys called owner and environment.
     *        If you specify both of these tag keys in the request, Amazon
     *        Redshift returns a response with the snapshots that have either or
     *        both of these tag keys associated with them.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withTagKeys(
            java.util.Collection tagKeys) {
        setTagKeys(tagKeys);
        return this;
    }
    /**
     * 
     * A tag value or values for which you want to return all matching cluster
     * snapshots that are associated with the specified tag value or values. For
     * example, suppose that you have snapshots that are tagged with values
     * called admin and test. If you specify both of
     * these tag values in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag values associated
     * with them.
     * 
     * 
     * @return A tag value or values for which you want to return all matching
     *         cluster snapshots that are associated with the specified tag
     *         value or values. For example, suppose that you have snapshots
     *         that are tagged with values called admin and
     *         test. If you specify both of these tag values in the
     *         request, Amazon Redshift returns a response with the snapshots
     *         that have either or both of these tag values associated with
     *         them.
     */
    public java.util.List getTagValues() {
        if (tagValues == null) {
            tagValues = new com.amazonaws.internal.SdkInternalList();
        }
        return tagValues;
    }
    /**
     * 
     * A tag value or values for which you want to return all matching cluster
     * snapshots that are associated with the specified tag value or values. For
     * example, suppose that you have snapshots that are tagged with values
     * called admin and test. If you specify both of
     * these tag values in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag values associated
     * with them.
     * 
     * 
     * @param tagValues
     *        A tag value or values for which you want to return all matching
     *        cluster snapshots that are associated with the specified tag value
     *        or values. For example, suppose that you have snapshots that are
     *        tagged with values called admin and test
     *        . If you specify both of these tag values in the request, Amazon
     *        Redshift returns a response with the snapshots that have either or
     *        both of these tag values associated with them.
     */
    public void setTagValues(java.util.Collection tagValues) {
        if (tagValues == null) {
            this.tagValues = null;
            return;
        }
        this.tagValues = new com.amazonaws.internal.SdkInternalList(
                tagValues);
    }
    /**
     * 
     * A tag value or values for which you want to return all matching cluster
     * snapshots that are associated with the specified tag value or values. For
     * example, suppose that you have snapshots that are tagged with values
     * called admin and test. If you specify both of
     * these tag values in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag values associated
     * with them.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setTagValues(java.util.Collection)} or
     * {@link #withTagValues(java.util.Collection)} if you want to override the
     * existing values.
     * 
     * 
     * @param tagValues
     *        A tag value or values for which you want to return all matching
     *        cluster snapshots that are associated with the specified tag value
     *        or values. For example, suppose that you have snapshots that are
     *        tagged with values called admin and test
     *        . If you specify both of these tag values in the request, Amazon
     *        Redshift returns a response with the snapshots that have either or
     *        both of these tag values associated with them.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withTagValues(String... tagValues) {
        if (this.tagValues == null) {
            setTagValues(new com.amazonaws.internal.SdkInternalList(
                    tagValues.length));
        }
        for (String ele : tagValues) {
            this.tagValues.add(ele);
        }
        return this;
    }
    /**
     * 
     * A tag value or values for which you want to return all matching cluster
     * snapshots that are associated with the specified tag value or values. For
     * example, suppose that you have snapshots that are tagged with values
     * called admin and test. If you specify both of
     * these tag values in the request, Amazon Redshift returns a response with
     * the snapshots that have either or both of these tag values associated
     * with them.
     * 
     * 
     * @param tagValues
     *        A tag value or values for which you want to return all matching
     *        cluster snapshots that are associated with the specified tag value
     *        or values. For example, suppose that you have snapshots that are
     *        tagged with values called admin and test
     *        . If you specify both of these tag values in the request, Amazon
     *        Redshift returns a response with the snapshots that have either or
     *        both of these tag values associated with them.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeClusterSnapshotsRequest withTagValues(
            java.util.Collection tagValues) {
        setTagValues(tagValues);
        return this;
    }
    /**
     * Returns a string representation of this object; useful for testing and
     * debugging.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getClusterIdentifier() != null)
            sb.append("ClusterIdentifier: " + getClusterIdentifier() + ",");
        if (getSnapshotIdentifier() != null)
            sb.append("SnapshotIdentifier: " + getSnapshotIdentifier() + ",");
        if (getSnapshotType() != null)
            sb.append("SnapshotType: " + getSnapshotType() + ",");
        if (getStartTime() != null)
            sb.append("StartTime: " + getStartTime() + ",");
        if (getEndTime() != null)
            sb.append("EndTime: " + getEndTime() + ",");
        if (getMaxRecords() != null)
            sb.append("MaxRecords: " + getMaxRecords() + ",");
        if (getMarker() != null)
            sb.append("Marker: " + getMarker() + ",");
        if (getOwnerAccount() != null)
            sb.append("OwnerAccount: " + getOwnerAccount() + ",");
        if (getTagKeys() != null)
            sb.append("TagKeys: " + getTagKeys() + ",");
        if (getTagValues() != null)
            sb.append("TagValues: " + getTagValues());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof DescribeClusterSnapshotsRequest == false)
            return false;
        DescribeClusterSnapshotsRequest other = (DescribeClusterSnapshotsRequest) obj;
        if (other.getClusterIdentifier() == null
                ^ this.getClusterIdentifier() == null)
            return false;
        if (other.getClusterIdentifier() != null
                && other.getClusterIdentifier().equals(
                        this.getClusterIdentifier()) == false)
            return false;
        if (other.getSnapshotIdentifier() == null
                ^ this.getSnapshotIdentifier() == null)
            return false;
        if (other.getSnapshotIdentifier() != null
                && other.getSnapshotIdentifier().equals(
                        this.getSnapshotIdentifier()) == false)
            return false;
        if (other.getSnapshotType() == null ^ this.getSnapshotType() == null)
            return false;
        if (other.getSnapshotType() != null
                && other.getSnapshotType().equals(this.getSnapshotType()) == false)
            return false;
        if (other.getStartTime() == null ^ this.getStartTime() == null)
            return false;
        if (other.getStartTime() != null
                && other.getStartTime().equals(this.getStartTime()) == false)
            return false;
        if (other.getEndTime() == null ^ this.getEndTime() == null)
            return false;
        if (other.getEndTime() != null
                && other.getEndTime().equals(this.getEndTime()) == false)
            return false;
        if (other.getMaxRecords() == null ^ this.getMaxRecords() == null)
            return false;
        if (other.getMaxRecords() != null
                && other.getMaxRecords().equals(this.getMaxRecords()) == false)
            return false;
        if (other.getMarker() == null ^ this.getMarker() == null)
            return false;
        if (other.getMarker() != null
                && other.getMarker().equals(this.getMarker()) == false)
            return false;
        if (other.getOwnerAccount() == null ^ this.getOwnerAccount() == null)
            return false;
        if (other.getOwnerAccount() != null
                && other.getOwnerAccount().equals(this.getOwnerAccount()) == false)
            return false;
        if (other.getTagKeys() == null ^ this.getTagKeys() == null)
            return false;
        if (other.getTagKeys() != null
                && other.getTagKeys().equals(this.getTagKeys()) == false)
            return false;
        if (other.getTagValues() == null ^ this.getTagValues() == null)
            return false;
        if (other.getTagValues() != null
                && other.getTagValues().equals(this.getTagValues()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime
                * hashCode
                + ((getClusterIdentifier() == null) ? 0
                        : getClusterIdentifier().hashCode());
        hashCode = prime
                * hashCode
                + ((getSnapshotIdentifier() == null) ? 0
                        : getSnapshotIdentifier().hashCode());
        hashCode = prime
                * hashCode
                + ((getSnapshotType() == null) ? 0 : getSnapshotType()
                        .hashCode());
        hashCode = prime * hashCode
                + ((getStartTime() == null) ? 0 : getStartTime().hashCode());
        hashCode = prime * hashCode
                + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        hashCode = prime * hashCode
                + ((getMaxRecords() == null) ? 0 : getMaxRecords().hashCode());
        hashCode = prime * hashCode
                + ((getMarker() == null) ? 0 : getMarker().hashCode());
        hashCode = prime
                * hashCode
                + ((getOwnerAccount() == null) ? 0 : getOwnerAccount()
                        .hashCode());
        hashCode = prime * hashCode
                + ((getTagKeys() == null) ? 0 : getTagKeys().hashCode());
        hashCode = prime * hashCode
                + ((getTagValues() == null) ? 0 : getTagValues().hashCode());
        return hashCode;
    }
    @Override
    public DescribeClusterSnapshotsRequest clone() {
        return (DescribeClusterSnapshotsRequest) super.clone();
    }
}