diff --git a/.changelog/24005.txt b/.changelog/24005.txt new file mode 100644 index 000000000000..07a3e4a8da81 --- /dev/null +++ b/.changelog/24005.txt @@ -0,0 +1,3 @@ +```release-note:bug +resource/aws_ecs_capacity_provider: Allow an `instance_warmup_period` of `0` in the `managed_scaling` configuration block +``` \ No newline at end of file diff --git a/internal/service/ecs/capacity_provider.go b/internal/service/ecs/capacity_provider.go index f0945d968dfa..72b869ef4b28 100644 --- a/internal/service/ecs/capacity_provider.go +++ b/internal/service/ecs/capacity_provider.go @@ -58,7 +58,7 @@ func ResourceCapacityProvider() *schema.Resource { Type: schema.TypeInt, Optional: true, Computed: true, - ValidateFunc: validation.IntBetween(1, 10000), + ValidateFunc: validation.IntBetween(0, 10000), }, "maximum_scaling_step_size": { Type: schema.TypeInt, @@ -345,7 +345,7 @@ func expandManagedScaling(configured interface{}) *ecs.ManagedScaling { managedScaling := ecs.ManagedScaling{} - if val, ok := p["instance_warmup_period"].(int); ok && val != 0 { + if val, ok := p["instance_warmup_period"].(int); ok { managedScaling.InstanceWarmupPeriod = aws.Int64(int64(val)) } if val, ok := p["maximum_scaling_step_size"].(int); ok && val != 0 { diff --git a/internal/service/ecs/capacity_provider_test.go b/internal/service/ecs/capacity_provider_test.go index 083a76d99ea0..21e90742b223 100644 --- a/internal/service/ecs/capacity_provider_test.go +++ b/internal/service/ecs/capacity_provider_test.go @@ -304,19 +304,19 @@ resource "aws_autoscaling_group" "test" { } func testAccCapacityProviderConfig(rName string) string { - return testAccCapacityProviderBaseConfig(rName) + fmt.Sprintf(` + return acctest.ConfigCompose(testAccCapacityProviderBaseConfig(rName), fmt.Sprintf(` resource "aws_ecs_capacity_provider" "test" { - name = %q + name = %[1]q auto_scaling_group_provider { auto_scaling_group_arn = aws_autoscaling_group.test.arn } } -`, rName) +`, rName)) } func testAccCapacityProviderManagedScalingConfig(rName, status string, warmup, max, min, cap int) string { - return testAccCapacityProviderBaseConfig(rName) + fmt.Sprintf(` + return acctest.ConfigCompose(testAccCapacityProviderBaseConfig(rName), fmt.Sprintf(` resource "aws_ecs_capacity_provider" "test" { name = %[1]q @@ -332,11 +332,11 @@ resource "aws_ecs_capacity_provider" "test" { } } } -`, rName, warmup, max, min, status, cap) +`, rName, warmup, max, min, status, cap)) } func testAccCapacityProviderManagedScalingPartialConfig(rName string) string { - return testAccCapacityProviderBaseConfig(rName) + fmt.Sprintf(` + return acctest.ConfigCompose(testAccCapacityProviderBaseConfig(rName), fmt.Sprintf(` resource "aws_ecs_capacity_provider" "test" { name = %[1]q @@ -349,11 +349,11 @@ resource "aws_ecs_capacity_provider" "test" { } } } -`, rName) +`, rName)) } func testAccCapacityProviderTags1Config(rName, tag1Key, tag1Value string) string { - return testAccCapacityProviderBaseConfig(rName) + fmt.Sprintf(` + return acctest.ConfigCompose(testAccCapacityProviderBaseConfig(rName), fmt.Sprintf(` resource "aws_ecs_capacity_provider" "test" { name = %[1]q @@ -365,11 +365,11 @@ resource "aws_ecs_capacity_provider" "test" { auto_scaling_group_arn = aws_autoscaling_group.test.arn } } -`, rName, tag1Key, tag1Value) +`, rName, tag1Key, tag1Value)) } func testAccCapacityProviderTags2Config(rName, tag1Key, tag1Value, tag2Key, tag2Value string) string { - return testAccCapacityProviderBaseConfig(rName) + fmt.Sprintf(` + return acctest.ConfigCompose(testAccCapacityProviderBaseConfig(rName), fmt.Sprintf(` resource "aws_ecs_capacity_provider" "test" { name = %[1]q @@ -382,5 +382,5 @@ resource "aws_ecs_capacity_provider" "test" { auto_scaling_group_arn = aws_autoscaling_group.test.arn } } -`, rName, tag1Key, tag1Value, tag2Key, tag2Value) +`, rName, tag1Key, tag1Value, tag2Key, tag2Value)) }