Skip to content

Commit 14b4bca

Browse files
committed
wip
1 parent 9e59354 commit 14b4bca

File tree

4 files changed

+116
-2
lines changed

4 files changed

+116
-2
lines changed

modules/service/main.tf

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1603,6 +1603,47 @@ resource "aws_appautoscaling_policy" "this" {
16031603
target_value = target_tracking_scaling_policy_configuration.value.target_value
16041604
}
16051605
}
1606+
1607+
dynamic "predictive_scaling_policy_configuration" {
1608+
for_each = each.value.policy_type == "PredictiveScaling" && each.value.predictive_scaling_policy_configuration != null ? [each.value.predictive_scaling_policy_configuration] : []
1609+
1610+
content {
1611+
mode = try(predictive_scaling_policy_configuration.value.mode, null)
1612+
max_capacity_buffer = try(predictive_scaling_policy_configuration.value.max_capacity_buffer, null)
1613+
scheduling_buffer_time = try(predictive_scaling_policy_configuration.value.scheduling_buffer_time, null)
1614+
max_capacity_breach_behavior = try(predictive_scaling_policy_configuration.value.max_capacity_breach_behavior, null)
1615+
1616+
dynamic "metric_specification" {
1617+
for_each = predictive_scaling_policy_configuration.value.metric_specification != null ? [predictive_scaling_policy_configuration.value.metric_specification] : []
1618+
1619+
target_value = predictive_scaling_policy_configuration.value.metric_specification.target_value
1620+
1621+
content {
1622+
dynamic "customized_capacity_metric_specification" {
1623+
for_each = predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification != null ? [predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification] : []
1624+
1625+
content {
1626+
metric_data_query {
1627+
id = predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.id
1628+
expression = try(predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.expression, null)
1629+
label = try(predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.label, null)
1630+
1631+
dynamic "metric_stat" {
1632+
for_each = predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.metric_stat != null ? [predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.metric_stat] : []
1633+
1634+
content {
1635+
metric = predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.metric_stat.metric
1636+
stat = predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.metric_stat.stat
1637+
unit = try(predictive_scaling_policy_configuration.value.metric_specification.customized_capacity_metric_specification.metric_stat.unit, null)
1638+
}
1639+
}
1640+
}
1641+
}
1642+
}
1643+
}
1644+
}
1645+
}
1646+
}
16061647
}
16071648

16081649
resource "aws_appautoscaling_scheduled_action" "this" {

modules/service/variables.tf

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,79 @@ variable "autoscaling_policies" {
10711071
scale_out_cooldown = optional(number, 60)
10721072
target_value = optional(number, 75)
10731073
}))
1074+
predictive_scaling_policy_configuration = optional(object({
1075+
mode = optional(string, "ForecastAndScale")
1076+
max_capacity_buffer = optional(number)
1077+
max_capacity_breach_behavior = optional(string)
1078+
scheduling_buffer_time = optional(number)
1079+
metric_specifications = list(object({
1080+
target_value = number
1081+
predefined_metric_specification = optional(object({
1082+
predefined_metric_type = string
1083+
resource_label = optional(string)
1084+
}))
1085+
customized_capacity_metric_specification = optional(object({
1086+
metric_data_queries = list(object({
1087+
expression = optional(string)
1088+
id = string
1089+
label = optional(string)
1090+
metric_stat = optional(object({
1091+
metric = object({
1092+
dimensions = optional(list(object({
1093+
name = string
1094+
value = string
1095+
})))
1096+
metric_name = string
1097+
namespace = string
1098+
})
1099+
stat = string
1100+
unit = optional(string)
1101+
}))
1102+
return_data = optional(bool)
1103+
}))
1104+
}))
1105+
customized_load_metric_specification = optional(object({
1106+
metric_data_queries = list(object({
1107+
expression = optional(string)
1108+
id = string
1109+
label = optional(string)
1110+
metric_stat = optional(object({
1111+
metric = object({
1112+
dimensions = optional(list(object({
1113+
name = string
1114+
value = string
1115+
})))
1116+
metric_name = string
1117+
namespace = string
1118+
})
1119+
stat = string
1120+
unit = optional(string)
1121+
}))
1122+
return_data = optional(bool)
1123+
}))
1124+
}))
1125+
customized_scaling_metric_specification = optional(object({
1126+
metric_data_queries = list(object({
1127+
expression = optional(string)
1128+
id = string
1129+
label = optional(string)
1130+
metric_stat = optional(object({
1131+
metric = object({
1132+
dimensions = optional(list(object({
1133+
name = string
1134+
value = string
1135+
})))
1136+
metric_name = string
1137+
namespace = string
1138+
})
1139+
stat = string
1140+
unit = optional(string)
1141+
}))
1142+
return_data = optional(bool)
1143+
}))
1144+
}))
1145+
}))
1146+
}))
10741147
}))
10751148
default = {
10761149
cpu = {

modules/service/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 6.11"
7+
version = ">= 6.13"
88
}
99
}
1010
}

versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 6.11"
7+
version = ">= 6.13"
88
}
99
}
1010
}

0 commit comments

Comments
 (0)