AUTOSCALING-PLANS

CreateScalingPlan

enum_LoadMetricType := [ "ASGTotalCPUUtilization", "ASGTotalNetworkIn", "ASGTotalNetworkOut", "ALBTargetGroupRequestCount" ]
enum_MetricStatistic := [ "Average", "Minimum", "Maximum", "SampleCount", "Sum" ]
enum_PredictiveScalingMaxCapacityBehavior := [ "SetForecastCapacityToMaxCapacity", "SetMaxCapacityToForecastCapacity", "SetMaxCapacityAboveForecastCapacity" ]
enum_PredictiveScalingMode := [ "ForecastAndScale", "ForecastOnly" ]
enum_ScalableDimension := [ "autoscaling:autoScalingGroup:DesiredCapacity", "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "rds:cluster:ReadReplicaCount", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits" ]
enum_ScalingMetricType := [ "ASGAverageCPUUtilization", "ASGAverageNetworkIn", "ASGAverageNetworkOut", "DynamoDBReadCapacityUtilization", "DynamoDBWriteCapacityUtilization", "ECSServiceAverageCPUUtilization", "ECSServiceAverageMemoryUtilization", "ALBRequestCountPerTarget", "RDSReaderAverageCPUUtilization", "RDSReaderAverageDatabaseConnections", "EC2SpotFleetRequestAverageCPUUtilization", "EC2SpotFleetRequestAverageNetworkIn", "EC2SpotFleetRequestAverageNetworkOut" ]
enum_ScalingPolicyUpdateBehavior := [ "KeepExternalPolicies", "ReplaceExternalPolicies" ]
enum_ServiceNamespace := [ "autoscaling", "ecs", "ec2", "rds", "dynamodb" ]

valid {
    input.Body.ScalingPlanName == STRING
    input.Body.ApplicationSource.CloudFormationStackARN == STRING
    input.Body.ApplicationSource.TagFilters[_].Key == STRING
    input.Body.ApplicationSource.TagFilters[_].Values[_] == STRING
    input.Body.ScalingInstructions[_].ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ScalingInstructions[_].ResourceId == STRING
    input.Body.ScalingInstructions[_].ScalableDimension == enum_ScalableDimension[_]
    input.Body.ScalingInstructions[_].MinCapacity == INTEGER
    input.Body.ScalingInstructions[_].MaxCapacity == INTEGER
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].PredefinedScalingMetricSpecification.PredefinedScalingMetricType == enum_ScalingMetricType[_]
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].PredefinedScalingMetricSpecification.ResourceLabel == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.MetricName == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Namespace == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Dimensions[_].Name == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Dimensions[_].Value == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Statistic == enum_MetricStatistic[_]
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Unit == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].TargetValue == DOUBLE
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].DisableScaleIn == BOOLEAN
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].ScaleOutCooldown == INTEGER
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].ScaleInCooldown == INTEGER
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].EstimatedInstanceWarmup == INTEGER
    input.Body.ScalingInstructions[_].PredefinedLoadMetricSpecification.PredefinedLoadMetricType == enum_LoadMetricType[_]
    input.Body.ScalingInstructions[_].PredefinedLoadMetricSpecification.ResourceLabel == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.MetricName == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Namespace == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Dimensions[_].Name == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Dimensions[_].Value == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Statistic == enum_MetricStatistic[_]
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Unit == STRING
    input.Body.ScalingInstructions[_].ScheduledActionBufferTime == INTEGER
    input.Body.ScalingInstructions[_].PredictiveScalingMaxCapacityBehavior == enum_PredictiveScalingMaxCapacityBehavior[_]
    input.Body.ScalingInstructions[_].PredictiveScalingMaxCapacityBuffer == INTEGER
    input.Body.ScalingInstructions[_].PredictiveScalingMode == enum_PredictiveScalingMode[_]
    input.Body.ScalingInstructions[_].ScalingPolicyUpdateBehavior == enum_ScalingPolicyUpdateBehavior[_]
    input.Body.ScalingInstructions[_].DisableDynamicScaling == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteScalingPlan

valid {
    input.Body.ScalingPlanName == STRING
    input.Body.ScalingPlanVersion == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScalingPlanResources

valid {
    input.Body.ScalingPlanName == STRING
    input.Body.ScalingPlanVersion == LONG
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScalingPlans

valid {
    input.Body.ScalingPlanNames[_] == STRING
    input.Body.ScalingPlanVersion == LONG
    input.Body.ApplicationSources[_].CloudFormationStackARN == STRING
    input.Body.ApplicationSources[_].TagFilters[_].Key == STRING
    input.Body.ApplicationSources[_].TagFilters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetScalingPlanResourceForecastData

enum_ForecastDataType := [ "CapacityForecast", "LoadForecast", "ScheduledActionMinCapacity", "ScheduledActionMaxCapacity" ]
enum_ScalableDimension := [ "autoscaling:autoScalingGroup:DesiredCapacity", "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "rds:cluster:ReadReplicaCount", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits" ]
enum_ServiceNamespace := [ "autoscaling", "ecs", "ec2", "rds", "dynamodb" ]

valid {
    input.Body.ScalingPlanName == STRING
    input.Body.ScalingPlanVersion == LONG
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.ForecastDataType == enum_ForecastDataType[_]
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateScalingPlan

enum_LoadMetricType := [ "ASGTotalCPUUtilization", "ASGTotalNetworkIn", "ASGTotalNetworkOut", "ALBTargetGroupRequestCount" ]
enum_MetricStatistic := [ "Average", "Minimum", "Maximum", "SampleCount", "Sum" ]
enum_PredictiveScalingMaxCapacityBehavior := [ "SetForecastCapacityToMaxCapacity", "SetMaxCapacityToForecastCapacity", "SetMaxCapacityAboveForecastCapacity" ]
enum_PredictiveScalingMode := [ "ForecastAndScale", "ForecastOnly" ]
enum_ScalableDimension := [ "autoscaling:autoScalingGroup:DesiredCapacity", "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "rds:cluster:ReadReplicaCount", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits" ]
enum_ScalingMetricType := [ "ASGAverageCPUUtilization", "ASGAverageNetworkIn", "ASGAverageNetworkOut", "DynamoDBReadCapacityUtilization", "DynamoDBWriteCapacityUtilization", "ECSServiceAverageCPUUtilization", "ECSServiceAverageMemoryUtilization", "ALBRequestCountPerTarget", "RDSReaderAverageCPUUtilization", "RDSReaderAverageDatabaseConnections", "EC2SpotFleetRequestAverageCPUUtilization", "EC2SpotFleetRequestAverageNetworkIn", "EC2SpotFleetRequestAverageNetworkOut" ]
enum_ScalingPolicyUpdateBehavior := [ "KeepExternalPolicies", "ReplaceExternalPolicies" ]
enum_ServiceNamespace := [ "autoscaling", "ecs", "ec2", "rds", "dynamodb" ]

valid {
    input.Body.ScalingPlanName == STRING
    input.Body.ScalingPlanVersion == LONG
    input.Body.ApplicationSource.CloudFormationStackARN == STRING
    input.Body.ApplicationSource.TagFilters[_].Key == STRING
    input.Body.ApplicationSource.TagFilters[_].Values[_] == STRING
    input.Body.ScalingInstructions[_].ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ScalingInstructions[_].ResourceId == STRING
    input.Body.ScalingInstructions[_].ScalableDimension == enum_ScalableDimension[_]
    input.Body.ScalingInstructions[_].MinCapacity == INTEGER
    input.Body.ScalingInstructions[_].MaxCapacity == INTEGER
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].PredefinedScalingMetricSpecification.PredefinedScalingMetricType == enum_ScalingMetricType[_]
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].PredefinedScalingMetricSpecification.ResourceLabel == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.MetricName == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Namespace == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Dimensions[_].Name == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Dimensions[_].Value == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Statistic == enum_MetricStatistic[_]
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].CustomizedScalingMetricSpecification.Unit == STRING
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].TargetValue == DOUBLE
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].DisableScaleIn == BOOLEAN
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].ScaleOutCooldown == INTEGER
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].ScaleInCooldown == INTEGER
    input.Body.ScalingInstructions[_].TargetTrackingConfigurations[_].EstimatedInstanceWarmup == INTEGER
    input.Body.ScalingInstructions[_].PredefinedLoadMetricSpecification.PredefinedLoadMetricType == enum_LoadMetricType[_]
    input.Body.ScalingInstructions[_].PredefinedLoadMetricSpecification.ResourceLabel == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.MetricName == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Namespace == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Dimensions[_].Name == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Dimensions[_].Value == STRING
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Statistic == enum_MetricStatistic[_]
    input.Body.ScalingInstructions[_].CustomizedLoadMetricSpecification.Unit == STRING
    input.Body.ScalingInstructions[_].ScheduledActionBufferTime == INTEGER
    input.Body.ScalingInstructions[_].PredictiveScalingMaxCapacityBehavior == enum_PredictiveScalingMaxCapacityBehavior[_]
    input.Body.ScalingInstructions[_].PredictiveScalingMaxCapacityBuffer == INTEGER
    input.Body.ScalingInstructions[_].PredictiveScalingMode == enum_PredictiveScalingMode[_]
    input.Body.ScalingInstructions[_].ScalingPolicyUpdateBehavior == enum_ScalingPolicyUpdateBehavior[_]
    input.Body.ScalingInstructions[_].DisableDynamicScaling == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}