com.amazonaws.services.autoscaling.model.PutLifecycleHookRequest Maven / Gradle / Ivy
Show all versions of aws-java-sdk-autoscaling Show documentation
/*
 * Copyright 2011-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.autoscaling.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
 * 
 * Contains the parameters for PutLifecycleHook.
 * 
 */
public class PutLifecycleHookRequest extends AmazonWebServiceRequest implements
        Serializable, Cloneable {
    /**
     * 
     * The name of the lifecycle hook.
     * 
     */
    private String lifecycleHookName;
    /**
     * 
     * The name of the Auto Scaling group to which you want to assign the
     * lifecycle hook.
     * 
     */
    private String autoScalingGroupName;
    /**
     * 
     * The instance state to which you want to attach the lifecycle hook. For a
     * list of lifecycle hook types, see DescribeLifecycleHookTypes.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     */
    private String lifecycleTransition;
    /**
     * 
     * The ARN of the IAM role that allows the Auto Scaling group to publish to
     * the specified notification target.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     */
    private String roleARN;
    /**
     * 
     * The ARN of the notification target that Auto Scaling will use to notify
     * you when an instance is in the transition state for the lifecycle hook.
     * This target can be either an SQS queue or an SNS topic. If you specify an
     * empty string, this overrides the current ARN.
     * 
     * 
     * The notification messages sent to the target include the following
     * information:
     * 
     * 
     * - 
     * 
     * AutoScalingGroupName. The name of the Auto Scaling group.
     * 
     *  
     * - 
     * 
     * AccountId. The AWS account ID.
     * 
     *  
     * - 
     * 
     * LifecycleTransition. The lifecycle hook type.
     * 
     *  
     * - 
     * 
     * LifecycleActionToken. The lifecycle action token.
     * 
     *  
     * - 
     * 
     * EC2InstanceId. The EC2 instance ID.
     * 
     *  
     * - 
     * 
     * LifecycleHookName. The name of the lifecycle hook.
     * 
     *  
     * - 
     * 
     * NotificationMetadata. User-defined information.
     * 
     *  
     * 
     * 
     * This operation uses the JSON format when sending notifications to an
     * Amazon SQS queue, and an email key/value pair format when sending
     * notifications to an Amazon SNS topic.
     * 
     * 
     * When you specify a notification target, Auto Scaling sends it a test
     * message. Test messages contains the following additional key/value pair:
     * "Event": "autoscaling:TEST_NOTIFICATION".
     * 
     */
    private String notificationTargetARN;
    /**
     * 
     * Contains additional information that you want to include any time Auto
     * Scaling sends a message to the notification target.
     * 
     */
    private String notificationMetadata;
    /**
     * 
     * The amount of time, in seconds, that can elapse before the lifecycle hook
     * times out. When the lifecycle hook times out, Auto Scaling performs the
     * default action. You can prevent the lifecycle hook from timing out by
     * calling RecordLifecycleActionHeartbeat. The default is 3600
     * seconds (1 hour).
     * 
     */
    private Integer heartbeatTimeout;
    /**
     * 
     * Defines the action the Auto Scaling group should take when the lifecycle
     * hook timeout elapses or if an unexpected failure occurs. This parameter
     * can be either CONTINUE or ABANDON. The default
     * value is ABANDON.
     * 
     */
    private String defaultResult;
    /**
     * 
     * The name of the lifecycle hook.
     * 
     * 
     * @param lifecycleHookName
     *        The name of the lifecycle hook.
     */
    public void setLifecycleHookName(String lifecycleHookName) {
        this.lifecycleHookName = lifecycleHookName;
    }
    /**
     * 
     * The name of the lifecycle hook.
     * 
     * 
     * @return The name of the lifecycle hook.
     */
    public String getLifecycleHookName() {
        return this.lifecycleHookName;
    }
    /**
     * 
     * The name of the lifecycle hook.
     * 
     * 
     * @param lifecycleHookName
     *        The name of the lifecycle hook.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withLifecycleHookName(
            String lifecycleHookName) {
        setLifecycleHookName(lifecycleHookName);
        return this;
    }
    /**
     * 
     * The name of the Auto Scaling group to which you want to assign the
     * lifecycle hook.
     * 
     * 
     * @param autoScalingGroupName
     *        The name of the Auto Scaling group to which you want to assign the
     *        lifecycle hook.
     */
    public void setAutoScalingGroupName(String autoScalingGroupName) {
        this.autoScalingGroupName = autoScalingGroupName;
    }
    /**
     * 
     * The name of the Auto Scaling group to which you want to assign the
     * lifecycle hook.
     * 
     * 
     * @return The name of the Auto Scaling group to which you want to assign
     *         the lifecycle hook.
     */
    public String getAutoScalingGroupName() {
        return this.autoScalingGroupName;
    }
    /**
     * 
     * The name of the Auto Scaling group to which you want to assign the
     * lifecycle hook.
     * 
     * 
     * @param autoScalingGroupName
     *        The name of the Auto Scaling group to which you want to assign the
     *        lifecycle hook.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withAutoScalingGroupName(
            String autoScalingGroupName) {
        setAutoScalingGroupName(autoScalingGroupName);
        return this;
    }
    /**
     * 
     * The instance state to which you want to attach the lifecycle hook. For a
     * list of lifecycle hook types, see DescribeLifecycleHookTypes.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     * 
     * @param lifecycleTransition
     *        The instance state to which you want to attach the lifecycle hook.
     *        For a list of lifecycle hook types, see
     *        DescribeLifecycleHookTypes.
     *        
     *        This parameter is required for new lifecycle hooks, but optional
     *        when updating existing hooks.
     */
    public void setLifecycleTransition(String lifecycleTransition) {
        this.lifecycleTransition = lifecycleTransition;
    }
    /**
     * 
     * The instance state to which you want to attach the lifecycle hook. For a
     * list of lifecycle hook types, see DescribeLifecycleHookTypes.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     * 
     * @return The instance state to which you want to attach the lifecycle
     *         hook. For a list of lifecycle hook types, see
     *         DescribeLifecycleHookTypes.
     *         
     *         This parameter is required for new lifecycle hooks, but optional
     *         when updating existing hooks.
     */
    public String getLifecycleTransition() {
        return this.lifecycleTransition;
    }
    /**
     * 
     * The instance state to which you want to attach the lifecycle hook. For a
     * list of lifecycle hook types, see DescribeLifecycleHookTypes.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     * 
     * @param lifecycleTransition
     *        The instance state to which you want to attach the lifecycle hook.
     *        For a list of lifecycle hook types, see
     *        DescribeLifecycleHookTypes.
     *        
     *        This parameter is required for new lifecycle hooks, but optional
     *        when updating existing hooks.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withLifecycleTransition(
            String lifecycleTransition) {
        setLifecycleTransition(lifecycleTransition);
        return this;
    }
    /**
     * 
     * The ARN of the IAM role that allows the Auto Scaling group to publish to
     * the specified notification target.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     * 
     * @param roleARN
     *        The ARN of the IAM role that allows the Auto Scaling group to
     *        publish to the specified notification target.
     *        
     *        This parameter is required for new lifecycle hooks, but optional
     *        when updating existing hooks.
     */
    public void setRoleARN(String roleARN) {
        this.roleARN = roleARN;
    }
    /**
     * 
     * The ARN of the IAM role that allows the Auto Scaling group to publish to
     * the specified notification target.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     * 
     * @return The ARN of the IAM role that allows the Auto Scaling group to
     *         publish to the specified notification target.
     *         
     *         This parameter is required for new lifecycle hooks, but optional
     *         when updating existing hooks.
     */
    public String getRoleARN() {
        return this.roleARN;
    }
    /**
     * 
     * The ARN of the IAM role that allows the Auto Scaling group to publish to
     * the specified notification target.
     * 
     * 
     * This parameter is required for new lifecycle hooks, but optional when
     * updating existing hooks.
     * 
     * 
     * @param roleARN
     *        The ARN of the IAM role that allows the Auto Scaling group to
     *        publish to the specified notification target.
     *        
     *        This parameter is required for new lifecycle hooks, but optional
     *        when updating existing hooks.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withRoleARN(String roleARN) {
        setRoleARN(roleARN);
        return this;
    }
    /**
     * 
     * The ARN of the notification target that Auto Scaling will use to notify
     * you when an instance is in the transition state for the lifecycle hook.
     * This target can be either an SQS queue or an SNS topic. If you specify an
     * empty string, this overrides the current ARN.
     * 
     * 
     * The notification messages sent to the target include the following
     * information:
     * 
     * 
     * - 
     * 
     * AutoScalingGroupName. The name of the Auto Scaling group.
     * 
     *  
     * - 
     * 
     * AccountId. The AWS account ID.
     * 
     *  
     * - 
     * 
     * LifecycleTransition. The lifecycle hook type.
     * 
     *  
     * - 
     * 
     * LifecycleActionToken. The lifecycle action token.
     * 
     *  
     * - 
     * 
     * EC2InstanceId. The EC2 instance ID.
     * 
     *  
     * - 
     * 
     * LifecycleHookName. The name of the lifecycle hook.
     * 
     *  
     * - 
     * 
     * NotificationMetadata. User-defined information.
     * 
     *  
     * 
     * 
     * This operation uses the JSON format when sending notifications to an
     * Amazon SQS queue, and an email key/value pair format when sending
     * notifications to an Amazon SNS topic.
     * 
     * 
     * When you specify a notification target, Auto Scaling sends it a test
     * message. Test messages contains the following additional key/value pair:
     * "Event": "autoscaling:TEST_NOTIFICATION".
     * 
     * 
     * @param notificationTargetARN
     *        The ARN of the notification target that Auto Scaling will use to
     *        notify you when an instance is in the transition state for the
     *        lifecycle hook. This target can be either an SQS queue or an SNS
     *        topic. If you specify an empty string, this overrides the current
     *        ARN.
     *        
     *        The notification messages sent to the target include the following
     *        information:
     *        
     *        
     *        - 
     *        
     *        AutoScalingGroupName. The name of the Auto Scaling group.
     *        
     *         
     *        - 
     *        
     *        AccountId. The AWS account ID.
     *        
     *         
     *        - 
     *        
     *        LifecycleTransition. The lifecycle hook type.
     *        
     *         
     *        - 
     *        
     *        LifecycleActionToken. The lifecycle action token.
     *        
     *         
     *        - 
     *        
     *        EC2InstanceId. The EC2 instance ID.
     *        
     *         
     *        - 
     *        
     *        LifecycleHookName. The name of the lifecycle hook.
     *        
     *         
     *        - 
     *        
     *        NotificationMetadata. User-defined information.
     *        
     *         
     *        
     *        
     *        This operation uses the JSON format when sending notifications to
     *        an Amazon SQS queue, and an email key/value pair format when
     *        sending notifications to an Amazon SNS topic.
     *        
     *        
     *        When you specify a notification target, Auto Scaling sends it a
     *        test message. Test messages contains the following additional
     *        key/value pair:
     *        "Event": "autoscaling:TEST_NOTIFICATION".
     */
    public void setNotificationTargetARN(String notificationTargetARN) {
        this.notificationTargetARN = notificationTargetARN;
    }
    /**
     * 
     * The ARN of the notification target that Auto Scaling will use to notify
     * you when an instance is in the transition state for the lifecycle hook.
     * This target can be either an SQS queue or an SNS topic. If you specify an
     * empty string, this overrides the current ARN.
     * 
     * 
     * The notification messages sent to the target include the following
     * information:
     * 
     * 
     * - 
     * 
     * AutoScalingGroupName. The name of the Auto Scaling group.
     * 
     *  
     * - 
     * 
     * AccountId. The AWS account ID.
     * 
     *  
     * - 
     * 
     * LifecycleTransition. The lifecycle hook type.
     * 
     *  
     * - 
     * 
     * LifecycleActionToken. The lifecycle action token.
     * 
     *  
     * - 
     * 
     * EC2InstanceId. The EC2 instance ID.
     * 
     *  
     * - 
     * 
     * LifecycleHookName. The name of the lifecycle hook.
     * 
     *  
     * - 
     * 
     * NotificationMetadata. User-defined information.
     * 
     *  
     * 
     * 
     * This operation uses the JSON format when sending notifications to an
     * Amazon SQS queue, and an email key/value pair format when sending
     * notifications to an Amazon SNS topic.
     * 
     * 
     * When you specify a notification target, Auto Scaling sends it a test
     * message. Test messages contains the following additional key/value pair:
     * "Event": "autoscaling:TEST_NOTIFICATION".
     * 
     * 
     * @return The ARN of the notification target that Auto Scaling will use to
     *         notify you when an instance is in the transition state for the
     *         lifecycle hook. This target can be either an SQS queue or an SNS
     *         topic. If you specify an empty string, this overrides the current
     *         ARN.
     *         
     *         The notification messages sent to the target include the
     *         following information:
     *         
     *         
     *         - 
     *         
     *         AutoScalingGroupName. The name of the Auto Scaling group.
     *         
     *          
     *         - 
     *         
     *         AccountId. The AWS account ID.
     *         
     *          
     *         - 
     *         
     *         LifecycleTransition. The lifecycle hook type.
     *         
     *          
     *         - 
     *         
     *         LifecycleActionToken. The lifecycle action token.
     *         
     *          
     *         - 
     *         
     *         EC2InstanceId. The EC2 instance ID.
     *         
     *          
     *         - 
     *         
     *         LifecycleHookName. The name of the lifecycle hook.
     *         
     *          
     *         - 
     *         
     *         NotificationMetadata. User-defined information.
     *         
     *          
     *         
     *         
     *         This operation uses the JSON format when sending notifications to
     *         an Amazon SQS queue, and an email key/value pair format when
     *         sending notifications to an Amazon SNS topic.
     *         
     *         
     *         When you specify a notification target, Auto Scaling sends it a
     *         test message. Test messages contains the following additional
     *         key/value pair:
     *         "Event": "autoscaling:TEST_NOTIFICATION".
     */
    public String getNotificationTargetARN() {
        return this.notificationTargetARN;
    }
    /**
     * 
     * The ARN of the notification target that Auto Scaling will use to notify
     * you when an instance is in the transition state for the lifecycle hook.
     * This target can be either an SQS queue or an SNS topic. If you specify an
     * empty string, this overrides the current ARN.
     * 
     * 
     * The notification messages sent to the target include the following
     * information:
     * 
     * 
     * - 
     * 
     * AutoScalingGroupName. The name of the Auto Scaling group.
     * 
     *  
     * - 
     * 
     * AccountId. The AWS account ID.
     * 
     *  
     * - 
     * 
     * LifecycleTransition. The lifecycle hook type.
     * 
     *  
     * - 
     * 
     * LifecycleActionToken. The lifecycle action token.
     * 
     *  
     * - 
     * 
     * EC2InstanceId. The EC2 instance ID.
     * 
     *  
     * - 
     * 
     * LifecycleHookName. The name of the lifecycle hook.
     * 
     *  
     * - 
     * 
     * NotificationMetadata. User-defined information.
     * 
     *  
     * 
     * 
     * This operation uses the JSON format when sending notifications to an
     * Amazon SQS queue, and an email key/value pair format when sending
     * notifications to an Amazon SNS topic.
     * 
     * 
     * When you specify a notification target, Auto Scaling sends it a test
     * message. Test messages contains the following additional key/value pair:
     * "Event": "autoscaling:TEST_NOTIFICATION".
     * 
     * 
     * @param notificationTargetARN
     *        The ARN of the notification target that Auto Scaling will use to
     *        notify you when an instance is in the transition state for the
     *        lifecycle hook. This target can be either an SQS queue or an SNS
     *        topic. If you specify an empty string, this overrides the current
     *        ARN.
     *        
     *        The notification messages sent to the target include the following
     *        information:
     *        
     *        
     *        - 
     *        
     *        AutoScalingGroupName. The name of the Auto Scaling group.
     *        
     *         
     *        - 
     *        
     *        AccountId. The AWS account ID.
     *        
     *         
     *        - 
     *        
     *        LifecycleTransition. The lifecycle hook type.
     *        
     *         
     *        - 
     *        
     *        LifecycleActionToken. The lifecycle action token.
     *        
     *         
     *        - 
     *        
     *        EC2InstanceId. The EC2 instance ID.
     *        
     *         
     *        - 
     *        
     *        LifecycleHookName. The name of the lifecycle hook.
     *        
     *         
     *        - 
     *        
     *        NotificationMetadata. User-defined information.
     *        
     *         
     *        
     *        
     *        This operation uses the JSON format when sending notifications to
     *        an Amazon SQS queue, and an email key/value pair format when
     *        sending notifications to an Amazon SNS topic.
     *        
     *        
     *        When you specify a notification target, Auto Scaling sends it a
     *        test message. Test messages contains the following additional
     *        key/value pair:
     *        "Event": "autoscaling:TEST_NOTIFICATION".
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withNotificationTargetARN(
            String notificationTargetARN) {
        setNotificationTargetARN(notificationTargetARN);
        return this;
    }
    /**
     * 
     * Contains additional information that you want to include any time Auto
     * Scaling sends a message to the notification target.
     * 
     * 
     * @param notificationMetadata
     *        Contains additional information that you want to include any time
     *        Auto Scaling sends a message to the notification target.
     */
    public void setNotificationMetadata(String notificationMetadata) {
        this.notificationMetadata = notificationMetadata;
    }
    /**
     * 
     * Contains additional information that you want to include any time Auto
     * Scaling sends a message to the notification target.
     * 
     * 
     * @return Contains additional information that you want to include any time
     *         Auto Scaling sends a message to the notification target.
     */
    public String getNotificationMetadata() {
        return this.notificationMetadata;
    }
    /**
     * 
     * Contains additional information that you want to include any time Auto
     * Scaling sends a message to the notification target.
     * 
     * 
     * @param notificationMetadata
     *        Contains additional information that you want to include any time
     *        Auto Scaling sends a message to the notification target.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withNotificationMetadata(
            String notificationMetadata) {
        setNotificationMetadata(notificationMetadata);
        return this;
    }
    /**
     * 
     * The amount of time, in seconds, that can elapse before the lifecycle hook
     * times out. When the lifecycle hook times out, Auto Scaling performs the
     * default action. You can prevent the lifecycle hook from timing out by
     * calling RecordLifecycleActionHeartbeat. The default is 3600
     * seconds (1 hour).
     * 
     * 
     * @param heartbeatTimeout
     *        The amount of time, in seconds, that can elapse before the
     *        lifecycle hook times out. When the lifecycle hook times out, Auto
     *        Scaling performs the default action. You can prevent the lifecycle
     *        hook from timing out by calling
     *        RecordLifecycleActionHeartbeat. The default is 3600 seconds
     *        (1 hour).
     */
    public void setHeartbeatTimeout(Integer heartbeatTimeout) {
        this.heartbeatTimeout = heartbeatTimeout;
    }
    /**
     * 
     * The amount of time, in seconds, that can elapse before the lifecycle hook
     * times out. When the lifecycle hook times out, Auto Scaling performs the
     * default action. You can prevent the lifecycle hook from timing out by
     * calling RecordLifecycleActionHeartbeat. The default is 3600
     * seconds (1 hour).
     * 
     * 
     * @return The amount of time, in seconds, that can elapse before the
     *         lifecycle hook times out. When the lifecycle hook times out, Auto
     *         Scaling performs the default action. You can prevent the
     *         lifecycle hook from timing out by calling
     *         RecordLifecycleActionHeartbeat. The default is 3600
     *         seconds (1 hour).
     */
    public Integer getHeartbeatTimeout() {
        return this.heartbeatTimeout;
    }
    /**
     * 
     * The amount of time, in seconds, that can elapse before the lifecycle hook
     * times out. When the lifecycle hook times out, Auto Scaling performs the
     * default action. You can prevent the lifecycle hook from timing out by
     * calling RecordLifecycleActionHeartbeat. The default is 3600
     * seconds (1 hour).
     * 
     * 
     * @param heartbeatTimeout
     *        The amount of time, in seconds, that can elapse before the
     *        lifecycle hook times out. When the lifecycle hook times out, Auto
     *        Scaling performs the default action. You can prevent the lifecycle
     *        hook from timing out by calling
     *        RecordLifecycleActionHeartbeat. The default is 3600 seconds
     *        (1 hour).
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withHeartbeatTimeout(Integer heartbeatTimeout) {
        setHeartbeatTimeout(heartbeatTimeout);
        return this;
    }
    /**
     * 
     * Defines the action the Auto Scaling group should take when the lifecycle
     * hook timeout elapses or if an unexpected failure occurs. This parameter
     * can be either CONTINUE or ABANDON. The default
     * value is ABANDON.
     * 
     * 
     * @param defaultResult
     *        Defines the action the Auto Scaling group should take when the
     *        lifecycle hook timeout elapses or if an unexpected failure occurs.
     *        This parameter can be either CONTINUE or
     *        ABANDON. The default value is ABANDON.
     */
    public void setDefaultResult(String defaultResult) {
        this.defaultResult = defaultResult;
    }
    /**
     * 
     * Defines the action the Auto Scaling group should take when the lifecycle
     * hook timeout elapses or if an unexpected failure occurs. This parameter
     * can be either CONTINUE or ABANDON. The default
     * value is ABANDON.
     * 
     * 
     * @return Defines the action the Auto Scaling group should take when the
     *         lifecycle hook timeout elapses or if an unexpected failure
     *         occurs. This parameter can be either CONTINUE or
     *         ABANDON. The default value is ABANDON.
     */
    public String getDefaultResult() {
        return this.defaultResult;
    }
    /**
     * 
     * Defines the action the Auto Scaling group should take when the lifecycle
     * hook timeout elapses or if an unexpected failure occurs. This parameter
     * can be either CONTINUE or ABANDON. The default
     * value is ABANDON.
     * 
     * 
     * @param defaultResult
     *        Defines the action the Auto Scaling group should take when the
     *        lifecycle hook timeout elapses or if an unexpected failure occurs.
     *        This parameter can be either CONTINUE or
     *        ABANDON. The default value is ABANDON.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public PutLifecycleHookRequest withDefaultResult(String defaultResult) {
        setDefaultResult(defaultResult);
        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 (getLifecycleHookName() != null)
            sb.append("LifecycleHookName: " + getLifecycleHookName() + ",");
        if (getAutoScalingGroupName() != null)
            sb.append("AutoScalingGroupName: " + getAutoScalingGroupName()
                    + ",");
        if (getLifecycleTransition() != null)
            sb.append("LifecycleTransition: " + getLifecycleTransition() + ",");
        if (getRoleARN() != null)
            sb.append("RoleARN: " + getRoleARN() + ",");
        if (getNotificationTargetARN() != null)
            sb.append("NotificationTargetARN: " + getNotificationTargetARN()
                    + ",");
        if (getNotificationMetadata() != null)
            sb.append("NotificationMetadata: " + getNotificationMetadata()
                    + ",");
        if (getHeartbeatTimeout() != null)
            sb.append("HeartbeatTimeout: " + getHeartbeatTimeout() + ",");
        if (getDefaultResult() != null)
            sb.append("DefaultResult: " + getDefaultResult());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof PutLifecycleHookRequest == false)
            return false;
        PutLifecycleHookRequest other = (PutLifecycleHookRequest) obj;
        if (other.getLifecycleHookName() == null
                ^ this.getLifecycleHookName() == null)
            return false;
        if (other.getLifecycleHookName() != null
                && other.getLifecycleHookName().equals(
                        this.getLifecycleHookName()) == false)
            return false;
        if (other.getAutoScalingGroupName() == null
                ^ this.getAutoScalingGroupName() == null)
            return false;
        if (other.getAutoScalingGroupName() != null
                && other.getAutoScalingGroupName().equals(
                        this.getAutoScalingGroupName()) == false)
            return false;
        if (other.getLifecycleTransition() == null
                ^ this.getLifecycleTransition() == null)
            return false;
        if (other.getLifecycleTransition() != null
                && other.getLifecycleTransition().equals(
                        this.getLifecycleTransition()) == false)
            return false;
        if (other.getRoleARN() == null ^ this.getRoleARN() == null)
            return false;
        if (other.getRoleARN() != null
                && other.getRoleARN().equals(this.getRoleARN()) == false)
            return false;
        if (other.getNotificationTargetARN() == null
                ^ this.getNotificationTargetARN() == null)
            return false;
        if (other.getNotificationTargetARN() != null
                && other.getNotificationTargetARN().equals(
                        this.getNotificationTargetARN()) == false)
            return false;
        if (other.getNotificationMetadata() == null
                ^ this.getNotificationMetadata() == null)
            return false;
        if (other.getNotificationMetadata() != null
                && other.getNotificationMetadata().equals(
                        this.getNotificationMetadata()) == false)
            return false;
        if (other.getHeartbeatTimeout() == null
                ^ this.getHeartbeatTimeout() == null)
            return false;
        if (other.getHeartbeatTimeout() != null
                && other.getHeartbeatTimeout().equals(
                        this.getHeartbeatTimeout()) == false)
            return false;
        if (other.getDefaultResult() == null ^ this.getDefaultResult() == null)
            return false;
        if (other.getDefaultResult() != null
                && other.getDefaultResult().equals(this.getDefaultResult()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime
                * hashCode
                + ((getLifecycleHookName() == null) ? 0
                        : getLifecycleHookName().hashCode());
        hashCode = prime
                * hashCode
                + ((getAutoScalingGroupName() == null) ? 0
                        : getAutoScalingGroupName().hashCode());
        hashCode = prime
                * hashCode
                + ((getLifecycleTransition() == null) ? 0
                        : getLifecycleTransition().hashCode());
        hashCode = prime * hashCode
                + ((getRoleARN() == null) ? 0 : getRoleARN().hashCode());
        hashCode = prime
                * hashCode
                + ((getNotificationTargetARN() == null) ? 0
                        : getNotificationTargetARN().hashCode());
        hashCode = prime
                * hashCode
                + ((getNotificationMetadata() == null) ? 0
                        : getNotificationMetadata().hashCode());
        hashCode = prime
                * hashCode
                + ((getHeartbeatTimeout() == null) ? 0 : getHeartbeatTimeout()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getDefaultResult() == null) ? 0 : getDefaultResult()
                        .hashCode());
        return hashCode;
    }
    @Override
    public PutLifecycleHookRequest clone() {
        return (PutLifecycleHookRequest) super.clone();
    }
}