aws-sdk-ecs 1.205.0 → 1.207.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.
@@ -10,6 +10,52 @@
10
10
  module Aws::ECS
11
11
  module Types
12
12
 
13
+ # The minimum and maximum number of accelerators (such as GPUs) for
14
+ # instance type selection. This is used for workloads that require
15
+ # specific numbers of accelerators.
16
+ #
17
+ # @!attribute [rw] min
18
+ # The minimum number of accelerators. Instance types with fewer
19
+ # accelerators are excluded from selection.
20
+ # @return [Integer]
21
+ #
22
+ # @!attribute [rw] max
23
+ # The maximum number of accelerators. Instance types with more
24
+ # accelerators are excluded from selection.
25
+ # @return [Integer]
26
+ #
27
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AcceleratorCountRequest AWS API Documentation
28
+ #
29
+ class AcceleratorCountRequest < Struct.new(
30
+ :min,
31
+ :max)
32
+ SENSITIVE = []
33
+ include Aws::Structure
34
+ end
35
+
36
+ # The minimum and maximum total accelerator memory in mebibytes (MiB)
37
+ # for instance type selection. This is important for GPU workloads that
38
+ # require specific amounts of video memory.
39
+ #
40
+ # @!attribute [rw] min
41
+ # The minimum total accelerator memory in MiB. Instance types with
42
+ # less accelerator memory are excluded from selection.
43
+ # @return [Integer]
44
+ #
45
+ # @!attribute [rw] max
46
+ # The maximum total accelerator memory in MiB. Instance types with
47
+ # more accelerator memory are excluded from selection.
48
+ # @return [Integer]
49
+ #
50
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AcceleratorTotalMemoryMiBRequest AWS API Documentation
51
+ #
52
+ class AcceleratorTotalMemoryMiBRequest < Struct.new(
53
+ :min,
54
+ :max)
55
+ SENSITIVE = []
56
+ include Aws::Structure
57
+ end
58
+
13
59
  # You don't have authorization to perform the requested action.
14
60
  #
15
61
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AccessDeniedException AWS API Documentation
@@ -333,6 +379,29 @@ module Aws::ECS
333
379
  include Aws::Structure
334
380
  end
335
381
 
382
+ # The minimum and maximum baseline Amazon EBS bandwidth in megabits per
383
+ # second (Mbps) for instance type selection. This is important for
384
+ # workloads with high storage I/O requirements.
385
+ #
386
+ # @!attribute [rw] min
387
+ # The minimum baseline Amazon EBS bandwidth in Mbps. Instance types
388
+ # with lower Amazon EBS bandwidth are excluded from selection.
389
+ # @return [Integer]
390
+ #
391
+ # @!attribute [rw] max
392
+ # The maximum baseline Amazon EBS bandwidth in Mbps. Instance types
393
+ # with higher Amazon EBS bandwidth are excluded from selection.
394
+ # @return [Integer]
395
+ #
396
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/BaselineEbsBandwidthMbpsRequest AWS API Documentation
397
+ #
398
+ class BaselineEbsBandwidthMbpsRequest < Struct.new(
399
+ :min,
400
+ :max)
401
+ SENSITIVE = []
402
+ include Aws::Structure
403
+ end
404
+
336
405
  # Your Amazon Web Services account was blocked. For more information,
337
406
  # contact [ Amazon Web Services Support][1].
338
407
  #
@@ -355,6 +424,12 @@ module Aws::ECS
355
424
  # The name of the capacity provider.
356
425
  # @return [String]
357
426
  #
427
+ # @!attribute [rw] cluster
428
+ # The cluster that this capacity provider is associated with. Managed
429
+ # instances capacity providers are cluster-scoped, meaning they can
430
+ # only be used within their associated cluster.
431
+ # @return [String]
432
+ #
358
433
  # @!attribute [rw] status
359
434
  # The current status of the capacity provider. Only capacity providers
360
435
  # in an `ACTIVE` state can be used in a cluster. When a capacity
@@ -365,6 +440,12 @@ module Aws::ECS
365
440
  # The Auto Scaling group settings for the capacity provider.
366
441
  # @return [Types::AutoScalingGroupProvider]
367
442
  #
443
+ # @!attribute [rw] managed_instances_provider
444
+ # The configuration for the Amazon ECS Managed Instances provider.
445
+ # This includes the infrastructure role, the launch template
446
+ # configuration, and tag propagation settings.
447
+ # @return [Types::ManagedInstancesProvider]
448
+ #
368
449
  # @!attribute [rw] update_status
369
450
  # The update status of the capacity provider. The following are the
370
451
  # possible states that is returned.
@@ -420,16 +501,25 @@ module Aws::ECS
420
501
  # against your tags per resource limit.
421
502
  # @return [Array<Types::Tag>]
422
503
  #
504
+ # @!attribute [rw] type
505
+ # The type of capacity provider. For Amazon ECS Managed Instances,
506
+ # this value is `MANAGED_INSTANCES`, indicating that Amazon ECS
507
+ # manages the underlying Amazon EC2 instances on your behalf.
508
+ # @return [String]
509
+ #
423
510
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CapacityProvider AWS API Documentation
424
511
  #
425
512
  class CapacityProvider < Struct.new(
426
513
  :capacity_provider_arn,
427
514
  :name,
515
+ :cluster,
428
516
  :status,
429
517
  :auto_scaling_group_provider,
518
+ :managed_instances_provider,
430
519
  :update_status,
431
520
  :update_status_reason,
432
- :tags)
521
+ :tags,
522
+ :type)
433
523
  SENSITIVE = []
434
524
  include Aws::Structure
435
525
  end
@@ -804,6 +894,17 @@ module Aws::ECS
804
894
  include Aws::Structure
805
895
  end
806
896
 
897
+ # The cluster contains one or more capacity providers that prevent the
898
+ # requested operation. This exception occurs when you try to delete a
899
+ # cluster that still has active capacity providers, including Amazon ECS
900
+ # Managed Instances capacity providers. You must first delete all
901
+ # capacity providers from the cluster before you can delete the cluster
902
+ # itself.
903
+ #
904
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ClusterContainsCapacityProviderException AWS API Documentation
905
+ #
906
+ class ClusterContainsCapacityProviderException < Aws::EmptyStructure; end
907
+
807
908
  # You can't delete a cluster that has registered container instances.
808
909
  # First, deregister the container instances before you can delete the
809
910
  # cluster. For more information, see [DeregisterContainerInstance][1].
@@ -2479,10 +2580,23 @@ module Aws::ECS
2479
2580
  # "`aws`", "`ecs`", or "`fargate`".
2480
2581
  # @return [String]
2481
2582
  #
2583
+ # @!attribute [rw] cluster
2584
+ # The name of the cluster to associate with the capacity provider.
2585
+ # When you create a capacity provider with Amazon ECS Managed
2586
+ # Instances, it becomes available only within the specified cluster.
2587
+ # @return [String]
2588
+ #
2482
2589
  # @!attribute [rw] auto_scaling_group_provider
2483
2590
  # The details of the Auto Scaling group for the capacity provider.
2484
2591
  # @return [Types::AutoScalingGroupProvider]
2485
2592
  #
2593
+ # @!attribute [rw] managed_instances_provider
2594
+ # The configuration for the Amazon ECS Managed Instances provider.
2595
+ # This configuration specifies how Amazon ECS manages Amazon EC2
2596
+ # instances on your behalf, including the infrastructure role,
2597
+ # instance launch template, and tag propagation settings.
2598
+ # @return [Types::CreateManagedInstancesProviderConfiguration]
2599
+ #
2486
2600
  # @!attribute [rw] tags
2487
2601
  # The metadata that you apply to the capacity provider to categorize
2488
2602
  # and organize them more conveniently. Each tag consists of a key and
@@ -2518,7 +2632,9 @@ module Aws::ECS
2518
2632
  #
2519
2633
  class CreateCapacityProviderRequest < Struct.new(
2520
2634
  :name,
2635
+ :cluster,
2521
2636
  :auto_scaling_group_provider,
2637
+ :managed_instances_provider,
2522
2638
  :tags)
2523
2639
  SENSITIVE = []
2524
2640
  include Aws::Structure
@@ -2687,6 +2803,58 @@ module Aws::ECS
2687
2803
  include Aws::Structure
2688
2804
  end
2689
2805
 
2806
+ # The configuration for creating a Amazon ECS Managed Instances
2807
+ # provider. This specifies how Amazon ECS should manage Amazon EC2
2808
+ # instances, including the infrastructure role, instance launch
2809
+ # template, and whether to propagate tags from the capacity provider to
2810
+ # the instances.
2811
+ #
2812
+ # @!attribute [rw] infrastructure_role_arn
2813
+ # The Amazon Resource Name (ARN) of the infrastructure role that
2814
+ # Amazon ECS uses to manage instances on your behalf. This role must
2815
+ # have permissions to launch, terminate, and manage Amazon EC2
2816
+ # instances, as well as access to other Amazon Web Services services
2817
+ # required for Amazon ECS Managed Instances functionality.
2818
+ #
2819
+ # For more information, see [Amazon ECS infrastructure IAM role][1] in
2820
+ # the *Amazon ECS Developer Guide*.
2821
+ #
2822
+ #
2823
+ #
2824
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
2825
+ # @return [String]
2826
+ #
2827
+ # @!attribute [rw] instance_launch_template
2828
+ # The launch template configuration that specifies how Amazon ECS
2829
+ # should launch Amazon EC2 instances. This includes the instance
2830
+ # profile, network configuration, storage settings, and instance
2831
+ # requirements for attribute-based instance type selection.
2832
+ #
2833
+ # For more information, see [Store instance launch parameters in
2834
+ # Amazon EC2 launch templates][1] in the *Amazon EC2 User Guide*.
2835
+ #
2836
+ #
2837
+ #
2838
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html
2839
+ # @return [Types::InstanceLaunchTemplate]
2840
+ #
2841
+ # @!attribute [rw] propagate_tags
2842
+ # Specifies whether to propagate tags from the capacity provider to
2843
+ # the Amazon ECS Managed Instances. When enabled, tags applied to the
2844
+ # capacity provider are automatically applied to all instances
2845
+ # launched by this provider.
2846
+ # @return [String]
2847
+ #
2848
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateManagedInstancesProviderConfiguration AWS API Documentation
2849
+ #
2850
+ class CreateManagedInstancesProviderConfiguration < Struct.new(
2851
+ :infrastructure_role_arn,
2852
+ :instance_launch_template,
2853
+ :propagate_tags)
2854
+ SENSITIVE = []
2855
+ include Aws::Structure
2856
+ end
2857
+
2690
2858
  # @!attribute [rw] cluster
2691
2859
  # The short name or full Amazon Resource Name (ARN) of the cluster
2692
2860
  # that you run your service on. If you do not specify a cluster, the
@@ -2950,12 +3118,15 @@ module Aws::ECS
2950
3118
  # @return [Types::NetworkConfiguration]
2951
3119
  #
2952
3120
  # @!attribute [rw] health_check_grace_period_seconds
2953
- # The period of time, in seconds, that the Amazon Amazon ECS service
3121
+ # The period of time, in seconds, that the Amazon ECS service
2954
3122
  # scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and
2955
3123
  # container health checks after a task has first started. If you do
2956
3124
  # not specify a health check grace period value, the default value of
2957
3125
  # 0 is used. If you do not use any of the health checks, then
2958
3126
  # `healthCheckGracePeriodSeconds` is unused.
3127
+ #
3128
+ # If your service has more running tasks than desired, unhealthy tasks
3129
+ # in the grace period might be stopped to reach the desired count.
2959
3130
  # @return [Integer]
2960
3131
  #
2961
3132
  # @!attribute [rw] scheduling_strategy
@@ -3438,10 +3609,17 @@ module Aws::ECS
3438
3609
  # provider to delete.
3439
3610
  # @return [String]
3440
3611
  #
3612
+ # @!attribute [rw] cluster
3613
+ # The name of the cluster that contains the capacity provider to
3614
+ # delete. Managed instances capacity providers are cluster-scoped and
3615
+ # can only be deleted from their associated cluster.
3616
+ # @return [String]
3617
+ #
3441
3618
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProviderRequest AWS API Documentation
3442
3619
  #
3443
3620
  class DeleteCapacityProviderRequest < Struct.new(
3444
- :capacity_provider)
3621
+ :capacity_provider,
3622
+ :cluster)
3445
3623
  SENSITIVE = []
3446
3624
  include Aws::Structure
3447
3625
  end
@@ -4409,6 +4587,12 @@ module Aws::ECS
4409
4587
  # in an action.
4410
4588
  # @return [Array<String>]
4411
4589
  #
4590
+ # @!attribute [rw] cluster
4591
+ # The name of the cluster to describe capacity providers for. When
4592
+ # specified, only capacity providers associated with this cluster are
4593
+ # returned, including Amazon ECS Managed Instances capacity providers.
4594
+ # @return [String]
4595
+ #
4412
4596
  # @!attribute [rw] include
4413
4597
  # Specifies whether or not you want to see the resource tags for the
4414
4598
  # capacity provider. If `TAGS` is specified, the tags are included in
@@ -4446,6 +4630,7 @@ module Aws::ECS
4446
4630
  #
4447
4631
  class DescribeCapacityProvidersRequest < Struct.new(
4448
4632
  :capacity_providers,
4633
+ :cluster,
4449
4634
  :include,
4450
4635
  :max_results,
4451
4636
  :next_token)
@@ -5945,6 +6130,333 @@ module Aws::ECS
5945
6130
  include Aws::Structure
5946
6131
  end
5947
6132
 
6133
+ # The launch template configuration for Amazon ECS Managed Instances.
6134
+ # This defines how Amazon ECS launches Amazon EC2 instances, including
6135
+ # the instance profile for your tasks, network and storage
6136
+ # configuration, capacity options, and instance requirements for
6137
+ # flexible instance type selection.
6138
+ #
6139
+ # @!attribute [rw] ec2_instance_profile_arn
6140
+ # The Amazon Resource Name (ARN) of the instance profile that Amazon
6141
+ # ECS applies to Amazon ECS Managed Instances. This instance profile
6142
+ # must include the necessary permissions for your tasks to access
6143
+ # Amazon Web Services services and resources.
6144
+ #
6145
+ # For more information, see [Amazon ECS instance profile for Managed
6146
+ # Instances][1] in the *Amazon ECS Developer Guide*.
6147
+ #
6148
+ #
6149
+ #
6150
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-instances-instance-profile.html
6151
+ # @return [String]
6152
+ #
6153
+ # @!attribute [rw] network_configuration
6154
+ # The network configuration for Amazon ECS Managed Instances. This
6155
+ # specifies the subnets and security groups that instances use for
6156
+ # network connectivity.
6157
+ # @return [Types::ManagedInstancesNetworkConfiguration]
6158
+ #
6159
+ # @!attribute [rw] storage_configuration
6160
+ # The storage configuration for Amazon ECS Managed Instances. This
6161
+ # defines the root volume size and type for the instances.
6162
+ # @return [Types::ManagedInstancesStorageConfiguration]
6163
+ #
6164
+ # @!attribute [rw] monitoring
6165
+ # CloudWatch provides two categories of monitoring: basic monitoring
6166
+ # and detailed monitoring. By default, your managed instance is
6167
+ # configured for basic monitoring. You can optionally enable detailed
6168
+ # monitoring to help you more quickly identify and act on operational
6169
+ # issues. You can enable or turn off detailed monitoring at launch or
6170
+ # when the managed instance is running or stopped. For more
6171
+ # information, see [Detailed monitoring for Amazon ECS Managed
6172
+ # Instances][1] in the Amazon ECS Developer Guide.
6173
+ #
6174
+ #
6175
+ #
6176
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/detailed-monitoring-managed-instances.html
6177
+ # @return [String]
6178
+ #
6179
+ # @!attribute [rw] instance_requirements
6180
+ # The instance requirements. You can specify:
6181
+ #
6182
+ # * The instance types
6183
+ #
6184
+ # * Instance requirements such as vCPU count, memory, network
6185
+ # performance, and accelerator specifications
6186
+ #
6187
+ # Amazon ECS automatically selects the instances that match the
6188
+ # specified criteria.
6189
+ # @return [Types::InstanceRequirementsRequest]
6190
+ #
6191
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/InstanceLaunchTemplate AWS API Documentation
6192
+ #
6193
+ class InstanceLaunchTemplate < Struct.new(
6194
+ :ec2_instance_profile_arn,
6195
+ :network_configuration,
6196
+ :storage_configuration,
6197
+ :monitoring,
6198
+ :instance_requirements)
6199
+ SENSITIVE = []
6200
+ include Aws::Structure
6201
+ end
6202
+
6203
+ # The updated launch template configuration for Amazon ECS Managed
6204
+ # Instances. You can modify the instance profile, network configuration,
6205
+ # storage settings, and instance requirements. Changes apply to new
6206
+ # instances launched after the update.
6207
+ #
6208
+ # For more information, see [Store instance launch parameters in Amazon
6209
+ # EC2 launch templates][1] in the *Amazon EC2 User Guide*.
6210
+ #
6211
+ #
6212
+ #
6213
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html
6214
+ #
6215
+ # @!attribute [rw] ec2_instance_profile_arn
6216
+ # The updated Amazon Resource Name (ARN) of the instance profile. The
6217
+ # new instance profile must have the necessary permissions for your
6218
+ # tasks.
6219
+ #
6220
+ # For more information, see [Amazon ECS instance profile for Managed
6221
+ # Instances][1] in the *Amazon ECS Developer Guide*.
6222
+ #
6223
+ #
6224
+ #
6225
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-instances-instance-profile.html
6226
+ # @return [String]
6227
+ #
6228
+ # @!attribute [rw] network_configuration
6229
+ # The updated network configuration for Amazon ECS Managed Instances.
6230
+ # Changes to subnets and security groups affect new instances launched
6231
+ # after the update.
6232
+ # @return [Types::ManagedInstancesNetworkConfiguration]
6233
+ #
6234
+ # @!attribute [rw] storage_configuration
6235
+ # The updated storage configuration for Amazon ECS Managed Instances.
6236
+ # Changes to storage settings apply to new instances launched after
6237
+ # the update.
6238
+ # @return [Types::ManagedInstancesStorageConfiguration]
6239
+ #
6240
+ # @!attribute [rw] monitoring
6241
+ # CloudWatch provides two categories of monitoring: basic monitoring
6242
+ # and detailed monitoring. By default, your managed instance is
6243
+ # configured for basic monitoring. You can optionally enable detailed
6244
+ # monitoring to help you more quickly identify and act on operational
6245
+ # issues. You can enable or turn off detailed monitoring at launch or
6246
+ # when the managed instance is running or stopped. For more
6247
+ # information, see [Detailed monitoring for Amazon ECS Managed
6248
+ # Instances][1] in the Amazon ECS Developer Guide.
6249
+ #
6250
+ #
6251
+ #
6252
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/detailed-monitoring-managed-instances.html
6253
+ # @return [String]
6254
+ #
6255
+ # @!attribute [rw] instance_requirements
6256
+ # The updated instance requirements for attribute-based instance type
6257
+ # selection. Changes to instance requirements affect which instance
6258
+ # types Amazon ECS selects for new instances.
6259
+ # @return [Types::InstanceRequirementsRequest]
6260
+ #
6261
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/InstanceLaunchTemplateUpdate AWS API Documentation
6262
+ #
6263
+ class InstanceLaunchTemplateUpdate < Struct.new(
6264
+ :ec2_instance_profile_arn,
6265
+ :network_configuration,
6266
+ :storage_configuration,
6267
+ :monitoring,
6268
+ :instance_requirements)
6269
+ SENSITIVE = []
6270
+ include Aws::Structure
6271
+ end
6272
+
6273
+ # The instance requirements for attribute-based instance type selection.
6274
+ # Instead of specifying exact instance types, you define requirements
6275
+ # such as vCPU count, memory size, network performance, and accelerator
6276
+ # specifications. Amazon ECS automatically selects Amazon EC2 instance
6277
+ # types that match these requirements, providing flexibility and helping
6278
+ # to mitigate capacity constraints.
6279
+ #
6280
+ # @!attribute [rw] v_cpu_count
6281
+ # The minimum and maximum number of vCPUs for the instance types.
6282
+ # Amazon ECS selects instance types that have vCPU counts within this
6283
+ # range.
6284
+ # @return [Types::VCpuCountRangeRequest]
6285
+ #
6286
+ # @!attribute [rw] memory_mi_b
6287
+ # The minimum and maximum amount of memory in mebibytes (MiB) for the
6288
+ # instance types. Amazon ECS selects instance types that have memory
6289
+ # within this range.
6290
+ # @return [Types::MemoryMiBRequest]
6291
+ #
6292
+ # @!attribute [rw] cpu_manufacturers
6293
+ # The CPU manufacturers to include or exclude. You can specify
6294
+ # `intel`, `amd`, or `amazon-web-services` to control which CPU types
6295
+ # are used for your workloads.
6296
+ # @return [Array<String>]
6297
+ #
6298
+ # @!attribute [rw] memory_gi_b_per_v_cpu
6299
+ # The minimum and maximum amount of memory per vCPU in gibibytes
6300
+ # (GiB). This helps ensure that instance types have the appropriate
6301
+ # memory-to-CPU ratio for your workloads.
6302
+ # @return [Types::MemoryGiBPerVCpuRequest]
6303
+ #
6304
+ # @!attribute [rw] excluded_instance_types
6305
+ # The instance types to exclude from selection. Use this to prevent
6306
+ # Amazon ECS from selecting specific instance types that may not be
6307
+ # suitable for your workloads.
6308
+ # @return [Array<String>]
6309
+ #
6310
+ # @!attribute [rw] instance_generations
6311
+ # The instance generations to include. You can specify `current` to
6312
+ # use the latest generation instances, or `previous` to include
6313
+ # previous generation instances for cost optimization.
6314
+ # @return [Array<String>]
6315
+ #
6316
+ # @!attribute [rw] spot_max_price_percentage_over_lowest_price
6317
+ # The maximum price for Spot instances as a percentage over the lowest
6318
+ # priced On-Demand instance. This helps control Spot instance costs
6319
+ # while maintaining access to capacity.
6320
+ # @return [Integer]
6321
+ #
6322
+ # @!attribute [rw] on_demand_max_price_percentage_over_lowest_price
6323
+ # The price protection threshold for On-Demand Instances, as a
6324
+ # percentage higher than an identified On-Demand price. The identified
6325
+ # On-Demand price is the price of the lowest priced current generation
6326
+ # C, M, or R instance type with your specified attributes. If no
6327
+ # current generation C, M, or R instance type matches your attributes,
6328
+ # then the identified price is from either the lowest priced current
6329
+ # generation instance types or, failing that, the lowest priced
6330
+ # previous generation instance types that match your attributes. When
6331
+ # Amazon ECS selects instance types with your attributes, we will
6332
+ # exclude instance types whose price exceeds your specified threshold.
6333
+ # @return [Integer]
6334
+ #
6335
+ # @!attribute [rw] bare_metal
6336
+ # Indicates whether to include bare metal instance types. Set to
6337
+ # `included` to allow bare metal instances, `excluded` to exclude
6338
+ # them, or `required` to use only bare metal instances.
6339
+ # @return [String]
6340
+ #
6341
+ # @!attribute [rw] burstable_performance
6342
+ # Indicates whether to include burstable performance instance types
6343
+ # (T2, T3, T3a, T4g). Set to `included` to allow burstable instances,
6344
+ # `excluded` to exclude them, or `required` to use only burstable
6345
+ # instances.
6346
+ # @return [String]
6347
+ #
6348
+ # @!attribute [rw] require_hibernate_support
6349
+ # Indicates whether the instance types must support hibernation. When
6350
+ # set to `true`, only instance types that support hibernation are
6351
+ # selected.
6352
+ # @return [Boolean]
6353
+ #
6354
+ # @!attribute [rw] network_interface_count
6355
+ # The minimum and maximum number of network interfaces for the
6356
+ # instance types. This is useful for workloads that require multiple
6357
+ # network interfaces.
6358
+ # @return [Types::NetworkInterfaceCountRequest]
6359
+ #
6360
+ # @!attribute [rw] local_storage
6361
+ # Indicates whether to include instance types with local storage. Set
6362
+ # to `included` to allow local storage, `excluded` to exclude it, or
6363
+ # `required` to use only instances with local storage.
6364
+ # @return [String]
6365
+ #
6366
+ # @!attribute [rw] local_storage_types
6367
+ # The local storage types to include. You can specify `hdd` for hard
6368
+ # disk drives, `ssd` for solid state drives, or both.
6369
+ # @return [Array<String>]
6370
+ #
6371
+ # @!attribute [rw] total_local_storage_gb
6372
+ # The minimum and maximum total local storage in gigabytes (GB) for
6373
+ # instance types with local storage.
6374
+ # @return [Types::TotalLocalStorageGBRequest]
6375
+ #
6376
+ # @!attribute [rw] baseline_ebs_bandwidth_mbps
6377
+ # The minimum and maximum baseline Amazon EBS bandwidth in megabits
6378
+ # per second (Mbps). This is important for workloads with high storage
6379
+ # I/O requirements.
6380
+ # @return [Types::BaselineEbsBandwidthMbpsRequest]
6381
+ #
6382
+ # @!attribute [rw] accelerator_types
6383
+ # The accelerator types to include. You can specify `gpu` for graphics
6384
+ # processing units, `fpga` for field programmable gate arrays, or
6385
+ # `inference` for machine learning inference accelerators.
6386
+ # @return [Array<String>]
6387
+ #
6388
+ # @!attribute [rw] accelerator_count
6389
+ # The minimum and maximum number of accelerators for the instance
6390
+ # types. This is used when you need instances with specific numbers of
6391
+ # GPUs or other accelerators.
6392
+ # @return [Types::AcceleratorCountRequest]
6393
+ #
6394
+ # @!attribute [rw] accelerator_manufacturers
6395
+ # The accelerator manufacturers to include. You can specify `nvidia`,
6396
+ # `amd`, `amazon-web-services`, or `xilinx` depending on your
6397
+ # accelerator requirements.
6398
+ # @return [Array<String>]
6399
+ #
6400
+ # @!attribute [rw] accelerator_names
6401
+ # The specific accelerator names to include. For example, you can
6402
+ # specify `a100`, `v100`, `k80`, or other specific accelerator models.
6403
+ # @return [Array<String>]
6404
+ #
6405
+ # @!attribute [rw] accelerator_total_memory_mi_b
6406
+ # The minimum and maximum total accelerator memory in mebibytes (MiB).
6407
+ # This is important for GPU workloads that require specific amounts of
6408
+ # video memory.
6409
+ # @return [Types::AcceleratorTotalMemoryMiBRequest]
6410
+ #
6411
+ # @!attribute [rw] network_bandwidth_gbps
6412
+ # The minimum and maximum network bandwidth in gigabits per second
6413
+ # (Gbps). This is crucial for network-intensive workloads that require
6414
+ # high throughput.
6415
+ # @return [Types::NetworkBandwidthGbpsRequest]
6416
+ #
6417
+ # @!attribute [rw] allowed_instance_types
6418
+ # The instance types to include in the selection. When specified,
6419
+ # Amazon ECS only considers these instance types, subject to the other
6420
+ # requirements specified.
6421
+ # @return [Array<String>]
6422
+ #
6423
+ # @!attribute [rw] max_spot_price_as_percentage_of_optimal_on_demand_price
6424
+ # The maximum price for Spot instances as a percentage of the optimal
6425
+ # On-Demand price. This provides more precise cost control for Spot
6426
+ # instance selection.
6427
+ # @return [Integer]
6428
+ #
6429
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/InstanceRequirementsRequest AWS API Documentation
6430
+ #
6431
+ class InstanceRequirementsRequest < Struct.new(
6432
+ :v_cpu_count,
6433
+ :memory_mi_b,
6434
+ :cpu_manufacturers,
6435
+ :memory_gi_b_per_v_cpu,
6436
+ :excluded_instance_types,
6437
+ :instance_generations,
6438
+ :spot_max_price_percentage_over_lowest_price,
6439
+ :on_demand_max_price_percentage_over_lowest_price,
6440
+ :bare_metal,
6441
+ :burstable_performance,
6442
+ :require_hibernate_support,
6443
+ :network_interface_count,
6444
+ :local_storage,
6445
+ :local_storage_types,
6446
+ :total_local_storage_gb,
6447
+ :baseline_ebs_bandwidth_mbps,
6448
+ :accelerator_types,
6449
+ :accelerator_count,
6450
+ :accelerator_manufacturers,
6451
+ :accelerator_names,
6452
+ :accelerator_total_memory_mi_b,
6453
+ :network_bandwidth_gbps,
6454
+ :allowed_instance_types,
6455
+ :max_spot_price_as_percentage_of_optimal_on_demand_price)
6456
+ SENSITIVE = []
6457
+ include Aws::Structure
6458
+ end
6459
+
5948
6460
  # The specified parameter isn't valid. Review the available parameters
5949
6461
  # for the API request.
5950
6462
  #
@@ -7505,6 +8017,103 @@ module Aws::ECS
7505
8017
  include Aws::Structure
7506
8018
  end
7507
8019
 
8020
+ # The network configuration for Amazon ECS Managed Instances. This
8021
+ # specifies the VPC subnets and security groups that instances use for
8022
+ # network connectivity. Amazon ECS Managed Instances support multiple
8023
+ # network modes including `awsvpc` (instances receive ENIs for task
8024
+ # isolation), `host` (instances share network namespace with tasks), and
8025
+ # `none` (no external network connectivity), ensuring backward
8026
+ # compatibility for migrating workloads from Fargate or Amazon EC2.
8027
+ #
8028
+ # @!attribute [rw] subnets
8029
+ # The list of subnet IDs where Amazon ECS can launch Amazon ECS
8030
+ # Managed Instances. Instances are distributed across the specified
8031
+ # subnets for high availability. All subnets must be in the same VPC.
8032
+ # @return [Array<String>]
8033
+ #
8034
+ # @!attribute [rw] security_groups
8035
+ # The list of security group IDs to apply to Amazon ECS Managed
8036
+ # Instances. These security groups control the network traffic allowed
8037
+ # to and from the instances.
8038
+ # @return [Array<String>]
8039
+ #
8040
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ManagedInstancesNetworkConfiguration AWS API Documentation
8041
+ #
8042
+ class ManagedInstancesNetworkConfiguration < Struct.new(
8043
+ :subnets,
8044
+ :security_groups)
8045
+ SENSITIVE = []
8046
+ include Aws::Structure
8047
+ end
8048
+
8049
+ # The configuration for a Amazon ECS Managed Instances provider. Amazon
8050
+ # ECS uses this configuration to automatically launch, manage, and
8051
+ # terminate Amazon EC2 instances on your behalf. Managed instances
8052
+ # provide access to the full range of Amazon EC2 instance types and
8053
+ # features while offloading infrastructure management to Amazon Web
8054
+ # Services.
8055
+ #
8056
+ # @!attribute [rw] infrastructure_role_arn
8057
+ # The Amazon Resource Name (ARN) of the infrastructure role that
8058
+ # Amazon ECS assumes to manage instances. This role must include
8059
+ # permissions for Amazon EC2 instance lifecycle management,
8060
+ # networking, and any additional Amazon Web Services services required
8061
+ # for your workloads.
8062
+ #
8063
+ # For more information, see [Amazon ECS infrastructure IAM role][1] in
8064
+ # the *Amazon ECS Developer Guide*.
8065
+ #
8066
+ #
8067
+ #
8068
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
8069
+ # @return [String]
8070
+ #
8071
+ # @!attribute [rw] instance_launch_template
8072
+ # The launch template that defines how Amazon ECS launches Amazon ECS
8073
+ # Managed Instances. This includes the instance profile for your
8074
+ # tasks, network and storage configuration, and instance requirements
8075
+ # that determine which Amazon EC2 instance types can be used.
8076
+ #
8077
+ # For more information, see [Store instance launch parameters in
8078
+ # Amazon EC2 launch templates][1] in the *Amazon EC2 User Guide*.
8079
+ #
8080
+ #
8081
+ #
8082
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html
8083
+ # @return [Types::InstanceLaunchTemplate]
8084
+ #
8085
+ # @!attribute [rw] propagate_tags
8086
+ # Determines whether tags from the capacity provider are automatically
8087
+ # applied to Amazon ECS Managed Instances. This helps with cost
8088
+ # allocation and resource management by ensuring consistent tagging
8089
+ # across your infrastructure.
8090
+ # @return [String]
8091
+ #
8092
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ManagedInstancesProvider AWS API Documentation
8093
+ #
8094
+ class ManagedInstancesProvider < Struct.new(
8095
+ :infrastructure_role_arn,
8096
+ :instance_launch_template,
8097
+ :propagate_tags)
8098
+ SENSITIVE = []
8099
+ include Aws::Structure
8100
+ end
8101
+
8102
+ # The storage configuration for Amazon ECS Managed Instances. This
8103
+ # defines the root volume configuration for the instances.
8104
+ #
8105
+ # @!attribute [rw] storage_size_gi_b
8106
+ # The size of the tasks volume.
8107
+ # @return [Integer]
8108
+ #
8109
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ManagedInstancesStorageConfiguration AWS API Documentation
8110
+ #
8111
+ class ManagedInstancesStorageConfiguration < Struct.new(
8112
+ :storage_size_gi_b)
8113
+ SENSITIVE = []
8114
+ include Aws::Structure
8115
+ end
8116
+
7508
8117
  # The managed scaling settings for the Auto Scaling group capacity
7509
8118
  # provider.
7510
8119
  #
@@ -7620,6 +8229,52 @@ module Aws::ECS
7620
8229
  include Aws::Structure
7621
8230
  end
7622
8231
 
8232
+ # The minimum and maximum amount of memory per vCPU in gibibytes (GiB).
8233
+ # This helps ensure that instance types have the appropriate
8234
+ # memory-to-CPU ratio for your workloads.
8235
+ #
8236
+ # @!attribute [rw] min
8237
+ # The minimum amount of memory per vCPU in GiB. Instance types with a
8238
+ # lower memory-to-vCPU ratio are excluded from selection.
8239
+ # @return [Float]
8240
+ #
8241
+ # @!attribute [rw] max
8242
+ # The maximum amount of memory per vCPU in GiB. Instance types with a
8243
+ # higher memory-to-vCPU ratio are excluded from selection.
8244
+ # @return [Float]
8245
+ #
8246
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/MemoryGiBPerVCpuRequest AWS API Documentation
8247
+ #
8248
+ class MemoryGiBPerVCpuRequest < Struct.new(
8249
+ :min,
8250
+ :max)
8251
+ SENSITIVE = []
8252
+ include Aws::Structure
8253
+ end
8254
+
8255
+ # The minimum and maximum amount of memory in mebibytes (MiB) for
8256
+ # instance type selection. This ensures that selected instance types
8257
+ # have adequate memory for your workloads.
8258
+ #
8259
+ # @!attribute [rw] min
8260
+ # The minimum amount of memory in MiB. Instance types with less memory
8261
+ # than this value are excluded from selection.
8262
+ # @return [Integer]
8263
+ #
8264
+ # @!attribute [rw] max
8265
+ # The maximum amount of memory in MiB. Instance types with more memory
8266
+ # than this value are excluded from selection.
8267
+ # @return [Integer]
8268
+ #
8269
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/MemoryMiBRequest AWS API Documentation
8270
+ #
8271
+ class MemoryMiBRequest < Struct.new(
8272
+ :min,
8273
+ :max)
8274
+ SENSITIVE = []
8275
+ include Aws::Structure
8276
+ end
8277
+
7623
8278
  # Amazon ECS can't determine the current version of the Amazon ECS
7624
8279
  # container agent on the container instance and doesn't have enough
7625
8280
  # information to proceed with an update. This could be because the agent
@@ -7664,6 +8319,29 @@ module Aws::ECS
7664
8319
  #
7665
8320
  class NamespaceNotFoundException < Aws::EmptyStructure; end
7666
8321
 
8322
+ # The minimum and maximum network bandwidth in gigabits per second
8323
+ # (Gbps) for instance type selection. This is important for
8324
+ # network-intensive workloads.
8325
+ #
8326
+ # @!attribute [rw] min
8327
+ # The minimum network bandwidth in Gbps. Instance types with lower
8328
+ # network bandwidth are excluded from selection.
8329
+ # @return [Float]
8330
+ #
8331
+ # @!attribute [rw] max
8332
+ # The maximum network bandwidth in Gbps. Instance types with higher
8333
+ # network bandwidth are excluded from selection.
8334
+ # @return [Float]
8335
+ #
8336
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkBandwidthGbpsRequest AWS API Documentation
8337
+ #
8338
+ class NetworkBandwidthGbpsRequest < Struct.new(
8339
+ :min,
8340
+ :max)
8341
+ SENSITIVE = []
8342
+ include Aws::Structure
8343
+ end
8344
+
7667
8345
  # Details on the network bindings between a container and its host
7668
8346
  # container instance. After a task reaches the `RUNNING` status, manual
7669
8347
  # and automatic host and container port assignments are visible in the
@@ -7814,6 +8492,29 @@ module Aws::ECS
7814
8492
  include Aws::Structure
7815
8493
  end
7816
8494
 
8495
+ # The minimum and maximum number of network interfaces for instance type
8496
+ # selection. This is useful for workloads that require multiple network
8497
+ # interfaces.
8498
+ #
8499
+ # @!attribute [rw] min
8500
+ # The minimum number of network interfaces. Instance types that
8501
+ # support fewer network interfaces are excluded from selection.
8502
+ # @return [Integer]
8503
+ #
8504
+ # @!attribute [rw] max
8505
+ # The maximum number of network interfaces. Instance types that
8506
+ # support more network interfaces are excluded from selection.
8507
+ # @return [Integer]
8508
+ #
8509
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkInterfaceCountRequest AWS API Documentation
8510
+ #
8511
+ class NetworkInterfaceCountRequest < Struct.new(
8512
+ :min,
8513
+ :max)
8514
+ SENSITIVE = []
8515
+ include Aws::Structure
8516
+ end
8517
+
7817
8518
  # There's no update available for this Amazon ECS container agent. This
7818
8519
  # might be because the agent is already running the latest version or
7819
8520
  # because it's so old that there's no update path to the current
@@ -9947,6 +10648,9 @@ module Aws::ECS
9947
10648
  # The period of time, in seconds, that the Amazon ECS service
9948
10649
  # scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and
9949
10650
  # container health checks after a task has first started.
10651
+ #
10652
+ # If your service has more running tasks than desired, unhealthy tasks
10653
+ # in the grace period might be stopped to reach the desired count.
9950
10654
  # @return [Integer]
9951
10655
  #
9952
10656
  # @!attribute [rw] scheduling_strategy
@@ -13553,6 +14257,29 @@ module Aws::ECS
13553
14257
  include Aws::Structure
13554
14258
  end
13555
14259
 
14260
+ # The minimum and maximum total local storage in gigabytes (GB) for
14261
+ # instance types with local storage. This is useful for workloads that
14262
+ # require local storage for temporary data or caching.
14263
+ #
14264
+ # @!attribute [rw] min
14265
+ # The minimum total local storage in GB. Instance types with less
14266
+ # local storage are excluded from selection.
14267
+ # @return [Float]
14268
+ #
14269
+ # @!attribute [rw] max
14270
+ # The maximum total local storage in GB. Instance types with more
14271
+ # local storage are excluded from selection.
14272
+ # @return [Float]
14273
+ #
14274
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TotalLocalStorageGBRequest AWS API Documentation
14275
+ #
14276
+ class TotalLocalStorageGBRequest < Struct.new(
14277
+ :min,
14278
+ :max)
14279
+ SENSITIVE = []
14280
+ include Aws::Structure
14281
+ end
14282
+
13556
14283
  # The `ulimit` settings to pass to the container.
13557
14284
  #
13558
14285
  # Amazon ECS tasks hosted on Fargate use the default resource limit
@@ -13625,16 +14352,31 @@ module Aws::ECS
13625
14352
  # The name of the capacity provider to update.
13626
14353
  # @return [String]
13627
14354
  #
14355
+ # @!attribute [rw] cluster
14356
+ # The name of the cluster that contains the capacity provider to
14357
+ # update. Managed instances capacity providers are cluster-scoped and
14358
+ # can only be updated within their associated cluster.
14359
+ # @return [String]
14360
+ #
13628
14361
  # @!attribute [rw] auto_scaling_group_provider
13629
14362
  # An object that represent the parameters to update for the Auto
13630
14363
  # Scaling group capacity provider.
13631
14364
  # @return [Types::AutoScalingGroupProviderUpdate]
13632
14365
  #
14366
+ # @!attribute [rw] managed_instances_provider
14367
+ # The updated configuration for the Amazon ECS Managed Instances
14368
+ # provider. You can modify the infrastructure role, instance launch
14369
+ # template, and tag propagation settings. Changes take effect for new
14370
+ # instances launched after the update.
14371
+ # @return [Types::UpdateManagedInstancesProviderConfiguration]
14372
+ #
13633
14373
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCapacityProviderRequest AWS API Documentation
13634
14374
  #
13635
14375
  class UpdateCapacityProviderRequest < Struct.new(
13636
14376
  :name,
13637
- :auto_scaling_group_provider)
14377
+ :cluster,
14378
+ :auto_scaling_group_provider,
14379
+ :managed_instances_provider)
13638
14380
  SENSITIVE = []
13639
14381
  include Aws::Structure
13640
14382
  end
@@ -13845,6 +14587,45 @@ module Aws::ECS
13845
14587
  #
13846
14588
  class UpdateInProgressException < Aws::EmptyStructure; end
13847
14589
 
14590
+ # The updated configuration for a Amazon ECS Managed Instances provider.
14591
+ # You can modify the infrastructure role, instance launch template, and
14592
+ # tag propagation settings. Changes apply to new instances launched
14593
+ # after the update.
14594
+ #
14595
+ # @!attribute [rw] infrastructure_role_arn
14596
+ # The updated Amazon Resource Name (ARN) of the infrastructure role.
14597
+ # The new role must have the necessary permissions to manage instances
14598
+ # and access required Amazon Web Services services.
14599
+ #
14600
+ # For more information, see [Amazon ECS infrastructure IAM role][1] in
14601
+ # the *Amazon ECS Developer Guide*.
14602
+ #
14603
+ #
14604
+ #
14605
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
14606
+ # @return [String]
14607
+ #
14608
+ # @!attribute [rw] instance_launch_template
14609
+ # The updated launch template configuration. Changes to the launch
14610
+ # template affect new instances launched after the update, while
14611
+ # existing instances continue to use their original configuration.
14612
+ # @return [Types::InstanceLaunchTemplateUpdate]
14613
+ #
14614
+ # @!attribute [rw] propagate_tags
14615
+ # The updated tag propagation setting. When changed, this affects only
14616
+ # new instances launched after the update.
14617
+ # @return [String]
14618
+ #
14619
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateManagedInstancesProviderConfiguration AWS API Documentation
14620
+ #
14621
+ class UpdateManagedInstancesProviderConfiguration < Struct.new(
14622
+ :infrastructure_role_arn,
14623
+ :instance_launch_template,
14624
+ :propagate_tags)
14625
+ SENSITIVE = []
14626
+ include Aws::Structure
14627
+ end
14628
+
13848
14629
  # @!attribute [rw] cluster
13849
14630
  # The short name or full Amazon Resource Name (ARN) of the cluster
13850
14631
  # that hosts the service that the task set exists in.
@@ -14061,6 +14842,9 @@ module Aws::ECS
14061
14842
  # can prevent the service scheduler from marking tasks as unhealthy
14062
14843
  # and stopping them before they have time to come up.
14063
14844
  #
14845
+ # If your service has more running tasks than desired, unhealthy tasks
14846
+ # in the grace period might be stopped to reach the desired count.
14847
+ #
14064
14848
  # This parameter doesn't trigger a new service deployment.
14065
14849
  # @return [Integer]
14066
14850
  #
@@ -14370,6 +15154,29 @@ module Aws::ECS
14370
15154
  include Aws::Structure
14371
15155
  end
14372
15156
 
15157
+ # The minimum and maximum number of vCPUs for instance type selection.
15158
+ # This allows you to specify a range of vCPU counts that meet your
15159
+ # workload requirements.
15160
+ #
15161
+ # @!attribute [rw] min
15162
+ # The minimum number of vCPUs. Instance types with fewer vCPUs than
15163
+ # this value are excluded from selection.
15164
+ # @return [Integer]
15165
+ #
15166
+ # @!attribute [rw] max
15167
+ # The maximum number of vCPUs. Instance types with more vCPUs than
15168
+ # this value are excluded from selection.
15169
+ # @return [Integer]
15170
+ #
15171
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/VCpuCountRangeRequest AWS API Documentation
15172
+ #
15173
+ class VCpuCountRangeRequest < Struct.new(
15174
+ :min,
15175
+ :max)
15176
+ SENSITIVE = []
15177
+ include Aws::Structure
15178
+ end
15179
+
14373
15180
  # The Docker and Amazon ECS container agent version information about a
14374
15181
  # container instance.
14375
15182
  #