aws_sdk_autoscaling/operation/update_auto_scaling_group/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_auto_scaling_group::_update_auto_scaling_group_output::UpdateAutoScalingGroupOutputBuilder;
3
4pub use crate::operation::update_auto_scaling_group::_update_auto_scaling_group_input::UpdateAutoScalingGroupInputBuilder;
5
6impl crate::operation::update_auto_scaling_group::builders::UpdateAutoScalingGroupInputBuilder {
7 /// Sends a request with this input using the given client.
8 pub async fn send_with(
9 self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.update_auto_scaling_group();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `UpdateAutoScalingGroup`.
24///
25/// <p><b>We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.</b></p>
26/// <p>Updates the configuration for the specified Auto Scaling group.</p>
27/// <p>To update an Auto Scaling group, specify the name of the group and the property that you want to change. Any properties that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns.</p>
28/// <p>If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application.</p>
29/// <p>Note the following about changing <code>DesiredCapacity</code>, <code>MaxSize</code>, or <code>MinSize</code>:</p>
30/// <ul>
31/// <li>
32/// <p>If a scale-in activity occurs as a result of a new <code>DesiredCapacity</code> value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate.</p></li>
33/// <li>
34/// <p>If you specify a new value for <code>MinSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MinSize</code> is larger than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MinSize</code> value.</p></li>
35/// <li>
36/// <p>If you specify a new value for <code>MaxSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MaxSize</code> is smaller than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MaxSize</code> value.</p></li>
37/// </ul>
38/// <p>To see which properties have been set, call the <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAutoScalingGroups.html">DescribeAutoScalingGroups</a> API. To view the scaling policies for an Auto Scaling group, call the <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribePolicies.html">DescribePolicies</a> API. If the group has scaling policies, you can update them by calling the <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PutScalingPolicy.html">PutScalingPolicy</a> API.</p>
39#[derive(::std::clone::Clone, ::std::fmt::Debug)]
40pub struct UpdateAutoScalingGroupFluentBuilder {
41 handle: ::std::sync::Arc<crate::client::Handle>,
42 inner: crate::operation::update_auto_scaling_group::builders::UpdateAutoScalingGroupInputBuilder,
43 config_override: ::std::option::Option<crate::config::Builder>,
44}
45impl
46 crate::client::customize::internal::CustomizableSend<
47 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupOutput,
48 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupError,
49 > for UpdateAutoScalingGroupFluentBuilder
50{
51 fn send(
52 self,
53 config_override: crate::config::Builder,
54 ) -> crate::client::customize::internal::BoxFuture<
55 crate::client::customize::internal::SendResult<
56 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupOutput,
57 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupError,
58 >,
59 > {
60 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
61 }
62}
63impl UpdateAutoScalingGroupFluentBuilder {
64 /// Creates a new `UpdateAutoScalingGroupFluentBuilder`.
65 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
66 Self {
67 handle,
68 inner: ::std::default::Default::default(),
69 config_override: ::std::option::Option::None,
70 }
71 }
72 /// Access the UpdateAutoScalingGroup as a reference.
73 pub fn as_input(&self) -> &crate::operation::update_auto_scaling_group::builders::UpdateAutoScalingGroupInputBuilder {
74 &self.inner
75 }
76 /// Sends the request and returns the response.
77 ///
78 /// If an error occurs, an `SdkError` will be returned with additional details that
79 /// can be matched against.
80 ///
81 /// By default, any retryable failures will be retried twice. Retry behavior
82 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
83 /// set when configuring the client.
84 pub async fn send(
85 self,
86 ) -> ::std::result::Result<
87 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupOutput,
88 ::aws_smithy_runtime_api::client::result::SdkError<
89 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupError,
90 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
91 >,
92 > {
93 let input = self
94 .inner
95 .build()
96 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
97 let runtime_plugins = crate::operation::update_auto_scaling_group::UpdateAutoScalingGroup::operation_runtime_plugins(
98 self.handle.runtime_plugins.clone(),
99 &self.handle.conf,
100 self.config_override,
101 );
102 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroup::orchestrate(&runtime_plugins, input).await
103 }
104
105 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
106 pub fn customize(
107 self,
108 ) -> crate::client::customize::CustomizableOperation<
109 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupOutput,
110 crate::operation::update_auto_scaling_group::UpdateAutoScalingGroupError,
111 Self,
112 > {
113 crate::client::customize::CustomizableOperation::new(self)
114 }
115 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
116 self.set_config_override(::std::option::Option::Some(config_override.into()));
117 self
118 }
119
120 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
121 self.config_override = config_override;
122 self
123 }
124 /// <p>The name of the Auto Scaling group.</p>
125 pub fn auto_scaling_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
126 self.inner = self.inner.auto_scaling_group_name(input.into());
127 self
128 }
129 /// <p>The name of the Auto Scaling group.</p>
130 pub fn set_auto_scaling_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
131 self.inner = self.inner.set_auto_scaling_group_name(input);
132 self
133 }
134 /// <p>The name of the Auto Scaling group.</p>
135 pub fn get_auto_scaling_group_name(&self) -> &::std::option::Option<::std::string::String> {
136 self.inner.get_auto_scaling_group_name()
137 }
138 /// <p>The name of the launch configuration. If you specify <code>LaunchConfigurationName</code> in your update request, you can't specify <code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>.</p>
139 pub fn launch_configuration_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
140 self.inner = self.inner.launch_configuration_name(input.into());
141 self
142 }
143 /// <p>The name of the launch configuration. If you specify <code>LaunchConfigurationName</code> in your update request, you can't specify <code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>.</p>
144 pub fn set_launch_configuration_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
145 self.inner = self.inner.set_launch_configuration_name(input);
146 self
147 }
148 /// <p>The name of the launch configuration. If you specify <code>LaunchConfigurationName</code> in your update request, you can't specify <code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>.</p>
149 pub fn get_launch_configuration_name(&self) -> &::std::option::Option<::std::string::String> {
150 self.inner.get_launch_configuration_name()
151 }
152 /// <p>The launch template and version to use to specify the updates. If you specify <code>LaunchTemplate</code> in your update request, you can't specify <code>LaunchConfigurationName</code> or <code>MixedInstancesPolicy</code>.</p>
153 pub fn launch_template(mut self, input: crate::types::LaunchTemplateSpecification) -> Self {
154 self.inner = self.inner.launch_template(input);
155 self
156 }
157 /// <p>The launch template and version to use to specify the updates. If you specify <code>LaunchTemplate</code> in your update request, you can't specify <code>LaunchConfigurationName</code> or <code>MixedInstancesPolicy</code>.</p>
158 pub fn set_launch_template(mut self, input: ::std::option::Option<crate::types::LaunchTemplateSpecification>) -> Self {
159 self.inner = self.inner.set_launch_template(input);
160 self
161 }
162 /// <p>The launch template and version to use to specify the updates. If you specify <code>LaunchTemplate</code> in your update request, you can't specify <code>LaunchConfigurationName</code> or <code>MixedInstancesPolicy</code>.</p>
163 pub fn get_launch_template(&self) -> &::std::option::Option<crate::types::LaunchTemplateSpecification> {
164 self.inner.get_launch_template()
165 }
166 /// <p>The mixed instances policy. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
167 pub fn mixed_instances_policy(mut self, input: crate::types::MixedInstancesPolicy) -> Self {
168 self.inner = self.inner.mixed_instances_policy(input);
169 self
170 }
171 /// <p>The mixed instances policy. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
172 pub fn set_mixed_instances_policy(mut self, input: ::std::option::Option<crate::types::MixedInstancesPolicy>) -> Self {
173 self.inner = self.inner.set_mixed_instances_policy(input);
174 self
175 }
176 /// <p>The mixed instances policy. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
177 pub fn get_mixed_instances_policy(&self) -> &::std::option::Option<crate::types::MixedInstancesPolicy> {
178 self.inner.get_mixed_instances_policy()
179 }
180 /// <p>The minimum size of the Auto Scaling group.</p>
181 pub fn min_size(mut self, input: i32) -> Self {
182 self.inner = self.inner.min_size(input);
183 self
184 }
185 /// <p>The minimum size of the Auto Scaling group.</p>
186 pub fn set_min_size(mut self, input: ::std::option::Option<i32>) -> Self {
187 self.inner = self.inner.set_min_size(input);
188 self
189 }
190 /// <p>The minimum size of the Auto Scaling group.</p>
191 pub fn get_min_size(&self) -> &::std::option::Option<i32> {
192 self.inner.get_min_size()
193 }
194 /// <p>The maximum size of the Auto Scaling group.</p><note>
195 /// <p>With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above <code>MaxSize</code> to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above <code>MaxSize</code> by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group).</p>
196 /// </note>
197 pub fn max_size(mut self, input: i32) -> Self {
198 self.inner = self.inner.max_size(input);
199 self
200 }
201 /// <p>The maximum size of the Auto Scaling group.</p><note>
202 /// <p>With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above <code>MaxSize</code> to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above <code>MaxSize</code> by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group).</p>
203 /// </note>
204 pub fn set_max_size(mut self, input: ::std::option::Option<i32>) -> Self {
205 self.inner = self.inner.set_max_size(input);
206 self
207 }
208 /// <p>The maximum size of the Auto Scaling group.</p><note>
209 /// <p>With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above <code>MaxSize</code> to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above <code>MaxSize</code> by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group).</p>
210 /// </note>
211 pub fn get_max_size(&self) -> &::std::option::Option<i32> {
212 self.inner.get_max_size()
213 }
214 /// <p>The desired capacity is the initial capacity of the Auto Scaling group after this operation completes and the capacity it attempts to maintain. This number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group.</p>
215 pub fn desired_capacity(mut self, input: i32) -> Self {
216 self.inner = self.inner.desired_capacity(input);
217 self
218 }
219 /// <p>The desired capacity is the initial capacity of the Auto Scaling group after this operation completes and the capacity it attempts to maintain. This number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group.</p>
220 pub fn set_desired_capacity(mut self, input: ::std::option::Option<i32>) -> Self {
221 self.inner = self.inner.set_desired_capacity(input);
222 self
223 }
224 /// <p>The desired capacity is the initial capacity of the Auto Scaling group after this operation completes and the capacity it attempts to maintain. This number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group.</p>
225 pub fn get_desired_capacity(&self) -> &::std::option::Option<i32> {
226 self.inner.get_desired_capacity()
227 }
228 /// <p><i>Only needed if you use simple scaling policies.</i></p>
229 /// <p>The amount of time, in seconds, between one scaling activity ending and another one starting due to simple scaling policies. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
230 pub fn default_cooldown(mut self, input: i32) -> Self {
231 self.inner = self.inner.default_cooldown(input);
232 self
233 }
234 /// <p><i>Only needed if you use simple scaling policies.</i></p>
235 /// <p>The amount of time, in seconds, between one scaling activity ending and another one starting due to simple scaling policies. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
236 pub fn set_default_cooldown(mut self, input: ::std::option::Option<i32>) -> Self {
237 self.inner = self.inner.set_default_cooldown(input);
238 self
239 }
240 /// <p><i>Only needed if you use simple scaling policies.</i></p>
241 /// <p>The amount of time, in seconds, between one scaling activity ending and another one starting due to simple scaling policies. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
242 pub fn get_default_cooldown(&self) -> &::std::option::Option<i32> {
243 self.inner.get_default_cooldown()
244 }
245 ///
246 /// Appends an item to `AvailabilityZones`.
247 ///
248 /// To override the contents of this collection use [`set_availability_zones`](Self::set_availability_zones).
249 ///
250 /// <p>One or more Availability Zones for the group.</p>
251 pub fn availability_zones(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
252 self.inner = self.inner.availability_zones(input.into());
253 self
254 }
255 /// <p>One or more Availability Zones for the group.</p>
256 pub fn set_availability_zones(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
257 self.inner = self.inner.set_availability_zones(input);
258 self
259 }
260 /// <p>One or more Availability Zones for the group.</p>
261 pub fn get_availability_zones(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
262 self.inner.get_availability_zones()
263 }
264 /// <p>A comma-separated value string of one or more health check types.</p>
265 /// <p>The valid values are <code>EC2</code>, <code>EBS</code>, <code>ELB</code>, and <code>VPC_LATTICE</code>. <code>EC2</code> is the default health check and cannot be disabled. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html">Health checks for instances in an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
266 /// <p>Only specify <code>EC2</code> if you must clear a value that was previously set.</p>
267 pub fn health_check_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
268 self.inner = self.inner.health_check_type(input.into());
269 self
270 }
271 /// <p>A comma-separated value string of one or more health check types.</p>
272 /// <p>The valid values are <code>EC2</code>, <code>EBS</code>, <code>ELB</code>, and <code>VPC_LATTICE</code>. <code>EC2</code> is the default health check and cannot be disabled. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html">Health checks for instances in an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
273 /// <p>Only specify <code>EC2</code> if you must clear a value that was previously set.</p>
274 pub fn set_health_check_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
275 self.inner = self.inner.set_health_check_type(input);
276 self
277 }
278 /// <p>A comma-separated value string of one or more health check types.</p>
279 /// <p>The valid values are <code>EC2</code>, <code>EBS</code>, <code>ELB</code>, and <code>VPC_LATTICE</code>. <code>EC2</code> is the default health check and cannot be disabled. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html">Health checks for instances in an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
280 /// <p>Only specify <code>EC2</code> if you must clear a value that was previously set.</p>
281 pub fn get_health_check_type(&self) -> &::std::option::Option<::std::string::String> {
282 self.inner.get_health_check_type()
283 }
284 /// <p>The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the <code>InService</code> state. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/health-check-grace-period.html">Set the health check grace period for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
285 pub fn health_check_grace_period(mut self, input: i32) -> Self {
286 self.inner = self.inner.health_check_grace_period(input);
287 self
288 }
289 /// <p>The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the <code>InService</code> state. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/health-check-grace-period.html">Set the health check grace period for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
290 pub fn set_health_check_grace_period(mut self, input: ::std::option::Option<i32>) -> Self {
291 self.inner = self.inner.set_health_check_grace_period(input);
292 self
293 }
294 /// <p>The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the <code>InService</code> state. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/health-check-grace-period.html">Set the health check grace period for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
295 pub fn get_health_check_grace_period(&self) -> &::std::option::Option<i32> {
296 self.inner.get_health_check_grace_period()
297 }
298 /// <p>The name of an existing placement group into which to launch your instances. To remove the placement group setting, pass an empty string for <code>placement-group</code>. For more information about placement groups, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement groups</a> in the <i>Amazon EC2 User Guide</i>.</p><note>
299 /// <p>A <i>cluster</i> placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group.</p>
300 /// </note>
301 pub fn placement_group(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
302 self.inner = self.inner.placement_group(input.into());
303 self
304 }
305 /// <p>The name of an existing placement group into which to launch your instances. To remove the placement group setting, pass an empty string for <code>placement-group</code>. For more information about placement groups, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement groups</a> in the <i>Amazon EC2 User Guide</i>.</p><note>
306 /// <p>A <i>cluster</i> placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group.</p>
307 /// </note>
308 pub fn set_placement_group(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
309 self.inner = self.inner.set_placement_group(input);
310 self
311 }
312 /// <p>The name of an existing placement group into which to launch your instances. To remove the placement group setting, pass an empty string for <code>placement-group</code>. For more information about placement groups, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement groups</a> in the <i>Amazon EC2 User Guide</i>.</p><note>
313 /// <p>A <i>cluster</i> placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group.</p>
314 /// </note>
315 pub fn get_placement_group(&self) -> &::std::option::Option<::std::string::String> {
316 self.inner.get_placement_group()
317 }
318 /// <p>A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify must reside in those Availability Zones.</p>
319 pub fn vpc_zone_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
320 self.inner = self.inner.vpc_zone_identifier(input.into());
321 self
322 }
323 /// <p>A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify must reside in those Availability Zones.</p>
324 pub fn set_vpc_zone_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
325 self.inner = self.inner.set_vpc_zone_identifier(input);
326 self
327 }
328 /// <p>A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify must reside in those Availability Zones.</p>
329 pub fn get_vpc_zone_identifier(&self) -> &::std::option::Option<::std::string::String> {
330 self.inner.get_vpc_zone_identifier()
331 }
332 ///
333 /// Appends an item to `TerminationPolicies`.
334 ///
335 /// To override the contents of this collection use [`set_termination_policies`](Self::set_termination_policies).
336 ///
337 /// <p>A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html">Configure termination policies for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
338 /// <p>Valid values: <code>Default</code> | <code>AllocationStrategy</code> | <code>ClosestToNextInstanceHour</code> | <code>NewestInstance</code> | <code>OldestInstance</code> | <code>OldestLaunchConfiguration</code> | <code>OldestLaunchTemplate</code> | <code>arn:aws:lambda:region:account-id:function:my-function:my-alias</code></p>
339 pub fn termination_policies(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
340 self.inner = self.inner.termination_policies(input.into());
341 self
342 }
343 /// <p>A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html">Configure termination policies for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
344 /// <p>Valid values: <code>Default</code> | <code>AllocationStrategy</code> | <code>ClosestToNextInstanceHour</code> | <code>NewestInstance</code> | <code>OldestInstance</code> | <code>OldestLaunchConfiguration</code> | <code>OldestLaunchTemplate</code> | <code>arn:aws:lambda:region:account-id:function:my-function:my-alias</code></p>
345 pub fn set_termination_policies(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
346 self.inner = self.inner.set_termination_policies(input);
347 self
348 }
349 /// <p>A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html">Configure termination policies for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
350 /// <p>Valid values: <code>Default</code> | <code>AllocationStrategy</code> | <code>ClosestToNextInstanceHour</code> | <code>NewestInstance</code> | <code>OldestInstance</code> | <code>OldestLaunchConfiguration</code> | <code>OldestLaunchTemplate</code> | <code>arn:aws:lambda:region:account-id:function:my-function:my-alias</code></p>
351 pub fn get_termination_policies(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
352 self.inner.get_termination_policies()
353 }
354 /// <p>Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html">Use instance scale-in protection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
355 pub fn new_instances_protected_from_scale_in(mut self, input: bool) -> Self {
356 self.inner = self.inner.new_instances_protected_from_scale_in(input);
357 self
358 }
359 /// <p>Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html">Use instance scale-in protection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
360 pub fn set_new_instances_protected_from_scale_in(mut self, input: ::std::option::Option<bool>) -> Self {
361 self.inner = self.inner.set_new_instances_protected_from_scale_in(input);
362 self
363 }
364 /// <p>Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html">Use instance scale-in protection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
365 pub fn get_new_instances_protected_from_scale_in(&self) -> &::std::option::Option<bool> {
366 self.inner.get_new_instances_protected_from_scale_in()
367 }
368 /// <p>The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html">Service-linked roles</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
369 pub fn service_linked_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
370 self.inner = self.inner.service_linked_role_arn(input.into());
371 self
372 }
373 /// <p>The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html">Service-linked roles</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
374 pub fn set_service_linked_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
375 self.inner = self.inner.set_service_linked_role_arn(input);
376 self
377 }
378 /// <p>The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html">Service-linked roles</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
379 pub fn get_service_linked_role_arn(&self) -> &::std::option::Option<::std::string::String> {
380 self.inner.get_service_linked_role_arn()
381 }
382 /// <p>The maximum amount of time, in seconds, that an instance can be in service. The default is null. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds (1 day). To clear a previously set value, specify a new value of 0. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html">Replacing Auto Scaling instances based on maximum instance lifetime</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
383 pub fn max_instance_lifetime(mut self, input: i32) -> Self {
384 self.inner = self.inner.max_instance_lifetime(input);
385 self
386 }
387 /// <p>The maximum amount of time, in seconds, that an instance can be in service. The default is null. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds (1 day). To clear a previously set value, specify a new value of 0. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html">Replacing Auto Scaling instances based on maximum instance lifetime</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
388 pub fn set_max_instance_lifetime(mut self, input: ::std::option::Option<i32>) -> Self {
389 self.inner = self.inner.set_max_instance_lifetime(input);
390 self
391 }
392 /// <p>The maximum amount of time, in seconds, that an instance can be in service. The default is null. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds (1 day). To clear a previously set value, specify a new value of 0. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html">Replacing Auto Scaling instances based on maximum instance lifetime</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
393 pub fn get_max_instance_lifetime(&self) -> &::std::option::Option<i32> {
394 self.inner.get_max_instance_lifetime()
395 }
396 /// <p>Enables or disables Capacity Rebalancing. If Capacity Rebalancing is disabled, proactive replacement of at-risk Spot Instances does not occur. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html">Capacity Rebalancing in Auto Scaling to replace at-risk Spot Instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p><note>
397 /// <p>To suspend rebalancing across Availability Zones, use the <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_SuspendedProcess.html">SuspendProcesses</a> API.</p>
398 /// </note>
399 pub fn capacity_rebalance(mut self, input: bool) -> Self {
400 self.inner = self.inner.capacity_rebalance(input);
401 self
402 }
403 /// <p>Enables or disables Capacity Rebalancing. If Capacity Rebalancing is disabled, proactive replacement of at-risk Spot Instances does not occur. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html">Capacity Rebalancing in Auto Scaling to replace at-risk Spot Instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p><note>
404 /// <p>To suspend rebalancing across Availability Zones, use the <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_SuspendedProcess.html">SuspendProcesses</a> API.</p>
405 /// </note>
406 pub fn set_capacity_rebalance(mut self, input: ::std::option::Option<bool>) -> Self {
407 self.inner = self.inner.set_capacity_rebalance(input);
408 self
409 }
410 /// <p>Enables or disables Capacity Rebalancing. If Capacity Rebalancing is disabled, proactive replacement of at-risk Spot Instances does not occur. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html">Capacity Rebalancing in Auto Scaling to replace at-risk Spot Instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p><note>
411 /// <p>To suspend rebalancing across Availability Zones, use the <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_SuspendedProcess.html">SuspendProcesses</a> API.</p>
412 /// </note>
413 pub fn get_capacity_rebalance(&self) -> &::std::option::Option<bool> {
414 self.inner.get_capacity_rebalance()
415 }
416 /// <p>Reserved.</p>
417 pub fn context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
418 self.inner = self.inner.context(input.into());
419 self
420 }
421 /// <p>Reserved.</p>
422 pub fn set_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
423 self.inner = self.inner.set_context(input);
424 self
425 }
426 /// <p>Reserved.</p>
427 pub fn get_context(&self) -> &::std::option::Option<::std::string::String> {
428 self.inner.get_context()
429 }
430 /// <p>The unit of measurement for the value specified for desired capacity. Amazon EC2 Auto Scaling supports <code>DesiredCapacityType</code> for attribute-based instance type selection only. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html">Create a mixed instances group using attribute-based instance type selection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
431 /// <p>By default, Amazon EC2 Auto Scaling specifies <code>units</code>, which translates into number of instances.</p>
432 /// <p>Valid values: <code>units</code> | <code>vcpu</code> | <code>memory-mib</code></p>
433 pub fn desired_capacity_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
434 self.inner = self.inner.desired_capacity_type(input.into());
435 self
436 }
437 /// <p>The unit of measurement for the value specified for desired capacity. Amazon EC2 Auto Scaling supports <code>DesiredCapacityType</code> for attribute-based instance type selection only. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html">Create a mixed instances group using attribute-based instance type selection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
438 /// <p>By default, Amazon EC2 Auto Scaling specifies <code>units</code>, which translates into number of instances.</p>
439 /// <p>Valid values: <code>units</code> | <code>vcpu</code> | <code>memory-mib</code></p>
440 pub fn set_desired_capacity_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
441 self.inner = self.inner.set_desired_capacity_type(input);
442 self
443 }
444 /// <p>The unit of measurement for the value specified for desired capacity. Amazon EC2 Auto Scaling supports <code>DesiredCapacityType</code> for attribute-based instance type selection only. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html">Create a mixed instances group using attribute-based instance type selection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
445 /// <p>By default, Amazon EC2 Auto Scaling specifies <code>units</code>, which translates into number of instances.</p>
446 /// <p>Valid values: <code>units</code> | <code>vcpu</code> | <code>memory-mib</code></p>
447 pub fn get_desired_capacity_type(&self) -> &::std::option::Option<::std::string::String> {
448 self.inner.get_desired_capacity_type()
449 }
450 /// <p>The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the <code>InService</code> state.</p>
451 /// <p>During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after it replaces an instance before it moves on to replacing the next instance. Amazon EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics for new instances with existing instances in the Amazon CloudWatch metrics that are used for scaling, resulting in more reliable usage data. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html">Set the default instance warmup for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p><important>
452 /// <p>To manage various warm-up settings at the group level, we recommend that you set the default instance warmup, <i>even if it is set to 0 seconds</i>. To remove a value that you previously set, include the property but specify <code>-1</code> for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a value of <code>0</code> or other nominal value.</p>
453 /// </important>
454 pub fn default_instance_warmup(mut self, input: i32) -> Self {
455 self.inner = self.inner.default_instance_warmup(input);
456 self
457 }
458 /// <p>The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the <code>InService</code> state.</p>
459 /// <p>During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after it replaces an instance before it moves on to replacing the next instance. Amazon EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics for new instances with existing instances in the Amazon CloudWatch metrics that are used for scaling, resulting in more reliable usage data. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html">Set the default instance warmup for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p><important>
460 /// <p>To manage various warm-up settings at the group level, we recommend that you set the default instance warmup, <i>even if it is set to 0 seconds</i>. To remove a value that you previously set, include the property but specify <code>-1</code> for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a value of <code>0</code> or other nominal value.</p>
461 /// </important>
462 pub fn set_default_instance_warmup(mut self, input: ::std::option::Option<i32>) -> Self {
463 self.inner = self.inner.set_default_instance_warmup(input);
464 self
465 }
466 /// <p>The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the <code>InService</code> state.</p>
467 /// <p>During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after it replaces an instance before it moves on to replacing the next instance. Amazon EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics for new instances with existing instances in the Amazon CloudWatch metrics that are used for scaling, resulting in more reliable usage data. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html">Set the default instance warmup for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p><important>
468 /// <p>To manage various warm-up settings at the group level, we recommend that you set the default instance warmup, <i>even if it is set to 0 seconds</i>. To remove a value that you previously set, include the property but specify <code>-1</code> for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a value of <code>0</code> or other nominal value.</p>
469 /// </important>
470 pub fn get_default_instance_warmup(&self) -> &::std::option::Option<i32> {
471 self.inner.get_default_instance_warmup()
472 }
473 /// <p>An instance maintenance policy. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html">Set instance maintenance policy</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
474 pub fn instance_maintenance_policy(mut self, input: crate::types::InstanceMaintenancePolicy) -> Self {
475 self.inner = self.inner.instance_maintenance_policy(input);
476 self
477 }
478 /// <p>An instance maintenance policy. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html">Set instance maintenance policy</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
479 pub fn set_instance_maintenance_policy(mut self, input: ::std::option::Option<crate::types::InstanceMaintenancePolicy>) -> Self {
480 self.inner = self.inner.set_instance_maintenance_policy(input);
481 self
482 }
483 /// <p>An instance maintenance policy. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html">Set instance maintenance policy</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
484 pub fn get_instance_maintenance_policy(&self) -> &::std::option::Option<crate::types::InstanceMaintenancePolicy> {
485 self.inner.get_instance_maintenance_policy()
486 }
487 /// <p>The instance capacity distribution across Availability Zones.</p>
488 pub fn availability_zone_distribution(mut self, input: crate::types::AvailabilityZoneDistribution) -> Self {
489 self.inner = self.inner.availability_zone_distribution(input);
490 self
491 }
492 /// <p>The instance capacity distribution across Availability Zones.</p>
493 pub fn set_availability_zone_distribution(mut self, input: ::std::option::Option<crate::types::AvailabilityZoneDistribution>) -> Self {
494 self.inner = self.inner.set_availability_zone_distribution(input);
495 self
496 }
497 /// <p>The instance capacity distribution across Availability Zones.</p>
498 pub fn get_availability_zone_distribution(&self) -> &::std::option::Option<crate::types::AvailabilityZoneDistribution> {
499 self.inner.get_availability_zone_distribution()
500 }
501 /// <p>The policy for Availability Zone impairment.</p>
502 pub fn availability_zone_impairment_policy(mut self, input: crate::types::AvailabilityZoneImpairmentPolicy) -> Self {
503 self.inner = self.inner.availability_zone_impairment_policy(input);
504 self
505 }
506 /// <p>The policy for Availability Zone impairment.</p>
507 pub fn set_availability_zone_impairment_policy(mut self, input: ::std::option::Option<crate::types::AvailabilityZoneImpairmentPolicy>) -> Self {
508 self.inner = self.inner.set_availability_zone_impairment_policy(input);
509 self
510 }
511 /// <p>The policy for Availability Zone impairment.</p>
512 pub fn get_availability_zone_impairment_policy(&self) -> &::std::option::Option<crate::types::AvailabilityZoneImpairmentPolicy> {
513 self.inner.get_availability_zone_impairment_policy()
514 }
515 /// <p>If you enable zonal shift with cross-zone disabled load balancers, capacity could become imbalanced across Availability Zones. To skip the validation, specify <code>true</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-zonal-shift.html">Auto Scaling group zonal shift</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
516 pub fn skip_zonal_shift_validation(mut self, input: bool) -> Self {
517 self.inner = self.inner.skip_zonal_shift_validation(input);
518 self
519 }
520 /// <p>If you enable zonal shift with cross-zone disabled load balancers, capacity could become imbalanced across Availability Zones. To skip the validation, specify <code>true</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-zonal-shift.html">Auto Scaling group zonal shift</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
521 pub fn set_skip_zonal_shift_validation(mut self, input: ::std::option::Option<bool>) -> Self {
522 self.inner = self.inner.set_skip_zonal_shift_validation(input);
523 self
524 }
525 /// <p>If you enable zonal shift with cross-zone disabled load balancers, capacity could become imbalanced across Availability Zones. To skip the validation, specify <code>true</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-zonal-shift.html">Auto Scaling group zonal shift</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
526 pub fn get_skip_zonal_shift_validation(&self) -> &::std::option::Option<bool> {
527 self.inner.get_skip_zonal_shift_validation()
528 }
529 /// <p>The capacity reservation specification for the Auto Scaling group.</p>
530 pub fn capacity_reservation_specification(mut self, input: crate::types::CapacityReservationSpecification) -> Self {
531 self.inner = self.inner.capacity_reservation_specification(input);
532 self
533 }
534 /// <p>The capacity reservation specification for the Auto Scaling group.</p>
535 pub fn set_capacity_reservation_specification(mut self, input: ::std::option::Option<crate::types::CapacityReservationSpecification>) -> Self {
536 self.inner = self.inner.set_capacity_reservation_specification(input);
537 self
538 }
539 /// <p>The capacity reservation specification for the Auto Scaling group.</p>
540 pub fn get_capacity_reservation_specification(&self) -> &::std::option::Option<crate::types::CapacityReservationSpecification> {
541 self.inner.get_capacity_reservation_specification()
542 }
543 /// <p>The instance lifecycle policy for the Auto Scaling group. Use this to add, modify, or remove lifecycle policies that control instance behavior when an instance transitions through its lifecycle states. Configure retention triggers to specify when to preserve instances for manual intervention.</p>
544 pub fn instance_lifecycle_policy(mut self, input: crate::types::InstanceLifecyclePolicy) -> Self {
545 self.inner = self.inner.instance_lifecycle_policy(input);
546 self
547 }
548 /// <p>The instance lifecycle policy for the Auto Scaling group. Use this to add, modify, or remove lifecycle policies that control instance behavior when an instance transitions through its lifecycle states. Configure retention triggers to specify when to preserve instances for manual intervention.</p>
549 pub fn set_instance_lifecycle_policy(mut self, input: ::std::option::Option<crate::types::InstanceLifecyclePolicy>) -> Self {
550 self.inner = self.inner.set_instance_lifecycle_policy(input);
551 self
552 }
553 /// <p>The instance lifecycle policy for the Auto Scaling group. Use this to add, modify, or remove lifecycle policies that control instance behavior when an instance transitions through its lifecycle states. Configure retention triggers to specify when to preserve instances for manual intervention.</p>
554 pub fn get_instance_lifecycle_policy(&self) -> &::std::option::Option<crate::types::InstanceLifecyclePolicy> {
555 self.inner.get_instance_lifecycle_policy()
556 }
557}