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

com.amazonaws.services.autoscaling.model.PutLifecycleHookRequest 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;
import com.amazonaws.AmazonWebServiceRequest;

/**
 * 
 */
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(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy