APPLICATION-AUTOSCALING

DeleteScalingPolicy

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.PolicyName == STRING
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteScheduledAction

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ScheduledActionName == STRING
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterScalableTarget

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScalableTargets

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceIds[_] == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScalingActivities

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.IncludeNotScaledActivities == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScalingPolicies

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.PolicyNames[_] == STRING
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScheduledActions

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ScheduledActionNames[_] == STRING
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPredictiveScalingForecast

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.PolicyName == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.Body.ResourceARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutScalingPolicy

enum_AdjustmentType := [ "ChangeInCapacity", "PercentChangeInCapacity", "ExactCapacity" ]
enum_MetricAggregationType := [ "Average", "Minimum", "Maximum" ]
enum_MetricStatistic := [ "Average", "Minimum", "Maximum", "SampleCount", "Sum" ]
enum_MetricType := [ "DynamoDBReadCapacityUtilization", "DynamoDBWriteCapacityUtilization", "ALBRequestCountPerTarget", "RDSReaderAverageCPUUtilization", "RDSReaderAverageDatabaseConnections", "EC2SpotFleetRequestAverageCPUUtilization", "EC2SpotFleetRequestAverageNetworkIn", "EC2SpotFleetRequestAverageNetworkOut", "SageMakerVariantInvocationsPerInstance", "ECSServiceAverageCPUUtilization", "ECSServiceAverageMemoryUtilization", "AppStreamAverageCapacityUtilization", "ComprehendInferenceUtilization", "LambdaProvisionedConcurrencyUtilization", "CassandraReadCapacityUtilization", "CassandraWriteCapacityUtilization", "KafkaBrokerStorageUtilization", "ElastiCachePrimaryEngineCPUUtilization", "ElastiCacheReplicaEngineCPUUtilization", "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage", "NeptuneReaderAverageCPUUtilization", "SageMakerVariantProvisionedConcurrencyUtilization", "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage", "SageMakerInferenceComponentInvocationsPerCopy", "WorkSpacesAverageUserSessionsCapacityUtilization", "SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution", "SageMakerVariantConcurrentRequestsPerModelHighResolution" ]
enum_PolicyType := [ "StepScaling", "TargetTrackingScaling", "PredictiveScaling" ]
enum_PredictiveScalingMaxCapacityBreachBehavior := [ "HonorMaxCapacity", "IncreaseMaxCapacity" ]
enum_PredictiveScalingMode := [ "ForecastOnly", "ForecastAndScale" ]
enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.PolicyName == STRING
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.PolicyType == enum_PolicyType[_]
    input.Body.StepScalingPolicyConfiguration.AdjustmentType == enum_AdjustmentType[_]
    input.Body.StepScalingPolicyConfiguration.StepAdjustments[_].MetricIntervalLowerBound == DOUBLE
    input.Body.StepScalingPolicyConfiguration.StepAdjustments[_].MetricIntervalUpperBound == DOUBLE
    input.Body.StepScalingPolicyConfiguration.StepAdjustments[_].ScalingAdjustment == INTEGER
    input.Body.StepScalingPolicyConfiguration.MinAdjustmentMagnitude == INTEGER
    input.Body.StepScalingPolicyConfiguration.Cooldown == INTEGER
    input.Body.StepScalingPolicyConfiguration.MetricAggregationType == enum_MetricAggregationType[_]
    input.Body.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.TargetTrackingScalingPolicyConfiguration.PredefinedMetricSpecification.PredefinedMetricType == enum_MetricType[_]
    input.Body.TargetTrackingScalingPolicyConfiguration.PredefinedMetricSpecification.ResourceLabel == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.MetricName == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Namespace == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Dimensions[_].Name == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Dimensions[_].Value == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Statistic == enum_MetricStatistic[_]
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Unit == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].Expression == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].Id == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].Label == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].MetricStat.Metric.MetricName == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].MetricStat.Metric.Namespace == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].MetricStat.Stat == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].MetricStat.Unit == STRING
    input.Body.TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Metrics[_].ReturnData == BOOLEAN
    input.Body.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].TargetValue == DOUBLE
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].PredefinedMetricPairSpecification.PredefinedMetricType == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].PredefinedMetricPairSpecification.ResourceLabel == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].PredefinedScalingMetricSpecification.PredefinedMetricType == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].PredefinedScalingMetricSpecification.ResourceLabel == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].PredefinedLoadMetricSpecification.PredefinedMetricType == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].PredefinedLoadMetricSpecification.ResourceLabel == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].Id == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].Expression == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].MetricStat.Metric.MetricName == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Namespace == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].MetricStat.Stat == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].MetricStat.Unit == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].Label == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedScalingMetricSpecification.MetricDataQueries[_].ReturnData == BOOLEAN
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].Id == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].Expression == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].MetricStat.Metric.MetricName == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Namespace == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].MetricStat.Stat == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].MetricStat.Unit == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].Label == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedLoadMetricSpecification.MetricDataQueries[_].ReturnData == BOOLEAN
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].Id == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].Expression == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Name == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Dimensions[_].Value == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].MetricStat.Metric.MetricName == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].MetricStat.Metric.Namespace == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].MetricStat.Stat == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].MetricStat.Unit == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].Label == STRING
    input.Body.PredictiveScalingPolicyConfiguration.MetricSpecifications[_].CustomizedCapacityMetricSpecification.MetricDataQueries[_].ReturnData == BOOLEAN
    input.Body.PredictiveScalingPolicyConfiguration.Mode == enum_PredictiveScalingMode[_]
    input.Body.PredictiveScalingPolicyConfiguration.SchedulingBufferTime == INTEGER
    input.Body.PredictiveScalingPolicyConfiguration.MaxCapacityBreachBehavior == enum_PredictiveScalingMaxCapacityBreachBehavior[_]
    input.Body.PredictiveScalingPolicyConfiguration.MaxCapacityBuffer == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutScheduledAction

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.Schedule == STRING
    input.Body.Timezone == STRING
    input.Body.ScheduledActionName == STRING
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.ScalableTargetAction.MinCapacity == INTEGER
    input.Body.ScalableTargetAction.MaxCapacity == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterScalableTarget

enum_ScalableDimension := [ "ecs:service:DesiredCount", "ec2:spot-fleet-request:TargetCapacity", "elasticmapreduce:instancegroup:InstanceCount", "appstream:fleet:DesiredCapacity", "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", "dynamodb:index:WriteCapacityUnits", "rds:cluster:ReadReplicaCount", "sagemaker:variant:DesiredInstanceCount", "custom-resource:ResourceType:Property", "comprehend:document-classifier-endpoint:DesiredInferenceUnits", "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", "cassandra:table:WriteCapacityUnits", "kafka:broker-storage:VolumeSize", "elasticache:replication-group:NodeGroups", "elasticache:replication-group:Replicas", "neptune:cluster:ReadReplicaCount", "sagemaker:variant:DesiredProvisionedConcurrency", "sagemaker:inference-component:DesiredCopyCount", "workspaces:workspacespool:DesiredUserSessions" ]
enum_ServiceNamespace := [ "ecs", "elasticmapreduce", "ec2", "appstream", "dynamodb", "rds", "sagemaker", "custom-resource", "comprehend", "lambda", "cassandra", "kafka", "elasticache", "neptune", "workspaces" ]

valid {
    input.Body.ServiceNamespace == enum_ServiceNamespace[_]
    input.Body.ResourceId == STRING
    input.Body.ScalableDimension == enum_ScalableDimension[_]
    input.Body.MinCapacity == INTEGER
    input.Body.MaxCapacity == INTEGER
    input.Body.RoleARN == STRING
    input.Body.SuspendedState.DynamicScalingInSuspended == BOOLEAN
    input.Body.SuspendedState.DynamicScalingOutSuspended == BOOLEAN
    input.Body.SuspendedState.ScheduledScalingSuspended == BOOLEAN
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.ResourceARN == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.Body.ResourceARN == STRING
    input.Body.TagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}