import { Value } from '../../cloudformation/Value';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  The <code>AWS::AutoScaling::LifecycleHook</code> resource specifies lifecycle hooks for an Auto Scaling group. These hooks let you create solutions that are aware of events in the Auto Scaling instance lifecycle, and then perform a custom action on instances when the corresponding lifecycle event occurs. A lifecycle hook provides a specified amount of time (one hour by default) to wait for the action to complete before the instance transitions to the next state.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html">the AWS Docs</a>
*/
export type LifecycleHook = AwsResource<'AWS::AutoScaling::LifecycleHook', LifecycleHookProperties>;
export declare function lifecycleHook(lifecycleHookProps: LifecycleHookProperties): LifecycleHook;
/**
  The <code>AWS::AutoScaling::LifecycleHook</code> resource specifies lifecycle hooks for an Auto Scaling group. These hooks let you create solutions that are aware of events in the Auto Scaling instance lifecycle, and then perform a custom action on instances when the corresponding lifecycle event occurs. A lifecycle hook provides a specified amount of time (one hour by default) to wait for the action to complete before the instance transitions to the next state.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html">the AWS Docs</a>
*/
export interface LifecycleHookProperties {
    /** <code>LifecycleHookName</code>  <a name="cfn-autoscaling-lifecyclehook-lifecyclehookname"></a>
  The name of the lifecycle hook.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>255</code><br />
  
  Pattern: <code>[A-Za-z0-9\-_\/]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    lifecycleHookName?: Value<string>;
    /** <p> */
    lifecycleTransition: Value<string>;
    /** <code>AutoScalingGroupName</code>  <a name="cfn-autoscaling-lifecyclehook-autoscalinggroupname"></a>
  The name of the Auto Scaling group.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    autoScalingGroupName: Value<string>;
    /** <code>HeartbeatTimeout</code>  <a name="cfn-autoscaling-lifecyclehook-heartbeattimeout"></a>
  The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from <code>30</code> to <code>7200</code> seconds. The default value is <code>3600</code> seconds (1 hour).<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    heartbeatTimeout?: Value<number>;
    /** <code>NotificationMetadata</code>  <a name="cfn-autoscaling-lifecyclehook-notificationmetadata"></a>
  Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>1023</code><br />
  
  Pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    notificationMetadata?: Value<string>;
    /** <code>DefaultResult</code>  <a name="cfn-autoscaling-lifecyclehook-defaultresult"></a>
  The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. The default value is <code>ABANDON</code>.<br />
  Valid values: <code>CONTINUE</code> | <code>ABANDON</code><br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    defaultResult?: Value<string>;
    /** <code>NotificationTargetARN</code>  <a name="cfn-autoscaling-lifecyclehook-notificationtargetarn"></a>
  The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook. You can specify an Amazon SNS topic or an Amazon SQS queue.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    notificationTargetARN?: Value<string>;
    /** <code>RoleARN</code>  <a name="cfn-autoscaling-lifecyclehook-rolearn"></a>
  The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. For information about creating this role, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target">Configure a notification target for a lifecycle hook</a> in the
  Amazon EC2 Auto Scaling User Guide: br />
  Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    roleARN?: Value<string>;
}
