aws-sdk-autoscaling 1.147.0 → 1.148.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc660561c07e6db128ddddeb91ef46697a03a3317b940538bfcad409e83994da
4
- data.tar.gz: cc46da88ed4a2742f044458bc34b55e44200056df893a099d06712af51146b08
3
+ metadata.gz: ee03f0484b35f156be655587e45e22b2d9954418fe2ac796bdb8adf8dcd41419
4
+ data.tar.gz: 9d66954d044c223ba7ff588eeee9875ff8f7caecbc2ad70994ef4868b2308274
5
5
  SHA512:
6
- metadata.gz: 4140bd9414f9dba3002d05261840b586651c2020e9badf7ce8d1ca7c790ea69203c1e9a6032c9903d9d7455086c8b2ab90759b96b8ae996b471c419ec360a3c4
7
- data.tar.gz: 93a50d93e0bb21704b2732e1b3b8b39b48799e9e702d6bf7c2d83caefd24efb4af0e70af2a9a601861c0f3ae545c7a64dbb3ac54748e8892df999e310bcb98e4
6
+ metadata.gz: 05df46078c67ec34a9d14ca2d3b889671c198de3ce1bede35caed2f9cb1eb25e6d52bbc1326137ced27e25e9faa2e5159fbae3709cd1ab763634f0b2c1c5c753
7
+ data.tar.gz: 966c2be9ecb726e9c5f572af5e6b39f60f42c5eb69962faf168e96ad4af33acbb6ea3235ec93a22d4ecdbb5defb447f81d209ef493ada33e76d08beea06a6a50
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.148.0 (2025-11-20)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for three new features: 1) Image ID overrides in mixed instances policy, 2) Replace Root Volume - a new strategy for Instance Refresh, and 3) Instance Lifecycle Policy for enhanced instance lifecycle management.
8
+
4
9
  1.147.0 (2025-11-18)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.147.0
1
+ 1.148.0
@@ -268,6 +268,15 @@ module Aws::AutoScaling
268
268
  data[:capacity_reservation_specification]
269
269
  end
270
270
 
271
+ # The instance lifecycle policy applied to this Auto Scaling group. This
272
+ # policy determines instance behavior when an instance transitions
273
+ # through its lifecycle states. It provides additional control over
274
+ # graceful instance management processes.
275
+ # @return [Types::InstanceLifecyclePolicy]
276
+ def instance_lifecycle_policy
277
+ data[:instance_lifecycle_policy]
278
+ end
279
+
271
280
  # @!endgroup
272
281
 
273
282
  # @return [Client]
@@ -1277,6 +1286,7 @@ module Aws::AutoScaling
1277
1286
  # },
1278
1287
  # },
1279
1288
  # },
1289
+ # image_id: "ImageId",
1280
1290
  # },
1281
1291
  # ],
1282
1292
  # },
@@ -1325,6 +1335,11 @@ module Aws::AutoScaling
1325
1335
  # capacity_reservation_resource_group_arns: ["ResourceName"],
1326
1336
  # },
1327
1337
  # },
1338
+ # instance_lifecycle_policy: {
1339
+ # retention_triggers: {
1340
+ # terminate_hook_abandon: "retain", # accepts retain, terminate
1341
+ # },
1342
+ # },
1328
1343
  # })
1329
1344
  # @param [Hash] options ({})
1330
1345
  # @option options [String] :launch_configuration_name
@@ -1545,6 +1560,12 @@ module Aws::AutoScaling
1545
1560
  # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-zonal-shift.html
1546
1561
  # @option options [Types::CapacityReservationSpecification] :capacity_reservation_specification
1547
1562
  # The capacity reservation specification for the Auto Scaling group.
1563
+ # @option options [Types::InstanceLifecyclePolicy] :instance_lifecycle_policy
1564
+ # The instance lifecycle policy for the Auto Scaling group. Use this to
1565
+ # add, modify, or remove lifecycle policies that control instance
1566
+ # behavior when an instance transitions through its lifecycle states.
1567
+ # Configure retention triggers to specify when to preserve instances for
1568
+ # manual intervention.
1548
1569
  # @return [AutoScalingGroup]
1549
1570
  def update(options = {})
1550
1571
  options = options.merge(auto_scaling_group_name: @name)
@@ -1380,6 +1380,18 @@ module Aws::AutoScaling
1380
1380
  # @option params [Types::CapacityReservationSpecification] :capacity_reservation_specification
1381
1381
  # The capacity reservation specification for the Auto Scaling group.
1382
1382
  #
1383
+ # @option params [Types::InstanceLifecyclePolicy] :instance_lifecycle_policy
1384
+ # The instance lifecycle policy for the Auto Scaling group. This policy
1385
+ # controls instance behavior when an instance transitions through its
1386
+ # lifecycle states. Configure retention triggers to specify when
1387
+ # instances should move to a `Retained` state for manual intervention
1388
+ # instead of automatic termination.
1389
+ #
1390
+ # <note markdown="1"> Instances in a Retained state will continue to incur standard EC2
1391
+ # charges until terminated.
1392
+ #
1393
+ # </note>
1394
+ #
1383
1395
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1384
1396
  #
1385
1397
  #
@@ -1592,6 +1604,7 @@ module Aws::AutoScaling
1592
1604
  # },
1593
1605
  # },
1594
1606
  # },
1607
+ # image_id: "ImageId",
1595
1608
  # },
1596
1609
  # ],
1597
1610
  # },
@@ -1669,6 +1682,11 @@ module Aws::AutoScaling
1669
1682
  # capacity_reservation_resource_group_arns: ["ResourceName"],
1670
1683
  # },
1671
1684
  # },
1685
+ # instance_lifecycle_policy: {
1686
+ # retention_triggers: {
1687
+ # terminate_hook_abandon: "retain", # accepts retain, terminate
1688
+ # },
1689
+ # },
1672
1690
  # })
1673
1691
  #
1674
1692
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroup AWS API Documentation
@@ -2716,6 +2734,7 @@ module Aws::AutoScaling
2716
2734
  # resp.auto_scaling_groups[0].mixed_instances_policy.launch_template.overrides[0].instance_requirements.allowed_instance_types[0] #=> String
2717
2735
  # resp.auto_scaling_groups[0].mixed_instances_policy.launch_template.overrides[0].instance_requirements.baseline_performance_factors.cpu.references #=> Array
2718
2736
  # resp.auto_scaling_groups[0].mixed_instances_policy.launch_template.overrides[0].instance_requirements.baseline_performance_factors.cpu.references[0].instance_family #=> String
2737
+ # resp.auto_scaling_groups[0].mixed_instances_policy.launch_template.overrides[0].image_id #=> String
2719
2738
  # resp.auto_scaling_groups[0].mixed_instances_policy.instances_distribution.on_demand_allocation_strategy #=> String
2720
2739
  # resp.auto_scaling_groups[0].mixed_instances_policy.instances_distribution.on_demand_base_capacity #=> Integer
2721
2740
  # resp.auto_scaling_groups[0].mixed_instances_policy.instances_distribution.on_demand_percentage_above_base_capacity #=> Integer
@@ -2745,6 +2764,7 @@ module Aws::AutoScaling
2745
2764
  # resp.auto_scaling_groups[0].instances[0].launch_template.launch_template_id #=> String
2746
2765
  # resp.auto_scaling_groups[0].instances[0].launch_template.launch_template_name #=> String
2747
2766
  # resp.auto_scaling_groups[0].instances[0].launch_template.version #=> String
2767
+ # resp.auto_scaling_groups[0].instances[0].image_id #=> String
2748
2768
  # resp.auto_scaling_groups[0].instances[0].protected_from_scale_in #=> Boolean
2749
2769
  # resp.auto_scaling_groups[0].instances[0].weighted_capacity #=> String
2750
2770
  # resp.auto_scaling_groups[0].created_time #=> Time
@@ -2791,6 +2811,7 @@ module Aws::AutoScaling
2791
2811
  # resp.auto_scaling_groups[0].capacity_reservation_specification.capacity_reservation_target.capacity_reservation_ids[0] #=> String
2792
2812
  # resp.auto_scaling_groups[0].capacity_reservation_specification.capacity_reservation_target.capacity_reservation_resource_group_arns #=> Array
2793
2813
  # resp.auto_scaling_groups[0].capacity_reservation_specification.capacity_reservation_target.capacity_reservation_resource_group_arns[0] #=> String
2814
+ # resp.auto_scaling_groups[0].instance_lifecycle_policy.retention_triggers.terminate_hook_abandon #=> String, one of "retain", "terminate"
2794
2815
  # resp.next_token #=> String
2795
2816
  #
2796
2817
  #
@@ -2882,6 +2903,7 @@ module Aws::AutoScaling
2882
2903
  # resp.auto_scaling_instances[0].launch_template.launch_template_id #=> String
2883
2904
  # resp.auto_scaling_instances[0].launch_template.launch_template_name #=> String
2884
2905
  # resp.auto_scaling_instances[0].launch_template.version #=> String
2906
+ # resp.auto_scaling_instances[0].image_id #=> String
2885
2907
  # resp.auto_scaling_instances[0].protected_from_scale_in #=> Boolean
2886
2908
  # resp.auto_scaling_instances[0].weighted_capacity #=> String
2887
2909
  # resp.next_token #=> String
@@ -3129,6 +3151,7 @@ module Aws::AutoScaling
3129
3151
  # resp.instance_refreshes[0].desired_configuration.mixed_instances_policy.launch_template.overrides[0].instance_requirements.allowed_instance_types[0] #=> String
3130
3152
  # resp.instance_refreshes[0].desired_configuration.mixed_instances_policy.launch_template.overrides[0].instance_requirements.baseline_performance_factors.cpu.references #=> Array
3131
3153
  # resp.instance_refreshes[0].desired_configuration.mixed_instances_policy.launch_template.overrides[0].instance_requirements.baseline_performance_factors.cpu.references[0].instance_family #=> String
3154
+ # resp.instance_refreshes[0].desired_configuration.mixed_instances_policy.launch_template.overrides[0].image_id #=> String
3132
3155
  # resp.instance_refreshes[0].desired_configuration.mixed_instances_policy.instances_distribution.on_demand_allocation_strategy #=> String
3133
3156
  # resp.instance_refreshes[0].desired_configuration.mixed_instances_policy.instances_distribution.on_demand_base_capacity #=> Integer
3134
3157
  # resp.instance_refreshes[0].desired_configuration.mixed_instances_policy.instances_distribution.on_demand_percentage_above_base_capacity #=> Integer
@@ -3143,6 +3166,7 @@ module Aws::AutoScaling
3143
3166
  # resp.instance_refreshes[0].rollback_details.progress_details_on_rollback.live_pool_progress.instances_to_update #=> Integer
3144
3167
  # resp.instance_refreshes[0].rollback_details.progress_details_on_rollback.warm_pool_progress.percentage_complete #=> Integer
3145
3168
  # resp.instance_refreshes[0].rollback_details.progress_details_on_rollback.warm_pool_progress.instances_to_update #=> Integer
3169
+ # resp.instance_refreshes[0].strategy #=> String, one of "Rolling", "ReplaceRootVolume"
3146
3170
  # resp.next_token #=> String
3147
3171
  #
3148
3172
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeInstanceRefreshes AWS API Documentation
@@ -4023,7 +4047,7 @@ module Aws::AutoScaling
4023
4047
  # resp.activities[0].cause #=> String
4024
4048
  # resp.activities[0].start_time #=> Time
4025
4049
  # resp.activities[0].end_time #=> Time
4026
- # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining"
4050
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining", "WaitingForInPlaceUpdateToStart", "WaitingForInPlaceUpdateToFinalize", "InPlaceUpdateInProgress"
4027
4051
  # resp.activities[0].status_message #=> String
4028
4052
  # resp.activities[0].progress #=> Integer
4029
4053
  # resp.activities[0].details #=> String
@@ -4502,6 +4526,7 @@ module Aws::AutoScaling
4502
4526
  # resp.instances[0].launch_template.launch_template_id #=> String
4503
4527
  # resp.instances[0].launch_template.launch_template_name #=> String
4504
4528
  # resp.instances[0].launch_template.version #=> String
4529
+ # resp.instances[0].image_id #=> String
4505
4530
  # resp.instances[0].protected_from_scale_in #=> Boolean
4506
4531
  # resp.instances[0].weighted_capacity #=> String
4507
4532
  # resp.next_token #=> String
@@ -4596,7 +4621,7 @@ module Aws::AutoScaling
4596
4621
  # resp.activities[0].cause #=> String
4597
4622
  # resp.activities[0].start_time #=> Time
4598
4623
  # resp.activities[0].end_time #=> Time
4599
- # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining"
4624
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining", "WaitingForInPlaceUpdateToStart", "WaitingForInPlaceUpdateToFinalize", "InPlaceUpdateInProgress"
4600
4625
  # resp.activities[0].status_message #=> String
4601
4626
  # resp.activities[0].progress #=> Integer
4602
4627
  # resp.activities[0].details #=> String
@@ -5077,7 +5102,7 @@ module Aws::AutoScaling
5077
5102
  # resp.activities[0].cause #=> String
5078
5103
  # resp.activities[0].start_time #=> Time
5079
5104
  # resp.activities[0].end_time #=> Time
5080
- # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining"
5105
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining", "WaitingForInPlaceUpdateToStart", "WaitingForInPlaceUpdateToFinalize", "InPlaceUpdateInProgress"
5081
5106
  # resp.activities[0].status_message #=> String
5082
5107
  # resp.activities[0].progress #=> Integer
5083
5108
  # resp.activities[0].details #=> String
@@ -5232,7 +5257,7 @@ module Aws::AutoScaling
5232
5257
  # resp.activities[0].cause #=> String
5233
5258
  # resp.activities[0].start_time #=> Time
5234
5259
  # resp.activities[0].end_time #=> Time
5235
- # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining"
5260
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining", "WaitingForInPlaceUpdateToStart", "WaitingForInPlaceUpdateToFinalize", "InPlaceUpdateInProgress"
5236
5261
  # resp.activities[0].status_message #=> String
5237
5262
  # resp.activities[0].progress #=> Integer
5238
5263
  # resp.activities[0].details #=> String
@@ -6823,7 +6848,7 @@ module Aws::AutoScaling
6823
6848
  #
6824
6849
  # resp = client.start_instance_refresh({
6825
6850
  # auto_scaling_group_name: "XmlStringMaxLen255", # required
6826
- # strategy: "Rolling", # accepts Rolling
6851
+ # strategy: "Rolling", # accepts Rolling, ReplaceRootVolume
6827
6852
  # desired_configuration: {
6828
6853
  # launch_template: {
6829
6854
  # launch_template_id: "XmlStringMaxLen255",
@@ -6908,6 +6933,7 @@ module Aws::AutoScaling
6908
6933
  # },
6909
6934
  # },
6910
6935
  # },
6936
+ # image_id: "ImageId",
6911
6937
  # },
6912
6938
  # ],
6913
6939
  # },
@@ -7084,7 +7110,7 @@ module Aws::AutoScaling
7084
7110
  # resp.activity.cause #=> String
7085
7111
  # resp.activity.start_time #=> Time
7086
7112
  # resp.activity.end_time #=> Time
7087
- # resp.activity.status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining"
7113
+ # resp.activity.status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled", "WaitingForConnectionDraining", "WaitingForInPlaceUpdateToStart", "WaitingForInPlaceUpdateToFinalize", "InPlaceUpdateInProgress"
7088
7114
  # resp.activity.status_message #=> String
7089
7115
  # resp.activity.progress #=> Integer
7090
7116
  # resp.activity.details #=> String
@@ -7401,6 +7427,13 @@ module Aws::AutoScaling
7401
7427
  # @option params [Types::CapacityReservationSpecification] :capacity_reservation_specification
7402
7428
  # The capacity reservation specification for the Auto Scaling group.
7403
7429
  #
7430
+ # @option params [Types::InstanceLifecyclePolicy] :instance_lifecycle_policy
7431
+ # The instance lifecycle policy for the Auto Scaling group. Use this to
7432
+ # add, modify, or remove lifecycle policies that control instance
7433
+ # behavior when an instance transitions through its lifecycle states.
7434
+ # Configure retention triggers to specify when to preserve instances for
7435
+ # manual intervention.
7436
+ #
7404
7437
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
7405
7438
  #
7406
7439
  #
@@ -7507,6 +7540,7 @@ module Aws::AutoScaling
7507
7540
  # },
7508
7541
  # },
7509
7542
  # },
7543
+ # image_id: "ImageId",
7510
7544
  # },
7511
7545
  # ],
7512
7546
  # },
@@ -7555,6 +7589,11 @@ module Aws::AutoScaling
7555
7589
  # capacity_reservation_resource_group_arns: ["ResourceName"],
7556
7590
  # },
7557
7591
  # },
7592
+ # instance_lifecycle_policy: {
7593
+ # retention_triggers: {
7594
+ # terminate_hook_abandon: "retain", # accepts retain, terminate
7595
+ # },
7596
+ # },
7558
7597
  # })
7559
7598
  #
7560
7599
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroup AWS API Documentation
@@ -7584,7 +7623,7 @@ module Aws::AutoScaling
7584
7623
  tracer: tracer
7585
7624
  )
7586
7625
  context[:gem_name] = 'aws-sdk-autoscaling'
7587
- context[:gem_version] = '1.147.0'
7626
+ context[:gem_version] = '1.148.0'
7588
7627
  Seahorse::Client::Request.new(handlers, context)
7589
7628
  end
7590
7629
 
@@ -181,6 +181,7 @@ module Aws::AutoScaling
181
181
  HeartbeatTimeout = Shapes::IntegerShape.new(name: 'HeartbeatTimeout')
182
182
  HonorCooldown = Shapes::BooleanShape.new(name: 'HonorCooldown')
183
183
  IdempotentParameterMismatchError = Shapes::StructureShape.new(name: 'IdempotentParameterMismatchError', error: {"code" => "IdempotentParameterMismatch", "httpStatusCode" => 400, "senderFault" => true})
184
+ ImageId = Shapes::StringShape.new(name: 'ImageId')
184
185
  ImpairedZoneHealthCheckBehavior = Shapes::StringShape.new(name: 'ImpairedZoneHealthCheckBehavior')
185
186
  IncludeDeletedGroups = Shapes::BooleanShape.new(name: 'IncludeDeletedGroups')
186
187
  IncludeInstances = Shapes::BooleanShape.new(name: 'IncludeInstances')
@@ -190,6 +191,7 @@ module Aws::AutoScaling
190
191
  InstanceGeneration = Shapes::StringShape.new(name: 'InstanceGeneration')
191
192
  InstanceGenerations = Shapes::ListShape.new(name: 'InstanceGenerations')
192
193
  InstanceIds = Shapes::ListShape.new(name: 'InstanceIds')
194
+ InstanceLifecyclePolicy = Shapes::StructureShape.new(name: 'InstanceLifecyclePolicy')
193
195
  InstanceMaintenancePolicy = Shapes::StructureShape.new(name: 'InstanceMaintenancePolicy')
194
196
  InstanceMetadataEndpointState = Shapes::StringShape.new(name: 'InstanceMetadataEndpointState')
195
197
  InstanceMetadataHttpPutResponseHopLimit = Shapes::IntegerShape.new(name: 'InstanceMetadataHttpPutResponseHopLimit')
@@ -346,6 +348,8 @@ module Aws::AutoScaling
346
348
  ResourceContentionFault = Shapes::StructureShape.new(name: 'ResourceContentionFault', error: {"code" => "ResourceContention", "httpStatusCode" => 500, "senderFault" => true})
347
349
  ResourceInUseFault = Shapes::StructureShape.new(name: 'ResourceInUseFault', error: {"code" => "ResourceInUse", "httpStatusCode" => 400, "senderFault" => true})
348
350
  ResourceName = Shapes::StringShape.new(name: 'ResourceName')
351
+ RetentionAction = Shapes::StringShape.new(name: 'RetentionAction')
352
+ RetentionTriggers = Shapes::StructureShape.new(name: 'RetentionTriggers')
349
353
  RetryStrategy = Shapes::StringShape.new(name: 'RetryStrategy')
350
354
  ReturnData = Shapes::BooleanShape.new(name: 'ReturnData')
351
355
  ReuseOnScaleIn = Shapes::BooleanShape.new(name: 'ReuseOnScaleIn')
@@ -554,6 +558,7 @@ module Aws::AutoScaling
554
558
  AutoScalingGroup.add_member(:availability_zone_distribution, Shapes::ShapeRef.new(shape: AvailabilityZoneDistribution, location_name: "AvailabilityZoneDistribution"))
555
559
  AutoScalingGroup.add_member(:availability_zone_impairment_policy, Shapes::ShapeRef.new(shape: AvailabilityZoneImpairmentPolicy, location_name: "AvailabilityZoneImpairmentPolicy"))
556
560
  AutoScalingGroup.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: CapacityReservationSpecification, location_name: "CapacityReservationSpecification"))
561
+ AutoScalingGroup.add_member(:instance_lifecycle_policy, Shapes::ShapeRef.new(shape: InstanceLifecyclePolicy, location_name: "InstanceLifecyclePolicy"))
557
562
  AutoScalingGroup.struct_class = Types::AutoScalingGroup
558
563
 
559
564
  AutoScalingGroupNames.member = Shapes::ShapeRef.new(shape: XmlStringMaxLen255)
@@ -579,6 +584,7 @@ module Aws::AutoScaling
579
584
  AutoScalingInstanceDetails.add_member(:health_status, Shapes::ShapeRef.new(shape: XmlStringMaxLen32, required: true, location_name: "HealthStatus"))
580
585
  AutoScalingInstanceDetails.add_member(:launch_configuration_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "LaunchConfigurationName"))
581
586
  AutoScalingInstanceDetails.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplate"))
587
+ AutoScalingInstanceDetails.add_member(:image_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "ImageId"))
582
588
  AutoScalingInstanceDetails.add_member(:protected_from_scale_in, Shapes::ShapeRef.new(shape: InstanceProtected, required: true, location_name: "ProtectedFromScaleIn"))
583
589
  AutoScalingInstanceDetails.add_member(:weighted_capacity, Shapes::ShapeRef.new(shape: XmlStringMaxLen32, location_name: "WeightedCapacity"))
584
590
  AutoScalingInstanceDetails.struct_class = Types::AutoScalingInstanceDetails
@@ -706,6 +712,7 @@ module Aws::AutoScaling
706
712
  CreateAutoScalingGroupType.add_member(:availability_zone_impairment_policy, Shapes::ShapeRef.new(shape: AvailabilityZoneImpairmentPolicy, location_name: "AvailabilityZoneImpairmentPolicy"))
707
713
  CreateAutoScalingGroupType.add_member(:skip_zonal_shift_validation, Shapes::ShapeRef.new(shape: SkipZonalShiftValidation, location_name: "SkipZonalShiftValidation"))
708
714
  CreateAutoScalingGroupType.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: CapacityReservationSpecification, location_name: "CapacityReservationSpecification"))
715
+ CreateAutoScalingGroupType.add_member(:instance_lifecycle_policy, Shapes::ShapeRef.new(shape: InstanceLifecyclePolicy, location_name: "InstanceLifecyclePolicy"))
709
716
  CreateAutoScalingGroupType.struct_class = Types::CreateAutoScalingGroupType
710
717
 
711
718
  CreateLaunchConfigurationType.add_member(:launch_configuration_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, required: true, location_name: "LaunchConfigurationName"))
@@ -1002,6 +1009,7 @@ module Aws::AutoScaling
1002
1009
  Instance.add_member(:health_status, Shapes::ShapeRef.new(shape: XmlStringMaxLen32, required: true, location_name: "HealthStatus"))
1003
1010
  Instance.add_member(:launch_configuration_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "LaunchConfigurationName"))
1004
1011
  Instance.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplate"))
1012
+ Instance.add_member(:image_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "ImageId"))
1005
1013
  Instance.add_member(:protected_from_scale_in, Shapes::ShapeRef.new(shape: InstanceProtected, required: true, location_name: "ProtectedFromScaleIn"))
1006
1014
  Instance.add_member(:weighted_capacity, Shapes::ShapeRef.new(shape: XmlStringMaxLen32, location_name: "WeightedCapacity"))
1007
1015
  Instance.struct_class = Types::Instance
@@ -1020,6 +1028,9 @@ module Aws::AutoScaling
1020
1028
 
1021
1029
  InstanceIds.member = Shapes::ShapeRef.new(shape: XmlStringMaxLen19)
1022
1030
 
1031
+ InstanceLifecyclePolicy.add_member(:retention_triggers, Shapes::ShapeRef.new(shape: RetentionTriggers, location_name: "RetentionTriggers"))
1032
+ InstanceLifecyclePolicy.struct_class = Types::InstanceLifecyclePolicy
1033
+
1023
1034
  InstanceMaintenancePolicy.add_member(:min_healthy_percentage, Shapes::ShapeRef.new(shape: IntPercentResettable, location_name: "MinHealthyPercentage"))
1024
1035
  InstanceMaintenancePolicy.add_member(:max_healthy_percentage, Shapes::ShapeRef.new(shape: IntPercent100To200Resettable, location_name: "MaxHealthyPercentage"))
1025
1036
  InstanceMaintenancePolicy.struct_class = Types::InstanceMaintenancePolicy
@@ -1044,6 +1055,7 @@ module Aws::AutoScaling
1044
1055
  InstanceRefresh.add_member(:preferences, Shapes::ShapeRef.new(shape: RefreshPreferences, location_name: "Preferences"))
1045
1056
  InstanceRefresh.add_member(:desired_configuration, Shapes::ShapeRef.new(shape: DesiredConfiguration, location_name: "DesiredConfiguration"))
1046
1057
  InstanceRefresh.add_member(:rollback_details, Shapes::ShapeRef.new(shape: RollbackDetails, location_name: "RollbackDetails"))
1058
+ InstanceRefresh.add_member(:strategy, Shapes::ShapeRef.new(shape: RefreshStrategy, location_name: "Strategy"))
1047
1059
  InstanceRefresh.struct_class = Types::InstanceRefresh
1048
1060
 
1049
1061
  InstanceRefreshIds.member = Shapes::ShapeRef.new(shape: XmlStringMaxLen255)
@@ -1183,6 +1195,7 @@ module Aws::AutoScaling
1183
1195
  LaunchTemplateOverrides.add_member(:weighted_capacity, Shapes::ShapeRef.new(shape: XmlStringMaxLen32, location_name: "WeightedCapacity"))
1184
1196
  LaunchTemplateOverrides.add_member(:launch_template_specification, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplateSpecification"))
1185
1197
  LaunchTemplateOverrides.add_member(:instance_requirements, Shapes::ShapeRef.new(shape: InstanceRequirements, location_name: "InstanceRequirements"))
1198
+ LaunchTemplateOverrides.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "ImageId"))
1186
1199
  LaunchTemplateOverrides.struct_class = Types::LaunchTemplateOverrides
1187
1200
 
1188
1201
  LaunchTemplateSpecification.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "LaunchTemplateId"))
@@ -1463,6 +1476,9 @@ module Aws::AutoScaling
1463
1476
  ResourceInUseFault.add_member(:message, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "message"))
1464
1477
  ResourceInUseFault.struct_class = Types::ResourceInUseFault
1465
1478
 
1479
+ RetentionTriggers.add_member(:terminate_hook_abandon, Shapes::ShapeRef.new(shape: RetentionAction, location_name: "TerminateHookAbandon"))
1480
+ RetentionTriggers.struct_class = Types::RetentionTriggers
1481
+
1466
1482
  RollbackDetails.add_member(:rollback_reason, Shapes::ShapeRef.new(shape: XmlStringMaxLen1023, location_name: "RollbackReason"))
1467
1483
  RollbackDetails.add_member(:rollback_start_time, Shapes::ShapeRef.new(shape: TimestampType, location_name: "RollbackStartTime"))
1468
1484
  RollbackDetails.add_member(:percentage_complete_on_rollback, Shapes::ShapeRef.new(shape: IntPercent, location_name: "PercentageCompleteOnRollback"))
@@ -1678,6 +1694,7 @@ module Aws::AutoScaling
1678
1694
  UpdateAutoScalingGroupType.add_member(:availability_zone_impairment_policy, Shapes::ShapeRef.new(shape: AvailabilityZoneImpairmentPolicy, location_name: "AvailabilityZoneImpairmentPolicy"))
1679
1695
  UpdateAutoScalingGroupType.add_member(:skip_zonal_shift_validation, Shapes::ShapeRef.new(shape: SkipZonalShiftValidation, location_name: "SkipZonalShiftValidation"))
1680
1696
  UpdateAutoScalingGroupType.add_member(:capacity_reservation_specification, Shapes::ShapeRef.new(shape: CapacityReservationSpecification, location_name: "CapacityReservationSpecification"))
1697
+ UpdateAutoScalingGroupType.add_member(:instance_lifecycle_policy, Shapes::ShapeRef.new(shape: InstanceLifecyclePolicy, location_name: "InstanceLifecyclePolicy"))
1681
1698
  UpdateAutoScalingGroupType.struct_class = Types::UpdateAutoScalingGroupType
1682
1699
 
1683
1700
  VCpuCountRequest.add_member(:min, Shapes::ShapeRef.new(shape: NullablePositiveInteger, required: true, location_name: "Min"))
@@ -1730,6 +1747,7 @@ module Aws::AutoScaling
1730
1747
  o.output = Shapes::ShapeRef.new(shape: AttachLoadBalancerTargetGroupsResultType)
1731
1748
  o.errors << Shapes::ShapeRef.new(shape: ResourceContentionFault)
1732
1749
  o.errors << Shapes::ShapeRef.new(shape: ServiceLinkedRoleFailure)
1750
+ o.errors << Shapes::ShapeRef.new(shape: InstanceRefreshInProgressFault)
1733
1751
  end)
1734
1752
 
1735
1753
  api.add_operation(:attach_load_balancers, Seahorse::Model::Operation.new.tap do |o|
@@ -1740,6 +1758,7 @@ module Aws::AutoScaling
1740
1758
  o.output = Shapes::ShapeRef.new(shape: AttachLoadBalancersResultType)
1741
1759
  o.errors << Shapes::ShapeRef.new(shape: ResourceContentionFault)
1742
1760
  o.errors << Shapes::ShapeRef.new(shape: ServiceLinkedRoleFailure)
1761
+ o.errors << Shapes::ShapeRef.new(shape: InstanceRefreshInProgressFault)
1743
1762
  end)
1744
1763
 
1745
1764
  api.add_operation(:attach_traffic_sources, Seahorse::Model::Operation.new.tap do |o|
@@ -1750,6 +1769,7 @@ module Aws::AutoScaling
1750
1769
  o.output = Shapes::ShapeRef.new(shape: AttachTrafficSourcesResultType)
1751
1770
  o.errors << Shapes::ShapeRef.new(shape: ResourceContentionFault)
1752
1771
  o.errors << Shapes::ShapeRef.new(shape: ServiceLinkedRoleFailure)
1772
+ o.errors << Shapes::ShapeRef.new(shape: InstanceRefreshInProgressFault)
1753
1773
  end)
1754
1774
 
1755
1775
  api.add_operation(:batch_delete_scheduled_action, Seahorse::Model::Operation.new.tap do |o|
@@ -2341,6 +2361,7 @@ module Aws::AutoScaling
2341
2361
  o.output = Shapes::ShapeRef.new(shape: PutWarmPoolAnswer)
2342
2362
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededFault)
2343
2363
  o.errors << Shapes::ShapeRef.new(shape: ResourceContentionFault)
2364
+ o.errors << Shapes::ShapeRef.new(shape: InstanceRefreshInProgressFault)
2344
2365
  end)
2345
2366
 
2346
2367
  api.add_operation(:record_lifecycle_action_heartbeat, Seahorse::Model::Operation.new.tap do |o|
@@ -99,6 +99,28 @@ module Aws::AutoScaling
99
99
  data[:launch_template]
100
100
  end
101
101
 
102
+ # The ID of the Amazon Machine Image (AMI) associated with the instance.
103
+ # This field shows the current AMI ID of the instance's root volume. It
104
+ # may differ from the original AMI used when the instance was first
105
+ # launched.
106
+ #
107
+ # This field appears for:
108
+ #
109
+ # * Instances with root volume replacements through Instance Refresh
110
+ #
111
+ # * Instances launched with AMI overrides
112
+ #
113
+ # This field won't appear for:
114
+ #
115
+ # * Existing instances launched from Launch Templates without overrides
116
+ #
117
+ # * Existing instances that didn’t have their root volume replaced
118
+ # through Instance Refresh
119
+ # @return [String]
120
+ def image_id
121
+ data[:image_id]
122
+ end
123
+
102
124
  # Indicates whether the instance is protected from termination by Amazon
103
125
  # EC2 Auto Scaling when scaling in.
104
126
  # @return [Boolean]
@@ -123,6 +123,7 @@ module Aws::AutoScaling
123
123
  # },
124
124
  # },
125
125
  # },
126
+ # image_id: "ImageId",
126
127
  # },
127
128
  # ],
128
129
  # },
@@ -200,6 +201,11 @@ module Aws::AutoScaling
200
201
  # capacity_reservation_resource_group_arns: ["ResourceName"],
201
202
  # },
202
203
  # },
204
+ # instance_lifecycle_policy: {
205
+ # retention_triggers: {
206
+ # terminate_hook_abandon: "retain", # accepts retain, terminate
207
+ # },
208
+ # },
203
209
  # })
204
210
  # @param [Hash] options ({})
205
211
  # @option options [required, String] :auto_scaling_group_name
@@ -508,6 +514,17 @@ module Aws::AutoScaling
508
514
  # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-zonal-shift.html
509
515
  # @option options [Types::CapacityReservationSpecification] :capacity_reservation_specification
510
516
  # The capacity reservation specification for the Auto Scaling group.
517
+ # @option options [Types::InstanceLifecyclePolicy] :instance_lifecycle_policy
518
+ # The instance lifecycle policy for the Auto Scaling group. This policy
519
+ # controls instance behavior when an instance transitions through its
520
+ # lifecycle states. Configure retention triggers to specify when
521
+ # instances should move to a `Retained` state for manual intervention
522
+ # instead of automatic termination.
523
+ #
524
+ # <note markdown="1"> Instances in a Retained state will continue to incur standard EC2
525
+ # charges until terminated.
526
+ #
527
+ # </note>
511
528
  # @return [AutoScalingGroup]
512
529
  def create_group(options = {})
513
530
  Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
@@ -523,6 +523,13 @@ module Aws::AutoScaling
523
523
  # The capacity reservation specification.
524
524
  # @return [Types::CapacityReservationSpecification]
525
525
  #
526
+ # @!attribute [rw] instance_lifecycle_policy
527
+ # The instance lifecycle policy applied to this Auto Scaling group.
528
+ # This policy determines instance behavior when an instance
529
+ # transitions through its lifecycle states. It provides additional
530
+ # control over graceful instance management processes.
531
+ # @return [Types::InstanceLifecyclePolicy]
532
+ #
526
533
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AutoScalingGroup AWS API Documentation
527
534
  #
528
535
  class AutoScalingGroup < Struct.new(
@@ -563,7 +570,8 @@ module Aws::AutoScaling
563
570
  :instance_maintenance_policy,
564
571
  :availability_zone_distribution,
565
572
  :availability_zone_impairment_policy,
566
- :capacity_reservation_specification)
573
+ :capacity_reservation_specification,
574
+ :instance_lifecycle_policy)
567
575
  SENSITIVE = []
568
576
  include Aws::Structure
569
577
  end
@@ -683,6 +691,27 @@ module Aws::AutoScaling
683
691
  # The launch template for the instance.
684
692
  # @return [Types::LaunchTemplateSpecification]
685
693
  #
694
+ # @!attribute [rw] image_id
695
+ # The ID of the Amazon Machine Image (AMI) associated with the
696
+ # instance. This field shows the current AMI ID of the instance's
697
+ # root volume. It may differ from the original AMI used when the
698
+ # instance was first launched.
699
+ #
700
+ # This field appears for:
701
+ #
702
+ # * Instances with root volume replacements through Instance Refresh
703
+ #
704
+ # * Instances launched with AMI overrides
705
+ #
706
+ # This field won't appear for:
707
+ #
708
+ # * Existing instances launched from Launch Templates without
709
+ # overrides
710
+ #
711
+ # * Existing instances that didn’t have their root volume replaced
712
+ # through Instance Refresh
713
+ # @return [String]
714
+ #
686
715
  # @!attribute [rw] protected_from_scale_in
687
716
  # Indicates whether the instance is protected from termination by
688
717
  # Amazon EC2 Auto Scaling when scaling in.
@@ -706,6 +735,7 @@ module Aws::AutoScaling
706
735
  :health_status,
707
736
  :launch_configuration_name,
708
737
  :launch_template,
738
+ :image_id,
709
739
  :protected_from_scale_in,
710
740
  :weighted_capacity)
711
741
  SENSITIVE = []
@@ -1499,6 +1529,19 @@ module Aws::AutoScaling
1499
1529
  # The capacity reservation specification for the Auto Scaling group.
1500
1530
  # @return [Types::CapacityReservationSpecification]
1501
1531
  #
1532
+ # @!attribute [rw] instance_lifecycle_policy
1533
+ # The instance lifecycle policy for the Auto Scaling group. This
1534
+ # policy controls instance behavior when an instance transitions
1535
+ # through its lifecycle states. Configure retention triggers to
1536
+ # specify when instances should move to a `Retained` state for manual
1537
+ # intervention instead of automatic termination.
1538
+ #
1539
+ # <note markdown="1"> Instances in a Retained state will continue to incur standard EC2
1540
+ # charges until terminated.
1541
+ #
1542
+ # </note>
1543
+ # @return [Types::InstanceLifecyclePolicy]
1544
+ #
1502
1545
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroupType AWS API Documentation
1503
1546
  #
1504
1547
  class CreateAutoScalingGroupType < Struct.new(
@@ -1533,7 +1576,8 @@ module Aws::AutoScaling
1533
1576
  :availability_zone_distribution,
1534
1577
  :availability_zone_impairment_policy,
1535
1578
  :skip_zonal_shift_validation,
1536
- :capacity_reservation_specification)
1579
+ :capacity_reservation_specification,
1580
+ :instance_lifecycle_policy)
1537
1581
  SENSITIVE = []
1538
1582
  include Aws::Structure
1539
1583
  end
@@ -3455,6 +3499,27 @@ module Aws::AutoScaling
3455
3499
  # The launch template for the instance.
3456
3500
  # @return [Types::LaunchTemplateSpecification]
3457
3501
  #
3502
+ # @!attribute [rw] image_id
3503
+ # The ID of the Amazon Machine Image (AMI) used for the instance's
3504
+ # current root volume. This value reflects the most recent AMI applied
3505
+ # to the instance, including updates made through root volume
3506
+ # replacement operations.
3507
+ #
3508
+ # This field appears for:
3509
+ #
3510
+ # * Instances with root volume replacements through Instance Refresh
3511
+ #
3512
+ # * Instances launched with AMI overrides
3513
+ #
3514
+ # This field won't appear for:
3515
+ #
3516
+ # * Existing instances launched from Launch Templates without
3517
+ # overrides
3518
+ #
3519
+ # * Existing instances that didn’t have their root volume replaced
3520
+ # through Instance Refresh
3521
+ # @return [String]
3522
+ #
3458
3523
  # @!attribute [rw] protected_from_scale_in
3459
3524
  # Indicates whether the instance is protected from termination by
3460
3525
  # Amazon EC2 Auto Scaling when scaling in.
@@ -3477,6 +3542,7 @@ module Aws::AutoScaling
3477
3542
  :health_status,
3478
3543
  :launch_configuration_name,
3479
3544
  :launch_template,
3545
+ :image_id,
3480
3546
  :protected_from_scale_in,
3481
3547
  :weighted_capacity)
3482
3548
  SENSITIVE = []
@@ -3524,6 +3590,27 @@ module Aws::AutoScaling
3524
3590
  include Aws::Structure
3525
3591
  end
3526
3592
 
3593
+ # Defines the lifecycle policy for instances in an Auto Scaling group.
3594
+ # This policy controls instance behavior when lifecycles transition and
3595
+ # operations fail. Use lifecycle policies to ensure graceful shutdown
3596
+ # for stateful workloads or applications requiring extended draining
3597
+ # periods.
3598
+ #
3599
+ # @!attribute [rw] retention_triggers
3600
+ # Specifies the conditions that trigger instance retention behavior.
3601
+ # These triggers determine when instances should move to a Retained
3602
+ # state instead of being terminated. This allows you to maintain
3603
+ # control over instance management when lifecycle operations fail.
3604
+ # @return [Types::RetentionTriggers]
3605
+ #
3606
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstanceLifecyclePolicy AWS API Documentation
3607
+ #
3608
+ class InstanceLifecyclePolicy < Struct.new(
3609
+ :retention_triggers)
3610
+ SENSITIVE = []
3611
+ include Aws::Structure
3612
+ end
3613
+
3527
3614
  # Describes an instance maintenance policy.
3528
3615
  #
3529
3616
  # For more information, see [Set instance maintenance policy][1] in the
@@ -3730,6 +3817,17 @@ module Aws::AutoScaling
3730
3817
  # The rollback details.
3731
3818
  # @return [Types::RollbackDetails]
3732
3819
  #
3820
+ # @!attribute [rw] strategy
3821
+ # The strategy to use for the instance refresh. This determines how
3822
+ # instances in the Auto Scaling group are updated. Default is Rolling.
3823
+ #
3824
+ # * `Rolling` – Terminates instances and launches replacements in
3825
+ # batches
3826
+ #
3827
+ # * `ReplaceRootVolume` – Updates instances by replacing only the root
3828
+ # volume without terminating the instance
3829
+ # @return [String]
3830
+ #
3733
3831
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstanceRefresh AWS API Documentation
3734
3832
  #
3735
3833
  class InstanceRefresh < Struct.new(
@@ -3744,7 +3842,8 @@ module Aws::AutoScaling
3744
3842
  :progress_details,
3745
3843
  :preferences,
3746
3844
  :desired_configuration,
3747
- :rollback_details)
3845
+ :rollback_details,
3846
+ :strategy)
3748
3847
  SENSITIVE = []
3749
3848
  include Aws::Structure
3750
3849
  end
@@ -4965,13 +5064,30 @@ module Aws::AutoScaling
4965
5064
  # </note>
4966
5065
  # @return [Types::InstanceRequirements]
4967
5066
  #
5067
+ # @!attribute [rw] image_id
5068
+ # The ID of the Amazon Machine Image (AMI) to use for instances
5069
+ # launched with this override. When using Instance Refresh with
5070
+ # `ReplaceRootVolume` strategy, this specifies the AMI for root volume
5071
+ # replacement operations.
5072
+ #
5073
+ # For `ReplaceRootVolume` operations:
5074
+ #
5075
+ # * All overrides in the `MixedInstancesPolicy` must specify an
5076
+ # ImageId
5077
+ #
5078
+ # * The AMI must contain only a single root volume
5079
+ #
5080
+ # * Root volume replacement doesn't support multi-volume AMIs
5081
+ # @return [String]
5082
+ #
4968
5083
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplateOverrides AWS API Documentation
4969
5084
  #
4970
5085
  class LaunchTemplateOverrides < Struct.new(
4971
5086
  :instance_type,
4972
5087
  :weighted_capacity,
4973
5088
  :launch_template_specification,
4974
- :instance_requirements)
5089
+ :instance_requirements,
5090
+ :image_id)
4975
5091
  SENSITIVE = []
4976
5092
  include Aws::Structure
4977
5093
  end
@@ -7067,6 +7183,32 @@ module Aws::AutoScaling
7067
7183
  include Aws::Structure
7068
7184
  end
7069
7185
 
7186
+ # Defines the specific triggers that cause instances to be retained in a
7187
+ # Retained state rather than terminated. Each trigger corresponds to a
7188
+ # different failure scenario during the instance lifecycle. This allows
7189
+ # fine-grained control over when to preserve instances for manual
7190
+ # intervention.
7191
+ #
7192
+ # @!attribute [rw] terminate_hook_abandon
7193
+ # Specifies the action when a termination lifecycle hook is abandoned
7194
+ # due to failure, timeout, or explicit abandonment (calling
7195
+ # CompleteLifecycleAction).
7196
+ #
7197
+ # Set to `Retain` to move instances to a `Retained` state. Set to
7198
+ # `Terminate` for default termination behavior.
7199
+ #
7200
+ # Retained instances don't count toward desired capacity and remain
7201
+ # until you call `TerminateInstanceInAutoScalingGroup`.
7202
+ # @return [String]
7203
+ #
7204
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/RetentionTriggers AWS API Documentation
7205
+ #
7206
+ class RetentionTriggers < Struct.new(
7207
+ :terminate_hook_abandon)
7208
+ SENSITIVE = []
7209
+ include Aws::Structure
7210
+ end
7211
+
7070
7212
  # Details about an instance refresh rollback.
7071
7213
  #
7072
7214
  # @!attribute [rw] rollback_reason
@@ -8472,6 +8614,14 @@ module Aws::AutoScaling
8472
8614
  # The capacity reservation specification for the Auto Scaling group.
8473
8615
  # @return [Types::CapacityReservationSpecification]
8474
8616
  #
8617
+ # @!attribute [rw] instance_lifecycle_policy
8618
+ # The instance lifecycle policy for the Auto Scaling group. Use this
8619
+ # to add, modify, or remove lifecycle policies that control instance
8620
+ # behavior when an instance transitions through its lifecycle states.
8621
+ # Configure retention triggers to specify when to preserve instances
8622
+ # for manual intervention.
8623
+ # @return [Types::InstanceLifecyclePolicy]
8624
+ #
8475
8625
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroupType AWS API Documentation
8476
8626
  #
8477
8627
  class UpdateAutoScalingGroupType < Struct.new(
@@ -8500,7 +8650,8 @@ module Aws::AutoScaling
8500
8650
  :availability_zone_distribution,
8501
8651
  :availability_zone_impairment_policy,
8502
8652
  :skip_zonal_shift_validation,
8503
- :capacity_reservation_specification)
8653
+ :capacity_reservation_specification,
8654
+ :instance_lifecycle_policy)
8504
8655
  SENSITIVE = []
8505
8656
  include Aws::Structure
8506
8657
  end
@@ -65,7 +65,7 @@ module Aws::AutoScaling
65
65
  autoload :ScheduledAction, 'aws-sdk-autoscaling/scheduled_action'
66
66
  autoload :Tag, 'aws-sdk-autoscaling/tag'
67
67
 
68
- GEM_VERSION = '1.147.0'
68
+ GEM_VERSION = '1.148.0'
69
69
 
70
70
  end
71
71
 
data/sig/activity.rbs CHANGED
@@ -34,7 +34,7 @@ module Aws
34
34
  def end_time: () -> ::Time
35
35
 
36
36
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/Activity.html#status_code-instance_method
37
- def status_code: () -> ("PendingSpotBidPlacement" | "WaitingForSpotInstanceRequestId" | "WaitingForSpotInstanceId" | "WaitingForInstanceId" | "PreInService" | "InProgress" | "WaitingForELBConnectionDraining" | "MidLifecycleAction" | "WaitingForInstanceWarmup" | "Successful" | "Failed" | "Cancelled" | "WaitingForConnectionDraining")
37
+ def status_code: () -> ("PendingSpotBidPlacement" | "WaitingForSpotInstanceRequestId" | "WaitingForSpotInstanceId" | "WaitingForInstanceId" | "PreInService" | "InProgress" | "WaitingForELBConnectionDraining" | "MidLifecycleAction" | "WaitingForInstanceWarmup" | "Successful" | "Failed" | "Cancelled" | "WaitingForConnectionDraining" | "WaitingForInPlaceUpdateToStart" | "WaitingForInPlaceUpdateToFinalize" | "InPlaceUpdateInProgress")
38
38
 
39
39
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/Activity.html#status_message-instance_method
40
40
  def status_message: () -> ::String
@@ -123,6 +123,9 @@ module Aws
123
123
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/AutoScalingGroup.html#capacity_reservation_specification-instance_method
124
124
  def capacity_reservation_specification: () -> Types::CapacityReservationSpecification
125
125
 
126
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/AutoScalingGroup.html#instance_lifecycle_policy-instance_method
127
+ def instance_lifecycle_policy: () -> Types::InstanceLifecyclePolicy
128
+
126
129
  def client: () -> Client
127
130
 
128
131
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/AutoScalingGroup.html#load-instance_method
@@ -463,7 +466,8 @@ module Aws
463
466
  ]?
464
467
  }?
465
468
  }?
466
- }?
469
+ }?,
470
+ image_id: ::String?
467
471
  },
468
472
  ]?
469
473
  }?,
@@ -511,6 +515,11 @@ module Aws
511
515
  capacity_reservation_ids: Array[::String]?,
512
516
  capacity_reservation_resource_group_arns: Array[::String]?
513
517
  }?
518
+ },
519
+ ?instance_lifecycle_policy: {
520
+ retention_triggers: {
521
+ terminate_hook_abandon: ("retain" | "terminate")?
522
+ }?
514
523
  }
515
524
  ) -> AutoScalingGroup
516
525
  | (?Hash[Symbol, untyped]) -> AutoScalingGroup
data/sig/client.rbs CHANGED
@@ -264,7 +264,8 @@ module Aws
264
264
  ]?
265
265
  }?
266
266
  }?
267
- }?
267
+ }?,
268
+ image_id: ::String?
268
269
  },
269
270
  ]?
270
271
  }?,
@@ -341,6 +342,11 @@ module Aws
341
342
  capacity_reservation_ids: Array[::String]?,
342
343
  capacity_reservation_resource_group_arns: Array[::String]?
343
344
  }?
345
+ },
346
+ ?instance_lifecycle_policy: {
347
+ retention_triggers: {
348
+ terminate_hook_abandon: ("retain" | "terminate")?
349
+ }?
344
350
  }
345
351
  ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
346
352
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
@@ -1148,7 +1154,7 @@ module Aws
1148
1154
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/Client.html#start_instance_refresh-instance_method
1149
1155
  def start_instance_refresh: (
1150
1156
  auto_scaling_group_name: ::String,
1151
- ?strategy: ("Rolling"),
1157
+ ?strategy: ("Rolling" | "ReplaceRootVolume"),
1152
1158
  ?desired_configuration: {
1153
1159
  launch_template: {
1154
1160
  launch_template_id: ::String?,
@@ -1232,7 +1238,8 @@ module Aws
1232
1238
  ]?
1233
1239
  }?
1234
1240
  }?
1235
- }?
1241
+ }?,
1242
+ image_id: ::String?
1236
1243
  },
1237
1244
  ]?
1238
1245
  }?,
@@ -1368,7 +1375,8 @@ module Aws
1368
1375
  ]?
1369
1376
  }?
1370
1377
  }?
1371
- }?
1378
+ }?,
1379
+ image_id: ::String?
1372
1380
  },
1373
1381
  ]?
1374
1382
  }?,
@@ -1416,6 +1424,11 @@ module Aws
1416
1424
  capacity_reservation_ids: Array[::String]?,
1417
1425
  capacity_reservation_resource_group_arns: Array[::String]?
1418
1426
  }?
1427
+ },
1428
+ ?instance_lifecycle_policy: {
1429
+ retention_triggers: {
1430
+ terminate_hook_abandon: ("retain" | "terminate")?
1431
+ }?
1419
1432
  }
1420
1433
  ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
1421
1434
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
data/sig/instance.rbs CHANGED
@@ -40,6 +40,9 @@ module Aws
40
40
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/Instance.html#launch_template-instance_method
41
41
  def launch_template: () -> Types::LaunchTemplateSpecification
42
42
 
43
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/Instance.html#image_id-instance_method
44
+ def image_id: () -> ::String
45
+
43
46
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AutoScaling/Instance.html#protected_from_scale_in-instance_method
44
47
  def protected_from_scale_in: () -> bool
45
48
 
data/sig/resource.rbs CHANGED
@@ -166,7 +166,8 @@ module Aws
166
166
  ]?
167
167
  }?
168
168
  }?
169
- }?
169
+ }?,
170
+ image_id: ::String?
170
171
  },
171
172
  ]?
172
173
  }?,
@@ -243,6 +244,11 @@ module Aws
243
244
  capacity_reservation_ids: Array[::String]?,
244
245
  capacity_reservation_resource_group_arns: Array[::String]?
245
246
  }?
247
+ },
248
+ ?instance_lifecycle_policy: {
249
+ retention_triggers: {
250
+ terminate_hook_abandon: ("retain" | "terminate")?
251
+ }?
246
252
  }
247
253
  ) -> AutoScalingGroup
248
254
  | (?Hash[Symbol, untyped]) -> AutoScalingGroup
data/sig/types.rbs CHANGED
@@ -38,7 +38,7 @@ module Aws::AutoScaling
38
38
  attr_accessor cause: ::String
39
39
  attr_accessor start_time: ::Time
40
40
  attr_accessor end_time: ::Time
41
- attr_accessor status_code: ("PendingSpotBidPlacement" | "WaitingForSpotInstanceRequestId" | "WaitingForSpotInstanceId" | "WaitingForInstanceId" | "PreInService" | "InProgress" | "WaitingForELBConnectionDraining" | "MidLifecycleAction" | "WaitingForInstanceWarmup" | "Successful" | "Failed" | "Cancelled" | "WaitingForConnectionDraining")
41
+ attr_accessor status_code: ("PendingSpotBidPlacement" | "WaitingForSpotInstanceRequestId" | "WaitingForSpotInstanceId" | "WaitingForInstanceId" | "PreInService" | "InProgress" | "WaitingForELBConnectionDraining" | "MidLifecycleAction" | "WaitingForInstanceWarmup" | "Successful" | "Failed" | "Cancelled" | "WaitingForConnectionDraining" | "WaitingForInPlaceUpdateToStart" | "WaitingForInPlaceUpdateToFinalize" | "InPlaceUpdateInProgress")
42
42
  attr_accessor status_message: ::String
43
43
  attr_accessor progress: ::Integer
44
44
  attr_accessor details: ::String
@@ -146,6 +146,7 @@ module Aws::AutoScaling
146
146
  attr_accessor availability_zone_distribution: Types::AvailabilityZoneDistribution
147
147
  attr_accessor availability_zone_impairment_policy: Types::AvailabilityZoneImpairmentPolicy
148
148
  attr_accessor capacity_reservation_specification: Types::CapacityReservationSpecification
149
+ attr_accessor instance_lifecycle_policy: Types::InstanceLifecyclePolicy
149
150
  SENSITIVE: []
150
151
  end
151
152
 
@@ -173,6 +174,7 @@ module Aws::AutoScaling
173
174
  attr_accessor health_status: ::String
174
175
  attr_accessor launch_configuration_name: ::String
175
176
  attr_accessor launch_template: Types::LaunchTemplateSpecification
177
+ attr_accessor image_id: ::String
176
178
  attr_accessor protected_from_scale_in: bool
177
179
  attr_accessor weighted_capacity: ::String
178
180
  SENSITIVE: []
@@ -315,6 +317,7 @@ module Aws::AutoScaling
315
317
  attr_accessor availability_zone_impairment_policy: Types::AvailabilityZoneImpairmentPolicy
316
318
  attr_accessor skip_zonal_shift_validation: bool
317
319
  attr_accessor capacity_reservation_specification: Types::CapacityReservationSpecification
320
+ attr_accessor instance_lifecycle_policy: Types::InstanceLifecyclePolicy
318
321
  SENSITIVE: []
319
322
  end
320
323
 
@@ -720,6 +723,7 @@ module Aws::AutoScaling
720
723
  attr_accessor health_status: ::String
721
724
  attr_accessor launch_configuration_name: ::String
722
725
  attr_accessor launch_template: Types::LaunchTemplateSpecification
726
+ attr_accessor image_id: ::String
723
727
  attr_accessor protected_from_scale_in: bool
724
728
  attr_accessor weighted_capacity: ::String
725
729
  SENSITIVE: []
@@ -735,6 +739,11 @@ module Aws::AutoScaling
735
739
  SENSITIVE: []
736
740
  end
737
741
 
742
+ class InstanceLifecyclePolicy
743
+ attr_accessor retention_triggers: Types::RetentionTriggers
744
+ SENSITIVE: []
745
+ end
746
+
738
747
  class InstanceMaintenancePolicy
739
748
  attr_accessor min_healthy_percentage: ::Integer
740
749
  attr_accessor max_healthy_percentage: ::Integer
@@ -766,6 +775,7 @@ module Aws::AutoScaling
766
775
  attr_accessor preferences: Types::RefreshPreferences
767
776
  attr_accessor desired_configuration: Types::DesiredConfiguration
768
777
  attr_accessor rollback_details: Types::RollbackDetails
778
+ attr_accessor strategy: ("Rolling" | "ReplaceRootVolume")
769
779
  SENSITIVE: []
770
780
  end
771
781
 
@@ -929,6 +939,7 @@ module Aws::AutoScaling
929
939
  attr_accessor weighted_capacity: ::String
930
940
  attr_accessor launch_template_specification: Types::LaunchTemplateSpecification
931
941
  attr_accessor instance_requirements: Types::InstanceRequirements
942
+ attr_accessor image_id: ::String
932
943
  SENSITIVE: []
933
944
  end
934
945
 
@@ -1251,6 +1262,11 @@ module Aws::AutoScaling
1251
1262
  SENSITIVE: []
1252
1263
  end
1253
1264
 
1265
+ class RetentionTriggers
1266
+ attr_accessor terminate_hook_abandon: ("retain" | "terminate")
1267
+ SENSITIVE: []
1268
+ end
1269
+
1254
1270
  class RollbackDetails
1255
1271
  attr_accessor rollback_reason: ::String
1256
1272
  attr_accessor rollback_start_time: ::Time
@@ -1370,7 +1386,7 @@ module Aws::AutoScaling
1370
1386
 
1371
1387
  class StartInstanceRefreshType
1372
1388
  attr_accessor auto_scaling_group_name: ::String
1373
- attr_accessor strategy: ("Rolling")
1389
+ attr_accessor strategy: ("Rolling" | "ReplaceRootVolume")
1374
1390
  attr_accessor desired_configuration: Types::DesiredConfiguration
1375
1391
  attr_accessor preferences: Types::RefreshPreferences
1376
1392
  SENSITIVE: []
@@ -1492,6 +1508,7 @@ module Aws::AutoScaling
1492
1508
  attr_accessor availability_zone_impairment_policy: Types::AvailabilityZoneImpairmentPolicy
1493
1509
  attr_accessor skip_zonal_shift_validation: bool
1494
1510
  attr_accessor capacity_reservation_specification: Types::CapacityReservationSpecification
1511
+ attr_accessor instance_lifecycle_policy: Types::InstanceLifecyclePolicy
1495
1512
  SENSITIVE: []
1496
1513
  end
1497
1514
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-autoscaling
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.147.0
4
+ version: 1.148.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services