1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`PutLifecycleHook`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`lifecycle_hook_name(impl Into<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::lifecycle_hook_name) / [`set_lifecycle_hook_name(Option<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_lifecycle_hook_name):<br>required: **true**<br><p>The name of the lifecycle hook.</p><br>
    ///   - [`auto_scaling_group_name(impl Into<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::auto_scaling_group_name) / [`set_auto_scaling_group_name(Option<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_auto_scaling_group_name):<br>required: **true**<br><p>The name of the Auto Scaling group.</p><br>
    ///   - [`lifecycle_transition(impl Into<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::lifecycle_transition) / [`set_lifecycle_transition(Option<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_lifecycle_transition):<br>required: **false**<br><p>The lifecycle transition. For Auto Scaling groups, there are two major lifecycle transitions.</p>  <ul>   <li> <p>To create a lifecycle hook for scale-out events, specify <code>autoscaling:EC2_INSTANCE_LAUNCHING</code>.</p> </li>   <li> <p>To create a lifecycle hook for scale-in events, specify <code>autoscaling:EC2_INSTANCE_TERMINATING</code>.</p> </li>  </ul>  <p>Required for new lifecycle hooks, but optional when updating existing hooks.</p><br>
    ///   - [`role_arn(impl Into<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::role_arn) / [`set_role_arn(Option<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_role_arn):<br>required: **false**<br><p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.</p>  <p>Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. Required for new lifecycle hooks, but optional when updating existing hooks.</p><br>
    ///   - [`notification_target_arn(impl Into<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::notification_target_arn) / [`set_notification_target_arn(Option<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_notification_target_arn):<br>required: **false**<br><p>The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in a wait state for the lifecycle hook. You can specify either an Amazon SNS topic or an Amazon SQS queue.</p>  <p>If you specify an empty string, this overrides the current ARN.</p>  <p>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.</p>  <p>When you specify a notification target, Amazon EC2 Auto Scaling sends it a test message. Test messages contain the following additional key-value pair: <code>"Event": "autoscaling:TEST_NOTIFICATION"</code>.</p><br>
    ///   - [`notification_metadata(impl Into<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::notification_metadata) / [`set_notification_metadata(Option<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_notification_metadata):<br>required: **false**<br><p>Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target.</p><br>
    ///   - [`heartbeat_timeout(i32)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::heartbeat_timeout) / [`set_heartbeat_timeout(Option<i32>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_heartbeat_timeout):<br>required: **false**<br><p>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).</p><br>
    ///   - [`default_result(impl Into<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::default_result) / [`set_default_result(Option<String>)`](crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::set_default_result):<br>required: **false**<br><p>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>.</p>  <p>Valid values: <code>CONTINUE</code> | <code>ABANDON</code> </p><br>
    /// - On success, responds with [`PutLifecycleHookOutput`](crate::operation::put_lifecycle_hook::PutLifecycleHookOutput)
    /// - On failure, responds with [`SdkError<PutLifecycleHookError>`](crate::operation::put_lifecycle_hook::PutLifecycleHookError)
    pub fn put_lifecycle_hook(&self) -> crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder {
        crate::operation::put_lifecycle_hook::builders::PutLifecycleHookFluentBuilder::new(self.handle.clone())
    }
}