LOOKOUTMETRICS

ActivateAnomalyDetector

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

BackTestAnomalyDetector

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

CreateAlert

enum_SnsFormat := [ "LONG_TEXT", "SHORT_TEXT", "JSON" ]

valid {
    input.Body.AlertName == STRING
    input.Body.AlertSensitivityThreshold == INTEGER
    input.Body.AlertDescription == STRING
    input.Body.AnomalyDetectorArn == STRING
    input.Body.Action.SNSConfiguration.RoleArn == STRING
    input.Body.Action.SNSConfiguration.SnsTopicArn == STRING
    input.Body.Action.SNSConfiguration.SnsFormat == enum_SnsFormat[_]
    input.Body.Action.LambdaConfiguration.RoleArn == STRING
    input.Body.Action.LambdaConfiguration.LambdaArn == STRING
    input.Body.Tags.STRING == STRING
    input.Body.AlertFilters.MetricList[_] == STRING
    input.Body.AlertFilters.DimensionFilterList[_].DimensionName == STRING
    input.Body.AlertFilters.DimensionFilterList[_].DimensionValueList[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAnomalyDetector

enum_Frequency := [ "P1D", "PT1H", "PT10M", "PT5M" ]

valid {
    input.Body.AnomalyDetectorName == STRING
    input.Body.AnomalyDetectorDescription == STRING
    input.Body.AnomalyDetectorConfig.AnomalyDetectorFrequency == enum_Frequency[_]
    input.Body.KmsKeyArn == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateMetricSet

enum_AggregationFunction := [ "AVG", "SUM" ]
enum_CSVFileCompression := [ "NONE", "GZIP" ]
enum_FilterOperation := [ "EQUALS" ]
enum_Frequency := [ "P1D", "PT1H", "PT10M", "PT5M" ]
enum_JsonFileCompression := [ "NONE", "GZIP" ]

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.MetricSetName == STRING
    input.Body.MetricSetDescription == STRING
    input.Body.MetricList[_].MetricName == STRING
    input.Body.MetricList[_].AggregationFunction == enum_AggregationFunction[_]
    input.Body.MetricList[_].Namespace == STRING
    input.Body.Offset == INTEGER
    input.Body.TimestampColumn.ColumnName == STRING
    input.Body.TimestampColumn.ColumnFormat == STRING
    input.Body.DimensionList[_] == STRING
    input.Body.MetricSetFrequency == enum_Frequency[_]
    input.Body.MetricSource.S3SourceConfig.RoleArn == STRING
    input.Body.MetricSource.S3SourceConfig.TemplatedPathList[_] == STRING
    input.Body.MetricSource.S3SourceConfig.HistoricalDataPathList[_] == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.FileCompression == enum_CSVFileCompression[_]
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.Charset == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.ContainsHeader == BOOLEAN
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.Delimiter == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.HeaderList[_] == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.QuoteSymbol == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.JsonFormatDescriptor.FileCompression == enum_JsonFileCompression[_]
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.JsonFormatDescriptor.Charset == STRING
    input.Body.MetricSource.AppFlowConfig.RoleArn == STRING
    input.Body.MetricSource.AppFlowConfig.FlowName == STRING
    input.Body.MetricSource.CloudWatchConfig.RoleArn == STRING
    input.Body.MetricSource.CloudWatchConfig.BackTestConfiguration.RunBackTestMode == BOOLEAN
    input.Body.MetricSource.RDSSourceConfig.DBInstanceIdentifier == STRING
    input.Body.MetricSource.RDSSourceConfig.DatabaseHost == STRING
    input.Body.MetricSource.RDSSourceConfig.DatabasePort == INTEGER
    input.Body.MetricSource.RDSSourceConfig.SecretManagerArn == STRING
    input.Body.MetricSource.RDSSourceConfig.DatabaseName == STRING
    input.Body.MetricSource.RDSSourceConfig.TableName == STRING
    input.Body.MetricSource.RDSSourceConfig.RoleArn == STRING
    input.Body.MetricSource.RDSSourceConfig.VpcConfiguration.SubnetIdList[_] == STRING
    input.Body.MetricSource.RDSSourceConfig.VpcConfiguration.SecurityGroupIdList[_] == STRING
    input.Body.MetricSource.RedshiftSourceConfig.ClusterIdentifier == STRING
    input.Body.MetricSource.RedshiftSourceConfig.DatabaseHost == STRING
    input.Body.MetricSource.RedshiftSourceConfig.DatabasePort == INTEGER
    input.Body.MetricSource.RedshiftSourceConfig.SecretManagerArn == STRING
    input.Body.MetricSource.RedshiftSourceConfig.DatabaseName == STRING
    input.Body.MetricSource.RedshiftSourceConfig.TableName == STRING
    input.Body.MetricSource.RedshiftSourceConfig.RoleArn == STRING
    input.Body.MetricSource.RedshiftSourceConfig.VpcConfiguration.SubnetIdList[_] == STRING
    input.Body.MetricSource.RedshiftSourceConfig.VpcConfiguration.SecurityGroupIdList[_] == STRING
    input.Body.MetricSource.AthenaSourceConfig.RoleArn == STRING
    input.Body.MetricSource.AthenaSourceConfig.DatabaseName == STRING
    input.Body.MetricSource.AthenaSourceConfig.DataCatalog == STRING
    input.Body.MetricSource.AthenaSourceConfig.TableName == STRING
    input.Body.MetricSource.AthenaSourceConfig.WorkGroupName == STRING
    input.Body.MetricSource.AthenaSourceConfig.S3ResultsPath == STRING
    input.Body.MetricSource.AthenaSourceConfig.BackTestConfiguration.RunBackTestMode == BOOLEAN
    input.Body.Timezone == STRING
    input.Body.Tags.STRING == STRING
    input.Body.DimensionFilterList[_].Name == STRING
    input.Body.DimensionFilterList[_].FilterList[_].DimensionValue == STRING
    input.Body.DimensionFilterList[_].FilterList[_].FilterOperation == enum_FilterOperation[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeactivateAnomalyDetector

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

DeleteAlert

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

DeleteAnomalyDetector

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

DescribeAlert

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

DescribeAnomalyDetectionExecutions

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.Timestamp == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAnomalyDetector

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

DescribeMetricSet

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

DetectMetricSetConfig

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.AutoDetectionMetricSource.S3SourceConfig.TemplatedPathList[_] == STRING
    input.Body.AutoDetectionMetricSource.S3SourceConfig.HistoricalDataPathList[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAnomalyGroup

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

GetDataQualityMetrics

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

GetFeedback

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.AnomalyGroupTimeSeriesFeedback.AnomalyGroupId == STRING
    input.Body.AnomalyGroupTimeSeriesFeedback.TimeSeriesId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSampleData

enum_CSVFileCompression := [ "NONE", "GZIP" ]
enum_JsonFileCompression := [ "NONE", "GZIP" ]

valid {
    input.Body.S3SourceConfig.RoleArn == STRING
    input.Body.S3SourceConfig.TemplatedPathList[_] == STRING
    input.Body.S3SourceConfig.HistoricalDataPathList[_] == STRING
    input.Body.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.FileCompression == enum_CSVFileCompression[_]
    input.Body.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.Charset == STRING
    input.Body.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.ContainsHeader == BOOLEAN
    input.Body.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.Delimiter == STRING
    input.Body.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.HeaderList[_] == STRING
    input.Body.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.QuoteSymbol == STRING
    input.Body.S3SourceConfig.FileFormatDescriptor.JsonFormatDescriptor.FileCompression == enum_JsonFileCompression[_]
    input.Body.S3SourceConfig.FileFormatDescriptor.JsonFormatDescriptor.Charset == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAlerts

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAnomalyDetectors

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

ListAnomalyGroupRelatedMetrics

enum_RelationshipType := [ "CAUSE_OF_INPUT_ANOMALY_GROUP", "EFFECT_OF_INPUT_ANOMALY_GROUP" ]

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.AnomalyGroupId == STRING
    input.Body.RelationshipTypeFilter == enum_RelationshipType[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAnomalyGroupSummaries

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.SensitivityThreshold == INTEGER
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAnomalyGroupTimeSeries

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.AnomalyGroupId == STRING
    input.Body.MetricName == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMetricSets

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutFeedback

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.AnomalyGroupTimeSeriesFeedback.AnomalyGroupId == STRING
    input.Body.AnomalyGroupTimeSeriesFeedback.TimeSeriesId == STRING
    input.Body.AnomalyGroupTimeSeriesFeedback.IsAnomaly == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAlert

enum_SnsFormat := [ "LONG_TEXT", "SHORT_TEXT", "JSON" ]

valid {
    input.Body.AlertArn == STRING
    input.Body.AlertDescription == STRING
    input.Body.AlertSensitivityThreshold == INTEGER
    input.Body.Action.SNSConfiguration.RoleArn == STRING
    input.Body.Action.SNSConfiguration.SnsTopicArn == STRING
    input.Body.Action.SNSConfiguration.SnsFormat == enum_SnsFormat[_]
    input.Body.Action.LambdaConfiguration.RoleArn == STRING
    input.Body.Action.LambdaConfiguration.LambdaArn == STRING
    input.Body.AlertFilters.MetricList[_] == STRING
    input.Body.AlertFilters.DimensionFilterList[_].DimensionName == STRING
    input.Body.AlertFilters.DimensionFilterList[_].DimensionValueList[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAnomalyDetector

enum_Frequency := [ "P1D", "PT1H", "PT10M", "PT5M" ]

valid {
    input.Body.AnomalyDetectorArn == STRING
    input.Body.KmsKeyArn == STRING
    input.Body.AnomalyDetectorDescription == STRING
    input.Body.AnomalyDetectorConfig.AnomalyDetectorFrequency == enum_Frequency[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateMetricSet

enum_AggregationFunction := [ "AVG", "SUM" ]
enum_CSVFileCompression := [ "NONE", "GZIP" ]
enum_FilterOperation := [ "EQUALS" ]
enum_Frequency := [ "P1D", "PT1H", "PT10M", "PT5M" ]
enum_JsonFileCompression := [ "NONE", "GZIP" ]

valid {
    input.Body.MetricSetArn == STRING
    input.Body.MetricSetDescription == STRING
    input.Body.MetricList[_].MetricName == STRING
    input.Body.MetricList[_].AggregationFunction == enum_AggregationFunction[_]
    input.Body.MetricList[_].Namespace == STRING
    input.Body.Offset == INTEGER
    input.Body.TimestampColumn.ColumnName == STRING
    input.Body.TimestampColumn.ColumnFormat == STRING
    input.Body.DimensionList[_] == STRING
    input.Body.MetricSetFrequency == enum_Frequency[_]
    input.Body.MetricSource.S3SourceConfig.RoleArn == STRING
    input.Body.MetricSource.S3SourceConfig.TemplatedPathList[_] == STRING
    input.Body.MetricSource.S3SourceConfig.HistoricalDataPathList[_] == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.FileCompression == enum_CSVFileCompression[_]
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.Charset == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.ContainsHeader == BOOLEAN
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.Delimiter == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.HeaderList[_] == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.CsvFormatDescriptor.QuoteSymbol == STRING
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.JsonFormatDescriptor.FileCompression == enum_JsonFileCompression[_]
    input.Body.MetricSource.S3SourceConfig.FileFormatDescriptor.JsonFormatDescriptor.Charset == STRING
    input.Body.MetricSource.AppFlowConfig.RoleArn == STRING
    input.Body.MetricSource.AppFlowConfig.FlowName == STRING
    input.Body.MetricSource.CloudWatchConfig.RoleArn == STRING
    input.Body.MetricSource.CloudWatchConfig.BackTestConfiguration.RunBackTestMode == BOOLEAN
    input.Body.MetricSource.RDSSourceConfig.DBInstanceIdentifier == STRING
    input.Body.MetricSource.RDSSourceConfig.DatabaseHost == STRING
    input.Body.MetricSource.RDSSourceConfig.DatabasePort == INTEGER
    input.Body.MetricSource.RDSSourceConfig.SecretManagerArn == STRING
    input.Body.MetricSource.RDSSourceConfig.DatabaseName == STRING
    input.Body.MetricSource.RDSSourceConfig.TableName == STRING
    input.Body.MetricSource.RDSSourceConfig.RoleArn == STRING
    input.Body.MetricSource.RDSSourceConfig.VpcConfiguration.SubnetIdList[_] == STRING
    input.Body.MetricSource.RDSSourceConfig.VpcConfiguration.SecurityGroupIdList[_] == STRING
    input.Body.MetricSource.RedshiftSourceConfig.ClusterIdentifier == STRING
    input.Body.MetricSource.RedshiftSourceConfig.DatabaseHost == STRING
    input.Body.MetricSource.RedshiftSourceConfig.DatabasePort == INTEGER
    input.Body.MetricSource.RedshiftSourceConfig.SecretManagerArn == STRING
    input.Body.MetricSource.RedshiftSourceConfig.DatabaseName == STRING
    input.Body.MetricSource.RedshiftSourceConfig.TableName == STRING
    input.Body.MetricSource.RedshiftSourceConfig.RoleArn == STRING
    input.Body.MetricSource.RedshiftSourceConfig.VpcConfiguration.SubnetIdList[_] == STRING
    input.Body.MetricSource.RedshiftSourceConfig.VpcConfiguration.SecurityGroupIdList[_] == STRING
    input.Body.MetricSource.AthenaSourceConfig.RoleArn == STRING
    input.Body.MetricSource.AthenaSourceConfig.DatabaseName == STRING
    input.Body.MetricSource.AthenaSourceConfig.DataCatalog == STRING
    input.Body.MetricSource.AthenaSourceConfig.TableName == STRING
    input.Body.MetricSource.AthenaSourceConfig.WorkGroupName == STRING
    input.Body.MetricSource.AthenaSourceConfig.S3ResultsPath == STRING
    input.Body.MetricSource.AthenaSourceConfig.BackTestConfiguration.RunBackTestMode == BOOLEAN
    input.Body.DimensionFilterList[_].Name == STRING
    input.Body.DimensionFilterList[_].FilterList[_].DimensionValue == STRING
    input.Body.DimensionFilterList[_].FilterList[_].FilterOperation == enum_FilterOperation[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}