

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::ECS::CapacityProvider
<a name="aws-resource-ecs-capacityprovider"></a>

Creates a capacity provider. Capacity providers are associated with a cluster and are used in capacity provider strategies to facilitate cluster auto scaling. You can create capacity providers for Amazon ECS Managed Instances and EC2 instances. AWS Fargate has the predefined `FARGATE` and `FARGATE_SPOT` capacity providers.

## Syntax
<a name="aws-resource-ecs-capacityprovider-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-ecs-capacityprovider-syntax.json"></a>

```
{
  "Type" : "AWS::ECS::CapacityProvider",
  "Properties" : {
      "[AutoScalingGroupProvider](#cfn-ecs-capacityprovider-autoscalinggroupprovider)" : AutoScalingGroupProvider,
      "[ClusterName](#cfn-ecs-capacityprovider-clustername)" : String,
      "[ManagedInstancesProvider](#cfn-ecs-capacityprovider-managedinstancesprovider)" : ManagedInstancesProvider,
      "[Name](#cfn-ecs-capacityprovider-name)" : String,
      "[Tags](#cfn-ecs-capacityprovider-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ecs-capacityprovider-syntax.yaml"></a>

```
Type: AWS::ECS::CapacityProvider
Properties:
  [AutoScalingGroupProvider](#cfn-ecs-capacityprovider-autoscalinggroupprovider): 
    AutoScalingGroupProvider
  [ClusterName](#cfn-ecs-capacityprovider-clustername): String
  [ManagedInstancesProvider](#cfn-ecs-capacityprovider-managedinstancesprovider): 
    ManagedInstancesProvider
  [Name](#cfn-ecs-capacityprovider-name): String
  [Tags](#cfn-ecs-capacityprovider-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ecs-capacityprovider-properties"></a>

`AutoScalingGroupProvider`  <a name="cfn-ecs-capacityprovider-autoscalinggroupprovider"></a>
The Auto Scaling group settings for the capacity provider.  
*Required*: No  
*Type*: [AutoScalingGroupProvider](aws-properties-ecs-capacityprovider-autoscalinggroupprovider.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ClusterName`  <a name="cfn-ecs-capacityprovider-clustername"></a>
The cluster that this capacity provider is associated with. Managed instances capacity providers are cluster-scoped, meaning they can only be used within their associated cluster.  
This is required for Managed instances.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ManagedInstancesProvider`  <a name="cfn-ecs-capacityprovider-managedinstancesprovider"></a>
The configuration for the Amazon ECS Managed Instances provider. This includes the infrastructure role, the launch template configuration, and tag propagation settings.  
*Required*: No  
*Type*: [ManagedInstancesProvider](aws-properties-ecs-capacityprovider-managedinstancesprovider.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-ecs-capacityprovider-name"></a>
The name of the capacity provider. If a name is specified, it cannot start with `aws`, `ecs`, or `fargate`. If no name is specified, a default name in the `CFNStackName-CFNResourceName-RandomString` format is used.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-ecs-capacityprovider-tags"></a>
The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag consists of a key and an optional value. You define both.  
The following basic restrictions apply to tags:  
+ Maximum number of tags per resource - 50
+ For each resource, each tag key must be unique, and each tag key can have only one value.
+ Maximum key length - 128 Unicode characters in UTF-8
+ Maximum value length - 256 Unicode characters in UTF-8
+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: \$1 - = . \$1 : / @.
+ Tag keys and values are case-sensitive.
+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
*Required*: No  
*Type*: Array of [Tag](aws-properties-ecs-capacityprovider-tag.md)  
*Minimum*: `0`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-ecs-capacityprovider-return-values"></a>

### Ref
<a name="aws-resource-ecs-capacityprovider-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource name.

In the following example, the `Ref` function returns the name of the capacity provider, such as `MyStack-MyCapacityProvider-JrwYBzxovGfr`.

 `{ "Ref": "MyCapacityProvider" }` 

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

## Examples
<a name="aws-resource-ecs-capacityprovider--examples"></a>



### Creating an Amazon ECS capacity provider
<a name="aws-resource-ecs-capacityprovider--examples--Creating_an_Amazon_ECS_capacity_provider"></a>

The following example creates a capacity provider that uses the Auto Scaling group `MyAutoScalingGroup`, has managed scaling and managed termination protection enabled. This configuration is used for Amazon ECS cluster auto scaling.

#### JSON
<a name="aws-resource-ecs-capacityprovider--examples--Creating_an_Amazon_ECS_capacity_provider--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
    "MyCapacityProvider": {
            "Type": "AWS::ECS::CapacityProvider",
            "Properties": {
                "AutoScalingGroupProvider": {
                    "AutoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup",
                    "ManagedScaling": {
                        "MaximumScalingStepSize": 10,
                        "MinimumScalingStepSize": 1,
                        "Status": "ENABLED",
                        "TargetCapacity": 100
                    },
                    "ManagedTerminationProtection": "ENABLED"
                },
                "Tags": [
                    {
                        "Key": "environment",
                        "Value": "production"
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-ecs-capacityprovider--examples--Creating_an_Amazon_ECS_capacity_provider--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
 MyCapacityProvider:
    Type: AWS::ECS::CapacityProvider
    Properties:
        AutoScalingGroupProvider:
            AutoScalingGroupArn: arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup
            ManagedScaling:
                MaximumScalingStepSize: 10
                MinimumScalingStepSize: 1
                Status: ENABLED
                TargetCapacity: 100
            ManagedTerminationProtection: ENABLED
        Tags:
            - Key: environment
              Value: production
```

# AWS::ECS::CapacityProvider AcceleratorCountRequest
<a name="aws-properties-ecs-capacityprovider-acceleratorcountrequest"></a>

The minimum and maximum number of accelerators (such as GPUs) for instance type selection. This is used for workloads that require specific numbers of accelerators.

## Syntax
<a name="aws-properties-ecs-capacityprovider-acceleratorcountrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-acceleratorcountrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-acceleratorcountrequest-max)" : Integer,
  "[Min](#cfn-ecs-capacityprovider-acceleratorcountrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-acceleratorcountrequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-acceleratorcountrequest-max): Integer
  [Min](#cfn-ecs-capacityprovider-acceleratorcountrequest-min): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-acceleratorcountrequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-acceleratorcountrequest-max"></a>
The maximum number of accelerators. Instance types with more accelerators are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-acceleratorcountrequest-min"></a>
The minimum number of accelerators. Instance types with fewer accelerators are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider AcceleratorTotalMemoryMiBRequest
<a name="aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest"></a>

The minimum and maximum total accelerator memory in mebibytes (MiB) for instance type selection. This is important for GPU workloads that require specific amounts of video memory.

## Syntax
<a name="aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-max)" : Integer,
  "[Min](#cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-max): Integer
  [Min](#cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-min): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-max"></a>
The maximum total accelerator memory in MiB. Instance types with more accelerator memory are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-min"></a>
The minimum total accelerator memory in MiB. Instance types with less accelerator memory are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider AutoRepairConfiguration
<a name="aws-properties-ecs-capacityprovider-autorepairconfiguration"></a>

<a name="aws-properties-ecs-capacityprovider-autorepairconfiguration-description"></a>The `AutoRepairConfiguration` property type specifies Property description not available. for an [AWS::ECS::CapacityProvider](aws-resource-ecs-capacityprovider.md).

## Syntax
<a name="aws-properties-ecs-capacityprovider-autorepairconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-autorepairconfiguration-syntax.json"></a>

```
{
  "[ActionsStatus](#cfn-ecs-capacityprovider-autorepairconfiguration-actionsstatus)" : String
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-autorepairconfiguration-syntax.yaml"></a>

```
  [ActionsStatus](#cfn-ecs-capacityprovider-autorepairconfiguration-actionsstatus): String
```

## Properties
<a name="aws-properties-ecs-capacityprovider-autorepairconfiguration-properties"></a>

`ActionsStatus`  <a name="cfn-ecs-capacityprovider-autorepairconfiguration-actionsstatus"></a>
Property description not available.  
*Required*: No  
*Type*: String  
*Allowed values*: `ENABLED | DISABLED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider AutoScalingGroupProvider
<a name="aws-properties-ecs-capacityprovider-autoscalinggroupprovider"></a>

The details of the Auto Scaling group for the capacity provider.

## Syntax
<a name="aws-properties-ecs-capacityprovider-autoscalinggroupprovider-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-autoscalinggroupprovider-syntax.json"></a>

```
{
  "[AutoScalingGroupArn](#cfn-ecs-capacityprovider-autoscalinggroupprovider-autoscalinggrouparn)" : String,
  "[ManagedDraining](#cfn-ecs-capacityprovider-autoscalinggroupprovider-manageddraining)" : String,
  "[ManagedScaling](#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedscaling)" : ManagedScaling,
  "[ManagedTerminationProtection](#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedterminationprotection)" : String
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-autoscalinggroupprovider-syntax.yaml"></a>

```
  [AutoScalingGroupArn](#cfn-ecs-capacityprovider-autoscalinggroupprovider-autoscalinggrouparn): String
  [ManagedDraining](#cfn-ecs-capacityprovider-autoscalinggroupprovider-manageddraining): String
  [ManagedScaling](#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedscaling): 
    ManagedScaling
  [ManagedTerminationProtection](#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedterminationprotection): String
```

## Properties
<a name="aws-properties-ecs-capacityprovider-autoscalinggroupprovider-properties"></a>

`AutoScalingGroupArn`  <a name="cfn-ecs-capacityprovider-autoscalinggroupprovider-autoscalinggrouparn"></a>
The Amazon Resource Name (ARN) that identifies the Auto Scaling group, or the Auto Scaling group name.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ManagedDraining`  <a name="cfn-ecs-capacityprovider-autoscalinggroupprovider-manageddraining"></a>
The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.  
*Required*: No  
*Type*: String  
*Allowed values*: `DISABLED | ENABLED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ManagedScaling`  <a name="cfn-ecs-capacityprovider-autoscalinggroupprovider-managedscaling"></a>
The managed scaling settings for the Auto Scaling group capacity provider.  
*Required*: No  
*Type*: [ManagedScaling](aws-properties-ecs-capacityprovider-managedscaling.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ManagedTerminationProtection`  <a name="cfn-ecs-capacityprovider-autoscalinggroupprovider-managedterminationprotection"></a>
The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. The default is off.  
When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.
When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions on as well. For more information, see [Instance Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the *AWS Auto Scaling User Guide*.  
When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.  
*Required*: No  
*Type*: String  
*Allowed values*: `DISABLED | ENABLED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-ecs-capacityprovider-autoscalinggroupprovider--seealso"></a>
+  [ Defining an Amazon ECS capacity provider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#aws-resource-ecs-capacityprovider--examples) 

# AWS::ECS::CapacityProvider BaselineEbsBandwidthMbpsRequest
<a name="aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest"></a>

The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps) for instance type selection. This is important for workloads with high storage I/O requirements.

## Syntax
<a name="aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-max)" : Integer,
  "[Min](#cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-max): Integer
  [Min](#cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-min): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-max"></a>
The maximum baseline Amazon EBS bandwidth in Mbps. Instance types with higher Amazon EBS bandwidth are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-min"></a>
The minimum baseline Amazon EBS bandwidth in Mbps. Instance types with lower Amazon EBS bandwidth are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider CapacityReservationRequest
<a name="aws-properties-ecs-capacityprovider-capacityreservationrequest"></a>

The Capacity Reservation configurations to be used when using the `RESERVED` capacity option type.

## Syntax
<a name="aws-properties-ecs-capacityprovider-capacityreservationrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-capacityreservationrequest-syntax.json"></a>

```
{
  "[ReservationGroupArn](#cfn-ecs-capacityprovider-capacityreservationrequest-reservationgrouparn)" : String,
  "[ReservationPreference](#cfn-ecs-capacityprovider-capacityreservationrequest-reservationpreference)" : String
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-capacityreservationrequest-syntax.yaml"></a>

```
  [ReservationGroupArn](#cfn-ecs-capacityprovider-capacityreservationrequest-reservationgrouparn): String
  [ReservationPreference](#cfn-ecs-capacityprovider-capacityreservationrequest-reservationpreference): String
```

## Properties
<a name="aws-properties-ecs-capacityprovider-capacityreservationrequest-properties"></a>

`ReservationGroupArn`  <a name="cfn-ecs-capacityprovider-capacityreservationrequest-reservationgrouparn"></a>
The ARN of the Capacity Reservation resource group in which to run the instance.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ReservationPreference`  <a name="cfn-ecs-capacityprovider-capacityreservationrequest-reservationpreference"></a>
The preference on when capacity reservations should be used.  
Valid values are:  
+ `RESERVATIONS_ONLY` - Exclusively launch instances into capacity reservations that match the instance requirements configured for the capacity provider. If none exist, instances will fail to provision.
+ `RESERVATIONS_FIRST` - Prefer to launch instances into a capacity reservation if any exist that match the instance requirements configured for the capacity provider. If none exist, fall back to launching instances On-Demand.
+ `RESERVATIONS_EXCLUDED` - Avoid using capacity reservations and launch exclusively On-Demand.
*Required*: No  
*Type*: String  
*Allowed values*: `RESERVATIONS_ONLY | RESERVATIONS_FIRST | RESERVATIONS_EXCLUDED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider InfrastructureOptimization
<a name="aws-properties-ecs-capacityprovider-infrastructureoptimization"></a>

The configuration that controls how Amazon ECS optimizes your infrastructure.

## Syntax
<a name="aws-properties-ecs-capacityprovider-infrastructureoptimization-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-infrastructureoptimization-syntax.json"></a>

```
{
  "[ScaleInAfter](#cfn-ecs-capacityprovider-infrastructureoptimization-scaleinafter)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-infrastructureoptimization-syntax.yaml"></a>

```
  [ScaleInAfter](#cfn-ecs-capacityprovider-infrastructureoptimization-scaleinafter): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-infrastructureoptimization-properties"></a>

`ScaleInAfter`  <a name="cfn-ecs-capacityprovider-infrastructureoptimization-scaleinafter"></a>
This parameter defines the number of seconds Amazon ECS Managed Instances waits before optimizing EC2 instances that have become idle or underutilized. A longer delay increases the likelihood of placing new tasks on idle or underutilized instances instances, reducing startup time. A shorter delay helps reduce infrastructure costs by optimizing idle or underutilized instances,instances more quickly.  
Valid values are:  
+ `null` - Uses the default optimization behavior.
+ `-1` - Disables automatic infrastructure optimization.
+ A value between `0` and `3600` (inclusive) - Specifies the number of seconds to wait before optimizing instances.
*Required*: No  
*Type*: Integer  
*Minimum*: `-1`  
*Maximum*: `3600`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider InstanceLaunchTemplate
<a name="aws-properties-ecs-capacityprovider-instancelaunchtemplate"></a>

The launch template configuration for Amazon ECS Managed Instances. This defines how Amazon ECS launches Amazon EC2 instances, including the instance profile for your tasks, network and storage configuration, capacity options, and instance requirements for flexible instance type selection.

## Syntax
<a name="aws-properties-ecs-capacityprovider-instancelaunchtemplate-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-instancelaunchtemplate-syntax.json"></a>

```
{
  "[CapacityOptionType](#cfn-ecs-capacityprovider-instancelaunchtemplate-capacityoptiontype)" : String,
  "[CapacityReservations](#cfn-ecs-capacityprovider-instancelaunchtemplate-capacityreservations)" : CapacityReservationRequest,
  "[Ec2InstanceProfileArn](#cfn-ecs-capacityprovider-instancelaunchtemplate-ec2instanceprofilearn)" : String,
  "[FipsEnabled](#cfn-ecs-capacityprovider-instancelaunchtemplate-fipsenabled)" : Boolean,
  "[InstanceMetadataTagsPropagation](#cfn-ecs-capacityprovider-instancelaunchtemplate-instancemetadatatagspropagation)" : Boolean,
  "[InstanceRequirements](#cfn-ecs-capacityprovider-instancelaunchtemplate-instancerequirements)" : InstanceRequirementsRequest,
  "[LocalStorageConfiguration](#cfn-ecs-capacityprovider-instancelaunchtemplate-localstorageconfiguration)" : ManagedInstancesLocalStorageConfiguration,
  "[Monitoring](#cfn-ecs-capacityprovider-instancelaunchtemplate-monitoring)" : String,
  "[NetworkConfiguration](#cfn-ecs-capacityprovider-instancelaunchtemplate-networkconfiguration)" : ManagedInstancesNetworkConfiguration,
  "[StorageConfiguration](#cfn-ecs-capacityprovider-instancelaunchtemplate-storageconfiguration)" : ManagedInstancesStorageConfiguration
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-instancelaunchtemplate-syntax.yaml"></a>

```
  [CapacityOptionType](#cfn-ecs-capacityprovider-instancelaunchtemplate-capacityoptiontype): String
  [CapacityReservations](#cfn-ecs-capacityprovider-instancelaunchtemplate-capacityreservations): 
    CapacityReservationRequest
  [Ec2InstanceProfileArn](#cfn-ecs-capacityprovider-instancelaunchtemplate-ec2instanceprofilearn): String
  [FipsEnabled](#cfn-ecs-capacityprovider-instancelaunchtemplate-fipsenabled): Boolean
  [InstanceMetadataTagsPropagation](#cfn-ecs-capacityprovider-instancelaunchtemplate-instancemetadatatagspropagation): Boolean
  [InstanceRequirements](#cfn-ecs-capacityprovider-instancelaunchtemplate-instancerequirements): 
    InstanceRequirementsRequest
  [LocalStorageConfiguration](#cfn-ecs-capacityprovider-instancelaunchtemplate-localstorageconfiguration): 
    ManagedInstancesLocalStorageConfiguration
  [Monitoring](#cfn-ecs-capacityprovider-instancelaunchtemplate-monitoring): String
  [NetworkConfiguration](#cfn-ecs-capacityprovider-instancelaunchtemplate-networkconfiguration): 
    ManagedInstancesNetworkConfiguration
  [StorageConfiguration](#cfn-ecs-capacityprovider-instancelaunchtemplate-storageconfiguration): 
    ManagedInstancesStorageConfiguration
```

## Properties
<a name="aws-properties-ecs-capacityprovider-instancelaunchtemplate-properties"></a>

`CapacityOptionType`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-capacityoptiontype"></a>
The capacity option type. This determines whether Amazon ECS launches On-Demand, Spot or Capacity Reservation Instances for your managed instance capacity provider.  
Valid values are:  
+ `ON_DEMAND` - Launches standard On-Demand Instances. On-Demand Instances provide predictable pricing and availability.
+ `SPOT` - Launches Spot Instances that use spare Amazon EC2 capacity at reduced cost. Spot Instances can be interrupted by Amazon EC2 with a two-minute notification when the capacity is needed back.
+ `RESERVED` - Launches Instances using Amazon EC2 Capacity Reservations. Capacity Reservations allow you to reserve compute capacity for Amazon EC2 instances in a specific Availability Zone.
The default is On-Demand  
For more information about Amazon EC2 capacity options, see [Instance purchasing options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html) in the *Amazon EC2 User Guide*.  
*Required*: No  
*Type*: String  
*Allowed values*: `ON_DEMAND | SPOT | RESERVED`  
*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)

`CapacityReservations`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-capacityreservations"></a>
Capacity reservation specifications. You can specify:  
+ Capacity reservation preference
+ Reservation resource group to be used for targeted capacity reservations
Amazon ECS will launch instances according to the specified criteria.  
*Required*: No  
*Type*: [CapacityReservationRequest](aws-properties-ecs-capacityprovider-capacityreservationrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Ec2InstanceProfileArn`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-ec2instanceprofilearn"></a>
The Amazon Resource Name (ARN) of the instance profile that Amazon ECS applies to Amazon ECS Managed Instances. This instance profile must include the necessary permissions for your tasks to access AWS services and resources.  
For more information, see [Amazon ECS instance profile for Managed Instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-instances-instance-profile.html) in the *Amazon ECS Developer Guide*.   
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`FipsEnabled`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-fipsenabled"></a>
Determines whether to enable FIPS 140-2 validated cryptographic modules on EC2 instances launched by the capacity provider. If `true`, instances use FIPS-compliant cryptographic algorithms and modules for enhanced security compliance. If `false`, instances use standard cryptographic implementations.  
If not specified, instances are launched with FIPS enabled in AWS GovCloud (US) regions and FIPS disabled in other regions.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceMetadataTagsPropagation`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-instancemetadatatagspropagation"></a>
Determines whether tags are propagated to the instance metadata service (IMDS) for Amazon EC2 instances launched by the Managed Instances capacity provider. When enabled, all tags associated with the instance are available through the instance metadata service. When disabled, tags are not propagated to IMDS.  
Disable this setting if your tags contain characters that are not compatible with IMDS, such as `/`. IMDS requires tag keys to match the pattern `[0-9a-zA-Z\-_+=,.@:]{1,255}`.  
The default value is `true`.  
For more information, see [Work with instance tags in instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS) in the *Amazon EC2 User Guide*.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceRequirements`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-instancerequirements"></a>
The instance requirements. You can specify:  
+ The instance types
+ Instance requirements such as vCPU count, memory, network performance, and accelerator specifications
Amazon ECS automatically selects the instances that match the specified criteria.  
*Required*: No  
*Type*: [InstanceRequirementsRequest](aws-properties-ecs-capacityprovider-instancerequirementsrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LocalStorageConfiguration`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-localstorageconfiguration"></a>
The local storage configuration for Amazon ECS Managed Instances. This defines how ECS uses instance store volumes available on the container instance.  
*Required*: No  
*Type*: [ManagedInstancesLocalStorageConfiguration](aws-properties-ecs-capacityprovider-managedinstanceslocalstorageconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Monitoring`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-monitoring"></a>
CloudWatch provides two categories of monitoring: basic monitoring and detailed monitoring. By default, your managed instance is configured for basic monitoring. You can optionally enable detailed monitoring to help you more quickly identify and act on operational issues. You can enable or turn off detailed monitoring at launch or when the managed instance is running or stopped. For more information, see [Detailed monitoring for Amazon ECS Managed Instances](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/detailed-monitoring-managed-instances.html) in the Amazon ECS Developer Guide.  
*Required*: No  
*Type*: String  
*Allowed values*: `BASIC | DETAILED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NetworkConfiguration`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-networkconfiguration"></a>
The network configuration for Amazon ECS Managed Instances. This specifies the subnets and security groups that instances use for network connectivity.  
*Required*: Yes  
*Type*: [ManagedInstancesNetworkConfiguration](aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StorageConfiguration`  <a name="cfn-ecs-capacityprovider-instancelaunchtemplate-storageconfiguration"></a>
The storage configuration for Amazon ECS Managed Instances. This defines the data volume properties for the instances.  
*Required*: No  
*Type*: [ManagedInstancesStorageConfiguration](aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider InstanceRequirementsRequest
<a name="aws-properties-ecs-capacityprovider-instancerequirementsrequest"></a>

The instance requirements for attribute-based instance type selection. Instead of specifying exact instance types, you define requirements such as vCPU count, memory size, network performance, and accelerator specifications. Amazon ECS automatically selects Amazon EC2 instance types that match these requirements, providing flexibility and helping to mitigate capacity constraints.

## Syntax
<a name="aws-properties-ecs-capacityprovider-instancerequirementsrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-instancerequirementsrequest-syntax.json"></a>

```
{
  "[AcceleratorCount](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratorcount)" : AcceleratorCountRequest,
  "[AcceleratorManufacturers](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratormanufacturers)" : [ String, ... ],
  "[AcceleratorNames](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratornames)" : [ String, ... ],
  "[AcceleratorTotalMemoryMiB](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortotalmemorymib)" : AcceleratorTotalMemoryMiBRequest,
  "[AcceleratorTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortypes)" : [ String, ... ],
  "[AllowedInstanceTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-allowedinstancetypes)" : [ String, ... ],
  "[BareMetal](#cfn-ecs-capacityprovider-instancerequirementsrequest-baremetal)" : String,
  "[BaselineEbsBandwidthMbps](#cfn-ecs-capacityprovider-instancerequirementsrequest-baselineebsbandwidthmbps)" : BaselineEbsBandwidthMbpsRequest,
  "[BurstablePerformance](#cfn-ecs-capacityprovider-instancerequirementsrequest-burstableperformance)" : String,
  "[CpuManufacturers](#cfn-ecs-capacityprovider-instancerequirementsrequest-cpumanufacturers)" : [ String, ... ],
  "[ExcludedInstanceTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-excludedinstancetypes)" : [ String, ... ],
  "[InstanceGenerations](#cfn-ecs-capacityprovider-instancerequirementsrequest-instancegenerations)" : [ String, ... ],
  "[LocalStorage](#cfn-ecs-capacityprovider-instancerequirementsrequest-localstorage)" : String,
  "[LocalStorageTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-localstoragetypes)" : [ String, ... ],
  "[MaxSpotPriceAsPercentageOfOptimalOnDemandPrice](#cfn-ecs-capacityprovider-instancerequirementsrequest-maxspotpriceaspercentageofoptimalondemandprice)" : Integer,
  "[MemoryGiBPerVCpu](#cfn-ecs-capacityprovider-instancerequirementsrequest-memorygibpervcpu)" : MemoryGiBPerVCpuRequest,
  "[MemoryMiB](#cfn-ecs-capacityprovider-instancerequirementsrequest-memorymib)" : MemoryMiBRequest,
  "[NetworkBandwidthGbps](#cfn-ecs-capacityprovider-instancerequirementsrequest-networkbandwidthgbps)" : NetworkBandwidthGbpsRequest,
  "[NetworkInterfaceCount](#cfn-ecs-capacityprovider-instancerequirementsrequest-networkinterfacecount)" : NetworkInterfaceCountRequest,
  "[OnDemandMaxPricePercentageOverLowestPrice](#cfn-ecs-capacityprovider-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice)" : Integer,
  "[RequireHibernateSupport](#cfn-ecs-capacityprovider-instancerequirementsrequest-requirehibernatesupport)" : Boolean,
  "[SpotMaxPricePercentageOverLowestPrice](#cfn-ecs-capacityprovider-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice)" : Integer,
  "[TotalLocalStorageGB](#cfn-ecs-capacityprovider-instancerequirementsrequest-totallocalstoragegb)" : TotalLocalStorageGBRequest,
  "[VCpuCount](#cfn-ecs-capacityprovider-instancerequirementsrequest-vcpucount)" : VCpuCountRangeRequest
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-instancerequirementsrequest-syntax.yaml"></a>

```
  [AcceleratorCount](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratorcount): 
    AcceleratorCountRequest
  [AcceleratorManufacturers](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratormanufacturers): 
    - String
  [AcceleratorNames](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratornames): 
    - String
  [AcceleratorTotalMemoryMiB](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortotalmemorymib): 
    AcceleratorTotalMemoryMiBRequest
  [AcceleratorTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortypes): 
    - String
  [AllowedInstanceTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-allowedinstancetypes): 
    - String
  [BareMetal](#cfn-ecs-capacityprovider-instancerequirementsrequest-baremetal): String
  [BaselineEbsBandwidthMbps](#cfn-ecs-capacityprovider-instancerequirementsrequest-baselineebsbandwidthmbps): 
    BaselineEbsBandwidthMbpsRequest
  [BurstablePerformance](#cfn-ecs-capacityprovider-instancerequirementsrequest-burstableperformance): String
  [CpuManufacturers](#cfn-ecs-capacityprovider-instancerequirementsrequest-cpumanufacturers): 
    - String
  [ExcludedInstanceTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-excludedinstancetypes): 
    - String
  [InstanceGenerations](#cfn-ecs-capacityprovider-instancerequirementsrequest-instancegenerations): 
    - String
  [LocalStorage](#cfn-ecs-capacityprovider-instancerequirementsrequest-localstorage): String
  [LocalStorageTypes](#cfn-ecs-capacityprovider-instancerequirementsrequest-localstoragetypes): 
    - String
  [MaxSpotPriceAsPercentageOfOptimalOnDemandPrice](#cfn-ecs-capacityprovider-instancerequirementsrequest-maxspotpriceaspercentageofoptimalondemandprice): Integer
  [MemoryGiBPerVCpu](#cfn-ecs-capacityprovider-instancerequirementsrequest-memorygibpervcpu): 
    MemoryGiBPerVCpuRequest
  [MemoryMiB](#cfn-ecs-capacityprovider-instancerequirementsrequest-memorymib): 
    MemoryMiBRequest
  [NetworkBandwidthGbps](#cfn-ecs-capacityprovider-instancerequirementsrequest-networkbandwidthgbps): 
    NetworkBandwidthGbpsRequest
  [NetworkInterfaceCount](#cfn-ecs-capacityprovider-instancerequirementsrequest-networkinterfacecount): 
    NetworkInterfaceCountRequest
  [OnDemandMaxPricePercentageOverLowestPrice](#cfn-ecs-capacityprovider-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice): Integer
  [RequireHibernateSupport](#cfn-ecs-capacityprovider-instancerequirementsrequest-requirehibernatesupport): Boolean
  [SpotMaxPricePercentageOverLowestPrice](#cfn-ecs-capacityprovider-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice): Integer
  [TotalLocalStorageGB](#cfn-ecs-capacityprovider-instancerequirementsrequest-totallocalstoragegb): 
    TotalLocalStorageGBRequest
  [VCpuCount](#cfn-ecs-capacityprovider-instancerequirementsrequest-vcpucount): 
    VCpuCountRangeRequest
```

## Properties
<a name="aws-properties-ecs-capacityprovider-instancerequirementsrequest-properties"></a>

`AcceleratorCount`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratorcount"></a>
The minimum and maximum number of accelerators for the instance types. This is used when you need instances with specific numbers of GPUs or other accelerators.  
*Required*: No  
*Type*: [AcceleratorCountRequest](aws-properties-ecs-capacityprovider-acceleratorcountrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AcceleratorManufacturers`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratormanufacturers"></a>
The accelerator manufacturers to include. You can specify `nvidia`, `amd`, `amazon-web-services`, or `xilinx` depending on your accelerator requirements.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `amazon-web-services | amd | habana | nvidia | xilinx`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AcceleratorNames`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratornames"></a>
The specific accelerator names to include. For example, you can specify `a100`, `v100`, `k80`, or other specific accelerator models.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 | l40s`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AcceleratorTotalMemoryMiB`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortotalmemorymib"></a>
The minimum and maximum total accelerator memory in mebibytes (MiB). This is important for GPU workloads that require specific amounts of video memory.  
*Required*: No  
*Type*: [AcceleratorTotalMemoryMiBRequest](aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AcceleratorTypes`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortypes"></a>
The accelerator types to include. You can specify `gpu` for graphics processing units, `fpga` for field programmable gate arrays, or `inference` for machine learning inference accelerators.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `gpu | fpga | inference`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AllowedInstanceTypes`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-allowedinstancetypes"></a>
The instance types to include in the selection. When specified, Amazon ECS only considers these instance types, subject to the other requirements specified.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `30`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BareMetal`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-baremetal"></a>
Indicates whether to include bare metal instance types. Set to `included` to allow bare metal instances, `excluded` to exclude them, or `required` to use only bare metal instances.  
*Required*: No  
*Type*: String  
*Allowed values*: `included | required | excluded`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BaselineEbsBandwidthMbps`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-baselineebsbandwidthmbps"></a>
The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps). This is important for workloads with high storage I/O requirements.  
*Required*: No  
*Type*: [BaselineEbsBandwidthMbpsRequest](aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BurstablePerformance`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-burstableperformance"></a>
Indicates whether to include burstable performance instance types (T2, T3, T3a, T4g). Set to `included` to allow burstable instances, `excluded` to exclude them, or `required` to use only burstable instances.  
*Required*: No  
*Type*: String  
*Allowed values*: `included | required | excluded`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CpuManufacturers`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-cpumanufacturers"></a>
The CPU manufacturers to include or exclude. You can specify `intel`, `amd`, or `amazon-web-services` to control which CPU types are used for your workloads.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `intel | amd | amazon-web-services`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExcludedInstanceTypes`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-excludedinstancetypes"></a>
The instance types to exclude from selection. Use this to prevent Amazon ECS from selecting specific instance types that may not be suitable for your workloads.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `30`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceGenerations`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-instancegenerations"></a>
The instance generations to include. You can specify `current` to use the latest generation instances, or `previous` to include previous generation instances for cost optimization.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `current | previous`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LocalStorage`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-localstorage"></a>
Indicates whether to include instance types with local storage. Set to `included` to allow local storage, `excluded` to exclude it, or `required` to use only instances with local storage.  
*Required*: No  
*Type*: String  
*Allowed values*: `included | required | excluded`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LocalStorageTypes`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-localstoragetypes"></a>
The local storage types to include. You can specify `hdd` for hard disk drives, `ssd` for solid state drives, or both.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `hdd | ssd`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-maxspotpriceaspercentageofoptimalondemandprice"></a>
The maximum price for Spot instances as a percentage of the optimal On-Demand price. This provides more precise cost control for Spot instance selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MemoryGiBPerVCpu`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-memorygibpervcpu"></a>
The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.  
*Required*: No  
*Type*: [MemoryGiBPerVCpuRequest](aws-properties-ecs-capacityprovider-memorygibpervcpurequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MemoryMiB`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-memorymib"></a>
The minimum and maximum amount of memory in mebibytes (MiB) for the instance types. Amazon ECS selects instance types that have memory within this range.  
*Required*: Yes  
*Type*: [MemoryMiBRequest](aws-properties-ecs-capacityprovider-memorymibrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NetworkBandwidthGbps`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-networkbandwidthgbps"></a>
The minimum and maximum network bandwidth in gigabits per second (Gbps). This is crucial for network-intensive workloads that require high throughput.  
*Required*: No  
*Type*: [NetworkBandwidthGbpsRequest](aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NetworkInterfaceCount`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-networkinterfacecount"></a>
The minimum and maximum number of network interfaces for the instance types. This is useful for workloads that require multiple network interfaces.  
*Required*: No  
*Type*: [NetworkInterfaceCountRequest](aws-properties-ecs-capacityprovider-networkinterfacecountrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OnDemandMaxPricePercentageOverLowestPrice`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice"></a>
The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon ECS selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RequireHibernateSupport`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-requirehibernatesupport"></a>
Indicates whether the instance types must support hibernation. When set to `true`, only instance types that support hibernation are selected.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SpotMaxPricePercentageOverLowestPrice`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice"></a>
The maximum price for Spot instances as a percentage over the lowest priced On-Demand instance. This helps control Spot instance costs while maintaining access to capacity.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TotalLocalStorageGB`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-totallocalstoragegb"></a>
The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.  
*Required*: No  
*Type*: [TotalLocalStorageGBRequest](aws-properties-ecs-capacityprovider-totallocalstoragegbrequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`VCpuCount`  <a name="cfn-ecs-capacityprovider-instancerequirementsrequest-vcpucount"></a>
The minimum and maximum number of vCPUs for the instance types. Amazon ECS selects instance types that have vCPU counts within this range.  
*Required*: Yes  
*Type*: [VCpuCountRangeRequest](aws-properties-ecs-capacityprovider-vcpucountrangerequest.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider ManagedInstancesLocalStorageConfiguration
<a name="aws-properties-ecs-capacityprovider-managedinstanceslocalstorageconfiguration"></a>

The local storage configuration for Amazon ECS Managed Instances. This defines how ECS uses and configures instance store volumes available on container instance.

## Syntax
<a name="aws-properties-ecs-capacityprovider-managedinstanceslocalstorageconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-managedinstanceslocalstorageconfiguration-syntax.json"></a>

```
{
  "[UseLocalStorage](#cfn-ecs-capacityprovider-managedinstanceslocalstorageconfiguration-uselocalstorage)" : Boolean
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-managedinstanceslocalstorageconfiguration-syntax.yaml"></a>

```
  [UseLocalStorage](#cfn-ecs-capacityprovider-managedinstanceslocalstorageconfiguration-uselocalstorage): Boolean
```

## Properties
<a name="aws-properties-ecs-capacityprovider-managedinstanceslocalstorageconfiguration-properties"></a>

`UseLocalStorage`  <a name="cfn-ecs-capacityprovider-managedinstanceslocalstorageconfiguration-uselocalstorage"></a>
Use instance store volumes for data storage when available. EBS volumes are not provisioned for data storage. If the container instance has multiple instance store volumes, a single data volume is created. Consider defining instance store requirements using the `localStorage`, `localStorageTypes` and `totalLocalStorageGB` properties.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider ManagedInstancesNetworkConfiguration
<a name="aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration"></a>

The network configuration for Amazon ECS Managed Instances. This specifies the VPC subnets and security groups that instances use for network connectivity. Amazon ECS Managed Instances support multiple network modes including `awsvpc` (instances receive ENIs for task isolation), `host` (instances share network namespace with tasks), and `none` (no external network connectivity), ensuring backward compatibility for migrating workloads from Fargate or Amazon EC2.

## Syntax
<a name="aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration-syntax.json"></a>

```
{
  "[SecurityGroups](#cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-securitygroups)" : [ String, ... ],
  "[Subnets](#cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-subnets)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration-syntax.yaml"></a>

```
  [SecurityGroups](#cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-securitygroups): 
    - String
  [Subnets](#cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-subnets): 
    - String
```

## Properties
<a name="aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration-properties"></a>

`SecurityGroups`  <a name="cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-securitygroups"></a>
The list of security group IDs to apply to Amazon ECS Managed Instances. These security groups control the network traffic allowed to and from the instances.  
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Subnets`  <a name="cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-subnets"></a>
The list of subnet IDs where Amazon ECS can launch Amazon ECS Managed Instances. Instances are distributed across the specified subnets for high availability. All subnets must be in the same VPC.  
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider ManagedInstancesProvider
<a name="aws-properties-ecs-capacityprovider-managedinstancesprovider"></a>

The configuration for a Amazon ECS Managed Instances provider. Amazon ECS uses this configuration to automatically launch, manage, and terminate Amazon EC2 instances on your behalf. Managed instances provide access to the full range of Amazon EC2 instance types and features while offloading infrastructure management to AWS.

## Syntax
<a name="aws-properties-ecs-capacityprovider-managedinstancesprovider-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-managedinstancesprovider-syntax.json"></a>

```
{
  "[AutoRepairConfiguration](#cfn-ecs-capacityprovider-managedinstancesprovider-autorepairconfiguration)" : AutoRepairConfiguration,
  "[InfrastructureOptimization](#cfn-ecs-capacityprovider-managedinstancesprovider-infrastructureoptimization)" : InfrastructureOptimization,
  "[InfrastructureRoleArn](#cfn-ecs-capacityprovider-managedinstancesprovider-infrastructurerolearn)" : String,
  "[InstanceLaunchTemplate](#cfn-ecs-capacityprovider-managedinstancesprovider-instancelaunchtemplate)" : InstanceLaunchTemplate,
  "[PropagateTags](#cfn-ecs-capacityprovider-managedinstancesprovider-propagatetags)" : String
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-managedinstancesprovider-syntax.yaml"></a>

```
  [AutoRepairConfiguration](#cfn-ecs-capacityprovider-managedinstancesprovider-autorepairconfiguration): 
    AutoRepairConfiguration
  [InfrastructureOptimization](#cfn-ecs-capacityprovider-managedinstancesprovider-infrastructureoptimization): 
    InfrastructureOptimization
  [InfrastructureRoleArn](#cfn-ecs-capacityprovider-managedinstancesprovider-infrastructurerolearn): String
  [InstanceLaunchTemplate](#cfn-ecs-capacityprovider-managedinstancesprovider-instancelaunchtemplate): 
    InstanceLaunchTemplate
  [PropagateTags](#cfn-ecs-capacityprovider-managedinstancesprovider-propagatetags): String
```

## Properties
<a name="aws-properties-ecs-capacityprovider-managedinstancesprovider-properties"></a>

`AutoRepairConfiguration`  <a name="cfn-ecs-capacityprovider-managedinstancesprovider-autorepairconfiguration"></a>
Property description not available.  
*Required*: No  
*Type*: [AutoRepairConfiguration](aws-properties-ecs-capacityprovider-autorepairconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InfrastructureOptimization`  <a name="cfn-ecs-capacityprovider-managedinstancesprovider-infrastructureoptimization"></a>
Defines how Amazon ECS Managed Instances optimizes the infrastastructure in your capacity provider. Configure it to turn on or off the infrastructure optimization in your capacity provider, and to control the idle or underutilized EC2 instances optimization delay.  
*Required*: No  
*Type*: [InfrastructureOptimization](aws-properties-ecs-capacityprovider-infrastructureoptimization.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InfrastructureRoleArn`  <a name="cfn-ecs-capacityprovider-managedinstancesprovider-infrastructurerolearn"></a>
The Amazon Resource Name (ARN) of the infrastructure role that Amazon ECS assumes to manage instances. This role must include permissions for Amazon EC2 instance lifecycle management, networking, and any additional AWS services required for your workloads.  
For more information, see [Amazon ECS infrastructure IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html) in the *Amazon ECS Developer Guide*.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceLaunchTemplate`  <a name="cfn-ecs-capacityprovider-managedinstancesprovider-instancelaunchtemplate"></a>
The launch template that defines how Amazon ECS launches Amazon ECS Managed Instances. This includes the instance profile for your tasks, network and storage configuration, and instance requirements that determine which Amazon EC2 instance types can be used.  
For more information, see [Store instance launch parameters in Amazon EC2 launch templates](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*.  
*Required*: Yes  
*Type*: [InstanceLaunchTemplate](aws-properties-ecs-capacityprovider-instancelaunchtemplate.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PropagateTags`  <a name="cfn-ecs-capacityprovider-managedinstancesprovider-propagatetags"></a>
Determines whether tags from the capacity provider are automatically applied to Amazon ECS Managed Instances. This helps with cost allocation and resource management by ensuring consistent tagging across your infrastructure.  
*Required*: No  
*Type*: String  
*Allowed values*: `CAPACITY_PROVIDER | NONE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider ManagedInstancesStorageConfiguration
<a name="aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration"></a>

The storage configuration for Amazon ECS Managed Instances. This defines the data volume configuration for the instances.

## Syntax
<a name="aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration-syntax.json"></a>

```
{
  "[StorageSizeGiB](#cfn-ecs-capacityprovider-managedinstancesstorageconfiguration-storagesizegib)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration-syntax.yaml"></a>

```
  [StorageSizeGiB](#cfn-ecs-capacityprovider-managedinstancesstorageconfiguration-storagesizegib): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration-properties"></a>

`StorageSizeGiB`  <a name="cfn-ecs-capacityprovider-managedinstancesstorageconfiguration-storagesizegib"></a>
The size of the data volume.  
*Required*: Yes  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider ManagedScaling
<a name="aws-properties-ecs-capacityprovider-managedscaling"></a>

The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is turned on, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified `targetCapacity` value as the target value for the metric. For more information, see [Using managed scaling](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling) in the *Amazon Elastic Container Service Developer Guide*.

If managed scaling is off, the user must manage the scaling of the Auto Scaling group.

## Syntax
<a name="aws-properties-ecs-capacityprovider-managedscaling-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-managedscaling-syntax.json"></a>

```
{
  "[InstanceWarmupPeriod](#cfn-ecs-capacityprovider-managedscaling-instancewarmupperiod)" : Integer,
  "[MaximumScalingStepSize](#cfn-ecs-capacityprovider-managedscaling-maximumscalingstepsize)" : Integer,
  "[MinimumScalingStepSize](#cfn-ecs-capacityprovider-managedscaling-minimumscalingstepsize)" : Integer,
  "[Status](#cfn-ecs-capacityprovider-managedscaling-status)" : String,
  "[TargetCapacity](#cfn-ecs-capacityprovider-managedscaling-targetcapacity)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-managedscaling-syntax.yaml"></a>

```
  [InstanceWarmupPeriod](#cfn-ecs-capacityprovider-managedscaling-instancewarmupperiod): Integer
  [MaximumScalingStepSize](#cfn-ecs-capacityprovider-managedscaling-maximumscalingstepsize): Integer
  [MinimumScalingStepSize](#cfn-ecs-capacityprovider-managedscaling-minimumscalingstepsize): Integer
  [Status](#cfn-ecs-capacityprovider-managedscaling-status): String
  [TargetCapacity](#cfn-ecs-capacityprovider-managedscaling-targetcapacity): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-managedscaling-properties"></a>

`InstanceWarmupPeriod`  <a name="cfn-ecs-capacityprovider-managedscaling-instancewarmupperiod"></a>
The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of `300` seconds is used.  
*Required*: No  
*Type*: Integer  
*Minimum*: `0`  
*Maximum*: `10000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MaximumScalingStepSize`  <a name="cfn-ecs-capacityprovider-managedscaling-maximumscalingstepsize"></a>
The maximum number of Amazon EC2 instances that Amazon ECS will scale out at one time. If this parameter is omitted, the default value of `10000` is used.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `10000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MinimumScalingStepSize`  <a name="cfn-ecs-capacityprovider-managedscaling-minimumscalingstepsize"></a>
The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale in process is not affected by this parameter If this parameter is omitted, the default value of `1` is used.  
When additional capacity is required, Amazon ECS will scale up the minimum scaling step size even if the actual demand is less than the minimum scaling step size.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `10000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Status`  <a name="cfn-ecs-capacityprovider-managedscaling-status"></a>
Determines whether to use managed scaling for the capacity provider.  
*Required*: No  
*Type*: String  
*Allowed values*: `DISABLED | ENABLED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetCapacity`  <a name="cfn-ecs-capacityprovider-managedscaling-targetcapacity"></a>
The target capacity utilization as a percentage for the capacity provider. The specified value must be greater than `0` and less than or equal to `100`. For example, if you want the capacity provider to maintain 10% spare capacity, then that means the utilization is 90%, so use a `targetCapacity` of `90`. The default value of `100` percent results in the Amazon EC2 instances in your Auto Scaling group being completely used.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider MemoryGiBPerVCpuRequest
<a name="aws-properties-ecs-capacityprovider-memorygibpervcpurequest"></a>

The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.

## Syntax
<a name="aws-properties-ecs-capacityprovider-memorygibpervcpurequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-memorygibpervcpurequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-memorygibpervcpurequest-max)" : Number,
  "[Min](#cfn-ecs-capacityprovider-memorygibpervcpurequest-min)" : Number
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-memorygibpervcpurequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-memorygibpervcpurequest-max): Number
  [Min](#cfn-ecs-capacityprovider-memorygibpervcpurequest-min): Number
```

## Properties
<a name="aws-properties-ecs-capacityprovider-memorygibpervcpurequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-memorygibpervcpurequest-max"></a>
The maximum amount of memory per vCPU in GiB. Instance types with a higher memory-to-vCPU ratio are excluded from selection.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-memorygibpervcpurequest-min"></a>
The minimum amount of memory per vCPU in GiB. Instance types with a lower memory-to-vCPU ratio are excluded from selection.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider MemoryMiBRequest
<a name="aws-properties-ecs-capacityprovider-memorymibrequest"></a>

The minimum and maximum amount of memory in mebibytes (MiB) for instance type selection. This ensures that selected instance types have adequate memory for your workloads.

## Syntax
<a name="aws-properties-ecs-capacityprovider-memorymibrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-memorymibrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-memorymibrequest-max)" : Integer,
  "[Min](#cfn-ecs-capacityprovider-memorymibrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-memorymibrequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-memorymibrequest-max): Integer
  [Min](#cfn-ecs-capacityprovider-memorymibrequest-min): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-memorymibrequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-memorymibrequest-max"></a>
The maximum amount of memory in MiB. Instance types with more memory than this value are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-memorymibrequest-min"></a>
The minimum amount of memory in MiB. Instance types with less memory than this value are excluded from selection.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider NetworkBandwidthGbpsRequest
<a name="aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest"></a>

The minimum and maximum network bandwidth in gigabits per second (Gbps) for instance type selection. This is important for network-intensive workloads.

## Syntax
<a name="aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-max)" : Number,
  "[Min](#cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-min)" : Number
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-max): Number
  [Min](#cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-min): Number
```

## Properties
<a name="aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-max"></a>
The maximum network bandwidth in Gbps. Instance types with higher network bandwidth are excluded from selection.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-min"></a>
The minimum network bandwidth in Gbps. Instance types with lower network bandwidth are excluded from selection.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider NetworkInterfaceCountRequest
<a name="aws-properties-ecs-capacityprovider-networkinterfacecountrequest"></a>

The minimum and maximum number of network interfaces for instance type selection. This is useful for workloads that require multiple network interfaces.

## Syntax
<a name="aws-properties-ecs-capacityprovider-networkinterfacecountrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-networkinterfacecountrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-networkinterfacecountrequest-max)" : Integer,
  "[Min](#cfn-ecs-capacityprovider-networkinterfacecountrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-networkinterfacecountrequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-networkinterfacecountrequest-max): Integer
  [Min](#cfn-ecs-capacityprovider-networkinterfacecountrequest-min): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-networkinterfacecountrequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-networkinterfacecountrequest-max"></a>
The maximum number of network interfaces. Instance types that support more network interfaces are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-networkinterfacecountrequest-min"></a>
The minimum number of network interfaces. Instance types that support fewer network interfaces are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider Tag
<a name="aws-properties-ecs-capacityprovider-tag"></a>

The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.

The following basic restrictions apply to tags:
+ Maximum number of tags per resource - 50
+ For each resource, each tag key must be unique, and each tag key can have only one value.
+ Maximum key length - 128 Unicode characters in UTF-8
+ Maximum value length - 256 Unicode characters in UTF-8
+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: \$1 - = . \$1 : / @.
+ Tag keys and values are case-sensitive.
+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.

## Syntax
<a name="aws-properties-ecs-capacityprovider-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-tag-syntax.json"></a>

```
{
  "[Key](#cfn-ecs-capacityprovider-tag-key)" : String,
  "[Value](#cfn-ecs-capacityprovider-tag-value)" : String
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-tag-syntax.yaml"></a>

```
  [Key](#cfn-ecs-capacityprovider-tag-key): String
  [Value](#cfn-ecs-capacityprovider-tag-value): String
```

## Properties
<a name="aws-properties-ecs-capacityprovider-tag-properties"></a>

`Key`  <a name="cfn-ecs-capacityprovider-tag-key"></a>
One part of a key-value pair that make up a tag. A `key` is a general label that acts like a category for more specific tag values.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-ecs-capacityprovider-tag-value"></a>
The optional part of a key-value pair that make up a tag. A `value` acts as a descriptor within a tag category (key).  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-ecs-capacityprovider-tag--seealso"></a>
+  [Create an Amazon ECS capacity provider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#aws-resource-ecs-capacityprovider--examples) 

# AWS::ECS::CapacityProvider TotalLocalStorageGBRequest
<a name="aws-properties-ecs-capacityprovider-totallocalstoragegbrequest"></a>

The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage. This is useful for workloads that require local storage for temporary data or caching.

## Syntax
<a name="aws-properties-ecs-capacityprovider-totallocalstoragegbrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-totallocalstoragegbrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-totallocalstoragegbrequest-max)" : Number,
  "[Min](#cfn-ecs-capacityprovider-totallocalstoragegbrequest-min)" : Number
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-totallocalstoragegbrequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-totallocalstoragegbrequest-max): Number
  [Min](#cfn-ecs-capacityprovider-totallocalstoragegbrequest-min): Number
```

## Properties
<a name="aws-properties-ecs-capacityprovider-totallocalstoragegbrequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-totallocalstoragegbrequest-max"></a>
The maximum total local storage in GB. Instance types with more local storage are excluded from selection.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-totallocalstoragegbrequest-min"></a>
The minimum total local storage in GB. Instance types with less local storage are excluded from selection.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ECS::CapacityProvider VCpuCountRangeRequest
<a name="aws-properties-ecs-capacityprovider-vcpucountrangerequest"></a>

The minimum and maximum number of vCPUs for instance type selection. This allows you to specify a range of vCPU counts that meet your workload requirements.

## Syntax
<a name="aws-properties-ecs-capacityprovider-vcpucountrangerequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-capacityprovider-vcpucountrangerequest-syntax.json"></a>

```
{
  "[Max](#cfn-ecs-capacityprovider-vcpucountrangerequest-max)" : Integer,
  "[Min](#cfn-ecs-capacityprovider-vcpucountrangerequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ecs-capacityprovider-vcpucountrangerequest-syntax.yaml"></a>

```
  [Max](#cfn-ecs-capacityprovider-vcpucountrangerequest-max): Integer
  [Min](#cfn-ecs-capacityprovider-vcpucountrangerequest-min): Integer
```

## Properties
<a name="aws-properties-ecs-capacityprovider-vcpucountrangerequest-properties"></a>

`Max`  <a name="cfn-ecs-capacityprovider-vcpucountrangerequest-max"></a>
The maximum number of vCPUs. Instance types with more vCPUs than this value are excluded from selection.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Min`  <a name="cfn-ecs-capacityprovider-vcpucountrangerequest-min"></a>
The minimum number of vCPUs. Instance types with fewer vCPUs than this value are excluded from selection.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)