AddRoleToDBCluster

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.RoleArn == STRING
    input.Body.FeatureName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddRoleToDBInstance

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.RoleArn == STRING
    input.Body.FeatureName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddSourceIdentifierToSubscription

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

AddTagsToResource

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

ApplyPendingMaintenanceAction

valid {
    input.Body.ResourceIdentifier == STRING
    input.Body.ApplyAction == STRING
    input.Body.OptInType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AuthorizeDBSecurityGroupIngress

valid {
    input.Body.DBSecurityGroupName == STRING
    input.Body.CIDRIP == STRING
    input.Body.EC2SecurityGroupName == STRING
    input.Body.EC2SecurityGroupId == STRING
    input.Body.EC2SecurityGroupOwnerId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BacktrackDBCluster

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.BacktrackTo == TIMESTAMP
    input.Body.Force == BOOLEAN
    input.Body.UseEarliestTimeOnPointInTimeUnavailable == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelExportTask

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

CopyDBClusterParameterGroup

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

CopyDBClusterSnapshot

valid {
    input.Body.SourceDBClusterSnapshotIdentifier == STRING
    input.Body.TargetDBClusterSnapshotIdentifier == STRING
    input.Body.KmsKeyId == STRING
    input.Body.PreSignedUrl == STRING
    input.Body.CopyTags == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CopyDBParameterGroup

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

CopyDBSnapshot

valid {
    input.Body.SourceDBSnapshotIdentifier == STRING
    input.Body.TargetDBSnapshotIdentifier == STRING
    input.Body.KmsKeyId == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.CopyTags == BOOLEAN
    input.Body.PreSignedUrl == STRING
    input.Body.OptionGroupName == STRING
    input.Body.TargetCustomAvailabilityZone == STRING
    input.Body.CopyOptionGroup == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CopyOptionGroup

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

CreateBlueGreenDeployment

valid {
    input.Body.BlueGreenDeploymentName == STRING
    input.Body.Source == STRING
    input.Body.TargetEngineVersion == STRING
    input.Body.TargetDBParameterGroupName == STRING
    input.Body.TargetDBClusterParameterGroupName == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.TargetDBInstanceClass == STRING
    input.Body.UpgradeTargetStorageConfig == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCustomDBEngineVersion

valid {
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.DatabaseInstallationFilesS3BucketName == STRING
    input.Body.DatabaseInstallationFilesS3Prefix == STRING
    input.Body.ImageId == STRING
    input.Body.KMSKeyId == STRING
    input.Body.Description == STRING
    input.Body.Manifest == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.SourceCustomDbEngineVersionIdentifier == STRING
    input.Body.UseAwsProvidedLatestImage == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBCluster

valid {
    input.Body.AvailabilityZones[_] == STRING
    input.Body.BackupRetentionPeriod == INTEGER
    input.Body.DBClusterIdentifier == STRING
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.DBSubnetGroupName == STRING
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.Port == INTEGER
    input.Body.MasterUsername == STRING
    input.Body.MasterUserPassword == STRING
    input.Body.PreferredBackupWindow == STRING
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.StorageEncrypted == BOOLEAN
    input.Body.KmsKeyId == STRING
    input.Body.PreSignedUrl == STRING
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.Body.GlobalClusterIdentifier == STRING
    input.Body.StorageType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBClusterEndpoint

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.DBClusterEndpointIdentifier == STRING
    input.Body.EndpointType == STRING
    input.Body.StaticMembers[_] == STRING
    input.Body.ExcludedMembers[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBClusterParameterGroup

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

CreateDBClusterSnapshot

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

CreateDBInstance

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.DBInstanceClass == STRING
    input.Body.Engine == STRING
    input.Body.AvailabilityZone == STRING
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.DBClusterIdentifier == STRING
    input.Body.CopyTagsToSnapshot == BOOLEAN
    input.Body.PromotionTier == INTEGER
    input.Body.EnablePerformanceInsights == BOOLEAN
    input.Body.PerformanceInsightsKMSKeyId == STRING
    input.Body.CACertificateIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBInstanceReadReplica

enum_ReplicaMode := [ "open-read-only", "mounted" ]

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.SourceDBInstanceIdentifier == STRING
    input.Body.DBInstanceClass == STRING
    input.Body.AvailabilityZone == STRING
    input.Body.Port == INTEGER
    input.Body.MultiAZ == BOOLEAN
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.Iops == INTEGER
    input.Body.OptionGroupName == STRING
    input.Body.DBParameterGroupName == STRING
    input.Body.PubliclyAccessible == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.DBSubnetGroupName == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.StorageType == STRING
    input.Body.CopyTagsToSnapshot == BOOLEAN
    input.Body.MonitoringInterval == INTEGER
    input.Body.MonitoringRoleArn == STRING
    input.Body.KmsKeyId == STRING
    input.Body.PreSignedUrl == STRING
    input.Body.EnableIAMDatabaseAuthentication == BOOLEAN
    input.Body.EnablePerformanceInsights == BOOLEAN
    input.Body.PerformanceInsightsKMSKeyId == STRING
    input.Body.PerformanceInsightsRetentionPeriod == INTEGER
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.ProcessorFeatures[_].Name == STRING
    input.Body.ProcessorFeatures[_].Value == STRING
    input.Body.UseDefaultProcessorFeatures == BOOLEAN
    input.Body.DeletionProtection == BOOLEAN
    input.Body.Domain == STRING
    input.Body.DomainIAMRoleName == STRING
    input.Body.DomainFqdn == STRING
    input.Body.DomainOu == STRING
    input.Body.DomainAuthSecretArn == STRING
    input.Body.DomainDnsIps[_] == STRING
    input.Body.ReplicaMode == enum_ReplicaMode[_]
    input.Body.MaxAllocatedStorage == INTEGER
    input.Body.CustomIamInstanceProfile == STRING
    input.Body.NetworkType == STRING
    input.Body.StorageThroughput == INTEGER
    input.Body.EnableCustomerOwnedIp == BOOLEAN
    input.Body.AllocatedStorage == INTEGER
    input.Body.SourceDBClusterIdentifier == STRING
    input.Body.DedicatedLogVolume == BOOLEAN
    input.Body.UpgradeStorageConfig == BOOLEAN
    input.Body.CACertificateIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBParameterGroup

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

CreateDBProxy

enum_AuthScheme := [ "SECRETS" ]
enum_ClientPasswordAuthType := [ "MYSQL_NATIVE_PASSWORD", "POSTGRES_SCRAM_SHA_256", "POSTGRES_MD5", "SQL_SERVER_AUTHENTICATION" ]
enum_EngineFamily := [ "MYSQL", "POSTGRESQL", "SQLSERVER" ]
enum_IAMAuthMode := [ "DISABLED", "REQUIRED", "ENABLED" ]

valid {
    input.Body.DBProxyName == STRING
    input.Body.EngineFamily == enum_EngineFamily[_]
    input.Body.Auth[_].Description == STRING
    input.Body.Auth[_].UserName == STRING
    input.Body.Auth[_].AuthScheme == enum_AuthScheme[_]
    input.Body.Auth[_].SecretArn == STRING
    input.Body.Auth[_].IAMAuth == enum_IAMAuthMode[_]
    input.Body.Auth[_].ClientPasswordAuthType == enum_ClientPasswordAuthType[_]
    input.Body.RoleArn == STRING
    input.Body.VpcSubnetIds[_] == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.RequireTLS == BOOLEAN
    input.Body.IdleClientTimeout == INTEGER
    input.Body.DebugLogging == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBProxyEndpoint

enum_DBProxyEndpointTargetRole := [ "READ_WRITE", "READ_ONLY" ]

valid {
    input.Body.DBProxyName == STRING
    input.Body.DBProxyEndpointName == STRING
    input.Body.VpcSubnetIds[_] == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.TargetRole == enum_DBProxyEndpointTargetRole[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBSecurityGroup

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

CreateDBShardGroup

valid {
    input.Body.DBShardGroupIdentifier == STRING
    input.Body.DBClusterIdentifier == STRING
    input.Body.ComputeRedundancy == INTEGER
    input.Body.MaxACU == DOUBLE
    input.Body.PubliclyAccessible == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDBSnapshot

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

CreateDBSubnetGroup

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

CreateEventSubscription

valid {
    input.Body.SubscriptionName == STRING
    input.Body.SnsTopicArn == STRING
    input.Body.SourceType == STRING
    input.Body.EventCategories[_] == STRING
    input.Body.SourceIds[_] == STRING
    input.Body.Enabled == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGlobalCluster

valid {
    input.Body.GlobalClusterIdentifier == STRING
    input.Body.SourceDBClusterIdentifier == STRING
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.Body.DatabaseName == STRING
    input.Body.StorageEncrypted == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIntegration

valid {
    input.Body.SourceArn == STRING
    input.Body.TargetArn == STRING
    input.Body.IntegrationName == STRING
    input.Body.KMSKeyId == STRING
    input.Body.AdditionalEncryptionContext.STRING == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.DataFilter == STRING
    input.Body.Description == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateOptionGroup

valid {
    input.Body.OptionGroupName == STRING
    input.Body.EngineName == STRING
    input.Body.MajorEngineVersion == STRING
    input.Body.OptionGroupDescription == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTenantDatabase

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.TenantDBName == STRING
    input.Body.MasterUsername == STRING
    input.Body.MasterUserPassword == STRING
    input.Body.CharacterSetName == STRING
    input.Body.NcharCharacterSetName == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteBlueGreenDeployment

valid {
    input.Body.BlueGreenDeploymentIdentifier == STRING
    input.Body.DeleteTarget == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCustomDBEngineVersion

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

DeleteDBCluster

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.SkipFinalSnapshot == BOOLEAN
    input.Body.FinalDBSnapshotIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDBClusterAutomatedBackup

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

DeleteDBClusterEndpoint

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

DeleteDBClusterParameterGroup

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

DeleteDBClusterSnapshot

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

DeleteDBInstance

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

DeleteDBInstanceAutomatedBackup

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

DeleteDBParameterGroup

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

DeleteDBProxy

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

DeleteDBProxyEndpoint

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

DeleteDBSecurityGroup

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

DeleteDBShardGroup

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

DeleteDBSnapshot

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

DeleteDBSubnetGroup

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

DeleteEventSubscription

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

DeleteGlobalCluster

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

DeleteIntegration

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

DeleteOptionGroup

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

DeleteTenantDatabase

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.TenantDBName == STRING
    input.Body.SkipFinalSnapshot == BOOLEAN
    input.Body.FinalDBSnapshotIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterDBProxyTargets

valid {
    input.Body.DBProxyName == STRING
    input.Body.TargetGroupName == STRING
    input.Body.DBInstanceIdentifiers[_] == STRING
    input.Body.DBClusterIdentifiers[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAccountAttributes

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

DescribeBlueGreenDeployments

valid {
    input.Body.BlueGreenDeploymentIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCertificates

valid {
    input.Body.CertificateIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBClusterAutomatedBackups

valid {
    input.Body.DbClusterResourceId == STRING
    input.Body.DBClusterIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBClusterBacktracks

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.BacktrackIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBClusterEndpoints

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.DBClusterEndpointIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBClusterParameterGroups

valid {
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBClusterParameters

valid {
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.Source == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBClusterSnapshotAttributes

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

DescribeDBClusterSnapshots

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.DBClusterSnapshotIdentifier == STRING
    input.Body.SnapshotType == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.Body.IncludeShared == BOOLEAN
    input.Body.IncludePublic == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBClusters

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBEngineVersions

valid {
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.DBParameterGroupFamily == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.Body.DefaultOnly == BOOLEAN
    input.Body.ListSupportedCharacterSets == BOOLEAN
    input.Body.ListSupportedTimezones == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBInstanceAutomatedBackups

valid {
    input.Body.DbiResourceId == STRING
    input.Body.DBInstanceIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.Body.DBInstanceAutomatedBackupsArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBInstances

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBLogFiles

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.FilenameContains == STRING
    input.Body.FileLastWritten == LONG
    input.Body.FileSize == LONG
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBParameterGroups

valid {
    input.Body.DBParameterGroupName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBParameters

valid {
    input.Body.DBParameterGroupName == STRING
    input.Body.Source == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBProxies

valid {
    input.Body.DBProxyName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBProxyEndpoints

valid {
    input.Body.DBProxyName == STRING
    input.Body.DBProxyEndpointName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBProxyTargetGroups

valid {
    input.Body.DBProxyName == STRING
    input.Body.TargetGroupName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBProxyTargets

valid {
    input.Body.DBProxyName == STRING
    input.Body.TargetGroupName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBRecommendations

valid {
    input.Body.LastUpdatedAfter == TIMESTAMP
    input.Body.LastUpdatedBefore == TIMESTAMP
    input.Body.Locale == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBSecurityGroups

valid {
    input.Body.DBSecurityGroupName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBShardGroups

valid {
    input.Body.DBShardGroupIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBSnapshotAttributes

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

DescribeDBSnapshotTenantDatabases

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.DBSnapshotIdentifier == STRING
    input.Body.SnapshotType == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.Body.DbiResourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBSnapshots

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.DBSnapshotIdentifier == STRING
    input.Body.SnapshotType == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.Body.IncludeShared == BOOLEAN
    input.Body.IncludePublic == BOOLEAN
    input.Body.DbiResourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDBSubnetGroups

valid {
    input.Body.DBSubnetGroupName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEngineDefaultClusterParameters

valid {
    input.Body.DBParameterGroupFamily == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEngineDefaultParameters

valid {
    input.Body.DBParameterGroupFamily == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEventCategories

valid {
    input.Body.SourceType == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEventSubscriptions

valid {
    input.Body.SubscriptionName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEvents

enum_SourceType := [ "db-instance", "db-parameter-group", "db-security-group", "db-snapshot", "db-cluster", "db-cluster-snapshot" ]

valid {
    input.Body.SourceIdentifier == STRING
    input.Body.SourceType == enum_SourceType[_]
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.Duration == INTEGER
    input.Body.EventCategories[_] == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeExportTasks

enum_ExportSourceType := [ "SNAPSHOT", "CLUSTER" ]

valid {
    input.Body.ExportTaskIdentifier == STRING
    input.Body.SourceArn == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.SourceType == enum_ExportSourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeGlobalClusters

valid {
    input.Body.GlobalClusterIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIntegrations

valid {
    input.Body.IntegrationIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeOptionGroupOptions

valid {
    input.Body.EngineName == STRING
    input.Body.MajorEngineVersion == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeOptionGroups

valid {
    input.Body.OptionGroupName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.EngineName == STRING
    input.Body.MajorEngineVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeOrderableDBInstanceOptions

valid {
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.DBInstanceClass == STRING
    input.Body.LicenseModel == STRING
    input.Body.Vpc == BOOLEAN
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePendingMaintenanceActions

valid {
    input.Body.ResourceIdentifier == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReservedDBInstances

valid {
    input.Body.ReservedDBInstanceId == STRING
    input.Body.ReservedDBInstancesOfferingId == STRING
    input.Body.DBInstanceClass == STRING
    input.Body.Duration == STRING
    input.Body.ProductDescription == STRING
    input.Body.OfferingType == STRING
    input.Body.MultiAZ == BOOLEAN
    input.Body.LeaseId == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReservedDBInstancesOfferings

valid {
    input.Body.ReservedDBInstancesOfferingId == STRING
    input.Body.DBInstanceClass == STRING
    input.Body.Duration == STRING
    input.Body.ProductDescription == STRING
    input.Body.OfferingType == STRING
    input.Body.MultiAZ == BOOLEAN
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSourceRegions

valid {
    input.Body.RegionName == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTenantDatabases

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.TenantDBName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Marker == STRING
    input.Body.MaxRecords == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeValidDBInstanceModifications

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

DisableHttpEndpoint

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

DownloadDBLogFilePortion

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.LogFileName == STRING
    input.Body.Marker == STRING
    input.Body.NumberOfLines == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableHttpEndpoint

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

FailoverDBCluster

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

FailoverGlobalCluster

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

ListTagsForResource

valid {
    input.Body.ResourceName == STRING
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyActivityStream

enum_AuditPolicyState := [ "locked", "unlocked" ]

valid {
    input.Body.ResourceArn == STRING
    input.Body.AuditPolicyState == enum_AuditPolicyState[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyCertificates

valid {
    input.Body.CertificateIdentifier == STRING
    input.Body.RemoveCustomerOverride == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyCurrentDBClusterCapacity

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.Capacity == INTEGER
    input.Body.SecondsBeforeTimeout == INTEGER
    input.Body.TimeoutAction == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyCustomDBEngineVersion

enum_CustomEngineVersionStatus := [ "available", "inactive", "inactive-except-restore" ]

valid {
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.Description == STRING
    input.Body.Status == enum_CustomEngineVersionStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBCluster

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.NewDBClusterIdentifier == STRING
    input.Body.ApplyImmediately == BOOLEAN
    input.Body.BackupRetentionPeriod == INTEGER
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.Port == INTEGER
    input.Body.MasterUserPassword == STRING
    input.Body.PreferredBackupWindow == STRING
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.CloudwatchLogsExportConfiguration.EnableLogTypes[_] == STRING
    input.Body.CloudwatchLogsExportConfiguration.DisableLogTypes[_] == STRING
    input.Body.EngineVersion == STRING
    input.Body.AllowMajorVersionUpgrade == BOOLEAN
    input.Body.DeletionProtection == BOOLEAN
    input.Body.StorageType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBClusterEndpoint

valid {
    input.Body.DBClusterEndpointIdentifier == STRING
    input.Body.EndpointType == STRING
    input.Body.StaticMembers[_] == STRING
    input.Body.ExcludedMembers[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBClusterParameterGroup

enum_ApplyMethod := [ "immediate", "pending-reboot" ]

valid {
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.Parameters[_].ParameterName == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].Description == STRING
    input.Body.Parameters[_].Source == STRING
    input.Body.Parameters[_].ApplyType == STRING
    input.Body.Parameters[_].DataType == STRING
    input.Body.Parameters[_].AllowedValues == STRING
    input.Body.Parameters[_].IsModifiable == BOOLEAN
    input.Body.Parameters[_].MinimumEngineVersion == STRING
    input.Body.Parameters[_].ApplyMethod == enum_ApplyMethod[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBClusterSnapshotAttribute

valid {
    input.Body.DBClusterSnapshotIdentifier == STRING
    input.Body.AttributeName == STRING
    input.Body.ValuesToAdd[_] == STRING
    input.Body.ValuesToRemove[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBInstance

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.DBInstanceClass == STRING
    input.Body.ApplyImmediately == BOOLEAN
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.NewDBInstanceIdentifier == STRING
    input.Body.CACertificateIdentifier == STRING
    input.Body.CopyTagsToSnapshot == BOOLEAN
    input.Body.PromotionTier == INTEGER
    input.Body.EnablePerformanceInsights == BOOLEAN
    input.Body.PerformanceInsightsKMSKeyId == STRING
    input.Body.CertificateRotationRestart == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBParameterGroup

enum_ApplyMethod := [ "immediate", "pending-reboot" ]

valid {
    input.Body.DBParameterGroupName == STRING
    input.Body.Parameters[_].ParameterName == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].Description == STRING
    input.Body.Parameters[_].Source == STRING
    input.Body.Parameters[_].ApplyType == STRING
    input.Body.Parameters[_].DataType == STRING
    input.Body.Parameters[_].AllowedValues == STRING
    input.Body.Parameters[_].IsModifiable == BOOLEAN
    input.Body.Parameters[_].MinimumEngineVersion == STRING
    input.Body.Parameters[_].ApplyMethod == enum_ApplyMethod[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBProxy

enum_AuthScheme := [ "SECRETS" ]
enum_ClientPasswordAuthType := [ "MYSQL_NATIVE_PASSWORD", "POSTGRES_SCRAM_SHA_256", "POSTGRES_MD5", "SQL_SERVER_AUTHENTICATION" ]
enum_IAMAuthMode := [ "DISABLED", "REQUIRED", "ENABLED" ]

valid {
    input.Body.DBProxyName == STRING
    input.Body.NewDBProxyName == STRING
    input.Body.Auth[_].Description == STRING
    input.Body.Auth[_].UserName == STRING
    input.Body.Auth[_].AuthScheme == enum_AuthScheme[_]
    input.Body.Auth[_].SecretArn == STRING
    input.Body.Auth[_].IAMAuth == enum_IAMAuthMode[_]
    input.Body.Auth[_].ClientPasswordAuthType == enum_ClientPasswordAuthType[_]
    input.Body.RequireTLS == BOOLEAN
    input.Body.IdleClientTimeout == INTEGER
    input.Body.DebugLogging == BOOLEAN
    input.Body.RoleArn == STRING
    input.Body.SecurityGroups[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBProxyEndpoint

valid {
    input.Body.DBProxyEndpointName == STRING
    input.Body.NewDBProxyEndpointName == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBProxyTargetGroup

valid {
    input.Body.TargetGroupName == STRING
    input.Body.DBProxyName == STRING
    input.Body.ConnectionPoolConfig.MaxConnectionsPercent == INTEGER
    input.Body.ConnectionPoolConfig.MaxIdleConnectionsPercent == INTEGER
    input.Body.ConnectionPoolConfig.ConnectionBorrowTimeout == INTEGER
    input.Body.ConnectionPoolConfig.SessionPinningFilters[_] == STRING
    input.Body.ConnectionPoolConfig.InitQuery == STRING
    input.Body.NewName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBRecommendation

valid {
    input.Body.RecommendationId == STRING
    input.Body.Locale == STRING
    input.Body.Status == STRING
    input.Body.RecommendedActionUpdates[_].ActionId == STRING
    input.Body.RecommendedActionUpdates[_].Status == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBShardGroup

valid {
    input.Body.DBShardGroupIdentifier == STRING
    input.Body.MaxACU == DOUBLE
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBSnapshot

valid {
    input.Body.DBSnapshotIdentifier == STRING
    input.Body.EngineVersion == STRING
    input.Body.OptionGroupName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBSnapshotAttribute

valid {
    input.Body.DBSnapshotIdentifier == STRING
    input.Body.AttributeName == STRING
    input.Body.ValuesToAdd[_] == STRING
    input.Body.ValuesToRemove[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDBSubnetGroup

valid {
    input.Body.DBSubnetGroupName == STRING
    input.Body.DBSubnetGroupDescription == STRING
    input.Body.SubnetIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyEventSubscription

valid {
    input.Body.SubscriptionName == STRING
    input.Body.SnsTopicArn == STRING
    input.Body.SourceType == STRING
    input.Body.EventCategories[_] == STRING
    input.Body.Enabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyGlobalCluster

valid {
    input.Body.GlobalClusterIdentifier == STRING
    input.Body.NewGlobalClusterIdentifier == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIntegration

valid {
    input.Body.IntegrationIdentifier == STRING
    input.Body.IntegrationName == STRING
    input.Body.DataFilter == STRING
    input.Body.Description == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyOptionGroup

valid {
    input.Body.OptionGroupName == STRING
    input.Body.OptionsToInclude[_].OptionName == STRING
    input.Body.OptionsToInclude[_].Port == INTEGER
    input.Body.OptionsToInclude[_].OptionVersion == STRING
    input.Body.OptionsToInclude[_].DBSecurityGroupMemberships[_] == STRING
    input.Body.OptionsToInclude[_].VpcSecurityGroupMemberships[_] == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].Name == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].Value == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].DefaultValue == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].Description == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].ApplyType == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].DataType == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].AllowedValues == STRING
    input.Body.OptionsToInclude[_].OptionSettings[_].IsModifiable == BOOLEAN
    input.Body.OptionsToInclude[_].OptionSettings[_].IsCollection == BOOLEAN
    input.Body.OptionsToRemove[_] == STRING
    input.Body.ApplyImmediately == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyTenantDatabase

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.TenantDBName == STRING
    input.Body.MasterUserPassword == STRING
    input.Body.NewTenantDBName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PromoteReadReplica

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.BackupRetentionPeriod == INTEGER
    input.Body.PreferredBackupWindow == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PromoteReadReplicaDBCluster

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

PurchaseReservedDBInstancesOffering

valid {
    input.Body.ReservedDBInstancesOfferingId == STRING
    input.Body.ReservedDBInstanceId == STRING
    input.Body.DBInstanceCount == INTEGER
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RebootDBCluster

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

RebootDBInstance

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.ForceFailover == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RebootDBShardGroup

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

RegisterDBProxyTargets

valid {
    input.Body.DBProxyName == STRING
    input.Body.TargetGroupName == STRING
    input.Body.DBInstanceIdentifiers[_] == STRING
    input.Body.DBClusterIdentifiers[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveFromGlobalCluster

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

RemoveRoleFromDBCluster

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.RoleArn == STRING
    input.Body.FeatureName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveRoleFromDBInstance

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.RoleArn == STRING
    input.Body.FeatureName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveSourceIdentifierFromSubscription

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

RemoveTagsFromResource

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

ResetDBClusterParameterGroup

enum_ApplyMethod := [ "immediate", "pending-reboot" ]

valid {
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.ResetAllParameters == BOOLEAN
    input.Body.Parameters[_].ParameterName == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].Description == STRING
    input.Body.Parameters[_].Source == STRING
    input.Body.Parameters[_].ApplyType == STRING
    input.Body.Parameters[_].DataType == STRING
    input.Body.Parameters[_].AllowedValues == STRING
    input.Body.Parameters[_].IsModifiable == BOOLEAN
    input.Body.Parameters[_].MinimumEngineVersion == STRING
    input.Body.Parameters[_].ApplyMethod == enum_ApplyMethod[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetDBParameterGroup

enum_ApplyMethod := [ "immediate", "pending-reboot" ]

valid {
    input.Body.DBParameterGroupName == STRING
    input.Body.ResetAllParameters == BOOLEAN
    input.Body.Parameters[_].ParameterName == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].Description == STRING
    input.Body.Parameters[_].Source == STRING
    input.Body.Parameters[_].ApplyType == STRING
    input.Body.Parameters[_].DataType == STRING
    input.Body.Parameters[_].AllowedValues == STRING
    input.Body.Parameters[_].IsModifiable == BOOLEAN
    input.Body.Parameters[_].MinimumEngineVersion == STRING
    input.Body.Parameters[_].ApplyMethod == enum_ApplyMethod[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreDBClusterFromS3

valid {
    input.Body.AvailabilityZones[_] == STRING
    input.Body.BackupRetentionPeriod == INTEGER
    input.Body.CharacterSetName == STRING
    input.Body.DatabaseName == STRING
    input.Body.DBClusterIdentifier == STRING
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.DBSubnetGroupName == STRING
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.Port == INTEGER
    input.Body.MasterUsername == STRING
    input.Body.MasterUserPassword == STRING
    input.Body.OptionGroupName == STRING
    input.Body.PreferredBackupWindow == STRING
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.StorageEncrypted == BOOLEAN
    input.Body.KmsKeyId == STRING
    input.Body.EnableIAMDatabaseAuthentication == BOOLEAN
    input.Body.SourceEngine == STRING
    input.Body.SourceEngineVersion == STRING
    input.Body.S3BucketName == STRING
    input.Body.S3Prefix == STRING
    input.Body.S3IngestionRoleArn == STRING
    input.Body.BacktrackWindow == LONG
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.Body.CopyTagsToSnapshot == BOOLEAN
    input.Body.Domain == STRING
    input.Body.DomainIAMRoleName == STRING
    input.Body.ServerlessV2ScalingConfiguration.MinCapacity == DOUBLE
    input.Body.ServerlessV2ScalingConfiguration.MaxCapacity == DOUBLE
    input.Body.NetworkType == STRING
    input.Body.ManageMasterUserPassword == BOOLEAN
    input.Body.MasterUserSecretKmsKeyId == STRING
    input.Body.StorageType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreDBClusterFromSnapshot

valid {
    input.Body.AvailabilityZones[_] == STRING
    input.Body.DBClusterIdentifier == STRING
    input.Body.SnapshotIdentifier == STRING
    input.Body.Engine == STRING
    input.Body.EngineVersion == STRING
    input.Body.Port == INTEGER
    input.Body.DBSubnetGroupName == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.KmsKeyId == STRING
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.Body.DBClusterParameterGroupName == STRING
    input.Body.StorageType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreDBClusterToPointInTime

valid {
    input.Body.DBClusterIdentifier == STRING
    input.Body.RestoreType == STRING
    input.Body.SourceDBClusterIdentifier == STRING
    input.Body.RestoreToTime == TIMESTAMP
    input.Body.UseLatestRestorableTime == BOOLEAN
    input.Body.Port == INTEGER
    input.Body.DBSubnetGroupName == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.KmsKeyId == STRING
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.Body.StorageType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreDBInstanceFromDBSnapshot

valid {
    input.Body.DBInstanceIdentifier == STRING
    input.Body.DBSnapshotIdentifier == STRING
    input.Body.DBInstanceClass == STRING
    input.Body.Port == INTEGER
    input.Body.AvailabilityZone == STRING
    input.Body.DBSubnetGroupName == STRING
    input.Body.MultiAZ == BOOLEAN
    input.Body.PubliclyAccessible == BOOLEAN
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.LicenseModel == STRING
    input.Body.DBName == STRING
    input.Body.Engine == STRING
    input.Body.Iops == INTEGER
    input.Body.OptionGroupName == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.StorageType == STRING
    input.Body.TdeCredentialArn == STRING
    input.Body.TdeCredentialPassword == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.Domain == STRING
    input.Body.DomainFqdn == STRING
    input.Body.DomainOu == STRING
    input.Body.DomainAuthSecretArn == STRING
    input.Body.DomainDnsIps[_] == STRING
    input.Body.CopyTagsToSnapshot == BOOLEAN
    input.Body.DomainIAMRoleName == STRING
    input.Body.EnableIAMDatabaseAuthentication == BOOLEAN
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.ProcessorFeatures[_].Name == STRING
    input.Body.ProcessorFeatures[_].Value == STRING
    input.Body.UseDefaultProcessorFeatures == BOOLEAN
    input.Body.DBParameterGroupName == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.Body.EnableCustomerOwnedIp == BOOLEAN
    input.Body.CustomIamInstanceProfile == STRING
    input.Body.BackupTarget == STRING
    input.Body.NetworkType == STRING
    input.Body.StorageThroughput == INTEGER
    input.Body.DBClusterSnapshotIdentifier == STRING
    input.Body.AllocatedStorage == INTEGER
    input.Body.DedicatedLogVolume == BOOLEAN
    input.Body.CACertificateIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreDBInstanceFromS3

valid {
    input.Body.DBName == STRING
    input.Body.DBInstanceIdentifier == STRING
    input.Body.AllocatedStorage == INTEGER
    input.Body.DBInstanceClass == STRING
    input.Body.Engine == STRING
    input.Body.MasterUsername == STRING
    input.Body.MasterUserPassword == STRING
    input.Body.DBSecurityGroups[_] == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.AvailabilityZone == STRING
    input.Body.DBSubnetGroupName == STRING
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.DBParameterGroupName == STRING
    input.Body.BackupRetentionPeriod == INTEGER
    input.Body.PreferredBackupWindow == STRING
    input.Body.Port == INTEGER
    input.Body.MultiAZ == BOOLEAN
    input.Body.EngineVersion == STRING
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.LicenseModel == STRING
    input.Body.Iops == INTEGER
    input.Body.OptionGroupName == STRING
    input.Body.PubliclyAccessible == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.StorageType == STRING
    input.Body.StorageEncrypted == BOOLEAN
    input.Body.KmsKeyId == STRING
    input.Body.CopyTagsToSnapshot == BOOLEAN
    input.Body.MonitoringInterval == INTEGER
    input.Body.MonitoringRoleArn == STRING
    input.Body.EnableIAMDatabaseAuthentication == BOOLEAN
    input.Body.SourceEngine == STRING
    input.Body.SourceEngineVersion == STRING
    input.Body.S3BucketName == STRING
    input.Body.S3Prefix == STRING
    input.Body.S3IngestionRoleArn == STRING
    input.Body.EnablePerformanceInsights == BOOLEAN
    input.Body.PerformanceInsightsKMSKeyId == STRING
    input.Body.PerformanceInsightsRetentionPeriod == INTEGER
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.ProcessorFeatures[_].Name == STRING
    input.Body.ProcessorFeatures[_].Value == STRING
    input.Body.UseDefaultProcessorFeatures == BOOLEAN
    input.Body.DeletionProtection == BOOLEAN
    input.Body.MaxAllocatedStorage == INTEGER
    input.Body.NetworkType == STRING
    input.Body.StorageThroughput == INTEGER
    input.Body.ManageMasterUserPassword == BOOLEAN
    input.Body.MasterUserSecretKmsKeyId == STRING
    input.Body.DedicatedLogVolume == BOOLEAN
    input.Body.CACertificateIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreDBInstanceToPointInTime

valid {
    input.Body.SourceDBInstanceIdentifier == STRING
    input.Body.TargetDBInstanceIdentifier == STRING
    input.Body.RestoreTime == TIMESTAMP
    input.Body.UseLatestRestorableTime == BOOLEAN
    input.Body.DBInstanceClass == STRING
    input.Body.Port == INTEGER
    input.Body.AvailabilityZone == STRING
    input.Body.DBSubnetGroupName == STRING
    input.Body.MultiAZ == BOOLEAN
    input.Body.PubliclyAccessible == BOOLEAN
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.LicenseModel == STRING
    input.Body.DBName == STRING
    input.Body.Engine == STRING
    input.Body.Iops == INTEGER
    input.Body.OptionGroupName == STRING
    input.Body.CopyTagsToSnapshot == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.StorageType == STRING
    input.Body.TdeCredentialArn == STRING
    input.Body.TdeCredentialPassword == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.Domain == STRING
    input.Body.DomainIAMRoleName == STRING
    input.Body.DomainFqdn == STRING
    input.Body.DomainOu == STRING
    input.Body.DomainAuthSecretArn == STRING
    input.Body.DomainDnsIps[_] == STRING
    input.Body.EnableIAMDatabaseAuthentication == BOOLEAN
    input.Body.EnableCloudwatchLogsExports[_] == STRING
    input.Body.ProcessorFeatures[_].Name == STRING
    input.Body.ProcessorFeatures[_].Value == STRING
    input.Body.UseDefaultProcessorFeatures == BOOLEAN
    input.Body.DBParameterGroupName == STRING
    input.Body.DeletionProtection == BOOLEAN
    input.Body.SourceDbiResourceId == STRING
    input.Body.MaxAllocatedStorage == INTEGER
    input.Body.SourceDBInstanceAutomatedBackupsArn == STRING
    input.Body.EnableCustomerOwnedIp == BOOLEAN
    input.Body.CustomIamInstanceProfile == STRING
    input.Body.BackupTarget == STRING
    input.Body.NetworkType == STRING
    input.Body.StorageThroughput == INTEGER
    input.Body.AllocatedStorage == INTEGER
    input.Body.DedicatedLogVolume == BOOLEAN
    input.Body.CACertificateIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RevokeDBSecurityGroupIngress

valid {
    input.Body.DBSecurityGroupName == STRING
    input.Body.CIDRIP == STRING
    input.Body.EC2SecurityGroupName == STRING
    input.Body.EC2SecurityGroupId == STRING
    input.Body.EC2SecurityGroupOwnerId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartActivityStream

enum_ActivityStreamMode := [ "sync", "async" ]

valid {
    input.Body.ResourceArn == STRING
    input.Body.Mode == enum_ActivityStreamMode[_]
    input.Body.KmsKeyId == STRING
    input.Body.ApplyImmediately == BOOLEAN
    input.Body.EngineNativeAuditFieldsIncluded == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartDBCluster

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

StartDBInstance

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

StartDBInstanceAutomatedBackupsReplication

valid {
    input.Body.SourceDBInstanceArn == STRING
    input.Body.BackupRetentionPeriod == INTEGER
    input.Body.KmsKeyId == STRING
    input.Body.PreSignedUrl == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartExportTask

valid {
    input.Body.ExportTaskIdentifier == STRING
    input.Body.SourceArn == STRING
    input.Body.S3BucketName == STRING
    input.Body.IamRoleArn == STRING
    input.Body.KmsKeyId == STRING
    input.Body.S3Prefix == STRING
    input.Body.ExportOnly[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopActivityStream

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

StopDBCluster

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

StopDBInstance

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

StopDBInstanceAutomatedBackupsReplication

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

SwitchoverBlueGreenDeployment

valid {
    input.Body.BlueGreenDeploymentIdentifier == STRING
    input.Body.SwitchoverTimeout == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SwitchoverGlobalCluster

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

SwitchoverReadReplica

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