com.amazonaws.services.cloudformation.model.DescribeChangeSetResult Maven / Gradle / Ivy
Show all versions of aws-java-sdk-cloudformation 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.cloudformation.model;
import java.io.Serializable;
/**
 * 
 * The output for the DescribeChangeSet action.
 * 
 */
public class DescribeChangeSetResult implements Serializable, Cloneable {
    /**
     * 
     * The name of the change set.
     * 
     */
    private String changeSetName;
    /**
     * 
     * The ARN of the change set.
     * 
     */
    private String changeSetId;
    /**
     * 
     * The ARN of the stack that is associated with the change set.
     * 
     */
    private String stackId;
    /**
     * 
     * The name of the stack that is associated with the change set.
     * 
     */
    private String stackName;
    /**
     * 
     * Information about the change set.
     * 
     */
    private String description;
    /**
     * 
     * A list of Parameter structures that describes the input
     * parameters and their values used to create the change set. For more
     * information, see the Parameter data type.
     * 
     */
    private com.amazonaws.internal.SdkInternalList parameters;
    /**
     * 
     * The start time when the change set was created, in UTC.
     * 
     */
    private java.util.Date creationTime;
    /**
     * 
     * If the change set execution status is AVAILABLE, you can
     * execute the change set. If you can’t execute the change set, the status
     * indicates why. For example, a change set might be in an
     * UNAVAILABLE state because AWS CloudFormation is still
     * creating it or in an OBSOLETE state because the stack was
     * already updated.
     * 
     */
    private String executionStatus;
    /**
     * 
     * The current status of the change set, such as
     * CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     * FAILED.
     * 
     */
    private String status;
    /**
     * 
     * A description of the change set's status. For example, if your attempt to
     * create a change set failed, AWS CloudFormation shows the error message.
     * 
     */
    private String statusReason;
    /**
     * 
     * The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
     * that will be associated with the stack if you execute the change set.
     * 
     */
    private com.amazonaws.internal.SdkInternalList notificationARNs;
    /**
     * 
     * If you execute the change set, the list of capabilities that were
     * explicitly acknowledged when the change set was created.
     * 
     */
    private com.amazonaws.internal.SdkInternalList capabilities;
    /**
     * 
     * If you execute the change set, the tags that will be associated with the
     * stack.
     * 
     */
    private com.amazonaws.internal.SdkInternalList tags;
    /**
     * 
     * A list of Change structures that describes the resources AWS
     * CloudFormation changes if you execute the change set.
     * 
     */
    private com.amazonaws.internal.SdkInternalList changes;
    /**
     * 
     * If the output exceeds 1 MB, a string that identifies the next page of
     * changes. If there is no additional page, this value is null.
     * 
     */
    private String nextToken;
    /**
     * 
     * The name of the change set.
     * 
     * 
     * @param changeSetName
     *        The name of the change set.
     */
    public void setChangeSetName(String changeSetName) {
        this.changeSetName = changeSetName;
    }
    /**
     * 
     * The name of the change set.
     * 
     * 
     * @return The name of the change set.
     */
    public String getChangeSetName() {
        return this.changeSetName;
    }
    /**
     * 
     * The name of the change set.
     * 
     * 
     * @param changeSetName
     *        The name of the change set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withChangeSetName(String changeSetName) {
        setChangeSetName(changeSetName);
        return this;
    }
    /**
     * 
     * The ARN of the change set.
     * 
     * 
     * @param changeSetId
     *        The ARN of the change set.
     */
    public void setChangeSetId(String changeSetId) {
        this.changeSetId = changeSetId;
    }
    /**
     * 
     * The ARN of the change set.
     * 
     * 
     * @return The ARN of the change set.
     */
    public String getChangeSetId() {
        return this.changeSetId;
    }
    /**
     * 
     * The ARN of the change set.
     * 
     * 
     * @param changeSetId
     *        The ARN of the change set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withChangeSetId(String changeSetId) {
        setChangeSetId(changeSetId);
        return this;
    }
    /**
     * 
     * The ARN of the stack that is associated with the change set.
     * 
     * 
     * @param stackId
     *        The ARN of the stack that is associated with the change set.
     */
    public void setStackId(String stackId) {
        this.stackId = stackId;
    }
    /**
     * 
     * The ARN of the stack that is associated with the change set.
     * 
     * 
     * @return The ARN of the stack that is associated with the change set.
     */
    public String getStackId() {
        return this.stackId;
    }
    /**
     * 
     * The ARN of the stack that is associated with the change set.
     * 
     * 
     * @param stackId
     *        The ARN of the stack that is associated with the change set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withStackId(String stackId) {
        setStackId(stackId);
        return this;
    }
    /**
     * 
     * The name of the stack that is associated with the change set.
     * 
     * 
     * @param stackName
     *        The name of the stack that is associated with the change set.
     */
    public void setStackName(String stackName) {
        this.stackName = stackName;
    }
    /**
     * 
     * The name of the stack that is associated with the change set.
     * 
     * 
     * @return The name of the stack that is associated with the change set.
     */
    public String getStackName() {
        return this.stackName;
    }
    /**
     * 
     * The name of the stack that is associated with the change set.
     * 
     * 
     * @param stackName
     *        The name of the stack that is associated with the change set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withStackName(String stackName) {
        setStackName(stackName);
        return this;
    }
    /**
     * 
     * Information about the change set.
     * 
     * 
     * @param description
     *        Information about the change set.
     */
    public void setDescription(String description) {
        this.description = description;
    }
    /**
     * 
     * Information about the change set.
     * 
     * 
     * @return Information about the change set.
     */
    public String getDescription() {
        return this.description;
    }
    /**
     * 
     * Information about the change set.
     * 
     * 
     * @param description
     *        Information about the change set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withDescription(String description) {
        setDescription(description);
        return this;
    }
    /**
     * 
     * A list of Parameter structures that describes the input
     * parameters and their values used to create the change set. For more
     * information, see the Parameter data type.
     * 
     * 
     * @return A list of Parameter structures that describes the
     *         input parameters and their values used to create the change set.
     *         For more information, see the Parameter data type.
     */
    public java.util.List getParameters() {
        if (parameters == null) {
            parameters = new com.amazonaws.internal.SdkInternalList();
        }
        return parameters;
    }
    /**
     * 
     * A list of Parameter structures that describes the input
     * parameters and their values used to create the change set. For more
     * information, see the Parameter data type.
     * 
     * 
     * @param parameters
     *        A list of Parameter structures that describes the
     *        input parameters and their values used to create the change set.
     *        For more information, see the Parameter data type.
     */
    public void setParameters(java.util.Collection parameters) {
        if (parameters == null) {
            this.parameters = null;
            return;
        }
        this.parameters = new com.amazonaws.internal.SdkInternalList(
                parameters);
    }
    /**
     * 
     * A list of Parameter structures that describes the input
     * parameters and their values used to create the change set. For more
     * information, see the Parameter data type.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setParameters(java.util.Collection)} or
     * {@link #withParameters(java.util.Collection)} if you want to override the
     * existing values.
     * 
     * 
     * @param parameters
     *        A list of Parameter structures that describes the
     *        input parameters and their values used to create the change set.
     *        For more information, see the Parameter data type.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withParameters(Parameter... parameters) {
        if (this.parameters == null) {
            setParameters(new com.amazonaws.internal.SdkInternalList(
                    parameters.length));
        }
        for (Parameter ele : parameters) {
            this.parameters.add(ele);
        }
        return this;
    }
    /**
     * 
     * A list of Parameter structures that describes the input
     * parameters and their values used to create the change set. For more
     * information, see the Parameter data type.
     * 
     * 
     * @param parameters
     *        A list of Parameter structures that describes the
     *        input parameters and their values used to create the change set.
     *        For more information, see the Parameter data type.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withParameters(
            java.util.Collection parameters) {
        setParameters(parameters);
        return this;
    }
    /**
     * 
     * The start time when the change set was created, in UTC.
     * 
     * 
     * @param creationTime
     *        The start time when the change set was created, in UTC.
     */
    public void setCreationTime(java.util.Date creationTime) {
        this.creationTime = creationTime;
    }
    /**
     * 
     * The start time when the change set was created, in UTC.
     * 
     * 
     * @return The start time when the change set was created, in UTC.
     */
    public java.util.Date getCreationTime() {
        return this.creationTime;
    }
    /**
     * 
     * The start time when the change set was created, in UTC.
     * 
     * 
     * @param creationTime
     *        The start time when the change set was created, in UTC.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withCreationTime(java.util.Date creationTime) {
        setCreationTime(creationTime);
        return this;
    }
    /**
     * 
     * If the change set execution status is AVAILABLE, you can
     * execute the change set. If you can’t execute the change set, the status
     * indicates why. For example, a change set might be in an
     * UNAVAILABLE state because AWS CloudFormation is still
     * creating it or in an OBSOLETE state because the stack was
     * already updated.
     * 
     * 
     * @param executionStatus
     *        If the change set execution status is AVAILABLE, you
     *        can execute the change set. If you can’t execute the change set,
     *        the status indicates why. For example, a change set might be in an
     *        UNAVAILABLE state because AWS CloudFormation is still
     *        creating it or in an OBSOLETE state because the stack
     *        was already updated.
     * @see ExecutionStatus
     */
    public void setExecutionStatus(String executionStatus) {
        this.executionStatus = executionStatus;
    }
    /**
     * 
     * If the change set execution status is AVAILABLE, you can
     * execute the change set. If you can’t execute the change set, the status
     * indicates why. For example, a change set might be in an
     * UNAVAILABLE state because AWS CloudFormation is still
     * creating it or in an OBSOLETE state because the stack was
     * already updated.
     * 
     * 
     * @return If the change set execution status is AVAILABLE, you
     *         can execute the change set. If you can’t execute the change set,
     *         the status indicates why. For example, a change set might be in
     *         an UNAVAILABLE state because AWS CloudFormation is
     *         still creating it or in an OBSOLETE state because
     *         the stack was already updated.
     * @see ExecutionStatus
     */
    public String getExecutionStatus() {
        return this.executionStatus;
    }
    /**
     * 
     * If the change set execution status is AVAILABLE, you can
     * execute the change set. If you can’t execute the change set, the status
     * indicates why. For example, a change set might be in an
     * UNAVAILABLE state because AWS CloudFormation is still
     * creating it or in an OBSOLETE state because the stack was
     * already updated.
     * 
     * 
     * @param executionStatus
     *        If the change set execution status is AVAILABLE, you
     *        can execute the change set. If you can’t execute the change set,
     *        the status indicates why. For example, a change set might be in an
     *        UNAVAILABLE state because AWS CloudFormation is still
     *        creating it or in an OBSOLETE state because the stack
     *        was already updated.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     * @see ExecutionStatus
     */
    public DescribeChangeSetResult withExecutionStatus(String executionStatus) {
        setExecutionStatus(executionStatus);
        return this;
    }
    /**
     * 
     * If the change set execution status is AVAILABLE, you can
     * execute the change set. If you can’t execute the change set, the status
     * indicates why. For example, a change set might be in an
     * UNAVAILABLE state because AWS CloudFormation is still
     * creating it or in an OBSOLETE state because the stack was
     * already updated.
     * 
     * 
     * @param executionStatus
     *        If the change set execution status is AVAILABLE, you
     *        can execute the change set. If you can’t execute the change set,
     *        the status indicates why. For example, a change set might be in an
     *        UNAVAILABLE state because AWS CloudFormation is still
     *        creating it or in an OBSOLETE state because the stack
     *        was already updated.
     * @see ExecutionStatus
     */
    public void setExecutionStatus(ExecutionStatus executionStatus) {
        this.executionStatus = executionStatus.toString();
    }
    /**
     * 
     * If the change set execution status is AVAILABLE, you can
     * execute the change set. If you can’t execute the change set, the status
     * indicates why. For example, a change set might be in an
     * UNAVAILABLE state because AWS CloudFormation is still
     * creating it or in an OBSOLETE state because the stack was
     * already updated.
     * 
     * 
     * @param executionStatus
     *        If the change set execution status is AVAILABLE, you
     *        can execute the change set. If you can’t execute the change set,
     *        the status indicates why. For example, a change set might be in an
     *        UNAVAILABLE state because AWS CloudFormation is still
     *        creating it or in an OBSOLETE state because the stack
     *        was already updated.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     * @see ExecutionStatus
     */
    public DescribeChangeSetResult withExecutionStatus(
            ExecutionStatus executionStatus) {
        setExecutionStatus(executionStatus);
        return this;
    }
    /**
     * 
     * The current status of the change set, such as
     * CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     * FAILED.
     * 
     * 
     * @param status
     *        The current status of the change set, such as
     *        CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     *        FAILED.
     * @see ChangeSetStatus
     */
    public void setStatus(String status) {
        this.status = status;
    }
    /**
     * 
     * The current status of the change set, such as
     * CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     * FAILED.
     * 
     * 
     * @return The current status of the change set, such as
     *         CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     *         FAILED.
     * @see ChangeSetStatus
     */
    public String getStatus() {
        return this.status;
    }
    /**
     * 
     * The current status of the change set, such as
     * CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     * FAILED.
     * 
     * 
     * @param status
     *        The current status of the change set, such as
     *        CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     *        FAILED.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     * @see ChangeSetStatus
     */
    public DescribeChangeSetResult withStatus(String status) {
        setStatus(status);
        return this;
    }
    /**
     * 
     * The current status of the change set, such as
     * CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     * FAILED.
     * 
     * 
     * @param status
     *        The current status of the change set, such as
     *        CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     *        FAILED.
     * @see ChangeSetStatus
     */
    public void setStatus(ChangeSetStatus status) {
        this.status = status.toString();
    }
    /**
     * 
     * The current status of the change set, such as
     * CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     * FAILED.
     * 
     * 
     * @param status
     *        The current status of the change set, such as
     *        CREATE_IN_PROGRESS, CREATE_COMPLETE, or
     *        FAILED.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     * @see ChangeSetStatus
     */
    public DescribeChangeSetResult withStatus(ChangeSetStatus status) {
        setStatus(status);
        return this;
    }
    /**
     * 
     * A description of the change set's status. For example, if your attempt to
     * create a change set failed, AWS CloudFormation shows the error message.
     * 
     * 
     * @param statusReason
     *        A description of the change set's status. For example, if your
     *        attempt to create a change set failed, AWS CloudFormation shows
     *        the error message.
     */
    public void setStatusReason(String statusReason) {
        this.statusReason = statusReason;
    }
    /**
     * 
     * A description of the change set's status. For example, if your attempt to
     * create a change set failed, AWS CloudFormation shows the error message.
     * 
     * 
     * @return A description of the change set's status. For example, if your
     *         attempt to create a change set failed, AWS CloudFormation shows
     *         the error message.
     */
    public String getStatusReason() {
        return this.statusReason;
    }
    /**
     * 
     * A description of the change set's status. For example, if your attempt to
     * create a change set failed, AWS CloudFormation shows the error message.
     * 
     * 
     * @param statusReason
     *        A description of the change set's status. For example, if your
     *        attempt to create a change set failed, AWS CloudFormation shows
     *        the error message.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withStatusReason(String statusReason) {
        setStatusReason(statusReason);
        return this;
    }
    /**
     * 
     * The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
     * that will be associated with the stack if you execute the change set.
     * 
     * 
     * @return The ARNs of the Amazon Simple Notification Service (Amazon SNS)
     *         topics that will be associated with the stack if you execute the
     *         change set.
     */
    public java.util.List getNotificationARNs() {
        if (notificationARNs == null) {
            notificationARNs = new com.amazonaws.internal.SdkInternalList();
        }
        return notificationARNs;
    }
    /**
     * 
     * The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
     * that will be associated with the stack if you execute the change set.
     * 
     * 
     * @param notificationARNs
     *        The ARNs of the Amazon Simple Notification Service (Amazon SNS)
     *        topics that will be associated with the stack if you execute the
     *        change set.
     */
    public void setNotificationARNs(
            java.util.Collection notificationARNs) {
        if (notificationARNs == null) {
            this.notificationARNs = null;
            return;
        }
        this.notificationARNs = new com.amazonaws.internal.SdkInternalList(
                notificationARNs);
    }
    /**
     * 
     * The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
     * that will be associated with the stack if you execute the change set.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setNotificationARNs(java.util.Collection)} or
     * {@link #withNotificationARNs(java.util.Collection)} if you want to
     * override the existing values.
     * 
     * 
     * @param notificationARNs
     *        The ARNs of the Amazon Simple Notification Service (Amazon SNS)
     *        topics that will be associated with the stack if you execute the
     *        change set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withNotificationARNs(
            String... notificationARNs) {
        if (this.notificationARNs == null) {
            setNotificationARNs(new com.amazonaws.internal.SdkInternalList(
                    notificationARNs.length));
        }
        for (String ele : notificationARNs) {
            this.notificationARNs.add(ele);
        }
        return this;
    }
    /**
     * 
     * The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
     * that will be associated with the stack if you execute the change set.
     * 
     * 
     * @param notificationARNs
     *        The ARNs of the Amazon Simple Notification Service (Amazon SNS)
     *        topics that will be associated with the stack if you execute the
     *        change set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withNotificationARNs(
            java.util.Collection notificationARNs) {
        setNotificationARNs(notificationARNs);
        return this;
    }
    /**
     * 
     * If you execute the change set, the list of capabilities that were
     * explicitly acknowledged when the change set was created.
     * 
     * 
     * @return If you execute the change set, the list of capabilities that were
     *         explicitly acknowledged when the change set was created.
     * @see Capability
     */
    public java.util.List getCapabilities() {
        if (capabilities == null) {
            capabilities = new com.amazonaws.internal.SdkInternalList();
        }
        return capabilities;
    }
    /**
     * 
     * If you execute the change set, the list of capabilities that were
     * explicitly acknowledged when the change set was created.
     * 
     * 
     * @param capabilities
     *        If you execute the change set, the list of capabilities that were
     *        explicitly acknowledged when the change set was created.
     * @see Capability
     */
    public void setCapabilities(java.util.Collection capabilities) {
        if (capabilities == null) {
            this.capabilities = null;
            return;
        }
        this.capabilities = new com.amazonaws.internal.SdkInternalList(
                capabilities);
    }
    /**
     * 
     * If you execute the change set, the list of capabilities that were
     * explicitly acknowledged when the change set was created.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setCapabilities(java.util.Collection)} or
     * {@link #withCapabilities(java.util.Collection)} if you want to override
     * the existing values.
     * 
     * 
     * @param capabilities
     *        If you execute the change set, the list of capabilities that were
     *        explicitly acknowledged when the change set was created.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     * @see Capability
     */
    public DescribeChangeSetResult withCapabilities(String... capabilities) {
        if (this.capabilities == null) {
            setCapabilities(new com.amazonaws.internal.SdkInternalList(
                    capabilities.length));
        }
        for (String ele : capabilities) {
            this.capabilities.add(ele);
        }
        return this;
    }
    /**
     * 
     * If you execute the change set, the list of capabilities that were
     * explicitly acknowledged when the change set was created.
     * 
     * 
     * @param capabilities
     *        If you execute the change set, the list of capabilities that were
     *        explicitly acknowledged when the change set was created.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     * @see Capability
     */
    public DescribeChangeSetResult withCapabilities(
            java.util.Collection capabilities) {
        setCapabilities(capabilities);
        return this;
    }
    /**
     * 
     * If you execute the change set, the list of capabilities that were
     * explicitly acknowledged when the change set was created.
     * 
     * 
     * @param capabilities
     *        If you execute the change set, the list of capabilities that were
     *        explicitly acknowledged when the change set was created.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     * @see Capability
     */
    public DescribeChangeSetResult withCapabilities(Capability... capabilities) {
        com.amazonaws.internal.SdkInternalList capabilitiesCopy = new com.amazonaws.internal.SdkInternalList(
                capabilities.length);
        for (Capability value : capabilities) {
            capabilitiesCopy.add(value.toString());
        }
        if (getCapabilities() == null) {
            setCapabilities(capabilitiesCopy);
        } else {
            getCapabilities().addAll(capabilitiesCopy);
        }
        return this;
    }
    /**
     * 
     * If you execute the change set, the tags that will be associated with the
     * stack.
     * 
     * 
     * @return If you execute the change set, the tags that will be associated
     *         with the stack.
     */
    public java.util.List getTags() {
        if (tags == null) {
            tags = new com.amazonaws.internal.SdkInternalList();
        }
        return tags;
    }
    /**
     * 
     * If you execute the change set, the tags that will be associated with the
     * stack.
     * 
     * 
     * @param tags
     *        If you execute the change set, the tags that will be associated
     *        with the stack.
     */
    public void setTags(java.util.Collection tags) {
        if (tags == null) {
            this.tags = null;
            return;
        }
        this.tags = new com.amazonaws.internal.SdkInternalList(tags);
    }
    /**
     * 
     * If you execute the change set, the tags that will be associated with the
     * stack.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setTags(java.util.Collection)} or
     * {@link #withTags(java.util.Collection)} if you want to override the
     * existing values.
     * 
     * 
     * @param tags
     *        If you execute the change set, the tags that will be associated
     *        with the stack.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withTags(Tag... tags) {
        if (this.tags == null) {
            setTags(new com.amazonaws.internal.SdkInternalList(tags.length));
        }
        for (Tag ele : tags) {
            this.tags.add(ele);
        }
        return this;
    }
    /**
     * 
     * If you execute the change set, the tags that will be associated with the
     * stack.
     * 
     * 
     * @param tags
     *        If you execute the change set, the tags that will be associated
     *        with the stack.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withTags(java.util.Collection tags) {
        setTags(tags);
        return this;
    }
    /**
     * 
     * A list of Change structures that describes the resources AWS
     * CloudFormation changes if you execute the change set.
     * 
     * 
     * @return A list of Change structures that describes the
     *         resources AWS CloudFormation changes if you execute the change
     *         set.
     */
    public java.util.List getChanges() {
        if (changes == null) {
            changes = new com.amazonaws.internal.SdkInternalList();
        }
        return changes;
    }
    /**
     * 
     * A list of Change structures that describes the resources AWS
     * CloudFormation changes if you execute the change set.
     * 
     * 
     * @param changes
     *        A list of Change structures that describes the
     *        resources AWS CloudFormation changes if you execute the change
     *        set.
     */
    public void setChanges(java.util.Collection changes) {
        if (changes == null) {
            this.changes = null;
            return;
        }
        this.changes = new com.amazonaws.internal.SdkInternalList(
                changes);
    }
    /**
     * 
     * A list of Change structures that describes the resources AWS
     * CloudFormation changes if you execute the change set.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setChanges(java.util.Collection)} or
     * {@link #withChanges(java.util.Collection)} if you want to override the
     * existing values.
     * 
     * 
     * @param changes
     *        A list of Change structures that describes the
     *        resources AWS CloudFormation changes if you execute the change
     *        set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withChanges(Change... changes) {
        if (this.changes == null) {
            setChanges(new com.amazonaws.internal.SdkInternalList(
                    changes.length));
        }
        for (Change ele : changes) {
            this.changes.add(ele);
        }
        return this;
    }
    /**
     * 
     * A list of Change structures that describes the resources AWS
     * CloudFormation changes if you execute the change set.
     * 
     * 
     * @param changes
     *        A list of Change structures that describes the
     *        resources AWS CloudFormation changes if you execute the change
     *        set.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withChanges(
            java.util.Collection changes) {
        setChanges(changes);
        return this;
    }
    /**
     * 
     * If the output exceeds 1 MB, a string that identifies the next page of
     * changes. If there is no additional page, this value is null.
     * 
     * 
     * @param nextToken
     *        If the output exceeds 1 MB, a string that identifies the next page
     *        of changes. If there is no additional page, this value is null.
     */
    public void setNextToken(String nextToken) {
        this.nextToken = nextToken;
    }
    /**
     * 
     * If the output exceeds 1 MB, a string that identifies the next page of
     * changes. If there is no additional page, this value is null.
     * 
     * 
     * @return If the output exceeds 1 MB, a string that identifies the next
     *         page of changes. If there is no additional page, this value is
     *         null.
     */
    public String getNextToken() {
        return this.nextToken;
    }
    /**
     * 
     * If the output exceeds 1 MB, a string that identifies the next page of
     * changes. If there is no additional page, this value is null.
     * 
     * 
     * @param nextToken
     *        If the output exceeds 1 MB, a string that identifies the next page
     *        of changes. If there is no additional page, this value is null.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeChangeSetResult withNextToken(String nextToken) {
        setNextToken(nextToken);
        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 (getChangeSetName() != null)
            sb.append("ChangeSetName: " + getChangeSetName() + ",");
        if (getChangeSetId() != null)
            sb.append("ChangeSetId: " + getChangeSetId() + ",");
        if (getStackId() != null)
            sb.append("StackId: " + getStackId() + ",");
        if (getStackName() != null)
            sb.append("StackName: " + getStackName() + ",");
        if (getDescription() != null)
            sb.append("Description: " + getDescription() + ",");
        if (getParameters() != null)
            sb.append("Parameters: " + getParameters() + ",");
        if (getCreationTime() != null)
            sb.append("CreationTime: " + getCreationTime() + ",");
        if (getExecutionStatus() != null)
            sb.append("ExecutionStatus: " + getExecutionStatus() + ",");
        if (getStatus() != null)
            sb.append("Status: " + getStatus() + ",");
        if (getStatusReason() != null)
            sb.append("StatusReason: " + getStatusReason() + ",");
        if (getNotificationARNs() != null)
            sb.append("NotificationARNs: " + getNotificationARNs() + ",");
        if (getCapabilities() != null)
            sb.append("Capabilities: " + getCapabilities() + ",");
        if (getTags() != null)
            sb.append("Tags: " + getTags() + ",");
        if (getChanges() != null)
            sb.append("Changes: " + getChanges() + ",");
        if (getNextToken() != null)
            sb.append("NextToken: " + getNextToken());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof DescribeChangeSetResult == false)
            return false;
        DescribeChangeSetResult other = (DescribeChangeSetResult) obj;
        if (other.getChangeSetName() == null ^ this.getChangeSetName() == null)
            return false;
        if (other.getChangeSetName() != null
                && other.getChangeSetName().equals(this.getChangeSetName()) == false)
            return false;
        if (other.getChangeSetId() == null ^ this.getChangeSetId() == null)
            return false;
        if (other.getChangeSetId() != null
                && other.getChangeSetId().equals(this.getChangeSetId()) == false)
            return false;
        if (other.getStackId() == null ^ this.getStackId() == null)
            return false;
        if (other.getStackId() != null
                && other.getStackId().equals(this.getStackId()) == false)
            return false;
        if (other.getStackName() == null ^ this.getStackName() == null)
            return false;
        if (other.getStackName() != null
                && other.getStackName().equals(this.getStackName()) == false)
            return false;
        if (other.getDescription() == null ^ this.getDescription() == null)
            return false;
        if (other.getDescription() != null
                && other.getDescription().equals(this.getDescription()) == false)
            return false;
        if (other.getParameters() == null ^ this.getParameters() == null)
            return false;
        if (other.getParameters() != null
                && other.getParameters().equals(this.getParameters()) == false)
            return false;
        if (other.getCreationTime() == null ^ this.getCreationTime() == null)
            return false;
        if (other.getCreationTime() != null
                && other.getCreationTime().equals(this.getCreationTime()) == false)
            return false;
        if (other.getExecutionStatus() == null
                ^ this.getExecutionStatus() == null)
            return false;
        if (other.getExecutionStatus() != null
                && other.getExecutionStatus().equals(this.getExecutionStatus()) == false)
            return false;
        if (other.getStatus() == null ^ this.getStatus() == null)
            return false;
        if (other.getStatus() != null
                && other.getStatus().equals(this.getStatus()) == false)
            return false;
        if (other.getStatusReason() == null ^ this.getStatusReason() == null)
            return false;
        if (other.getStatusReason() != null
                && other.getStatusReason().equals(this.getStatusReason()) == false)
            return false;
        if (other.getNotificationARNs() == null
                ^ this.getNotificationARNs() == null)
            return false;
        if (other.getNotificationARNs() != null
                && other.getNotificationARNs().equals(
                        this.getNotificationARNs()) == false)
            return false;
        if (other.getCapabilities() == null ^ this.getCapabilities() == null)
            return false;
        if (other.getCapabilities() != null
                && other.getCapabilities().equals(this.getCapabilities()) == false)
            return false;
        if (other.getTags() == null ^ this.getTags() == null)
            return false;
        if (other.getTags() != null
                && other.getTags().equals(this.getTags()) == false)
            return false;
        if (other.getChanges() == null ^ this.getChanges() == null)
            return false;
        if (other.getChanges() != null
                && other.getChanges().equals(this.getChanges()) == false)
            return false;
        if (other.getNextToken() == null ^ this.getNextToken() == null)
            return false;
        if (other.getNextToken() != null
                && other.getNextToken().equals(this.getNextToken()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime
                * hashCode
                + ((getChangeSetName() == null) ? 0 : getChangeSetName()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getChangeSetId() == null) ? 0 : getChangeSetId().hashCode());
        hashCode = prime * hashCode
                + ((getStackId() == null) ? 0 : getStackId().hashCode());
        hashCode = prime * hashCode
                + ((getStackName() == null) ? 0 : getStackName().hashCode());
        hashCode = prime
                * hashCode
                + ((getDescription() == null) ? 0 : getDescription().hashCode());
        hashCode = prime * hashCode
                + ((getParameters() == null) ? 0 : getParameters().hashCode());
        hashCode = prime
                * hashCode
                + ((getCreationTime() == null) ? 0 : getCreationTime()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getExecutionStatus() == null) ? 0 : getExecutionStatus()
                        .hashCode());
        hashCode = prime * hashCode
                + ((getStatus() == null) ? 0 : getStatus().hashCode());
        hashCode = prime
                * hashCode
                + ((getStatusReason() == null) ? 0 : getStatusReason()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getNotificationARNs() == null) ? 0 : getNotificationARNs()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getCapabilities() == null) ? 0 : getCapabilities()
                        .hashCode());
        hashCode = prime * hashCode
                + ((getTags() == null) ? 0 : getTags().hashCode());
        hashCode = prime * hashCode
                + ((getChanges() == null) ? 0 : getChanges().hashCode());
        hashCode = prime * hashCode
                + ((getNextToken() == null) ? 0 : getNextToken().hashCode());
        return hashCode;
    }
    @Override
    public DescribeChangeSetResult clone() {
        try {
            return (DescribeChangeSetResult) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException(
                    "Got a CloneNotSupportedException from Object.clone() "
                            + "even though we're Cloneable!", e);
        }
    }
}