All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.autoscaling.model.LifecycleHook Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * 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;

/**
 * 

* Describes a lifecycle hook, which tells Auto Scaling that you want to perform * an action when an instance launches or terminates. When you have a lifecycle * hook in place, the Auto Scaling group will either: *

*
    *
  • Pause the instance after it launches, but before it is put into service
  • *
  • Pause the instance as it terminates, but before it is fully terminated
  • *
*

* For more information, see Auto Scaling Lifecycle in the Auto Scaling Developer Guide. *

*/ public class LifecycleHook implements Serializable, Cloneable { /** *

* The name of the lifecycle hook. *

*/ private String lifecycleHookName; /** *

* The name of the Auto Scaling group for the lifecycle hook. *

*/ private String autoScalingGroupName; /** *

* The state of the EC2 instance to which you want to attach the lifecycle * hook. For a list of lifecycle hook types, see * DescribeLifecycleHookTypes. *

*/ private String lifecycleTransition; /** *

* The ARN of the notification target that Auto Scaling uses to notify you * when an instance is in the transition state for the lifecycle hook. This * ARN target can be either an SQS queue or an SNS topic. The notification * message sent to the target includes the following: *

*
    *
  • Lifecycle action token
  • *
  • User account ID
  • *
  • Name of the Auto Scaling group
  • *
  • Lifecycle hook name
  • *
  • EC2 instance ID
  • *
  • Lifecycle transition
  • *
  • Notification metadata
  • *
*/ private String notificationTargetARN; /** *

* The ARN of the IAM role that allows the Auto Scaling group to publish to * the specified notification target. *

*/ private String roleARN; /** *

* Additional information that you want to include any time Auto Scaling * sends a message to the notification target. *

*/ private String notificationMetadata; /** *

* The maximum time, in seconds, that can elapse before the lifecycle hook * times out. The default is 3600 seconds (1 hour). When the lifecycle hook * times out, Auto Scaling performs the default action. You can prevent the * lifecycle hook from timing out by calling * RecordLifecycleActionHeartbeat. *

*/ private Integer heartbeatTimeout; /** *

* The maximum time, in seconds, that an instance can remain in a * Pending:Wait or Terminating:Wait state. The * default is 172800 seconds (48 hours). *

*/ private Integer globalTimeout; /** *

* Defines the action the Auto Scaling group should take when the lifecycle * hook timeout elapses or if an unexpected failure occurs. The valid values * are CONTINUE and ABANDON. The default value is * CONTINUE. *

*/ 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 LifecycleHook withLifecycleHookName(String lifecycleHookName) { setLifecycleHookName(lifecycleHookName); return this; } /** *

* The name of the Auto Scaling group for the lifecycle hook. *

* * @param autoScalingGroupName * The name of the Auto Scaling group for the lifecycle hook. */ public void setAutoScalingGroupName(String autoScalingGroupName) { this.autoScalingGroupName = autoScalingGroupName; } /** *

* The name of the Auto Scaling group for the lifecycle hook. *

* * @return The name of the Auto Scaling group for the lifecycle hook. */ public String getAutoScalingGroupName() { return this.autoScalingGroupName; } /** *

* The name of the Auto Scaling group for the lifecycle hook. *

* * @param autoScalingGroupName * The name of the Auto Scaling group for the lifecycle hook. * @return Returns a reference to this object so that method calls can be * chained together. */ public LifecycleHook withAutoScalingGroupName(String autoScalingGroupName) { setAutoScalingGroupName(autoScalingGroupName); return this; } /** *

* The state of the EC2 instance to which you want to attach the lifecycle * hook. For a list of lifecycle hook types, see * DescribeLifecycleHookTypes. *

* * @param lifecycleTransition * The state of the EC2 instance to which you want to attach the * lifecycle hook. For a list of lifecycle hook types, see * DescribeLifecycleHookTypes. */ public void setLifecycleTransition(String lifecycleTransition) { this.lifecycleTransition = lifecycleTransition; } /** *

* The state of the EC2 instance to which you want to attach the lifecycle * hook. For a list of lifecycle hook types, see * DescribeLifecycleHookTypes. *

* * @return The state of the EC2 instance to which you want to attach the * lifecycle hook. For a list of lifecycle hook types, see * DescribeLifecycleHookTypes. */ public String getLifecycleTransition() { return this.lifecycleTransition; } /** *

* The state of the EC2 instance to which you want to attach the lifecycle * hook. For a list of lifecycle hook types, see * DescribeLifecycleHookTypes. *

* * @param lifecycleTransition * The state of the EC2 instance to which you want to attach the * lifecycle hook. For a list of lifecycle hook types, see * DescribeLifecycleHookTypes. * @return Returns a reference to this object so that method calls can be * chained together. */ public LifecycleHook withLifecycleTransition(String lifecycleTransition) { setLifecycleTransition(lifecycleTransition); return this; } /** *

* The ARN of the notification target that Auto Scaling uses to notify you * when an instance is in the transition state for the lifecycle hook. This * ARN target can be either an SQS queue or an SNS topic. The notification * message sent to the target includes the following: *

*
    *
  • Lifecycle action token
  • *
  • User account ID
  • *
  • Name of the Auto Scaling group
  • *
  • Lifecycle hook name
  • *
  • EC2 instance ID
  • *
  • Lifecycle transition
  • *
  • Notification metadata
  • *
* * @param notificationTargetARN * The ARN of the notification target that Auto Scaling uses to * notify you when an instance is in the transition state for the * lifecycle hook. This ARN target can be either an SQS queue or an * SNS topic. The notification message sent to the target includes * the following:

*
    *
  • Lifecycle action token
  • *
  • User account ID
  • *
  • Name of the Auto Scaling group
  • *
  • Lifecycle hook name
  • *
  • EC2 instance ID
  • *
  • Lifecycle transition
  • *
  • Notification metadata
  • */ public void setNotificationTargetARN(String notificationTargetARN) { this.notificationTargetARN = notificationTargetARN; } /** *

    * The ARN of the notification target that Auto Scaling uses to notify you * when an instance is in the transition state for the lifecycle hook. This * ARN target can be either an SQS queue or an SNS topic. The notification * message sent to the target includes the following: *

    *
      *
    • Lifecycle action token
    • *
    • User account ID
    • *
    • Name of the Auto Scaling group
    • *
    • Lifecycle hook name
    • *
    • EC2 instance ID
    • *
    • Lifecycle transition
    • *
    • Notification metadata
    • *
    * * @return The ARN of the notification target that Auto Scaling uses to * notify you when an instance is in the transition state for the * lifecycle hook. This ARN target can be either an SQS queue or an * SNS topic. The notification message sent to the target includes * the following:

    *
      *
    • Lifecycle action token
    • *
    • User account ID
    • *
    • Name of the Auto Scaling group
    • *
    • Lifecycle hook name
    • *
    • EC2 instance ID
    • *
    • Lifecycle transition
    • *
    • Notification metadata
    • */ public String getNotificationTargetARN() { return this.notificationTargetARN; } /** *

      * The ARN of the notification target that Auto Scaling uses to notify you * when an instance is in the transition state for the lifecycle hook. This * ARN target can be either an SQS queue or an SNS topic. The notification * message sent to the target includes the following: *

      *
        *
      • Lifecycle action token
      • *
      • User account ID
      • *
      • Name of the Auto Scaling group
      • *
      • Lifecycle hook name
      • *
      • EC2 instance ID
      • *
      • Lifecycle transition
      • *
      • Notification metadata
      • *
      * * @param notificationTargetARN * The ARN of the notification target that Auto Scaling uses to * notify you when an instance is in the transition state for the * lifecycle hook. This ARN target can be either an SQS queue or an * SNS topic. The notification message sent to the target includes * the following:

      *
        *
      • Lifecycle action token
      • *
      • User account ID
      • *
      • Name of the Auto Scaling group
      • *
      • Lifecycle hook name
      • *
      • EC2 instance ID
      • *
      • Lifecycle transition
      • *
      • Notification metadata
      • * @return Returns a reference to this object so that method calls can be * chained together. */ public LifecycleHook withNotificationTargetARN(String notificationTargetARN) { setNotificationTargetARN(notificationTargetARN); return this; } /** *

        * The ARN of the IAM role that allows the Auto Scaling group to publish to * the specified notification target. *

        * * @param roleARN * The ARN of the IAM role that allows the Auto Scaling group to * publish to the specified notification target. */ 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. *

        * * @return The ARN of the IAM role that allows the Auto Scaling group to * publish to the specified notification target. */ 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. *

        * * @param roleARN * The ARN of the IAM role that allows the Auto Scaling group to * publish to the specified notification target. * @return Returns a reference to this object so that method calls can be * chained together. */ public LifecycleHook withRoleARN(String roleARN) { setRoleARN(roleARN); return this; } /** *

        * Additional information that you want to include any time Auto Scaling * sends a message to the notification target. *

        * * @param notificationMetadata * 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; } /** *

        * Additional information that you want to include any time Auto Scaling * sends a message to the notification target. *

        * * @return Additional information that you want to include any time Auto * Scaling sends a message to the notification target. */ public String getNotificationMetadata() { return this.notificationMetadata; } /** *

        * Additional information that you want to include any time Auto Scaling * sends a message to the notification target. *

        * * @param notificationMetadata * 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 LifecycleHook withNotificationMetadata(String notificationMetadata) { setNotificationMetadata(notificationMetadata); return this; } /** *

        * The maximum time, in seconds, that can elapse before the lifecycle hook * times out. The default is 3600 seconds (1 hour). When the lifecycle hook * times out, Auto Scaling performs the default action. You can prevent the * lifecycle hook from timing out by calling * RecordLifecycleActionHeartbeat. *

        * * @param heartbeatTimeout * The maximum time, in seconds, that can elapse before the lifecycle * hook times out. The default is 3600 seconds (1 hour). When the * lifecycle hook times out, Auto Scaling performs the default * action. You can prevent the lifecycle hook from timing out by * calling RecordLifecycleActionHeartbeat. */ public void setHeartbeatTimeout(Integer heartbeatTimeout) { this.heartbeatTimeout = heartbeatTimeout; } /** *

        * The maximum time, in seconds, that can elapse before the lifecycle hook * times out. The default is 3600 seconds (1 hour). When the lifecycle hook * times out, Auto Scaling performs the default action. You can prevent the * lifecycle hook from timing out by calling * RecordLifecycleActionHeartbeat. *

        * * @return The maximum time, in seconds, that can elapse before the * lifecycle hook times out. The default is 3600 seconds (1 hour). * When the lifecycle hook times out, Auto Scaling performs the * default action. You can prevent the lifecycle hook from timing * out by calling RecordLifecycleActionHeartbeat. */ public Integer getHeartbeatTimeout() { return this.heartbeatTimeout; } /** *

        * The maximum time, in seconds, that can elapse before the lifecycle hook * times out. The default is 3600 seconds (1 hour). When the lifecycle hook * times out, Auto Scaling performs the default action. You can prevent the * lifecycle hook from timing out by calling * RecordLifecycleActionHeartbeat. *

        * * @param heartbeatTimeout * The maximum time, in seconds, that can elapse before the lifecycle * hook times out. The default is 3600 seconds (1 hour). When the * lifecycle hook times out, Auto Scaling performs the default * action. You can prevent the lifecycle hook from timing out by * calling RecordLifecycleActionHeartbeat. * @return Returns a reference to this object so that method calls can be * chained together. */ public LifecycleHook withHeartbeatTimeout(Integer heartbeatTimeout) { setHeartbeatTimeout(heartbeatTimeout); return this; } /** *

        * The maximum time, in seconds, that an instance can remain in a * Pending:Wait or Terminating:Wait state. The * default is 172800 seconds (48 hours). *

        * * @param globalTimeout * The maximum time, in seconds, that an instance can remain in a * Pending:Wait or Terminating:Wait state. * The default is 172800 seconds (48 hours). */ public void setGlobalTimeout(Integer globalTimeout) { this.globalTimeout = globalTimeout; } /** *

        * The maximum time, in seconds, that an instance can remain in a * Pending:Wait or Terminating:Wait state. The * default is 172800 seconds (48 hours). *

        * * @return The maximum time, in seconds, that an instance can remain in a * Pending:Wait or Terminating:Wait state. * The default is 172800 seconds (48 hours). */ public Integer getGlobalTimeout() { return this.globalTimeout; } /** *

        * The maximum time, in seconds, that an instance can remain in a * Pending:Wait or Terminating:Wait state. The * default is 172800 seconds (48 hours). *

        * * @param globalTimeout * The maximum time, in seconds, that an instance can remain in a * Pending:Wait or Terminating:Wait state. * The default is 172800 seconds (48 hours). * @return Returns a reference to this object so that method calls can be * chained together. */ public LifecycleHook withGlobalTimeout(Integer globalTimeout) { setGlobalTimeout(globalTimeout); return this; } /** *

        * Defines the action the Auto Scaling group should take when the lifecycle * hook timeout elapses or if an unexpected failure occurs. The valid values * are CONTINUE and ABANDON. The default value is * CONTINUE. *

        * * @param defaultResult * Defines the action the Auto Scaling group should take when the * lifecycle hook timeout elapses or if an unexpected failure occurs. * The valid values are CONTINUE and * ABANDON. The default value is CONTINUE. */ 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. The valid values * are CONTINUE and ABANDON. The default value is * CONTINUE. *

        * * @return Defines the action the Auto Scaling group should take when the * lifecycle hook timeout elapses or if an unexpected failure * occurs. The valid values are CONTINUE and * ABANDON. The default value is CONTINUE. */ 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. The valid values * are CONTINUE and ABANDON. The default value is * CONTINUE. *

        * * @param defaultResult * Defines the action the Auto Scaling group should take when the * lifecycle hook timeout elapses or if an unexpected failure occurs. * The valid values are CONTINUE and * ABANDON. The default value is CONTINUE. * @return Returns a reference to this object so that method calls can be * chained together. */ public LifecycleHook 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 (getNotificationTargetARN() != null) sb.append("NotificationTargetARN: " + getNotificationTargetARN() + ","); if (getRoleARN() != null) sb.append("RoleARN: " + getRoleARN() + ","); if (getNotificationMetadata() != null) sb.append("NotificationMetadata: " + getNotificationMetadata() + ","); if (getHeartbeatTimeout() != null) sb.append("HeartbeatTimeout: " + getHeartbeatTimeout() + ","); if (getGlobalTimeout() != null) sb.append("GlobalTimeout: " + getGlobalTimeout() + ","); 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 LifecycleHook == false) return false; LifecycleHook other = (LifecycleHook) 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.getNotificationTargetARN() == null ^ this.getNotificationTargetARN() == null) return false; if (other.getNotificationTargetARN() != null && other.getNotificationTargetARN().equals( this.getNotificationTargetARN()) == 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.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.getGlobalTimeout() == null ^ this.getGlobalTimeout() == null) return false; if (other.getGlobalTimeout() != null && other.getGlobalTimeout().equals(this.getGlobalTimeout()) == 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 + ((getNotificationTargetARN() == null) ? 0 : getNotificationTargetARN().hashCode()); hashCode = prime * hashCode + ((getRoleARN() == null) ? 0 : getRoleARN().hashCode()); hashCode = prime * hashCode + ((getNotificationMetadata() == null) ? 0 : getNotificationMetadata().hashCode()); hashCode = prime * hashCode + ((getHeartbeatTimeout() == null) ? 0 : getHeartbeatTimeout() .hashCode()); hashCode = prime * hashCode + ((getGlobalTimeout() == null) ? 0 : getGlobalTimeout() .hashCode()); hashCode = prime * hashCode + ((getDefaultResult() == null) ? 0 : getDefaultResult() .hashCode()); return hashCode; } @Override public LifecycleHook clone() { try { return (LifecycleHook) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException( "Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy