BatchDeleteRecipeVersion

valid {
    input.Body.RecipeVersions[_] == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDataset

enum_InputFormat := [ "CSV", "JSON", "PARQUET", "EXCEL", "ORC" ]
enum_Order := [ "DESCENDING", "ASCENDING" ]
enum_OrderedBy := [ "LAST_MODIFIED_DATE" ]
enum_ParameterType := [ "Datetime", "Number", "String" ]

valid {
    input.Body.Name == STRING
    input.Body.Format == enum_InputFormat[_]
    input.Body.FormatOptions.Json.MultiLine == BOOLEAN
    input.Body.FormatOptions.Excel.SheetNames[_] == STRING
    input.Body.FormatOptions.Excel.SheetIndexes[_] == INTEGER
    input.Body.FormatOptions.Excel.HeaderRow == BOOLEAN
    input.Body.FormatOptions.Csv.Delimiter == STRING
    input.Body.FormatOptions.Csv.HeaderRow == BOOLEAN
    input.Body.Input.S3InputDefinition.Bucket == STRING
    input.Body.Input.S3InputDefinition.Key == STRING
    input.Body.Input.S3InputDefinition.BucketOwner == STRING
    input.Body.Input.DataCatalogInputDefinition.CatalogId == STRING
    input.Body.Input.DataCatalogInputDefinition.DatabaseName == STRING
    input.Body.Input.DataCatalogInputDefinition.TableName == STRING
    input.Body.Input.DataCatalogInputDefinition.TempDirectory.Bucket == STRING
    input.Body.Input.DataCatalogInputDefinition.TempDirectory.Key == STRING
    input.Body.Input.DataCatalogInputDefinition.TempDirectory.BucketOwner == STRING
    input.Body.Input.DatabaseInputDefinition.GlueConnectionName == STRING
    input.Body.Input.DatabaseInputDefinition.DatabaseTableName == STRING
    input.Body.Input.DatabaseInputDefinition.TempDirectory.Bucket == STRING
    input.Body.Input.DatabaseInputDefinition.TempDirectory.Key == STRING
    input.Body.Input.DatabaseInputDefinition.TempDirectory.BucketOwner == STRING
    input.Body.Input.DatabaseInputDefinition.QueryString == STRING
    input.Body.Input.Metadata.SourceArn == STRING
    input.Body.PathOptions.LastModifiedDateCondition.Expression == STRING
    input.Body.PathOptions.LastModifiedDateCondition.ValuesMap.STRING == STRING
    input.Body.PathOptions.FilesLimit.MaxFiles == INTEGER
    input.Body.PathOptions.FilesLimit.OrderedBy == enum_OrderedBy[_]
    input.Body.PathOptions.FilesLimit.Order == enum_Order[_]
    input.Body.PathOptions.Parameters.STRING.Name == STRING
    input.Body.PathOptions.Parameters.STRING.Type == enum_ParameterType[_]
    input.Body.PathOptions.Parameters.STRING.DatetimeOptions.Format == STRING
    input.Body.PathOptions.Parameters.STRING.DatetimeOptions.TimezoneOffset == STRING
    input.Body.PathOptions.Parameters.STRING.DatetimeOptions.LocaleCode == STRING
    input.Body.PathOptions.Parameters.STRING.CreateColumn == BOOLEAN
    input.Body.PathOptions.Parameters.STRING.Filter.Expression == STRING
    input.Body.PathOptions.Parameters.STRING.Filter.ValuesMap.STRING == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProfileJob

enum_EncryptionMode := [ "SSE-KMS", "SSE-S3" ]
enum_LogSubscription := [ "ENABLE", "DISABLE" ]
enum_SampleMode := [ "FULL_DATASET", "CUSTOM_ROWS" ]
enum_ValidationMode := [ "CHECK_ALL" ]

valid {
    input.Body.DatasetName == STRING
    input.Body.EncryptionKeyArn == STRING
    input.Body.EncryptionMode == enum_EncryptionMode[_]
    input.Body.Name == STRING
    input.Body.LogSubscription == enum_LogSubscription[_]
    input.Body.MaxCapacity == INTEGER
    input.Body.MaxRetries == INTEGER
    input.Body.OutputLocation.Bucket == STRING
    input.Body.OutputLocation.Key == STRING
    input.Body.OutputLocation.BucketOwner == STRING
    input.Body.Configuration.DatasetStatisticsConfiguration.IncludedStatistics[_] == STRING
    input.Body.Configuration.DatasetStatisticsConfiguration.Overrides[_].Statistic == STRING
    input.Body.Configuration.DatasetStatisticsConfiguration.Overrides[_].Parameters.STRING == STRING
    input.Body.Configuration.ProfileColumns[_].Regex == STRING
    input.Body.Configuration.ProfileColumns[_].Name == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Selectors[_].Regex == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Selectors[_].Name == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Statistics.IncludedStatistics[_] == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Statistics.Overrides[_].Statistic == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Statistics.Overrides[_].Parameters.STRING == STRING
    input.Body.Configuration.EntityDetectorConfiguration.EntityTypes[_] == STRING
    input.Body.Configuration.EntityDetectorConfiguration.AllowedStatistics[_].Statistics[_] == STRING
    input.Body.ValidationConfigurations[_].RulesetArn == STRING
    input.Body.ValidationConfigurations[_].ValidationMode == enum_ValidationMode[_]
    input.Body.RoleArn == STRING
    input.Body.Tags.STRING == STRING
    input.Body.Timeout == INTEGER
    input.Body.JobSample.Mode == enum_SampleMode[_]
    input.Body.JobSample.Size == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProject

enum_SampleType := [ "FIRST_N", "LAST_N", "RANDOM" ]

valid {
    input.Body.DatasetName == STRING
    input.Body.Name == STRING
    input.Body.RecipeName == STRING
    input.Body.Sample.Size == INTEGER
    input.Body.Sample.Type == enum_SampleType[_]
    input.Body.RoleArn == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRecipe

valid {
    input.Body.Description == STRING
    input.Body.Name == STRING
    input.Body.Steps[_].Action.Operation == STRING
    input.Body.Steps[_].Action.Parameters.STRING == STRING
    input.Body.Steps[_].ConditionExpressions[_].Condition == STRING
    input.Body.Steps[_].ConditionExpressions[_].Value == STRING
    input.Body.Steps[_].ConditionExpressions[_].TargetColumn == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRecipeJob

enum_CompressionFormat := [ "GZIP", "LZ4", "SNAPPY", "BZIP2", "DEFLATE", "LZO", "BROTLI", "ZSTD", "ZLIB" ]
enum_DatabaseOutputMode := [ "NEW_TABLE" ]
enum_EncryptionMode := [ "SSE-KMS", "SSE-S3" ]
enum_LogSubscription := [ "ENABLE", "DISABLE" ]
enum_OutputFormat := [ "CSV", "JSON", "PARQUET", "GLUEPARQUET", "AVRO", "ORC", "XML", "TABLEAUHYPER" ]

valid {
    input.Body.DatasetName == STRING
    input.Body.EncryptionKeyArn == STRING
    input.Body.EncryptionMode == enum_EncryptionMode[_]
    input.Body.Name == STRING
    input.Body.LogSubscription == enum_LogSubscription[_]
    input.Body.MaxCapacity == INTEGER
    input.Body.MaxRetries == INTEGER
    input.Body.Outputs[_].CompressionFormat == enum_CompressionFormat[_]
    input.Body.Outputs[_].Format == enum_OutputFormat[_]
    input.Body.Outputs[_].PartitionColumns[_] == STRING
    input.Body.Outputs[_].Location.Bucket == STRING
    input.Body.Outputs[_].Location.Key == STRING
    input.Body.Outputs[_].Location.BucketOwner == STRING
    input.Body.Outputs[_].Overwrite == BOOLEAN
    input.Body.Outputs[_].FormatOptions.Csv.Delimiter == STRING
    input.Body.Outputs[_].MaxOutputFiles == INTEGER
    input.Body.DataCatalogOutputs[_].CatalogId == STRING
    input.Body.DataCatalogOutputs[_].DatabaseName == STRING
    input.Body.DataCatalogOutputs[_].TableName == STRING
    input.Body.DataCatalogOutputs[_].S3Options.Location.Bucket == STRING
    input.Body.DataCatalogOutputs[_].S3Options.Location.Key == STRING
    input.Body.DataCatalogOutputs[_].S3Options.Location.BucketOwner == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TempDirectory.Bucket == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TempDirectory.Key == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TempDirectory.BucketOwner == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TableName == STRING
    input.Body.DataCatalogOutputs[_].Overwrite == BOOLEAN
    input.Body.DatabaseOutputs[_].GlueConnectionName == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TempDirectory.Bucket == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TempDirectory.Key == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TempDirectory.BucketOwner == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TableName == STRING
    input.Body.DatabaseOutputs[_].DatabaseOutputMode == enum_DatabaseOutputMode[_]
    input.Body.ProjectName == STRING
    input.Body.RecipeReference.Name == STRING
    input.Body.RecipeReference.RecipeVersion == STRING
    input.Body.RoleArn == STRING
    input.Body.Tags.STRING == STRING
    input.Body.Timeout == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRuleset

enum_ThresholdType := [ "GREATER_THAN_OR_EQUAL", "LESS_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN" ]
enum_ThresholdUnit := [ "COUNT", "PERCENTAGE" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.TargetArn == STRING
    input.Body.Rules[_].Name == STRING
    input.Body.Rules[_].Disabled == BOOLEAN
    input.Body.Rules[_].CheckExpression == STRING
    input.Body.Rules[_].SubstitutionMap.STRING == STRING
    input.Body.Rules[_].Threshold.Value == DOUBLE
    input.Body.Rules[_].Threshold.Type == enum_ThresholdType[_]
    input.Body.Rules[_].Threshold.Unit == enum_ThresholdUnit[_]
    input.Body.Rules[_].ColumnSelectors[_].Regex == STRING
    input.Body.Rules[_].ColumnSelectors[_].Name == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSchedule

valid {
    input.Body.JobNames[_] == STRING
    input.Body.CronExpression == STRING
    input.Body.Tags.STRING == STRING
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDataset

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

DeleteJob

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

DeleteProject

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

DeleteRecipeVersion

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

DeleteRuleset

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

DeleteSchedule

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

DescribeDataset

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

DescribeJob

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

DescribeJobRun

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

DescribeProject

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

DescribeRecipe

valid {
    input.ReqMap.name == STRING
    input.Qs.recipeVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRuleset

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

DescribeSchedule

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

ListDatasets

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListJobRuns

valid {
    input.ReqMap.name == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListJobs

valid {
    input.Qs.datasetName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.projectName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProjects

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRecipeVersions

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRecipes

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.recipeVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRulesets

valid {
    input.Qs.targetArn == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSchedules

valid {
    input.Qs.jobName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.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
}

PublishRecipe

valid {
    input.Body.Description == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendProjectSessionAction

enum_AnalyticsMode := [ "ENABLE", "DISABLE" ]

valid {
    input.Body.Preview == BOOLEAN
    input.Body.RecipeStep.Action.Operation == STRING
    input.Body.RecipeStep.Action.Parameters.STRING == STRING
    input.Body.RecipeStep.ConditionExpressions[_].Condition == STRING
    input.Body.RecipeStep.ConditionExpressions[_].Value == STRING
    input.Body.RecipeStep.ConditionExpressions[_].TargetColumn == STRING
    input.Body.StepIndex == INTEGER
    input.Body.ClientSessionId == STRING
    input.Body.ViewFrame.StartColumnIndex == INTEGER
    input.Body.ViewFrame.ColumnRange == INTEGER
    input.Body.ViewFrame.HiddenColumns[_] == STRING
    input.Body.ViewFrame.StartRowIndex == INTEGER
    input.Body.ViewFrame.RowRange == INTEGER
    input.Body.ViewFrame.Analytics == enum_AnalyticsMode[_]
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartJobRun

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

StartProjectSession

valid {
    input.Body.AssumeControl == BOOLEAN
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopJobRun

valid {
    input.ReqMap.name == STRING
    input.ReqMap.runId == STRING
    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
}

UpdateDataset

enum_InputFormat := [ "CSV", "JSON", "PARQUET", "EXCEL", "ORC" ]
enum_Order := [ "DESCENDING", "ASCENDING" ]
enum_OrderedBy := [ "LAST_MODIFIED_DATE" ]
enum_ParameterType := [ "Datetime", "Number", "String" ]

valid {
    input.Body.Format == enum_InputFormat[_]
    input.Body.FormatOptions.Json.MultiLine == BOOLEAN
    input.Body.FormatOptions.Excel.SheetNames[_] == STRING
    input.Body.FormatOptions.Excel.SheetIndexes[_] == INTEGER
    input.Body.FormatOptions.Excel.HeaderRow == BOOLEAN
    input.Body.FormatOptions.Csv.Delimiter == STRING
    input.Body.FormatOptions.Csv.HeaderRow == BOOLEAN
    input.Body.Input.S3InputDefinition.Bucket == STRING
    input.Body.Input.S3InputDefinition.Key == STRING
    input.Body.Input.S3InputDefinition.BucketOwner == STRING
    input.Body.Input.DataCatalogInputDefinition.CatalogId == STRING
    input.Body.Input.DataCatalogInputDefinition.DatabaseName == STRING
    input.Body.Input.DataCatalogInputDefinition.TableName == STRING
    input.Body.Input.DataCatalogInputDefinition.TempDirectory.Bucket == STRING
    input.Body.Input.DataCatalogInputDefinition.TempDirectory.Key == STRING
    input.Body.Input.DataCatalogInputDefinition.TempDirectory.BucketOwner == STRING
    input.Body.Input.DatabaseInputDefinition.GlueConnectionName == STRING
    input.Body.Input.DatabaseInputDefinition.DatabaseTableName == STRING
    input.Body.Input.DatabaseInputDefinition.TempDirectory.Bucket == STRING
    input.Body.Input.DatabaseInputDefinition.TempDirectory.Key == STRING
    input.Body.Input.DatabaseInputDefinition.TempDirectory.BucketOwner == STRING
    input.Body.Input.DatabaseInputDefinition.QueryString == STRING
    input.Body.Input.Metadata.SourceArn == STRING
    input.Body.PathOptions.LastModifiedDateCondition.Expression == STRING
    input.Body.PathOptions.LastModifiedDateCondition.ValuesMap.STRING == STRING
    input.Body.PathOptions.FilesLimit.MaxFiles == INTEGER
    input.Body.PathOptions.FilesLimit.OrderedBy == enum_OrderedBy[_]
    input.Body.PathOptions.FilesLimit.Order == enum_Order[_]
    input.Body.PathOptions.Parameters.STRING.Name == STRING
    input.Body.PathOptions.Parameters.STRING.Type == enum_ParameterType[_]
    input.Body.PathOptions.Parameters.STRING.DatetimeOptions.Format == STRING
    input.Body.PathOptions.Parameters.STRING.DatetimeOptions.TimezoneOffset == STRING
    input.Body.PathOptions.Parameters.STRING.DatetimeOptions.LocaleCode == STRING
    input.Body.PathOptions.Parameters.STRING.CreateColumn == BOOLEAN
    input.Body.PathOptions.Parameters.STRING.Filter.Expression == STRING
    input.Body.PathOptions.Parameters.STRING.Filter.ValuesMap.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProfileJob

enum_EncryptionMode := [ "SSE-KMS", "SSE-S3" ]
enum_LogSubscription := [ "ENABLE", "DISABLE" ]
enum_SampleMode := [ "FULL_DATASET", "CUSTOM_ROWS" ]
enum_ValidationMode := [ "CHECK_ALL" ]

valid {
    input.Body.Configuration.DatasetStatisticsConfiguration.IncludedStatistics[_] == STRING
    input.Body.Configuration.DatasetStatisticsConfiguration.Overrides[_].Statistic == STRING
    input.Body.Configuration.DatasetStatisticsConfiguration.Overrides[_].Parameters.STRING == STRING
    input.Body.Configuration.ProfileColumns[_].Regex == STRING
    input.Body.Configuration.ProfileColumns[_].Name == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Selectors[_].Regex == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Selectors[_].Name == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Statistics.IncludedStatistics[_] == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Statistics.Overrides[_].Statistic == STRING
    input.Body.Configuration.ColumnStatisticsConfigurations[_].Statistics.Overrides[_].Parameters.STRING == STRING
    input.Body.Configuration.EntityDetectorConfiguration.EntityTypes[_] == STRING
    input.Body.Configuration.EntityDetectorConfiguration.AllowedStatistics[_].Statistics[_] == STRING
    input.Body.EncryptionKeyArn == STRING
    input.Body.EncryptionMode == enum_EncryptionMode[_]
    input.Body.LogSubscription == enum_LogSubscription[_]
    input.Body.MaxCapacity == INTEGER
    input.Body.MaxRetries == INTEGER
    input.Body.OutputLocation.Bucket == STRING
    input.Body.OutputLocation.Key == STRING
    input.Body.OutputLocation.BucketOwner == STRING
    input.Body.ValidationConfigurations[_].RulesetArn == STRING
    input.Body.ValidationConfigurations[_].ValidationMode == enum_ValidationMode[_]
    input.Body.RoleArn == STRING
    input.Body.Timeout == INTEGER
    input.Body.JobSample.Mode == enum_SampleMode[_]
    input.Body.JobSample.Size == LONG
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProject

enum_SampleType := [ "FIRST_N", "LAST_N", "RANDOM" ]

valid {
    input.Body.Sample.Size == INTEGER
    input.Body.Sample.Type == enum_SampleType[_]
    input.Body.RoleArn == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRecipe

valid {
    input.Body.Description == STRING
    input.Body.Steps[_].Action.Operation == STRING
    input.Body.Steps[_].Action.Parameters.STRING == STRING
    input.Body.Steps[_].ConditionExpressions[_].Condition == STRING
    input.Body.Steps[_].ConditionExpressions[_].Value == STRING
    input.Body.Steps[_].ConditionExpressions[_].TargetColumn == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRecipeJob

enum_CompressionFormat := [ "GZIP", "LZ4", "SNAPPY", "BZIP2", "DEFLATE", "LZO", "BROTLI", "ZSTD", "ZLIB" ]
enum_DatabaseOutputMode := [ "NEW_TABLE" ]
enum_EncryptionMode := [ "SSE-KMS", "SSE-S3" ]
enum_LogSubscription := [ "ENABLE", "DISABLE" ]
enum_OutputFormat := [ "CSV", "JSON", "PARQUET", "GLUEPARQUET", "AVRO", "ORC", "XML", "TABLEAUHYPER" ]

valid {
    input.Body.EncryptionKeyArn == STRING
    input.Body.EncryptionMode == enum_EncryptionMode[_]
    input.Body.LogSubscription == enum_LogSubscription[_]
    input.Body.MaxCapacity == INTEGER
    input.Body.MaxRetries == INTEGER
    input.Body.Outputs[_].CompressionFormat == enum_CompressionFormat[_]
    input.Body.Outputs[_].Format == enum_OutputFormat[_]
    input.Body.Outputs[_].PartitionColumns[_] == STRING
    input.Body.Outputs[_].Location.Bucket == STRING
    input.Body.Outputs[_].Location.Key == STRING
    input.Body.Outputs[_].Location.BucketOwner == STRING
    input.Body.Outputs[_].Overwrite == BOOLEAN
    input.Body.Outputs[_].FormatOptions.Csv.Delimiter == STRING
    input.Body.Outputs[_].MaxOutputFiles == INTEGER
    input.Body.DataCatalogOutputs[_].CatalogId == STRING
    input.Body.DataCatalogOutputs[_].DatabaseName == STRING
    input.Body.DataCatalogOutputs[_].TableName == STRING
    input.Body.DataCatalogOutputs[_].S3Options.Location.Bucket == STRING
    input.Body.DataCatalogOutputs[_].S3Options.Location.Key == STRING
    input.Body.DataCatalogOutputs[_].S3Options.Location.BucketOwner == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TempDirectory.Bucket == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TempDirectory.Key == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TempDirectory.BucketOwner == STRING
    input.Body.DataCatalogOutputs[_].DatabaseOptions.TableName == STRING
    input.Body.DataCatalogOutputs[_].Overwrite == BOOLEAN
    input.Body.DatabaseOutputs[_].GlueConnectionName == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TempDirectory.Bucket == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TempDirectory.Key == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TempDirectory.BucketOwner == STRING
    input.Body.DatabaseOutputs[_].DatabaseOptions.TableName == STRING
    input.Body.DatabaseOutputs[_].DatabaseOutputMode == enum_DatabaseOutputMode[_]
    input.Body.RoleArn == STRING
    input.Body.Timeout == INTEGER
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRuleset

enum_ThresholdType := [ "GREATER_THAN_OR_EQUAL", "LESS_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN" ]
enum_ThresholdUnit := [ "COUNT", "PERCENTAGE" ]

valid {
    input.Body.Description == STRING
    input.Body.Rules[_].Name == STRING
    input.Body.Rules[_].Disabled == BOOLEAN
    input.Body.Rules[_].CheckExpression == STRING
    input.Body.Rules[_].SubstitutionMap.STRING == STRING
    input.Body.Rules[_].Threshold.Value == DOUBLE
    input.Body.Rules[_].Threshold.Type == enum_ThresholdType[_]
    input.Body.Rules[_].Threshold.Unit == enum_ThresholdUnit[_]
    input.Body.Rules[_].ColumnSelectors[_].Regex == STRING
    input.Body.Rules[_].ColumnSelectors[_].Name == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSchedule

valid {
    input.Body.JobNames[_] == STRING
    input.Body.CronExpression == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}