BatchExecuteStatement

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnValuesOnConditionCheckFailure := [ "ALL_OLD", "NONE" ]

valid {
    input.Body.Statements[_].Statement == STRING
    input.Body.Statements[_].Parameters[_].S == STRING
    input.Body.Statements[_].Parameters[_].N == STRING
    input.Body.Statements[_].Parameters[_].B == BLOB
    input.Body.Statements[_].Parameters[_].SS[_] == STRING
    input.Body.Statements[_].Parameters[_].NS[_] == STRING
    input.Body.Statements[_].Parameters[_].BS[_] == BLOB
    input.Body.Statements[_].Parameters[_].M.STRING == NESTED
    input.Body.Statements[_].Parameters[_].L[_] == NESTED
    input.Body.Statements[_].Parameters[_].NULL == BOOLEAN
    input.Body.Statements[_].Parameters[_].BOOL == BOOLEAN
    input.Body.Statements[_].ConsistentRead == BOOLEAN
    input.Body.Statements[_].ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetItem

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]

valid {
    input.Body.RequestItems.STRING.Keys[_].STRING.S == STRING
    input.Body.RequestItems.STRING.Keys[_].STRING.N == STRING
    input.Body.RequestItems.STRING.Keys[_].STRING.B == BLOB
    input.Body.RequestItems.STRING.Keys[_].STRING.SS[_] == STRING
    input.Body.RequestItems.STRING.Keys[_].STRING.NS[_] == STRING
    input.Body.RequestItems.STRING.Keys[_].STRING.BS[_] == BLOB
    input.Body.RequestItems.STRING.Keys[_].STRING.M.STRING == NESTED
    input.Body.RequestItems.STRING.Keys[_].STRING.L[_] == NESTED
    input.Body.RequestItems.STRING.Keys[_].STRING.NULL == BOOLEAN
    input.Body.RequestItems.STRING.Keys[_].STRING.BOOL == BOOLEAN
    input.Body.RequestItems.STRING.AttributesToGet[_] == STRING
    input.Body.RequestItems.STRING.ConsistentRead == BOOLEAN
    input.Body.RequestItems.STRING.ProjectionExpression == STRING
    input.Body.RequestItems.STRING.ExpressionAttributeNames.STRING == STRING
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchWriteItem

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnItemCollectionMetrics := [ "SIZE", "NONE" ]

valid {
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.S == STRING
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.N == STRING
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.B == BLOB
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.SS[_] == STRING
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.NS[_] == STRING
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.BS[_] == BLOB
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.M.STRING == NESTED
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.L[_] == NESTED
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.NULL == BOOLEAN
    input.Body.RequestItems.STRING[_].PutRequest.Item.STRING.BOOL == BOOLEAN
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.S == STRING
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.N == STRING
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.B == BLOB
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.SS[_] == STRING
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.NS[_] == STRING
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.BS[_] == BLOB
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.M.STRING == NESTED
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.L[_] == NESTED
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.NULL == BOOLEAN
    input.Body.RequestItems.STRING[_].DeleteRequest.Key.STRING.BOOL == BOOLEAN
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.ReturnItemCollectionMetrics == enum_ReturnItemCollectionMetrics[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateBackup

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

CreateGlobalTable

valid {
    input.Body.GlobalTableName == STRING
    input.Body.ReplicationGroup[_].RegionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTable

enum_BillingMode := [ "PROVISIONED", "PAY_PER_REQUEST" ]
enum_KeyType := [ "HASH", "RANGE" ]
enum_ProjectionType := [ "ALL", "KEYS_ONLY", "INCLUDE" ]
enum_SSEType := [ "AES256", "KMS" ]
enum_ScalarAttributeType := [ "S", "N", "B" ]
enum_StreamViewType := [ "NEW_IMAGE", "OLD_IMAGE", "NEW_AND_OLD_IMAGES", "KEYS_ONLY" ]
enum_TableClass := [ "STANDARD", "STANDARD_INFREQUENT_ACCESS" ]

valid {
    input.Body.AttributeDefinitions[_].AttributeName == STRING
    input.Body.AttributeDefinitions[_].AttributeType == enum_ScalarAttributeType[_]
    input.Body.TableName == STRING
    input.Body.KeySchema[_].AttributeName == STRING
    input.Body.KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.LocalSecondaryIndexes[_].IndexName == STRING
    input.Body.LocalSecondaryIndexes[_].KeySchema[_].AttributeName == STRING
    input.Body.LocalSecondaryIndexes[_].KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.LocalSecondaryIndexes[_].Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.LocalSecondaryIndexes[_].Projection.NonKeyAttributes[_] == STRING
    input.Body.GlobalSecondaryIndexes[_].IndexName == STRING
    input.Body.GlobalSecondaryIndexes[_].KeySchema[_].AttributeName == STRING
    input.Body.GlobalSecondaryIndexes[_].KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.GlobalSecondaryIndexes[_].Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.GlobalSecondaryIndexes[_].Projection.NonKeyAttributes[_] == STRING
    input.Body.GlobalSecondaryIndexes[_].ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexes[_].ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.BillingMode == enum_BillingMode[_]
    input.Body.ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.StreamSpecification.StreamEnabled == BOOLEAN
    input.Body.StreamSpecification.StreamViewType == enum_StreamViewType[_]
    input.Body.SSESpecification.Enabled == BOOLEAN
    input.Body.SSESpecification.SSEType == enum_SSEType[_]
    input.Body.SSESpecification.KMSMasterKeyId == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.TableClass == enum_TableClass[_]
    input.Body.DeletionProtectionEnabled == BOOLEAN
    input.Body.ResourcePolicy == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteBackup

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

DeleteItem

enum_ComparisonOperator := [ "EQ", "NE", "IN", "LE", "LT", "GE", "GT", "BETWEEN", "NOT_NULL", "NULL", "CONTAINS", "NOT_CONTAINS", "BEGINS_WITH" ]
enum_ConditionalOperator := [ "AND", "OR" ]
enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnItemCollectionMetrics := [ "SIZE", "NONE" ]
enum_ReturnValue := [ "NONE", "ALL_OLD", "UPDATED_OLD", "ALL_NEW", "UPDATED_NEW" ]
enum_ReturnValuesOnConditionCheckFailure := [ "ALL_OLD", "NONE" ]

valid {
    input.Body.TableName == STRING
    input.Body.Key.STRING.S == STRING
    input.Body.Key.STRING.N == STRING
    input.Body.Key.STRING.B == BLOB
    input.Body.Key.STRING.SS[_] == STRING
    input.Body.Key.STRING.NS[_] == STRING
    input.Body.Key.STRING.BS[_] == BLOB
    input.Body.Key.STRING.M.STRING == NESTED
    input.Body.Key.STRING.L[_] == NESTED
    input.Body.Key.STRING.NULL == BOOLEAN
    input.Body.Key.STRING.BOOL == BOOLEAN
    input.Body.Expected.STRING.Value.S == STRING
    input.Body.Expected.STRING.Value.N == STRING
    input.Body.Expected.STRING.Value.B == BLOB
    input.Body.Expected.STRING.Value.SS[_] == STRING
    input.Body.Expected.STRING.Value.NS[_] == STRING
    input.Body.Expected.STRING.Value.BS[_] == BLOB
    input.Body.Expected.STRING.Value.M.STRING == NESTED
    input.Body.Expected.STRING.Value.L[_] == NESTED
    input.Body.Expected.STRING.Value.NULL == BOOLEAN
    input.Body.Expected.STRING.Value.BOOL == BOOLEAN
    input.Body.Expected.STRING.Exists == BOOLEAN
    input.Body.Expected.STRING.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.Expected.STRING.AttributeValueList[_].S == STRING
    input.Body.Expected.STRING.AttributeValueList[_].N == STRING
    input.Body.Expected.STRING.AttributeValueList[_].B == BLOB
    input.Body.Expected.STRING.AttributeValueList[_].SS[_] == STRING
    input.Body.Expected.STRING.AttributeValueList[_].NS[_] == STRING
    input.Body.Expected.STRING.AttributeValueList[_].BS[_] == BLOB
    input.Body.Expected.STRING.AttributeValueList[_].M.STRING == NESTED
    input.Body.Expected.STRING.AttributeValueList[_].L[_] == NESTED
    input.Body.Expected.STRING.AttributeValueList[_].NULL == BOOLEAN
    input.Body.Expected.STRING.AttributeValueList[_].BOOL == BOOLEAN
    input.Body.ConditionalOperator == enum_ConditionalOperator[_]
    input.Body.ReturnValues == enum_ReturnValue[_]
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.ReturnItemCollectionMetrics == enum_ReturnItemCollectionMetrics[_]
    input.Body.ConditionExpression == STRING
    input.Body.ExpressionAttributeNames.STRING == STRING
    input.Body.ExpressionAttributeValues.STRING.S == STRING
    input.Body.ExpressionAttributeValues.STRING.N == STRING
    input.Body.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteResourcePolicy

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

DeleteTable

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

DescribeBackup

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

DescribeContinuousBackups

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

DescribeContributorInsights

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

DescribeEndpoints

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

DescribeExport

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

DescribeGlobalTable

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

DescribeGlobalTableSettings

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

DescribeImport

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

DescribeKinesisStreamingDestination

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

DescribeLimits

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

DescribeTable

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

DescribeTableReplicaAutoScaling

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

DescribeTimeToLive

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

DisableKinesisStreamingDestination

enum_ApproximateCreationDateTimePrecision := [ "MILLISECOND", "MICROSECOND" ]

valid {
    input.Body.TableName == STRING
    input.Body.StreamArn == STRING
    input.Body.EnableKinesisStreamingConfiguration.ApproximateCreationDateTimePrecision == enum_ApproximateCreationDateTimePrecision[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableKinesisStreamingDestination

enum_ApproximateCreationDateTimePrecision := [ "MILLISECOND", "MICROSECOND" ]

valid {
    input.Body.TableName == STRING
    input.Body.StreamArn == STRING
    input.Body.EnableKinesisStreamingConfiguration.ApproximateCreationDateTimePrecision == enum_ApproximateCreationDateTimePrecision[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExecuteStatement

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnValuesOnConditionCheckFailure := [ "ALL_OLD", "NONE" ]

valid {
    input.Body.Statement == STRING
    input.Body.Parameters[_].S == STRING
    input.Body.Parameters[_].N == STRING
    input.Body.Parameters[_].B == BLOB
    input.Body.Parameters[_].SS[_] == STRING
    input.Body.Parameters[_].NS[_] == STRING
    input.Body.Parameters[_].BS[_] == BLOB
    input.Body.Parameters[_].M.STRING == NESTED
    input.Body.Parameters[_].L[_] == NESTED
    input.Body.Parameters[_].NULL == BOOLEAN
    input.Body.Parameters[_].BOOL == BOOLEAN
    input.Body.ConsistentRead == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.Limit == INTEGER
    input.Body.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExecuteTransaction

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnValuesOnConditionCheckFailure := [ "ALL_OLD", "NONE" ]

valid {
    input.Body.TransactStatements[_].Statement == STRING
    input.Body.TransactStatements[_].Parameters[_].S == STRING
    input.Body.TransactStatements[_].Parameters[_].N == STRING
    input.Body.TransactStatements[_].Parameters[_].B == BLOB
    input.Body.TransactStatements[_].Parameters[_].SS[_] == STRING
    input.Body.TransactStatements[_].Parameters[_].NS[_] == STRING
    input.Body.TransactStatements[_].Parameters[_].BS[_] == BLOB
    input.Body.TransactStatements[_].Parameters[_].M.STRING == NESTED
    input.Body.TransactStatements[_].Parameters[_].L[_] == NESTED
    input.Body.TransactStatements[_].Parameters[_].NULL == BOOLEAN
    input.Body.TransactStatements[_].Parameters[_].BOOL == BOOLEAN
    input.Body.TransactStatements[_].ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.Body.ClientRequestToken == STRING
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExportTableToPointInTime

enum_ExportFormat := [ "DYNAMODB_JSON", "ION" ]
enum_ExportType := [ "FULL_EXPORT", "INCREMENTAL_EXPORT" ]
enum_ExportViewType := [ "NEW_IMAGE", "NEW_AND_OLD_IMAGES" ]
enum_S3SseAlgorithm := [ "AES256", "KMS" ]

valid {
    input.Body.TableArn == STRING
    input.Body.ExportTime == TIMESTAMP
    input.Body.ClientToken == STRING
    input.Body.S3Bucket == STRING
    input.Body.S3BucketOwner == STRING
    input.Body.S3Prefix == STRING
    input.Body.S3SseAlgorithm == enum_S3SseAlgorithm[_]
    input.Body.S3SseKmsKeyId == STRING
    input.Body.ExportFormat == enum_ExportFormat[_]
    input.Body.ExportType == enum_ExportType[_]
    input.Body.IncrementalExportSpecification.ExportFromTime == TIMESTAMP
    input.Body.IncrementalExportSpecification.ExportToTime == TIMESTAMP
    input.Body.IncrementalExportSpecification.ExportViewType == enum_ExportViewType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetItem

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]

valid {
    input.Body.TableName == STRING
    input.Body.Key.STRING.S == STRING
    input.Body.Key.STRING.N == STRING
    input.Body.Key.STRING.B == BLOB
    input.Body.Key.STRING.SS[_] == STRING
    input.Body.Key.STRING.NS[_] == STRING
    input.Body.Key.STRING.BS[_] == BLOB
    input.Body.Key.STRING.M.STRING == NESTED
    input.Body.Key.STRING.L[_] == NESTED
    input.Body.Key.STRING.NULL == BOOLEAN
    input.Body.Key.STRING.BOOL == BOOLEAN
    input.Body.AttributesToGet[_] == STRING
    input.Body.ConsistentRead == BOOLEAN
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.ProjectionExpression == STRING
    input.Body.ExpressionAttributeNames.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetResourcePolicy

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

ImportTable

enum_BillingMode := [ "PROVISIONED", "PAY_PER_REQUEST" ]
enum_InputCompressionType := [ "GZIP", "ZSTD", "NONE" ]
enum_InputFormat := [ "DYNAMODB_JSON", "ION", "CSV" ]
enum_KeyType := [ "HASH", "RANGE" ]
enum_ProjectionType := [ "ALL", "KEYS_ONLY", "INCLUDE" ]
enum_SSEType := [ "AES256", "KMS" ]
enum_ScalarAttributeType := [ "S", "N", "B" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.S3BucketSource.S3BucketOwner == STRING
    input.Body.S3BucketSource.S3Bucket == STRING
    input.Body.S3BucketSource.S3KeyPrefix == STRING
    input.Body.InputFormat == enum_InputFormat[_]
    input.Body.InputFormatOptions.Csv.Delimiter == STRING
    input.Body.InputFormatOptions.Csv.HeaderList[_] == STRING
    input.Body.InputCompressionType == enum_InputCompressionType[_]
    input.Body.TableCreationParameters.TableName == STRING
    input.Body.TableCreationParameters.AttributeDefinitions[_].AttributeName == STRING
    input.Body.TableCreationParameters.AttributeDefinitions[_].AttributeType == enum_ScalarAttributeType[_]
    input.Body.TableCreationParameters.KeySchema[_].AttributeName == STRING
    input.Body.TableCreationParameters.KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.TableCreationParameters.BillingMode == enum_BillingMode[_]
    input.Body.TableCreationParameters.ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.TableCreationParameters.ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.TableCreationParameters.SSESpecification.Enabled == BOOLEAN
    input.Body.TableCreationParameters.SSESpecification.SSEType == enum_SSEType[_]
    input.Body.TableCreationParameters.SSESpecification.KMSMasterKeyId == STRING
    input.Body.TableCreationParameters.GlobalSecondaryIndexes[_].IndexName == STRING
    input.Body.TableCreationParameters.GlobalSecondaryIndexes[_].KeySchema[_].AttributeName == STRING
    input.Body.TableCreationParameters.GlobalSecondaryIndexes[_].KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.TableCreationParameters.GlobalSecondaryIndexes[_].Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.TableCreationParameters.GlobalSecondaryIndexes[_].Projection.NonKeyAttributes[_] == STRING
    input.Body.TableCreationParameters.GlobalSecondaryIndexes[_].ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.TableCreationParameters.GlobalSecondaryIndexes[_].ProvisionedThroughput.WriteCapacityUnits == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBackups

enum_BackupTypeFilter := [ "USER", "SYSTEM", "AWS_BACKUP", "ALL" ]

valid {
    input.Body.TableName == STRING
    input.Body.Limit == INTEGER
    input.Body.TimeRangeLowerBound == TIMESTAMP
    input.Body.TimeRangeUpperBound == TIMESTAMP
    input.Body.ExclusiveStartBackupArn == STRING
    input.Body.BackupType == enum_BackupTypeFilter[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContributorInsights

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

ListExports

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

ListGlobalTables

valid {
    input.Body.ExclusiveStartGlobalTableName == STRING
    input.Body.Limit == INTEGER
    input.Body.RegionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListImports

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

ListTables

valid {
    input.Body.ExclusiveStartTableName == STRING
    input.Body.Limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsOfResource

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

PutItem

enum_ComparisonOperator := [ "EQ", "NE", "IN", "LE", "LT", "GE", "GT", "BETWEEN", "NOT_NULL", "NULL", "CONTAINS", "NOT_CONTAINS", "BEGINS_WITH" ]
enum_ConditionalOperator := [ "AND", "OR" ]
enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnItemCollectionMetrics := [ "SIZE", "NONE" ]
enum_ReturnValue := [ "NONE", "ALL_OLD", "UPDATED_OLD", "ALL_NEW", "UPDATED_NEW" ]
enum_ReturnValuesOnConditionCheckFailure := [ "ALL_OLD", "NONE" ]

valid {
    input.Body.TableName == STRING
    input.Body.Item.STRING.S == STRING
    input.Body.Item.STRING.N == STRING
    input.Body.Item.STRING.B == BLOB
    input.Body.Item.STRING.SS[_] == STRING
    input.Body.Item.STRING.NS[_] == STRING
    input.Body.Item.STRING.BS[_] == BLOB
    input.Body.Item.STRING.M.STRING == NESTED
    input.Body.Item.STRING.L[_] == NESTED
    input.Body.Item.STRING.NULL == BOOLEAN
    input.Body.Item.STRING.BOOL == BOOLEAN
    input.Body.Expected.STRING.Value.S == STRING
    input.Body.Expected.STRING.Value.N == STRING
    input.Body.Expected.STRING.Value.B == BLOB
    input.Body.Expected.STRING.Value.SS[_] == STRING
    input.Body.Expected.STRING.Value.NS[_] == STRING
    input.Body.Expected.STRING.Value.BS[_] == BLOB
    input.Body.Expected.STRING.Value.M.STRING == NESTED
    input.Body.Expected.STRING.Value.L[_] == NESTED
    input.Body.Expected.STRING.Value.NULL == BOOLEAN
    input.Body.Expected.STRING.Value.BOOL == BOOLEAN
    input.Body.Expected.STRING.Exists == BOOLEAN
    input.Body.Expected.STRING.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.Expected.STRING.AttributeValueList[_].S == STRING
    input.Body.Expected.STRING.AttributeValueList[_].N == STRING
    input.Body.Expected.STRING.AttributeValueList[_].B == BLOB
    input.Body.Expected.STRING.AttributeValueList[_].SS[_] == STRING
    input.Body.Expected.STRING.AttributeValueList[_].NS[_] == STRING
    input.Body.Expected.STRING.AttributeValueList[_].BS[_] == BLOB
    input.Body.Expected.STRING.AttributeValueList[_].M.STRING == NESTED
    input.Body.Expected.STRING.AttributeValueList[_].L[_] == NESTED
    input.Body.Expected.STRING.AttributeValueList[_].NULL == BOOLEAN
    input.Body.Expected.STRING.AttributeValueList[_].BOOL == BOOLEAN
    input.Body.ReturnValues == enum_ReturnValue[_]
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.ReturnItemCollectionMetrics == enum_ReturnItemCollectionMetrics[_]
    input.Body.ConditionalOperator == enum_ConditionalOperator[_]
    input.Body.ConditionExpression == STRING
    input.Body.ExpressionAttributeNames.STRING == STRING
    input.Body.ExpressionAttributeValues.STRING.S == STRING
    input.Body.ExpressionAttributeValues.STRING.N == STRING
    input.Body.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutResourcePolicy

valid {
    input.Body.ResourceArn == STRING
    input.Body.Policy == STRING
    input.Body.ExpectedRevisionId == STRING
    input.Body.ConfirmRemoveSelfResourceAccess == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

Query

enum_ComparisonOperator := [ "EQ", "NE", "IN", "LE", "LT", "GE", "GT", "BETWEEN", "NOT_NULL", "NULL", "CONTAINS", "NOT_CONTAINS", "BEGINS_WITH" ]
enum_ConditionalOperator := [ "AND", "OR" ]
enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_Select := [ "ALL_ATTRIBUTES", "ALL_PROJECTED_ATTRIBUTES", "SPECIFIC_ATTRIBUTES", "COUNT" ]

valid {
    input.Body.TableName == STRING
    input.Body.IndexName == STRING
    input.Body.Select == enum_Select[_]
    input.Body.AttributesToGet[_] == STRING
    input.Body.Limit == INTEGER
    input.Body.ConsistentRead == BOOLEAN
    input.Body.KeyConditions.STRING.AttributeValueList[_].S == STRING
    input.Body.KeyConditions.STRING.AttributeValueList[_].N == STRING
    input.Body.KeyConditions.STRING.AttributeValueList[_].B == BLOB
    input.Body.KeyConditions.STRING.AttributeValueList[_].SS[_] == STRING
    input.Body.KeyConditions.STRING.AttributeValueList[_].NS[_] == STRING
    input.Body.KeyConditions.STRING.AttributeValueList[_].BS[_] == BLOB
    input.Body.KeyConditions.STRING.AttributeValueList[_].M.STRING == NESTED
    input.Body.KeyConditions.STRING.AttributeValueList[_].L[_] == NESTED
    input.Body.KeyConditions.STRING.AttributeValueList[_].NULL == BOOLEAN
    input.Body.KeyConditions.STRING.AttributeValueList[_].BOOL == BOOLEAN
    input.Body.KeyConditions.STRING.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.QueryFilter.STRING.AttributeValueList[_].S == STRING
    input.Body.QueryFilter.STRING.AttributeValueList[_].N == STRING
    input.Body.QueryFilter.STRING.AttributeValueList[_].B == BLOB
    input.Body.QueryFilter.STRING.AttributeValueList[_].SS[_] == STRING
    input.Body.QueryFilter.STRING.AttributeValueList[_].NS[_] == STRING
    input.Body.QueryFilter.STRING.AttributeValueList[_].BS[_] == BLOB
    input.Body.QueryFilter.STRING.AttributeValueList[_].M.STRING == NESTED
    input.Body.QueryFilter.STRING.AttributeValueList[_].L[_] == NESTED
    input.Body.QueryFilter.STRING.AttributeValueList[_].NULL == BOOLEAN
    input.Body.QueryFilter.STRING.AttributeValueList[_].BOOL == BOOLEAN
    input.Body.QueryFilter.STRING.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.ConditionalOperator == enum_ConditionalOperator[_]
    input.Body.ScanIndexForward == BOOLEAN
    input.Body.ExclusiveStartKey.STRING.S == STRING
    input.Body.ExclusiveStartKey.STRING.N == STRING
    input.Body.ExclusiveStartKey.STRING.B == BLOB
    input.Body.ExclusiveStartKey.STRING.SS[_] == STRING
    input.Body.ExclusiveStartKey.STRING.NS[_] == STRING
    input.Body.ExclusiveStartKey.STRING.BS[_] == BLOB
    input.Body.ExclusiveStartKey.STRING.M.STRING == NESTED
    input.Body.ExclusiveStartKey.STRING.L[_] == NESTED
    input.Body.ExclusiveStartKey.STRING.NULL == BOOLEAN
    input.Body.ExclusiveStartKey.STRING.BOOL == BOOLEAN
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.ProjectionExpression == STRING
    input.Body.FilterExpression == STRING
    input.Body.KeyConditionExpression == STRING
    input.Body.ExpressionAttributeNames.STRING == STRING
    input.Body.ExpressionAttributeValues.STRING.S == STRING
    input.Body.ExpressionAttributeValues.STRING.N == STRING
    input.Body.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreTableFromBackup

enum_BillingMode := [ "PROVISIONED", "PAY_PER_REQUEST" ]
enum_KeyType := [ "HASH", "RANGE" ]
enum_ProjectionType := [ "ALL", "KEYS_ONLY", "INCLUDE" ]
enum_SSEType := [ "AES256", "KMS" ]

valid {
    input.Body.TargetTableName == STRING
    input.Body.BackupArn == STRING
    input.Body.BillingModeOverride == enum_BillingMode[_]
    input.Body.GlobalSecondaryIndexOverride[_].IndexName == STRING
    input.Body.GlobalSecondaryIndexOverride[_].KeySchema[_].AttributeName == STRING
    input.Body.GlobalSecondaryIndexOverride[_].KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.GlobalSecondaryIndexOverride[_].Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.GlobalSecondaryIndexOverride[_].Projection.NonKeyAttributes[_] == STRING
    input.Body.GlobalSecondaryIndexOverride[_].ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexOverride[_].ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.LocalSecondaryIndexOverride[_].IndexName == STRING
    input.Body.LocalSecondaryIndexOverride[_].KeySchema[_].AttributeName == STRING
    input.Body.LocalSecondaryIndexOverride[_].KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.LocalSecondaryIndexOverride[_].Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.LocalSecondaryIndexOverride[_].Projection.NonKeyAttributes[_] == STRING
    input.Body.ProvisionedThroughputOverride.ReadCapacityUnits == LONG
    input.Body.ProvisionedThroughputOverride.WriteCapacityUnits == LONG
    input.Body.SSESpecificationOverride.Enabled == BOOLEAN
    input.Body.SSESpecificationOverride.SSEType == enum_SSEType[_]
    input.Body.SSESpecificationOverride.KMSMasterKeyId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreTableToPointInTime

enum_BillingMode := [ "PROVISIONED", "PAY_PER_REQUEST" ]
enum_KeyType := [ "HASH", "RANGE" ]
enum_ProjectionType := [ "ALL", "KEYS_ONLY", "INCLUDE" ]
enum_SSEType := [ "AES256", "KMS" ]

valid {
    input.Body.SourceTableArn == STRING
    input.Body.SourceTableName == STRING
    input.Body.TargetTableName == STRING
    input.Body.UseLatestRestorableTime == BOOLEAN
    input.Body.RestoreDateTime == TIMESTAMP
    input.Body.BillingModeOverride == enum_BillingMode[_]
    input.Body.GlobalSecondaryIndexOverride[_].IndexName == STRING
    input.Body.GlobalSecondaryIndexOverride[_].KeySchema[_].AttributeName == STRING
    input.Body.GlobalSecondaryIndexOverride[_].KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.GlobalSecondaryIndexOverride[_].Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.GlobalSecondaryIndexOverride[_].Projection.NonKeyAttributes[_] == STRING
    input.Body.GlobalSecondaryIndexOverride[_].ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexOverride[_].ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.LocalSecondaryIndexOverride[_].IndexName == STRING
    input.Body.LocalSecondaryIndexOverride[_].KeySchema[_].AttributeName == STRING
    input.Body.LocalSecondaryIndexOverride[_].KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.LocalSecondaryIndexOverride[_].Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.LocalSecondaryIndexOverride[_].Projection.NonKeyAttributes[_] == STRING
    input.Body.ProvisionedThroughputOverride.ReadCapacityUnits == LONG
    input.Body.ProvisionedThroughputOverride.WriteCapacityUnits == LONG
    input.Body.SSESpecificationOverride.Enabled == BOOLEAN
    input.Body.SSESpecificationOverride.SSEType == enum_SSEType[_]
    input.Body.SSESpecificationOverride.KMSMasterKeyId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

Scan

enum_ComparisonOperator := [ "EQ", "NE", "IN", "LE", "LT", "GE", "GT", "BETWEEN", "NOT_NULL", "NULL", "CONTAINS", "NOT_CONTAINS", "BEGINS_WITH" ]
enum_ConditionalOperator := [ "AND", "OR" ]
enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_Select := [ "ALL_ATTRIBUTES", "ALL_PROJECTED_ATTRIBUTES", "SPECIFIC_ATTRIBUTES", "COUNT" ]

valid {
    input.Body.TableName == STRING
    input.Body.IndexName == STRING
    input.Body.AttributesToGet[_] == STRING
    input.Body.Limit == INTEGER
    input.Body.Select == enum_Select[_]
    input.Body.ScanFilter.STRING.AttributeValueList[_].S == STRING
    input.Body.ScanFilter.STRING.AttributeValueList[_].N == STRING
    input.Body.ScanFilter.STRING.AttributeValueList[_].B == BLOB
    input.Body.ScanFilter.STRING.AttributeValueList[_].SS[_] == STRING
    input.Body.ScanFilter.STRING.AttributeValueList[_].NS[_] == STRING
    input.Body.ScanFilter.STRING.AttributeValueList[_].BS[_] == BLOB
    input.Body.ScanFilter.STRING.AttributeValueList[_].M.STRING == NESTED
    input.Body.ScanFilter.STRING.AttributeValueList[_].L[_] == NESTED
    input.Body.ScanFilter.STRING.AttributeValueList[_].NULL == BOOLEAN
    input.Body.ScanFilter.STRING.AttributeValueList[_].BOOL == BOOLEAN
    input.Body.ScanFilter.STRING.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.ConditionalOperator == enum_ConditionalOperator[_]
    input.Body.ExclusiveStartKey.STRING.S == STRING
    input.Body.ExclusiveStartKey.STRING.N == STRING
    input.Body.ExclusiveStartKey.STRING.B == BLOB
    input.Body.ExclusiveStartKey.STRING.SS[_] == STRING
    input.Body.ExclusiveStartKey.STRING.NS[_] == STRING
    input.Body.ExclusiveStartKey.STRING.BS[_] == BLOB
    input.Body.ExclusiveStartKey.STRING.M.STRING == NESTED
    input.Body.ExclusiveStartKey.STRING.L[_] == NESTED
    input.Body.ExclusiveStartKey.STRING.NULL == BOOLEAN
    input.Body.ExclusiveStartKey.STRING.BOOL == BOOLEAN
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.TotalSegments == INTEGER
    input.Body.Segment == INTEGER
    input.Body.ProjectionExpression == STRING
    input.Body.FilterExpression == STRING
    input.Body.ExpressionAttributeNames.STRING == STRING
    input.Body.ExpressionAttributeValues.STRING.S == STRING
    input.Body.ExpressionAttributeValues.STRING.N == STRING
    input.Body.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.ConsistentRead == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.ResourceArn == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TransactGetItems

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]

valid {
    input.Body.TransactItems[_].Get.Key.STRING.S == STRING
    input.Body.TransactItems[_].Get.Key.STRING.N == STRING
    input.Body.TransactItems[_].Get.Key.STRING.B == BLOB
    input.Body.TransactItems[_].Get.Key.STRING.SS[_] == STRING
    input.Body.TransactItems[_].Get.Key.STRING.NS[_] == STRING
    input.Body.TransactItems[_].Get.Key.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].Get.Key.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].Get.Key.STRING.L[_] == NESTED
    input.Body.TransactItems[_].Get.Key.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].Get.Key.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].Get.TableName == STRING
    input.Body.TransactItems[_].Get.ProjectionExpression == STRING
    input.Body.TransactItems[_].Get.ExpressionAttributeNames.STRING == STRING
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TransactWriteItems

enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnItemCollectionMetrics := [ "SIZE", "NONE" ]
enum_ReturnValuesOnConditionCheckFailure := [ "ALL_OLD", "NONE" ]

valid {
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.S == STRING
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.N == STRING
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.B == BLOB
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.SS[_] == STRING
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.NS[_] == STRING
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.L[_] == NESTED
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].ConditionCheck.Key.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].ConditionCheck.TableName == STRING
    input.Body.TransactItems[_].ConditionCheck.ConditionExpression == STRING
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeNames.STRING == STRING
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.S == STRING
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.N == STRING
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].ConditionCheck.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].ConditionCheck.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.Body.TransactItems[_].Put.Item.STRING.S == STRING
    input.Body.TransactItems[_].Put.Item.STRING.N == STRING
    input.Body.TransactItems[_].Put.Item.STRING.B == BLOB
    input.Body.TransactItems[_].Put.Item.STRING.SS[_] == STRING
    input.Body.TransactItems[_].Put.Item.STRING.NS[_] == STRING
    input.Body.TransactItems[_].Put.Item.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].Put.Item.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].Put.Item.STRING.L[_] == NESTED
    input.Body.TransactItems[_].Put.Item.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].Put.Item.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].Put.TableName == STRING
    input.Body.TransactItems[_].Put.ConditionExpression == STRING
    input.Body.TransactItems[_].Put.ExpressionAttributeNames.STRING == STRING
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.S == STRING
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.N == STRING
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].Put.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].Put.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.Body.TransactItems[_].Delete.Key.STRING.S == STRING
    input.Body.TransactItems[_].Delete.Key.STRING.N == STRING
    input.Body.TransactItems[_].Delete.Key.STRING.B == BLOB
    input.Body.TransactItems[_].Delete.Key.STRING.SS[_] == STRING
    input.Body.TransactItems[_].Delete.Key.STRING.NS[_] == STRING
    input.Body.TransactItems[_].Delete.Key.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].Delete.Key.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].Delete.Key.STRING.L[_] == NESTED
    input.Body.TransactItems[_].Delete.Key.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].Delete.Key.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].Delete.TableName == STRING
    input.Body.TransactItems[_].Delete.ConditionExpression == STRING
    input.Body.TransactItems[_].Delete.ExpressionAttributeNames.STRING == STRING
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.S == STRING
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.N == STRING
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].Delete.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].Delete.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.Body.TransactItems[_].Update.Key.STRING.S == STRING
    input.Body.TransactItems[_].Update.Key.STRING.N == STRING
    input.Body.TransactItems[_].Update.Key.STRING.B == BLOB
    input.Body.TransactItems[_].Update.Key.STRING.SS[_] == STRING
    input.Body.TransactItems[_].Update.Key.STRING.NS[_] == STRING
    input.Body.TransactItems[_].Update.Key.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].Update.Key.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].Update.Key.STRING.L[_] == NESTED
    input.Body.TransactItems[_].Update.Key.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].Update.Key.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].Update.UpdateExpression == STRING
    input.Body.TransactItems[_].Update.TableName == STRING
    input.Body.TransactItems[_].Update.ConditionExpression == STRING
    input.Body.TransactItems[_].Update.ExpressionAttributeNames.STRING == STRING
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.S == STRING
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.N == STRING
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.TransactItems[_].Update.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.TransactItems[_].Update.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.ReturnItemCollectionMetrics == enum_ReturnItemCollectionMetrics[_]
    input.Body.ClientRequestToken == 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
}

UpdateContinuousBackups

valid {
    input.Body.TableName == STRING
    input.Body.PointInTimeRecoverySpecification.PointInTimeRecoveryEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContributorInsights

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

valid {
    input.Body.TableName == STRING
    input.Body.IndexName == STRING
    input.Body.ContributorInsightsAction == enum_ContributorInsightsAction[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGlobalTable

valid {
    input.Body.GlobalTableName == STRING
    input.Body.ReplicaUpdates[_].Create.RegionName == STRING
    input.Body.ReplicaUpdates[_].Delete.RegionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGlobalTableSettings

enum_BillingMode := [ "PROVISIONED", "PAY_PER_REQUEST" ]
enum_TableClass := [ "STANDARD", "STANDARD_INFREQUENT_ACCESS" ]

valid {
    input.Body.GlobalTableName == STRING
    input.Body.GlobalTableBillingMode == enum_BillingMode[_]
    input.Body.GlobalTableProvisionedWriteCapacityUnits == LONG
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.MinimumUnits == LONG
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.MaximumUnits == LONG
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.AutoScalingRoleArn == STRING
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].IndexName == STRING
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityUnits == LONG
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.MinimumUnits == LONG
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.MaximumUnits == LONG
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.AutoScalingRoleArn == STRING
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.GlobalTableGlobalSecondaryIndexSettingsUpdate[_].ProvisionedWriteCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.ReplicaSettingsUpdate[_].RegionName == STRING
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityUnits == LONG
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.MinimumUnits == LONG
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.MaximumUnits == LONG
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.AutoScalingRoleArn == STRING
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.ReplicaSettingsUpdate[_].ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].IndexName == STRING
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityUnits == LONG
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.MinimumUnits == LONG
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.MaximumUnits == LONG
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.AutoScalingRoleArn == STRING
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.ReplicaSettingsUpdate[_].ReplicaGlobalSecondaryIndexSettingsUpdate[_].ProvisionedReadCapacityAutoScalingSettingsUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.ReplicaSettingsUpdate[_].ReplicaTableClass == enum_TableClass[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateItem

enum_AttributeAction := [ "ADD", "PUT", "DELETE" ]
enum_ComparisonOperator := [ "EQ", "NE", "IN", "LE", "LT", "GE", "GT", "BETWEEN", "NOT_NULL", "NULL", "CONTAINS", "NOT_CONTAINS", "BEGINS_WITH" ]
enum_ConditionalOperator := [ "AND", "OR" ]
enum_ReturnConsumedCapacity := [ "INDEXES", "TOTAL", "NONE" ]
enum_ReturnItemCollectionMetrics := [ "SIZE", "NONE" ]
enum_ReturnValue := [ "NONE", "ALL_OLD", "UPDATED_OLD", "ALL_NEW", "UPDATED_NEW" ]
enum_ReturnValuesOnConditionCheckFailure := [ "ALL_OLD", "NONE" ]

valid {
    input.Body.TableName == STRING
    input.Body.Key.STRING.S == STRING
    input.Body.Key.STRING.N == STRING
    input.Body.Key.STRING.B == BLOB
    input.Body.Key.STRING.SS[_] == STRING
    input.Body.Key.STRING.NS[_] == STRING
    input.Body.Key.STRING.BS[_] == BLOB
    input.Body.Key.STRING.M.STRING == NESTED
    input.Body.Key.STRING.L[_] == NESTED
    input.Body.Key.STRING.NULL == BOOLEAN
    input.Body.Key.STRING.BOOL == BOOLEAN
    input.Body.AttributeUpdates.STRING.Value.S == STRING
    input.Body.AttributeUpdates.STRING.Value.N == STRING
    input.Body.AttributeUpdates.STRING.Value.B == BLOB
    input.Body.AttributeUpdates.STRING.Value.SS[_] == STRING
    input.Body.AttributeUpdates.STRING.Value.NS[_] == STRING
    input.Body.AttributeUpdates.STRING.Value.BS[_] == BLOB
    input.Body.AttributeUpdates.STRING.Value.M.STRING == NESTED
    input.Body.AttributeUpdates.STRING.Value.L[_] == NESTED
    input.Body.AttributeUpdates.STRING.Value.NULL == BOOLEAN
    input.Body.AttributeUpdates.STRING.Value.BOOL == BOOLEAN
    input.Body.AttributeUpdates.STRING.Action == enum_AttributeAction[_]
    input.Body.Expected.STRING.Value.S == STRING
    input.Body.Expected.STRING.Value.N == STRING
    input.Body.Expected.STRING.Value.B == BLOB
    input.Body.Expected.STRING.Value.SS[_] == STRING
    input.Body.Expected.STRING.Value.NS[_] == STRING
    input.Body.Expected.STRING.Value.BS[_] == BLOB
    input.Body.Expected.STRING.Value.M.STRING == NESTED
    input.Body.Expected.STRING.Value.L[_] == NESTED
    input.Body.Expected.STRING.Value.NULL == BOOLEAN
    input.Body.Expected.STRING.Value.BOOL == BOOLEAN
    input.Body.Expected.STRING.Exists == BOOLEAN
    input.Body.Expected.STRING.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.Expected.STRING.AttributeValueList[_].S == STRING
    input.Body.Expected.STRING.AttributeValueList[_].N == STRING
    input.Body.Expected.STRING.AttributeValueList[_].B == BLOB
    input.Body.Expected.STRING.AttributeValueList[_].SS[_] == STRING
    input.Body.Expected.STRING.AttributeValueList[_].NS[_] == STRING
    input.Body.Expected.STRING.AttributeValueList[_].BS[_] == BLOB
    input.Body.Expected.STRING.AttributeValueList[_].M.STRING == NESTED
    input.Body.Expected.STRING.AttributeValueList[_].L[_] == NESTED
    input.Body.Expected.STRING.AttributeValueList[_].NULL == BOOLEAN
    input.Body.Expected.STRING.AttributeValueList[_].BOOL == BOOLEAN
    input.Body.ConditionalOperator == enum_ConditionalOperator[_]
    input.Body.ReturnValues == enum_ReturnValue[_]
    input.Body.ReturnConsumedCapacity == enum_ReturnConsumedCapacity[_]
    input.Body.ReturnItemCollectionMetrics == enum_ReturnItemCollectionMetrics[_]
    input.Body.UpdateExpression == STRING
    input.Body.ConditionExpression == STRING
    input.Body.ExpressionAttributeNames.STRING == STRING
    input.Body.ExpressionAttributeValues.STRING.S == STRING
    input.Body.ExpressionAttributeValues.STRING.N == STRING
    input.Body.ExpressionAttributeValues.STRING.B == BLOB
    input.Body.ExpressionAttributeValues.STRING.SS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.NS[_] == STRING
    input.Body.ExpressionAttributeValues.STRING.BS[_] == BLOB
    input.Body.ExpressionAttributeValues.STRING.M.STRING == NESTED
    input.Body.ExpressionAttributeValues.STRING.L[_] == NESTED
    input.Body.ExpressionAttributeValues.STRING.NULL == BOOLEAN
    input.Body.ExpressionAttributeValues.STRING.BOOL == BOOLEAN
    input.Body.ReturnValuesOnConditionCheckFailure == enum_ReturnValuesOnConditionCheckFailure[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKinesisStreamingDestination

enum_ApproximateCreationDateTimePrecision := [ "MILLISECOND", "MICROSECOND" ]

valid {
    input.Body.TableName == STRING
    input.Body.StreamArn == STRING
    input.Body.UpdateKinesisStreamingConfiguration.ApproximateCreationDateTimePrecision == enum_ApproximateCreationDateTimePrecision[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTable

enum_BillingMode := [ "PROVISIONED", "PAY_PER_REQUEST" ]
enum_KeyType := [ "HASH", "RANGE" ]
enum_ProjectionType := [ "ALL", "KEYS_ONLY", "INCLUDE" ]
enum_SSEType := [ "AES256", "KMS" ]
enum_ScalarAttributeType := [ "S", "N", "B" ]
enum_StreamViewType := [ "NEW_IMAGE", "OLD_IMAGE", "NEW_AND_OLD_IMAGES", "KEYS_ONLY" ]
enum_TableClass := [ "STANDARD", "STANDARD_INFREQUENT_ACCESS" ]

valid {
    input.Body.AttributeDefinitions[_].AttributeName == STRING
    input.Body.AttributeDefinitions[_].AttributeType == enum_ScalarAttributeType[_]
    input.Body.TableName == STRING
    input.Body.BillingMode == enum_BillingMode[_]
    input.Body.ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexUpdates[_].Update.IndexName == STRING
    input.Body.GlobalSecondaryIndexUpdates[_].Update.ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexUpdates[_].Update.ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexUpdates[_].Create.IndexName == STRING
    input.Body.GlobalSecondaryIndexUpdates[_].Create.KeySchema[_].AttributeName == STRING
    input.Body.GlobalSecondaryIndexUpdates[_].Create.KeySchema[_].KeyType == enum_KeyType[_]
    input.Body.GlobalSecondaryIndexUpdates[_].Create.Projection.ProjectionType == enum_ProjectionType[_]
    input.Body.GlobalSecondaryIndexUpdates[_].Create.Projection.NonKeyAttributes[_] == STRING
    input.Body.GlobalSecondaryIndexUpdates[_].Create.ProvisionedThroughput.ReadCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexUpdates[_].Create.ProvisionedThroughput.WriteCapacityUnits == LONG
    input.Body.GlobalSecondaryIndexUpdates[_].Delete.IndexName == STRING
    input.Body.StreamSpecification.StreamEnabled == BOOLEAN
    input.Body.StreamSpecification.StreamViewType == enum_StreamViewType[_]
    input.Body.SSESpecification.Enabled == BOOLEAN
    input.Body.SSESpecification.SSEType == enum_SSEType[_]
    input.Body.SSESpecification.KMSMasterKeyId == STRING
    input.Body.ReplicaUpdates[_].Create.RegionName == STRING
    input.Body.ReplicaUpdates[_].Create.KMSMasterKeyId == STRING
    input.Body.ReplicaUpdates[_].Create.ProvisionedThroughputOverride.ReadCapacityUnits == LONG
    input.Body.ReplicaUpdates[_].Create.GlobalSecondaryIndexes[_].IndexName == STRING
    input.Body.ReplicaUpdates[_].Create.GlobalSecondaryIndexes[_].ProvisionedThroughputOverride.ReadCapacityUnits == LONG
    input.Body.ReplicaUpdates[_].Create.TableClassOverride == enum_TableClass[_]
    input.Body.ReplicaUpdates[_].Update.RegionName == STRING
    input.Body.ReplicaUpdates[_].Update.KMSMasterKeyId == STRING
    input.Body.ReplicaUpdates[_].Update.ProvisionedThroughputOverride.ReadCapacityUnits == LONG
    input.Body.ReplicaUpdates[_].Update.GlobalSecondaryIndexes[_].IndexName == STRING
    input.Body.ReplicaUpdates[_].Update.GlobalSecondaryIndexes[_].ProvisionedThroughputOverride.ReadCapacityUnits == LONG
    input.Body.ReplicaUpdates[_].Update.TableClassOverride == enum_TableClass[_]
    input.Body.ReplicaUpdates[_].Delete.RegionName == STRING
    input.Body.TableClass == enum_TableClass[_]
    input.Body.DeletionProtectionEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTableReplicaAutoScaling

valid {
    input.Body.GlobalSecondaryIndexUpdates[_].IndexName == STRING
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.MinimumUnits == LONG
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.MaximumUnits == LONG
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.AutoScalingRoleArn == STRING
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.GlobalSecondaryIndexUpdates[_].ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.TableName == STRING
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.MinimumUnits == LONG
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.MaximumUnits == LONG
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.AutoScalingRoleArn == STRING
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.ProvisionedWriteCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.ReplicaUpdates[_].RegionName == STRING
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].IndexName == STRING
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.MinimumUnits == LONG
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.MaximumUnits == LONG
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.AutoScalingRoleArn == STRING
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.ReplicaUpdates[_].ReplicaGlobalSecondaryIndexUpdates[_].ProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.MinimumUnits == LONG
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.MaximumUnits == LONG
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.AutoScalingDisabled == BOOLEAN
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.AutoScalingRoleArn == STRING
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.PolicyName == STRING
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.DisableScaleIn == BOOLEAN
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleInCooldown == INTEGER
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown == INTEGER
    input.Body.ReplicaUpdates[_].ReplicaProvisionedReadCapacityAutoScalingUpdate.ScalingPolicyUpdate.TargetTrackingScalingPolicyConfiguration.TargetValue == DOUBLE
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTimeToLive

valid {
    input.Body.TableName == STRING
    input.Body.TimeToLiveSpecification.Enabled == BOOLEAN
    input.Body.TimeToLiveSpecification.AttributeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}