AddTagsToResource

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

ApplyPendingMaintenanceAction

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

BatchStartRecommendations

valid {
    input.Body.Data[_].DatabaseId == STRING
    input.Body.Data[_].Settings.InstanceSizingType == STRING
    input.Body.Data[_].Settings.WorkloadType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelReplicationTaskAssessmentRun

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

CreateDataProvider

enum_AuthMechanismValue := [ "default", "mongodb_cr", "scram_sha_1" ]
enum_AuthTypeValue := [ "no", "password" ]
enum_DmsSslModeValue := [ "none", "require", "verify-ca", "verify-full" ]

valid {
    input.Body.DataProviderName == STRING
    input.Body.Description == STRING
    input.Body.Engine == STRING
    input.Body.Settings.RedshiftSettings.ServerName == STRING
    input.Body.Settings.RedshiftSettings.Port == INTEGER
    input.Body.Settings.RedshiftSettings.DatabaseName == STRING
    input.Body.Settings.PostgreSqlSettings.ServerName == STRING
    input.Body.Settings.PostgreSqlSettings.Port == INTEGER
    input.Body.Settings.PostgreSqlSettings.DatabaseName == STRING
    input.Body.Settings.PostgreSqlSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.PostgreSqlSettings.CertificateArn == STRING
    input.Body.Settings.MySqlSettings.ServerName == STRING
    input.Body.Settings.MySqlSettings.Port == INTEGER
    input.Body.Settings.MySqlSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MySqlSettings.CertificateArn == STRING
    input.Body.Settings.OracleSettings.ServerName == STRING
    input.Body.Settings.OracleSettings.Port == INTEGER
    input.Body.Settings.OracleSettings.DatabaseName == STRING
    input.Body.Settings.OracleSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.OracleSettings.CertificateArn == STRING
    input.Body.Settings.OracleSettings.AsmServer == STRING
    input.Body.Settings.OracleSettings.SecretsManagerOracleAsmSecretId == STRING
    input.Body.Settings.OracleSettings.SecretsManagerOracleAsmAccessRoleArn == STRING
    input.Body.Settings.OracleSettings.SecretsManagerSecurityDbEncryptionSecretId == STRING
    input.Body.Settings.OracleSettings.SecretsManagerSecurityDbEncryptionAccessRoleArn == STRING
    input.Body.Settings.MicrosoftSqlServerSettings.ServerName == STRING
    input.Body.Settings.MicrosoftSqlServerSettings.Port == INTEGER
    input.Body.Settings.MicrosoftSqlServerSettings.DatabaseName == STRING
    input.Body.Settings.MicrosoftSqlServerSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MicrosoftSqlServerSettings.CertificateArn == STRING
    input.Body.Settings.DocDbSettings.ServerName == STRING
    input.Body.Settings.DocDbSettings.Port == INTEGER
    input.Body.Settings.DocDbSettings.DatabaseName == STRING
    input.Body.Settings.DocDbSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.DocDbSettings.CertificateArn == STRING
    input.Body.Settings.MariaDbSettings.ServerName == STRING
    input.Body.Settings.MariaDbSettings.Port == INTEGER
    input.Body.Settings.MariaDbSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MariaDbSettings.CertificateArn == STRING
    input.Body.Settings.MongoDbSettings.ServerName == STRING
    input.Body.Settings.MongoDbSettings.Port == INTEGER
    input.Body.Settings.MongoDbSettings.DatabaseName == STRING
    input.Body.Settings.MongoDbSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MongoDbSettings.CertificateArn == STRING
    input.Body.Settings.MongoDbSettings.AuthType == enum_AuthTypeValue[_]
    input.Body.Settings.MongoDbSettings.AuthSource == STRING
    input.Body.Settings.MongoDbSettings.AuthMechanism == enum_AuthMechanismValue[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tags[_].ResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEndpoint

enum_AuthMechanismValue := [ "default", "mongodb_cr", "scram_sha_1" ]
enum_AuthTypeValue := [ "no", "password" ]
enum_CannedAclForObjectsValue := [ "none", "private", "public-read", "public-read-write", "authenticated-read", "aws-exec-read", "bucket-owner-read", "bucket-owner-full-control" ]
enum_CharLengthSemantics := [ "default", "char", "byte" ]
enum_CompressionTypeValue := [ "none", "gzip" ]
enum_DataFormatValue := [ "csv", "parquet" ]
enum_DatabaseMode := [ "default", "babelfish" ]
enum_DatePartitionDelimiterValue := [ "SLASH", "UNDERSCORE", "DASH", "NONE" ]
enum_DatePartitionSequenceValue := [ "YYYYMMDD", "YYYYMMDDHH", "YYYYMM", "MMYYYYDD", "DDMMYYYY" ]
enum_DmsSslModeValue := [ "none", "require", "verify-ca", "verify-full" ]
enum_EncodingTypeValue := [ "plain", "plain-dictionary", "rle-dictionary" ]
enum_EncryptionModeValue := [ "sse-s3", "sse-kms" ]
enum_KafkaSaslMechanism := [ "scram-sha-512", "plain" ]
enum_KafkaSecurityProtocol := [ "plaintext", "ssl-authentication", "ssl-encryption", "sasl-ssl" ]
enum_KafkaSslEndpointIdentificationAlgorithm := [ "none", "https" ]
enum_LongVarcharMappingType := [ "wstring", "clob", "nclob" ]
enum_MessageFormatValue := [ "json", "json-unformatted" ]
enum_NestingLevelValue := [ "none", "one" ]
enum_ParquetVersionValue := [ "parquet-1-0", "parquet-2-0" ]
enum_PluginNameValue := [ "no-preference", "test-decoding", "pglogical" ]
enum_RedisAuthTypeValue := [ "none", "auth-role", "auth-token" ]
enum_ReplicationEndpointTypeValue := [ "source", "target" ]
enum_SafeguardPolicy := [ "rely-on-sql-server-replication-agent", "exclusive-automatic-truncation", "shared-automatic-truncation" ]
enum_SslSecurityProtocolValue := [ "plaintext", "ssl-encryption" ]
enum_TargetDbType := [ "specific-database", "multiple-databases" ]
enum_TlogAccessMode := [ "BackupOnly", "PreferBackup", "PreferTlog", "TlogOnly" ]

valid {
    input.Body.EndpointIdentifier == STRING
    input.Body.EndpointType == enum_ReplicationEndpointTypeValue[_]
    input.Body.EngineName == STRING
    input.Body.Username == STRING
    input.Body.Password == STRING
    input.Body.ServerName == STRING
    input.Body.Port == INTEGER
    input.Body.DatabaseName == STRING
    input.Body.ExtraConnectionAttributes == STRING
    input.Body.KmsKeyId == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tags[_].ResourceArn == STRING
    input.Body.CertificateArn == STRING
    input.Body.SslMode == enum_DmsSslModeValue[_]
    input.Body.ServiceAccessRoleArn == STRING
    input.Body.ExternalTableDefinition == STRING
    input.Body.DynamoDbSettings.ServiceAccessRoleArn == STRING
    input.Body.S3Settings.ServiceAccessRoleArn == STRING
    input.Body.S3Settings.ExternalTableDefinition == STRING
    input.Body.S3Settings.CsvRowDelimiter == STRING
    input.Body.S3Settings.CsvDelimiter == STRING
    input.Body.S3Settings.BucketFolder == STRING
    input.Body.S3Settings.BucketName == STRING
    input.Body.S3Settings.CompressionType == enum_CompressionTypeValue[_]
    input.Body.S3Settings.EncryptionMode == enum_EncryptionModeValue[_]
    input.Body.S3Settings.ServerSideEncryptionKmsKeyId == STRING
    input.Body.S3Settings.DataFormat == enum_DataFormatValue[_]
    input.Body.S3Settings.EncodingType == enum_EncodingTypeValue[_]
    input.Body.S3Settings.DictPageSizeLimit == INTEGER
    input.Body.S3Settings.RowGroupLength == INTEGER
    input.Body.S3Settings.DataPageSize == INTEGER
    input.Body.S3Settings.ParquetVersion == enum_ParquetVersionValue[_]
    input.Body.S3Settings.EnableStatistics == BOOLEAN
    input.Body.S3Settings.IncludeOpForFullLoad == BOOLEAN
    input.Body.S3Settings.CdcInsertsOnly == BOOLEAN
    input.Body.S3Settings.TimestampColumnName == STRING
    input.Body.S3Settings.ParquetTimestampInMillisecond == BOOLEAN
    input.Body.S3Settings.CdcInsertsAndUpdates == BOOLEAN
    input.Body.S3Settings.DatePartitionEnabled == BOOLEAN
    input.Body.S3Settings.DatePartitionSequence == enum_DatePartitionSequenceValue[_]
    input.Body.S3Settings.DatePartitionDelimiter == enum_DatePartitionDelimiterValue[_]
    input.Body.S3Settings.UseCsvNoSupValue == BOOLEAN
    input.Body.S3Settings.CsvNoSupValue == STRING
    input.Body.S3Settings.PreserveTransactions == BOOLEAN
    input.Body.S3Settings.CdcPath == STRING
    input.Body.S3Settings.UseTaskStartTimeForFullLoadTimestamp == BOOLEAN
    input.Body.S3Settings.CannedAclForObjects == enum_CannedAclForObjectsValue[_]
    input.Body.S3Settings.AddColumnName == BOOLEAN
    input.Body.S3Settings.CdcMaxBatchInterval == INTEGER
    input.Body.S3Settings.CdcMinFileSize == INTEGER
    input.Body.S3Settings.CsvNullValue == STRING
    input.Body.S3Settings.IgnoreHeaderRows == INTEGER
    input.Body.S3Settings.MaxFileSize == INTEGER
    input.Body.S3Settings.Rfc4180 == BOOLEAN
    input.Body.S3Settings.DatePartitionTimezone == STRING
    input.Body.S3Settings.AddTrailingPaddingCharacter == BOOLEAN
    input.Body.S3Settings.ExpectedBucketOwner == STRING
    input.Body.S3Settings.GlueCatalogGeneration == BOOLEAN
    input.Body.DmsTransferSettings.ServiceAccessRoleArn == STRING
    input.Body.DmsTransferSettings.BucketName == STRING
    input.Body.MongoDbSettings.Username == STRING
    input.Body.MongoDbSettings.Password == STRING
    input.Body.MongoDbSettings.ServerName == STRING
    input.Body.MongoDbSettings.Port == INTEGER
    input.Body.MongoDbSettings.DatabaseName == STRING
    input.Body.MongoDbSettings.AuthType == enum_AuthTypeValue[_]
    input.Body.MongoDbSettings.AuthMechanism == enum_AuthMechanismValue[_]
    input.Body.MongoDbSettings.NestingLevel == enum_NestingLevelValue[_]
    input.Body.MongoDbSettings.ExtractDocId == STRING
    input.Body.MongoDbSettings.DocsToInvestigate == STRING
    input.Body.MongoDbSettings.AuthSource == STRING
    input.Body.MongoDbSettings.KmsKeyId == STRING
    input.Body.MongoDbSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.MongoDbSettings.SecretsManagerSecretId == STRING
    input.Body.MongoDbSettings.UseUpdateLookUp == BOOLEAN
    input.Body.MongoDbSettings.ReplicateShardCollections == BOOLEAN
    input.Body.KinesisSettings.StreamArn == STRING
    input.Body.KinesisSettings.MessageFormat == enum_MessageFormatValue[_]
    input.Body.KinesisSettings.ServiceAccessRoleArn == STRING
    input.Body.KinesisSettings.IncludeTransactionDetails == BOOLEAN
    input.Body.KinesisSettings.IncludePartitionValue == BOOLEAN
    input.Body.KinesisSettings.PartitionIncludeSchemaTable == BOOLEAN
    input.Body.KinesisSettings.IncludeTableAlterOperations == BOOLEAN
    input.Body.KinesisSettings.IncludeControlDetails == BOOLEAN
    input.Body.KinesisSettings.IncludeNullAndEmpty == BOOLEAN
    input.Body.KinesisSettings.NoHexPrefix == BOOLEAN
    input.Body.KafkaSettings.Broker == STRING
    input.Body.KafkaSettings.Topic == STRING
    input.Body.KafkaSettings.MessageFormat == enum_MessageFormatValue[_]
    input.Body.KafkaSettings.IncludeTransactionDetails == BOOLEAN
    input.Body.KafkaSettings.IncludePartitionValue == BOOLEAN
    input.Body.KafkaSettings.PartitionIncludeSchemaTable == BOOLEAN
    input.Body.KafkaSettings.IncludeTableAlterOperations == BOOLEAN
    input.Body.KafkaSettings.IncludeControlDetails == BOOLEAN
    input.Body.KafkaSettings.MessageMaxBytes == INTEGER
    input.Body.KafkaSettings.IncludeNullAndEmpty == BOOLEAN
    input.Body.KafkaSettings.SecurityProtocol == enum_KafkaSecurityProtocol[_]
    input.Body.KafkaSettings.SslClientCertificateArn == STRING
    input.Body.KafkaSettings.SslClientKeyArn == STRING
    input.Body.KafkaSettings.SslClientKeyPassword == STRING
    input.Body.KafkaSettings.SslCaCertificateArn == STRING
    input.Body.KafkaSettings.SaslUsername == STRING
    input.Body.KafkaSettings.SaslPassword == STRING
    input.Body.KafkaSettings.NoHexPrefix == BOOLEAN
    input.Body.KafkaSettings.SaslMechanism == enum_KafkaSaslMechanism[_]
    input.Body.KafkaSettings.SslEndpointIdentificationAlgorithm == enum_KafkaSslEndpointIdentificationAlgorithm[_]
    input.Body.ElasticsearchSettings.ServiceAccessRoleArn == STRING
    input.Body.ElasticsearchSettings.EndpointUri == STRING
    input.Body.ElasticsearchSettings.FullLoadErrorPercentage == INTEGER
    input.Body.ElasticsearchSettings.ErrorRetryDuration == INTEGER
    input.Body.ElasticsearchSettings.UseNewMappingType == BOOLEAN
    input.Body.NeptuneSettings.ServiceAccessRoleArn == STRING
    input.Body.NeptuneSettings.S3BucketName == STRING
    input.Body.NeptuneSettings.S3BucketFolder == STRING
    input.Body.NeptuneSettings.ErrorRetryDuration == INTEGER
    input.Body.NeptuneSettings.MaxFileSize == INTEGER
    input.Body.NeptuneSettings.MaxRetryCount == INTEGER
    input.Body.NeptuneSettings.IamAuthEnabled == BOOLEAN
    input.Body.RedshiftSettings.AcceptAnyDate == BOOLEAN
    input.Body.RedshiftSettings.AfterConnectScript == STRING
    input.Body.RedshiftSettings.BucketFolder == STRING
    input.Body.RedshiftSettings.BucketName == STRING
    input.Body.RedshiftSettings.CaseSensitiveNames == BOOLEAN
    input.Body.RedshiftSettings.CompUpdate == BOOLEAN
    input.Body.RedshiftSettings.ConnectionTimeout == INTEGER
    input.Body.RedshiftSettings.DatabaseName == STRING
    input.Body.RedshiftSettings.DateFormat == STRING
    input.Body.RedshiftSettings.EmptyAsNull == BOOLEAN
    input.Body.RedshiftSettings.EncryptionMode == enum_EncryptionModeValue[_]
    input.Body.RedshiftSettings.ExplicitIds == BOOLEAN
    input.Body.RedshiftSettings.FileTransferUploadStreams == INTEGER
    input.Body.RedshiftSettings.LoadTimeout == INTEGER
    input.Body.RedshiftSettings.MaxFileSize == INTEGER
    input.Body.RedshiftSettings.Password == STRING
    input.Body.RedshiftSettings.Port == INTEGER
    input.Body.RedshiftSettings.RemoveQuotes == BOOLEAN
    input.Body.RedshiftSettings.ReplaceInvalidChars == STRING
    input.Body.RedshiftSettings.ReplaceChars == STRING
    input.Body.RedshiftSettings.ServerName == STRING
    input.Body.RedshiftSettings.ServiceAccessRoleArn == STRING
    input.Body.RedshiftSettings.ServerSideEncryptionKmsKeyId == STRING
    input.Body.RedshiftSettings.TimeFormat == STRING
    input.Body.RedshiftSettings.TrimBlanks == BOOLEAN
    input.Body.RedshiftSettings.TruncateColumns == BOOLEAN
    input.Body.RedshiftSettings.Username == STRING
    input.Body.RedshiftSettings.WriteBufferSize == INTEGER
    input.Body.RedshiftSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.RedshiftSettings.SecretsManagerSecretId == STRING
    input.Body.RedshiftSettings.MapBooleanAsBoolean == BOOLEAN
    input.Body.PostgreSQLSettings.AfterConnectScript == STRING
    input.Body.PostgreSQLSettings.CaptureDdls == BOOLEAN
    input.Body.PostgreSQLSettings.MaxFileSize == INTEGER
    input.Body.PostgreSQLSettings.DatabaseName == STRING
    input.Body.PostgreSQLSettings.DdlArtifactsSchema == STRING
    input.Body.PostgreSQLSettings.ExecuteTimeout == INTEGER
    input.Body.PostgreSQLSettings.FailTasksOnLobTruncation == BOOLEAN
    input.Body.PostgreSQLSettings.HeartbeatEnable == BOOLEAN
    input.Body.PostgreSQLSettings.HeartbeatSchema == STRING
    input.Body.PostgreSQLSettings.HeartbeatFrequency == INTEGER
    input.Body.PostgreSQLSettings.Password == STRING
    input.Body.PostgreSQLSettings.Port == INTEGER
    input.Body.PostgreSQLSettings.ServerName == STRING
    input.Body.PostgreSQLSettings.Username == STRING
    input.Body.PostgreSQLSettings.SlotName == STRING
    input.Body.PostgreSQLSettings.PluginName == enum_PluginNameValue[_]
    input.Body.PostgreSQLSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.PostgreSQLSettings.SecretsManagerSecretId == STRING
    input.Body.PostgreSQLSettings.TrimSpaceInChar == BOOLEAN
    input.Body.PostgreSQLSettings.MapBooleanAsBoolean == BOOLEAN
    input.Body.PostgreSQLSettings.MapJsonbAsClob == BOOLEAN
    input.Body.PostgreSQLSettings.MapLongVarcharAs == enum_LongVarcharMappingType[_]
    input.Body.PostgreSQLSettings.DatabaseMode == enum_DatabaseMode[_]
    input.Body.PostgreSQLSettings.BabelfishDatabaseName == STRING
    input.Body.MySQLSettings.AfterConnectScript == STRING
    input.Body.MySQLSettings.CleanSourceMetadataOnMismatch == BOOLEAN
    input.Body.MySQLSettings.DatabaseName == STRING
    input.Body.MySQLSettings.EventsPollInterval == INTEGER
    input.Body.MySQLSettings.TargetDbType == enum_TargetDbType[_]
    input.Body.MySQLSettings.MaxFileSize == INTEGER
    input.Body.MySQLSettings.ParallelLoadThreads == INTEGER
    input.Body.MySQLSettings.Password == STRING
    input.Body.MySQLSettings.Port == INTEGER
    input.Body.MySQLSettings.ServerName == STRING
    input.Body.MySQLSettings.ServerTimezone == STRING
    input.Body.MySQLSettings.Username == STRING
    input.Body.MySQLSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.MySQLSettings.SecretsManagerSecretId == STRING
    input.Body.MySQLSettings.ExecuteTimeout == INTEGER
    input.Body.OracleSettings.AddSupplementalLogging == BOOLEAN
    input.Body.OracleSettings.ArchivedLogDestId == INTEGER
    input.Body.OracleSettings.AdditionalArchivedLogDestId == INTEGER
    input.Body.OracleSettings.ExtraArchivedLogDestIds[_] == INTEGER
    input.Body.OracleSettings.AllowSelectNestedTables == BOOLEAN
    input.Body.OracleSettings.ParallelAsmReadThreads == INTEGER
    input.Body.OracleSettings.ReadAheadBlocks == INTEGER
    input.Body.OracleSettings.AccessAlternateDirectly == BOOLEAN
    input.Body.OracleSettings.UseAlternateFolderForOnline == BOOLEAN
    input.Body.OracleSettings.OraclePathPrefix == STRING
    input.Body.OracleSettings.UsePathPrefix == STRING
    input.Body.OracleSettings.ReplacePathPrefix == BOOLEAN
    input.Body.OracleSettings.EnableHomogenousTablespace == BOOLEAN
    input.Body.OracleSettings.DirectPathNoLog == BOOLEAN
    input.Body.OracleSettings.ArchivedLogsOnly == BOOLEAN
    input.Body.OracleSettings.AsmPassword == STRING
    input.Body.OracleSettings.AsmServer == STRING
    input.Body.OracleSettings.AsmUser == STRING
    input.Body.OracleSettings.CharLengthSemantics == enum_CharLengthSemantics[_]
    input.Body.OracleSettings.DatabaseName == STRING
    input.Body.OracleSettings.DirectPathParallelLoad == BOOLEAN
    input.Body.OracleSettings.FailTasksOnLobTruncation == BOOLEAN
    input.Body.OracleSettings.NumberDatatypeScale == INTEGER
    input.Body.OracleSettings.Password == STRING
    input.Body.OracleSettings.Port == INTEGER
    input.Body.OracleSettings.ReadTableSpaceName == BOOLEAN
    input.Body.OracleSettings.RetryInterval == INTEGER
    input.Body.OracleSettings.SecurityDbEncryption == STRING
    input.Body.OracleSettings.SecurityDbEncryptionName == STRING
    input.Body.OracleSettings.ServerName == STRING
    input.Body.OracleSettings.SpatialDataOptionToGeoJsonFunctionName == STRING
    input.Body.OracleSettings.StandbyDelayTime == INTEGER
    input.Body.OracleSettings.Username == STRING
    input.Body.OracleSettings.UseBFile == BOOLEAN
    input.Body.OracleSettings.UseDirectPathFullLoad == BOOLEAN
    input.Body.OracleSettings.UseLogminerReader == BOOLEAN
    input.Body.OracleSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.OracleSettings.SecretsManagerSecretId == STRING
    input.Body.OracleSettings.SecretsManagerOracleAsmAccessRoleArn == STRING
    input.Body.OracleSettings.SecretsManagerOracleAsmSecretId == STRING
    input.Body.OracleSettings.TrimSpaceInChar == BOOLEAN
    input.Body.OracleSettings.ConvertTimestampWithZoneToUTC == BOOLEAN
    input.Body.OracleSettings.OpenTransactionWindow == INTEGER
    input.Body.SybaseSettings.DatabaseName == STRING
    input.Body.SybaseSettings.Password == STRING
    input.Body.SybaseSettings.Port == INTEGER
    input.Body.SybaseSettings.ServerName == STRING
    input.Body.SybaseSettings.Username == STRING
    input.Body.SybaseSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.SybaseSettings.SecretsManagerSecretId == STRING
    input.Body.MicrosoftSQLServerSettings.Port == INTEGER
    input.Body.MicrosoftSQLServerSettings.BcpPacketSize == INTEGER
    input.Body.MicrosoftSQLServerSettings.DatabaseName == STRING
    input.Body.MicrosoftSQLServerSettings.ControlTablesFileGroup == STRING
    input.Body.MicrosoftSQLServerSettings.Password == STRING
    input.Body.MicrosoftSQLServerSettings.QuerySingleAlwaysOnNode == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.ReadBackupOnly == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.SafeguardPolicy == enum_SafeguardPolicy[_]
    input.Body.MicrosoftSQLServerSettings.ServerName == STRING
    input.Body.MicrosoftSQLServerSettings.Username == STRING
    input.Body.MicrosoftSQLServerSettings.UseBcpFullLoad == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.UseThirdPartyBackupDevice == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.MicrosoftSQLServerSettings.SecretsManagerSecretId == STRING
    input.Body.MicrosoftSQLServerSettings.TrimSpaceInChar == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.TlogAccessMode == enum_TlogAccessMode[_]
    input.Body.MicrosoftSQLServerSettings.ForceLobLookup == BOOLEAN
    input.Body.IBMDb2Settings.DatabaseName == STRING
    input.Body.IBMDb2Settings.Password == STRING
    input.Body.IBMDb2Settings.Port == INTEGER
    input.Body.IBMDb2Settings.ServerName == STRING
    input.Body.IBMDb2Settings.SetDataCaptureChanges == BOOLEAN
    input.Body.IBMDb2Settings.CurrentLsn == STRING
    input.Body.IBMDb2Settings.MaxKBytesPerRead == INTEGER
    input.Body.IBMDb2Settings.Username == STRING
    input.Body.IBMDb2Settings.SecretsManagerAccessRoleArn == STRING
    input.Body.IBMDb2Settings.SecretsManagerSecretId == STRING
    input.Body.IBMDb2Settings.LoadTimeout == INTEGER
    input.Body.IBMDb2Settings.WriteBufferSize == INTEGER
    input.Body.IBMDb2Settings.MaxFileSize == INTEGER
    input.Body.IBMDb2Settings.KeepCsvFiles == BOOLEAN
    input.Body.ResourceIdentifier == STRING
    input.Body.DocDbSettings.Username == STRING
    input.Body.DocDbSettings.Password == STRING
    input.Body.DocDbSettings.ServerName == STRING
    input.Body.DocDbSettings.Port == INTEGER
    input.Body.DocDbSettings.DatabaseName == STRING
    input.Body.DocDbSettings.NestingLevel == enum_NestingLevelValue[_]
    input.Body.DocDbSettings.ExtractDocId == BOOLEAN
    input.Body.DocDbSettings.DocsToInvestigate == INTEGER
    input.Body.DocDbSettings.KmsKeyId == STRING
    input.Body.DocDbSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.DocDbSettings.SecretsManagerSecretId == STRING
    input.Body.DocDbSettings.UseUpdateLookUp == BOOLEAN
    input.Body.DocDbSettings.ReplicateShardCollections == BOOLEAN
    input.Body.RedisSettings.ServerName == STRING
    input.Body.RedisSettings.Port == INTEGER
    input.Body.RedisSettings.SslSecurityProtocol == enum_SslSecurityProtocolValue[_]
    input.Body.RedisSettings.AuthType == enum_RedisAuthTypeValue[_]
    input.Body.RedisSettings.AuthUserName == STRING
    input.Body.RedisSettings.AuthPassword == STRING
    input.Body.RedisSettings.SslCaCertificateArn == STRING
    input.Body.GcpMySQLSettings.AfterConnectScript == STRING
    input.Body.GcpMySQLSettings.CleanSourceMetadataOnMismatch == BOOLEAN
    input.Body.GcpMySQLSettings.DatabaseName == STRING
    input.Body.GcpMySQLSettings.EventsPollInterval == INTEGER
    input.Body.GcpMySQLSettings.TargetDbType == enum_TargetDbType[_]
    input.Body.GcpMySQLSettings.MaxFileSize == INTEGER
    input.Body.GcpMySQLSettings.ParallelLoadThreads == INTEGER
    input.Body.GcpMySQLSettings.Password == STRING
    input.Body.GcpMySQLSettings.Port == INTEGER
    input.Body.GcpMySQLSettings.ServerName == STRING
    input.Body.GcpMySQLSettings.ServerTimezone == STRING
    input.Body.GcpMySQLSettings.Username == STRING
    input.Body.GcpMySQLSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.GcpMySQLSettings.SecretsManagerSecretId == STRING
    input.Body.TimestreamSettings.DatabaseName == STRING
    input.Body.TimestreamSettings.MemoryDuration == INTEGER
    input.Body.TimestreamSettings.MagneticDuration == INTEGER
    input.Body.TimestreamSettings.CdcInsertsAndUpdates == BOOLEAN
    input.Body.TimestreamSettings.EnableMagneticStoreWrites == BOOLEAN
    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.Body.Tags[_].ResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFleetAdvisorCollector

valid {
    input.Body.CollectorName == STRING
    input.Body.Description == STRING
    input.Body.ServiceAccessRoleArn == STRING
    input.Body.S3BucketName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInstanceProfile

valid {
    input.Body.AvailabilityZone == STRING
    input.Body.KmsKeyArn == STRING
    input.Body.PubliclyAccessible == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tags[_].ResourceArn == STRING
    input.Body.NetworkType == STRING
    input.Body.InstanceProfileName == STRING
    input.Body.Description == STRING
    input.Body.SubnetGroupIdentifier == STRING
    input.Body.VpcSecurityGroups[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateMigrationProject

valid {
    input.Body.MigrationProjectName == STRING
    input.Body.SourceDataProviderDescriptors[_].DataProviderIdentifier == STRING
    input.Body.SourceDataProviderDescriptors[_].SecretsManagerSecretId == STRING
    input.Body.SourceDataProviderDescriptors[_].SecretsManagerAccessRoleArn == STRING
    input.Body.TargetDataProviderDescriptors[_].DataProviderIdentifier == STRING
    input.Body.TargetDataProviderDescriptors[_].SecretsManagerSecretId == STRING
    input.Body.TargetDataProviderDescriptors[_].SecretsManagerAccessRoleArn == STRING
    input.Body.InstanceProfileIdentifier == STRING
    input.Body.TransformationRules == STRING
    input.Body.Description == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tags[_].ResourceArn == STRING
    input.Body.SchemaConversionApplicationAttributes.S3BucketPath == STRING
    input.Body.SchemaConversionApplicationAttributes.S3BucketRoleArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReplicationConfig

enum_MigrationTypeValue := [ "full-load", "cdc", "full-load-and-cdc" ]

valid {
    input.Body.ReplicationConfigIdentifier == STRING
    input.Body.SourceEndpointArn == STRING
    input.Body.TargetEndpointArn == STRING
    input.Body.ComputeConfig.AvailabilityZone == STRING
    input.Body.ComputeConfig.DnsNameServers == STRING
    input.Body.ComputeConfig.KmsKeyId == STRING
    input.Body.ComputeConfig.MaxCapacityUnits == INTEGER
    input.Body.ComputeConfig.MinCapacityUnits == INTEGER
    input.Body.ComputeConfig.MultiAZ == BOOLEAN
    input.Body.ComputeConfig.PreferredMaintenanceWindow == STRING
    input.Body.ComputeConfig.ReplicationSubnetGroupId == STRING
    input.Body.ComputeConfig.VpcSecurityGroupIds[_] == STRING
    input.Body.ReplicationType == enum_MigrationTypeValue[_]
    input.Body.TableMappings == STRING
    input.Body.ReplicationSettings == STRING
    input.Body.SupplementalSettings == STRING
    input.Body.ResourceIdentifier == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tags[_].ResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReplicationInstance

valid {
    input.Body.ReplicationInstanceIdentifier == STRING
    input.Body.AllocatedStorage == INTEGER
    input.Body.ReplicationInstanceClass == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.AvailabilityZone == STRING
    input.Body.ReplicationSubnetGroupIdentifier == STRING
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.MultiAZ == BOOLEAN
    input.Body.EngineVersion == STRING
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tags[_].ResourceArn == STRING
    input.Body.KmsKeyId == STRING
    input.Body.PubliclyAccessible == BOOLEAN
    input.Body.DnsNameServers == STRING
    input.Body.ResourceIdentifier == STRING
    input.Body.NetworkType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReplicationSubnetGroup

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

CreateReplicationTask

enum_MigrationTypeValue := [ "full-load", "cdc", "full-load-and-cdc" ]

valid {
    input.Body.ReplicationTaskIdentifier == STRING
    input.Body.SourceEndpointArn == STRING
    input.Body.TargetEndpointArn == STRING
    input.Body.ReplicationInstanceArn == STRING
    input.Body.MigrationType == enum_MigrationTypeValue[_]
    input.Body.TableMappings == STRING
    input.Body.ReplicationTaskSettings == STRING
    input.Body.CdcStartTime == TIMESTAMP
    input.Body.CdcStartPosition == STRING
    input.Body.CdcStopPosition == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tags[_].ResourceArn == STRING
    input.Body.TaskData == STRING
    input.Body.ResourceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCertificate

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

DeleteConnection

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

DeleteDataProvider

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

DeleteEndpoint

valid {
    input.Body.EndpointArn == 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
}

DeleteFleetAdvisorCollector

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

DeleteFleetAdvisorDatabases

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

DeleteInstanceProfile

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

DeleteMigrationProject

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

DeleteReplicationConfig

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

DeleteReplicationInstance

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

DeleteReplicationSubnetGroup

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

DeleteReplicationTask

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

DeleteReplicationTaskAssessmentRun

valid {
    input.Body.ReplicationTaskAssessmentRunArn == 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
}

DescribeApplicableIndividualAssessments

enum_MigrationTypeValue := [ "full-load", "cdc", "full-load-and-cdc" ]

valid {
    input.Body.ReplicationTaskArn == STRING
    input.Body.ReplicationInstanceArn == STRING
    input.Body.SourceEngineName == STRING
    input.Body.TargetEngineName == STRING
    input.Body.MigrationType == enum_MigrationTypeValue[_]
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCertificates

valid {
    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
}

DescribeConnections

valid {
    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
}

DescribeConversionConfiguration

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

DescribeDataProviders

valid {
    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
}

DescribeEndpointSettings

valid {
    input.Body.EngineName == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEndpointTypes

valid {
    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
}

DescribeEndpoints

valid {
    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
}

DescribeEngineVersions

valid {
    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 := [ "replication-instance" ]

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
}

DescribeExtensionPackAssociations

valid {
    input.Body.MigrationProjectIdentifier == 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
}

DescribeFleetAdvisorCollectors

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

DescribeFleetAdvisorDatabases

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

DescribeFleetAdvisorLsaAnalysis

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

DescribeFleetAdvisorSchemaObjectSummary

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

DescribeFleetAdvisorSchemas

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

DescribeInstanceProfiles

valid {
    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
}

DescribeMetadataModelAssessments

valid {
    input.Body.MigrationProjectIdentifier == 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
}

DescribeMetadataModelConversions

valid {
    input.Body.MigrationProjectIdentifier == 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
}

DescribeMetadataModelExportsAsScript

valid {
    input.Body.MigrationProjectIdentifier == 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
}

DescribeMetadataModelExportsToTarget

valid {
    input.Body.MigrationProjectIdentifier == 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
}

DescribeMetadataModelImports

valid {
    input.Body.MigrationProjectIdentifier == 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
}

DescribeMigrationProjects

valid {
    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
}

DescribeOrderableReplicationInstances

valid {
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePendingMaintenanceActions

valid {
    input.Body.ReplicationInstanceArn == 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
}

DescribeRecommendationLimitations

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

DescribeRecommendations

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

DescribeRefreshSchemasStatus

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

DescribeReplicationConfigs

valid {
    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
}

DescribeReplicationInstanceTaskLogs

valid {
    input.Body.ReplicationInstanceArn == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReplicationInstances

valid {
    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
}

DescribeReplicationSubnetGroups

valid {
    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
}

DescribeReplicationTableStatistics

valid {
    input.Body.ReplicationConfigArn == 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
}

DescribeReplicationTaskAssessmentResults

valid {
    input.Body.ReplicationTaskArn == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReplicationTaskAssessmentRuns

valid {
    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
}

DescribeReplicationTaskIndividualAssessments

valid {
    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
}

DescribeReplicationTasks

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

DescribeReplications

valid {
    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
}

DescribeSchemas

valid {
    input.Body.EndpointArn == STRING
    input.Body.MaxRecords == INTEGER
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTableStatistics

valid {
    input.Body.ReplicationTaskArn == 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
}

ExportMetadataModelAssessment

enum_AssessmentReportType := [ "pdf", "csv" ]

valid {
    input.Body.MigrationProjectIdentifier == STRING
    input.Body.SelectionRules == STRING
    input.Body.FileName == STRING
    input.Body.AssessmentReportTypes[_] == enum_AssessmentReportType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportCertificate

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

ListTagsForResource

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

ModifyConversionConfiguration

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

ModifyDataProvider

enum_AuthMechanismValue := [ "default", "mongodb_cr", "scram_sha_1" ]
enum_AuthTypeValue := [ "no", "password" ]
enum_DmsSslModeValue := [ "none", "require", "verify-ca", "verify-full" ]

valid {
    input.Body.DataProviderIdentifier == STRING
    input.Body.DataProviderName == STRING
    input.Body.Description == STRING
    input.Body.Engine == STRING
    input.Body.ExactSettings == BOOLEAN
    input.Body.Settings.RedshiftSettings.ServerName == STRING
    input.Body.Settings.RedshiftSettings.Port == INTEGER
    input.Body.Settings.RedshiftSettings.DatabaseName == STRING
    input.Body.Settings.PostgreSqlSettings.ServerName == STRING
    input.Body.Settings.PostgreSqlSettings.Port == INTEGER
    input.Body.Settings.PostgreSqlSettings.DatabaseName == STRING
    input.Body.Settings.PostgreSqlSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.PostgreSqlSettings.CertificateArn == STRING
    input.Body.Settings.MySqlSettings.ServerName == STRING
    input.Body.Settings.MySqlSettings.Port == INTEGER
    input.Body.Settings.MySqlSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MySqlSettings.CertificateArn == STRING
    input.Body.Settings.OracleSettings.ServerName == STRING
    input.Body.Settings.OracleSettings.Port == INTEGER
    input.Body.Settings.OracleSettings.DatabaseName == STRING
    input.Body.Settings.OracleSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.OracleSettings.CertificateArn == STRING
    input.Body.Settings.OracleSettings.AsmServer == STRING
    input.Body.Settings.OracleSettings.SecretsManagerOracleAsmSecretId == STRING
    input.Body.Settings.OracleSettings.SecretsManagerOracleAsmAccessRoleArn == STRING
    input.Body.Settings.OracleSettings.SecretsManagerSecurityDbEncryptionSecretId == STRING
    input.Body.Settings.OracleSettings.SecretsManagerSecurityDbEncryptionAccessRoleArn == STRING
    input.Body.Settings.MicrosoftSqlServerSettings.ServerName == STRING
    input.Body.Settings.MicrosoftSqlServerSettings.Port == INTEGER
    input.Body.Settings.MicrosoftSqlServerSettings.DatabaseName == STRING
    input.Body.Settings.MicrosoftSqlServerSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MicrosoftSqlServerSettings.CertificateArn == STRING
    input.Body.Settings.DocDbSettings.ServerName == STRING
    input.Body.Settings.DocDbSettings.Port == INTEGER
    input.Body.Settings.DocDbSettings.DatabaseName == STRING
    input.Body.Settings.DocDbSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.DocDbSettings.CertificateArn == STRING
    input.Body.Settings.MariaDbSettings.ServerName == STRING
    input.Body.Settings.MariaDbSettings.Port == INTEGER
    input.Body.Settings.MariaDbSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MariaDbSettings.CertificateArn == STRING
    input.Body.Settings.MongoDbSettings.ServerName == STRING
    input.Body.Settings.MongoDbSettings.Port == INTEGER
    input.Body.Settings.MongoDbSettings.DatabaseName == STRING
    input.Body.Settings.MongoDbSettings.SslMode == enum_DmsSslModeValue[_]
    input.Body.Settings.MongoDbSettings.CertificateArn == STRING
    input.Body.Settings.MongoDbSettings.AuthType == enum_AuthTypeValue[_]
    input.Body.Settings.MongoDbSettings.AuthSource == STRING
    input.Body.Settings.MongoDbSettings.AuthMechanism == enum_AuthMechanismValue[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyEndpoint

enum_AuthMechanismValue := [ "default", "mongodb_cr", "scram_sha_1" ]
enum_AuthTypeValue := [ "no", "password" ]
enum_CannedAclForObjectsValue := [ "none", "private", "public-read", "public-read-write", "authenticated-read", "aws-exec-read", "bucket-owner-read", "bucket-owner-full-control" ]
enum_CharLengthSemantics := [ "default", "char", "byte" ]
enum_CompressionTypeValue := [ "none", "gzip" ]
enum_DataFormatValue := [ "csv", "parquet" ]
enum_DatabaseMode := [ "default", "babelfish" ]
enum_DatePartitionDelimiterValue := [ "SLASH", "UNDERSCORE", "DASH", "NONE" ]
enum_DatePartitionSequenceValue := [ "YYYYMMDD", "YYYYMMDDHH", "YYYYMM", "MMYYYYDD", "DDMMYYYY" ]
enum_DmsSslModeValue := [ "none", "require", "verify-ca", "verify-full" ]
enum_EncodingTypeValue := [ "plain", "plain-dictionary", "rle-dictionary" ]
enum_EncryptionModeValue := [ "sse-s3", "sse-kms" ]
enum_KafkaSaslMechanism := [ "scram-sha-512", "plain" ]
enum_KafkaSecurityProtocol := [ "plaintext", "ssl-authentication", "ssl-encryption", "sasl-ssl" ]
enum_KafkaSslEndpointIdentificationAlgorithm := [ "none", "https" ]
enum_LongVarcharMappingType := [ "wstring", "clob", "nclob" ]
enum_MessageFormatValue := [ "json", "json-unformatted" ]
enum_NestingLevelValue := [ "none", "one" ]
enum_ParquetVersionValue := [ "parquet-1-0", "parquet-2-0" ]
enum_PluginNameValue := [ "no-preference", "test-decoding", "pglogical" ]
enum_RedisAuthTypeValue := [ "none", "auth-role", "auth-token" ]
enum_ReplicationEndpointTypeValue := [ "source", "target" ]
enum_SafeguardPolicy := [ "rely-on-sql-server-replication-agent", "exclusive-automatic-truncation", "shared-automatic-truncation" ]
enum_SslSecurityProtocolValue := [ "plaintext", "ssl-encryption" ]
enum_TargetDbType := [ "specific-database", "multiple-databases" ]
enum_TlogAccessMode := [ "BackupOnly", "PreferBackup", "PreferTlog", "TlogOnly" ]

valid {
    input.Body.EndpointArn == STRING
    input.Body.EndpointIdentifier == STRING
    input.Body.EndpointType == enum_ReplicationEndpointTypeValue[_]
    input.Body.EngineName == STRING
    input.Body.Username == STRING
    input.Body.Password == STRING
    input.Body.ServerName == STRING
    input.Body.Port == INTEGER
    input.Body.DatabaseName == STRING
    input.Body.ExtraConnectionAttributes == STRING
    input.Body.CertificateArn == STRING
    input.Body.SslMode == enum_DmsSslModeValue[_]
    input.Body.ServiceAccessRoleArn == STRING
    input.Body.ExternalTableDefinition == STRING
    input.Body.DynamoDbSettings.ServiceAccessRoleArn == STRING
    input.Body.S3Settings.ServiceAccessRoleArn == STRING
    input.Body.S3Settings.ExternalTableDefinition == STRING
    input.Body.S3Settings.CsvRowDelimiter == STRING
    input.Body.S3Settings.CsvDelimiter == STRING
    input.Body.S3Settings.BucketFolder == STRING
    input.Body.S3Settings.BucketName == STRING
    input.Body.S3Settings.CompressionType == enum_CompressionTypeValue[_]
    input.Body.S3Settings.EncryptionMode == enum_EncryptionModeValue[_]
    input.Body.S3Settings.ServerSideEncryptionKmsKeyId == STRING
    input.Body.S3Settings.DataFormat == enum_DataFormatValue[_]
    input.Body.S3Settings.EncodingType == enum_EncodingTypeValue[_]
    input.Body.S3Settings.DictPageSizeLimit == INTEGER
    input.Body.S3Settings.RowGroupLength == INTEGER
    input.Body.S3Settings.DataPageSize == INTEGER
    input.Body.S3Settings.ParquetVersion == enum_ParquetVersionValue[_]
    input.Body.S3Settings.EnableStatistics == BOOLEAN
    input.Body.S3Settings.IncludeOpForFullLoad == BOOLEAN
    input.Body.S3Settings.CdcInsertsOnly == BOOLEAN
    input.Body.S3Settings.TimestampColumnName == STRING
    input.Body.S3Settings.ParquetTimestampInMillisecond == BOOLEAN
    input.Body.S3Settings.CdcInsertsAndUpdates == BOOLEAN
    input.Body.S3Settings.DatePartitionEnabled == BOOLEAN
    input.Body.S3Settings.DatePartitionSequence == enum_DatePartitionSequenceValue[_]
    input.Body.S3Settings.DatePartitionDelimiter == enum_DatePartitionDelimiterValue[_]
    input.Body.S3Settings.UseCsvNoSupValue == BOOLEAN
    input.Body.S3Settings.CsvNoSupValue == STRING
    input.Body.S3Settings.PreserveTransactions == BOOLEAN
    input.Body.S3Settings.CdcPath == STRING
    input.Body.S3Settings.UseTaskStartTimeForFullLoadTimestamp == BOOLEAN
    input.Body.S3Settings.CannedAclForObjects == enum_CannedAclForObjectsValue[_]
    input.Body.S3Settings.AddColumnName == BOOLEAN
    input.Body.S3Settings.CdcMaxBatchInterval == INTEGER
    input.Body.S3Settings.CdcMinFileSize == INTEGER
    input.Body.S3Settings.CsvNullValue == STRING
    input.Body.S3Settings.IgnoreHeaderRows == INTEGER
    input.Body.S3Settings.MaxFileSize == INTEGER
    input.Body.S3Settings.Rfc4180 == BOOLEAN
    input.Body.S3Settings.DatePartitionTimezone == STRING
    input.Body.S3Settings.AddTrailingPaddingCharacter == BOOLEAN
    input.Body.S3Settings.ExpectedBucketOwner == STRING
    input.Body.S3Settings.GlueCatalogGeneration == BOOLEAN
    input.Body.DmsTransferSettings.ServiceAccessRoleArn == STRING
    input.Body.DmsTransferSettings.BucketName == STRING
    input.Body.MongoDbSettings.Username == STRING
    input.Body.MongoDbSettings.Password == STRING
    input.Body.MongoDbSettings.ServerName == STRING
    input.Body.MongoDbSettings.Port == INTEGER
    input.Body.MongoDbSettings.DatabaseName == STRING
    input.Body.MongoDbSettings.AuthType == enum_AuthTypeValue[_]
    input.Body.MongoDbSettings.AuthMechanism == enum_AuthMechanismValue[_]
    input.Body.MongoDbSettings.NestingLevel == enum_NestingLevelValue[_]
    input.Body.MongoDbSettings.ExtractDocId == STRING
    input.Body.MongoDbSettings.DocsToInvestigate == STRING
    input.Body.MongoDbSettings.AuthSource == STRING
    input.Body.MongoDbSettings.KmsKeyId == STRING
    input.Body.MongoDbSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.MongoDbSettings.SecretsManagerSecretId == STRING
    input.Body.MongoDbSettings.UseUpdateLookUp == BOOLEAN
    input.Body.MongoDbSettings.ReplicateShardCollections == BOOLEAN
    input.Body.KinesisSettings.StreamArn == STRING
    input.Body.KinesisSettings.MessageFormat == enum_MessageFormatValue[_]
    input.Body.KinesisSettings.ServiceAccessRoleArn == STRING
    input.Body.KinesisSettings.IncludeTransactionDetails == BOOLEAN
    input.Body.KinesisSettings.IncludePartitionValue == BOOLEAN
    input.Body.KinesisSettings.PartitionIncludeSchemaTable == BOOLEAN
    input.Body.KinesisSettings.IncludeTableAlterOperations == BOOLEAN
    input.Body.KinesisSettings.IncludeControlDetails == BOOLEAN
    input.Body.KinesisSettings.IncludeNullAndEmpty == BOOLEAN
    input.Body.KinesisSettings.NoHexPrefix == BOOLEAN
    input.Body.KafkaSettings.Broker == STRING
    input.Body.KafkaSettings.Topic == STRING
    input.Body.KafkaSettings.MessageFormat == enum_MessageFormatValue[_]
    input.Body.KafkaSettings.IncludeTransactionDetails == BOOLEAN
    input.Body.KafkaSettings.IncludePartitionValue == BOOLEAN
    input.Body.KafkaSettings.PartitionIncludeSchemaTable == BOOLEAN
    input.Body.KafkaSettings.IncludeTableAlterOperations == BOOLEAN
    input.Body.KafkaSettings.IncludeControlDetails == BOOLEAN
    input.Body.KafkaSettings.MessageMaxBytes == INTEGER
    input.Body.KafkaSettings.IncludeNullAndEmpty == BOOLEAN
    input.Body.KafkaSettings.SecurityProtocol == enum_KafkaSecurityProtocol[_]
    input.Body.KafkaSettings.SslClientCertificateArn == STRING
    input.Body.KafkaSettings.SslClientKeyArn == STRING
    input.Body.KafkaSettings.SslClientKeyPassword == STRING
    input.Body.KafkaSettings.SslCaCertificateArn == STRING
    input.Body.KafkaSettings.SaslUsername == STRING
    input.Body.KafkaSettings.SaslPassword == STRING
    input.Body.KafkaSettings.NoHexPrefix == BOOLEAN
    input.Body.KafkaSettings.SaslMechanism == enum_KafkaSaslMechanism[_]
    input.Body.KafkaSettings.SslEndpointIdentificationAlgorithm == enum_KafkaSslEndpointIdentificationAlgorithm[_]
    input.Body.ElasticsearchSettings.ServiceAccessRoleArn == STRING
    input.Body.ElasticsearchSettings.EndpointUri == STRING
    input.Body.ElasticsearchSettings.FullLoadErrorPercentage == INTEGER
    input.Body.ElasticsearchSettings.ErrorRetryDuration == INTEGER
    input.Body.ElasticsearchSettings.UseNewMappingType == BOOLEAN
    input.Body.NeptuneSettings.ServiceAccessRoleArn == STRING
    input.Body.NeptuneSettings.S3BucketName == STRING
    input.Body.NeptuneSettings.S3BucketFolder == STRING
    input.Body.NeptuneSettings.ErrorRetryDuration == INTEGER
    input.Body.NeptuneSettings.MaxFileSize == INTEGER
    input.Body.NeptuneSettings.MaxRetryCount == INTEGER
    input.Body.NeptuneSettings.IamAuthEnabled == BOOLEAN
    input.Body.RedshiftSettings.AcceptAnyDate == BOOLEAN
    input.Body.RedshiftSettings.AfterConnectScript == STRING
    input.Body.RedshiftSettings.BucketFolder == STRING
    input.Body.RedshiftSettings.BucketName == STRING
    input.Body.RedshiftSettings.CaseSensitiveNames == BOOLEAN
    input.Body.RedshiftSettings.CompUpdate == BOOLEAN
    input.Body.RedshiftSettings.ConnectionTimeout == INTEGER
    input.Body.RedshiftSettings.DatabaseName == STRING
    input.Body.RedshiftSettings.DateFormat == STRING
    input.Body.RedshiftSettings.EmptyAsNull == BOOLEAN
    input.Body.RedshiftSettings.EncryptionMode == enum_EncryptionModeValue[_]
    input.Body.RedshiftSettings.ExplicitIds == BOOLEAN
    input.Body.RedshiftSettings.FileTransferUploadStreams == INTEGER
    input.Body.RedshiftSettings.LoadTimeout == INTEGER
    input.Body.RedshiftSettings.MaxFileSize == INTEGER
    input.Body.RedshiftSettings.Password == STRING
    input.Body.RedshiftSettings.Port == INTEGER
    input.Body.RedshiftSettings.RemoveQuotes == BOOLEAN
    input.Body.RedshiftSettings.ReplaceInvalidChars == STRING
    input.Body.RedshiftSettings.ReplaceChars == STRING
    input.Body.RedshiftSettings.ServerName == STRING
    input.Body.RedshiftSettings.ServiceAccessRoleArn == STRING
    input.Body.RedshiftSettings.ServerSideEncryptionKmsKeyId == STRING
    input.Body.RedshiftSettings.TimeFormat == STRING
    input.Body.RedshiftSettings.TrimBlanks == BOOLEAN
    input.Body.RedshiftSettings.TruncateColumns == BOOLEAN
    input.Body.RedshiftSettings.Username == STRING
    input.Body.RedshiftSettings.WriteBufferSize == INTEGER
    input.Body.RedshiftSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.RedshiftSettings.SecretsManagerSecretId == STRING
    input.Body.RedshiftSettings.MapBooleanAsBoolean == BOOLEAN
    input.Body.PostgreSQLSettings.AfterConnectScript == STRING
    input.Body.PostgreSQLSettings.CaptureDdls == BOOLEAN
    input.Body.PostgreSQLSettings.MaxFileSize == INTEGER
    input.Body.PostgreSQLSettings.DatabaseName == STRING
    input.Body.PostgreSQLSettings.DdlArtifactsSchema == STRING
    input.Body.PostgreSQLSettings.ExecuteTimeout == INTEGER
    input.Body.PostgreSQLSettings.FailTasksOnLobTruncation == BOOLEAN
    input.Body.PostgreSQLSettings.HeartbeatEnable == BOOLEAN
    input.Body.PostgreSQLSettings.HeartbeatSchema == STRING
    input.Body.PostgreSQLSettings.HeartbeatFrequency == INTEGER
    input.Body.PostgreSQLSettings.Password == STRING
    input.Body.PostgreSQLSettings.Port == INTEGER
    input.Body.PostgreSQLSettings.ServerName == STRING
    input.Body.PostgreSQLSettings.Username == STRING
    input.Body.PostgreSQLSettings.SlotName == STRING
    input.Body.PostgreSQLSettings.PluginName == enum_PluginNameValue[_]
    input.Body.PostgreSQLSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.PostgreSQLSettings.SecretsManagerSecretId == STRING
    input.Body.PostgreSQLSettings.TrimSpaceInChar == BOOLEAN
    input.Body.PostgreSQLSettings.MapBooleanAsBoolean == BOOLEAN
    input.Body.PostgreSQLSettings.MapJsonbAsClob == BOOLEAN
    input.Body.PostgreSQLSettings.MapLongVarcharAs == enum_LongVarcharMappingType[_]
    input.Body.PostgreSQLSettings.DatabaseMode == enum_DatabaseMode[_]
    input.Body.PostgreSQLSettings.BabelfishDatabaseName == STRING
    input.Body.MySQLSettings.AfterConnectScript == STRING
    input.Body.MySQLSettings.CleanSourceMetadataOnMismatch == BOOLEAN
    input.Body.MySQLSettings.DatabaseName == STRING
    input.Body.MySQLSettings.EventsPollInterval == INTEGER
    input.Body.MySQLSettings.TargetDbType == enum_TargetDbType[_]
    input.Body.MySQLSettings.MaxFileSize == INTEGER
    input.Body.MySQLSettings.ParallelLoadThreads == INTEGER
    input.Body.MySQLSettings.Password == STRING
    input.Body.MySQLSettings.Port == INTEGER
    input.Body.MySQLSettings.ServerName == STRING
    input.Body.MySQLSettings.ServerTimezone == STRING
    input.Body.MySQLSettings.Username == STRING
    input.Body.MySQLSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.MySQLSettings.SecretsManagerSecretId == STRING
    input.Body.MySQLSettings.ExecuteTimeout == INTEGER
    input.Body.OracleSettings.AddSupplementalLogging == BOOLEAN
    input.Body.OracleSettings.ArchivedLogDestId == INTEGER
    input.Body.OracleSettings.AdditionalArchivedLogDestId == INTEGER
    input.Body.OracleSettings.ExtraArchivedLogDestIds[_] == INTEGER
    input.Body.OracleSettings.AllowSelectNestedTables == BOOLEAN
    input.Body.OracleSettings.ParallelAsmReadThreads == INTEGER
    input.Body.OracleSettings.ReadAheadBlocks == INTEGER
    input.Body.OracleSettings.AccessAlternateDirectly == BOOLEAN
    input.Body.OracleSettings.UseAlternateFolderForOnline == BOOLEAN
    input.Body.OracleSettings.OraclePathPrefix == STRING
    input.Body.OracleSettings.UsePathPrefix == STRING
    input.Body.OracleSettings.ReplacePathPrefix == BOOLEAN
    input.Body.OracleSettings.EnableHomogenousTablespace == BOOLEAN
    input.Body.OracleSettings.DirectPathNoLog == BOOLEAN
    input.Body.OracleSettings.ArchivedLogsOnly == BOOLEAN
    input.Body.OracleSettings.AsmPassword == STRING
    input.Body.OracleSettings.AsmServer == STRING
    input.Body.OracleSettings.AsmUser == STRING
    input.Body.OracleSettings.CharLengthSemantics == enum_CharLengthSemantics[_]
    input.Body.OracleSettings.DatabaseName == STRING
    input.Body.OracleSettings.DirectPathParallelLoad == BOOLEAN
    input.Body.OracleSettings.FailTasksOnLobTruncation == BOOLEAN
    input.Body.OracleSettings.NumberDatatypeScale == INTEGER
    input.Body.OracleSettings.Password == STRING
    input.Body.OracleSettings.Port == INTEGER
    input.Body.OracleSettings.ReadTableSpaceName == BOOLEAN
    input.Body.OracleSettings.RetryInterval == INTEGER
    input.Body.OracleSettings.SecurityDbEncryption == STRING
    input.Body.OracleSettings.SecurityDbEncryptionName == STRING
    input.Body.OracleSettings.ServerName == STRING
    input.Body.OracleSettings.SpatialDataOptionToGeoJsonFunctionName == STRING
    input.Body.OracleSettings.StandbyDelayTime == INTEGER
    input.Body.OracleSettings.Username == STRING
    input.Body.OracleSettings.UseBFile == BOOLEAN
    input.Body.OracleSettings.UseDirectPathFullLoad == BOOLEAN
    input.Body.OracleSettings.UseLogminerReader == BOOLEAN
    input.Body.OracleSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.OracleSettings.SecretsManagerSecretId == STRING
    input.Body.OracleSettings.SecretsManagerOracleAsmAccessRoleArn == STRING
    input.Body.OracleSettings.SecretsManagerOracleAsmSecretId == STRING
    input.Body.OracleSettings.TrimSpaceInChar == BOOLEAN
    input.Body.OracleSettings.ConvertTimestampWithZoneToUTC == BOOLEAN
    input.Body.OracleSettings.OpenTransactionWindow == INTEGER
    input.Body.SybaseSettings.DatabaseName == STRING
    input.Body.SybaseSettings.Password == STRING
    input.Body.SybaseSettings.Port == INTEGER
    input.Body.SybaseSettings.ServerName == STRING
    input.Body.SybaseSettings.Username == STRING
    input.Body.SybaseSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.SybaseSettings.SecretsManagerSecretId == STRING
    input.Body.MicrosoftSQLServerSettings.Port == INTEGER
    input.Body.MicrosoftSQLServerSettings.BcpPacketSize == INTEGER
    input.Body.MicrosoftSQLServerSettings.DatabaseName == STRING
    input.Body.MicrosoftSQLServerSettings.ControlTablesFileGroup == STRING
    input.Body.MicrosoftSQLServerSettings.Password == STRING
    input.Body.MicrosoftSQLServerSettings.QuerySingleAlwaysOnNode == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.ReadBackupOnly == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.SafeguardPolicy == enum_SafeguardPolicy[_]
    input.Body.MicrosoftSQLServerSettings.ServerName == STRING
    input.Body.MicrosoftSQLServerSettings.Username == STRING
    input.Body.MicrosoftSQLServerSettings.UseBcpFullLoad == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.UseThirdPartyBackupDevice == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.MicrosoftSQLServerSettings.SecretsManagerSecretId == STRING
    input.Body.MicrosoftSQLServerSettings.TrimSpaceInChar == BOOLEAN
    input.Body.MicrosoftSQLServerSettings.TlogAccessMode == enum_TlogAccessMode[_]
    input.Body.MicrosoftSQLServerSettings.ForceLobLookup == BOOLEAN
    input.Body.IBMDb2Settings.DatabaseName == STRING
    input.Body.IBMDb2Settings.Password == STRING
    input.Body.IBMDb2Settings.Port == INTEGER
    input.Body.IBMDb2Settings.ServerName == STRING
    input.Body.IBMDb2Settings.SetDataCaptureChanges == BOOLEAN
    input.Body.IBMDb2Settings.CurrentLsn == STRING
    input.Body.IBMDb2Settings.MaxKBytesPerRead == INTEGER
    input.Body.IBMDb2Settings.Username == STRING
    input.Body.IBMDb2Settings.SecretsManagerAccessRoleArn == STRING
    input.Body.IBMDb2Settings.SecretsManagerSecretId == STRING
    input.Body.IBMDb2Settings.LoadTimeout == INTEGER
    input.Body.IBMDb2Settings.WriteBufferSize == INTEGER
    input.Body.IBMDb2Settings.MaxFileSize == INTEGER
    input.Body.IBMDb2Settings.KeepCsvFiles == BOOLEAN
    input.Body.DocDbSettings.Username == STRING
    input.Body.DocDbSettings.Password == STRING
    input.Body.DocDbSettings.ServerName == STRING
    input.Body.DocDbSettings.Port == INTEGER
    input.Body.DocDbSettings.DatabaseName == STRING
    input.Body.DocDbSettings.NestingLevel == enum_NestingLevelValue[_]
    input.Body.DocDbSettings.ExtractDocId == BOOLEAN
    input.Body.DocDbSettings.DocsToInvestigate == INTEGER
    input.Body.DocDbSettings.KmsKeyId == STRING
    input.Body.DocDbSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.DocDbSettings.SecretsManagerSecretId == STRING
    input.Body.DocDbSettings.UseUpdateLookUp == BOOLEAN
    input.Body.DocDbSettings.ReplicateShardCollections == BOOLEAN
    input.Body.RedisSettings.ServerName == STRING
    input.Body.RedisSettings.Port == INTEGER
    input.Body.RedisSettings.SslSecurityProtocol == enum_SslSecurityProtocolValue[_]
    input.Body.RedisSettings.AuthType == enum_RedisAuthTypeValue[_]
    input.Body.RedisSettings.AuthUserName == STRING
    input.Body.RedisSettings.AuthPassword == STRING
    input.Body.RedisSettings.SslCaCertificateArn == STRING
    input.Body.ExactSettings == BOOLEAN
    input.Body.GcpMySQLSettings.AfterConnectScript == STRING
    input.Body.GcpMySQLSettings.CleanSourceMetadataOnMismatch == BOOLEAN
    input.Body.GcpMySQLSettings.DatabaseName == STRING
    input.Body.GcpMySQLSettings.EventsPollInterval == INTEGER
    input.Body.GcpMySQLSettings.TargetDbType == enum_TargetDbType[_]
    input.Body.GcpMySQLSettings.MaxFileSize == INTEGER
    input.Body.GcpMySQLSettings.ParallelLoadThreads == INTEGER
    input.Body.GcpMySQLSettings.Password == STRING
    input.Body.GcpMySQLSettings.Port == INTEGER
    input.Body.GcpMySQLSettings.ServerName == STRING
    input.Body.GcpMySQLSettings.ServerTimezone == STRING
    input.Body.GcpMySQLSettings.Username == STRING
    input.Body.GcpMySQLSettings.SecretsManagerAccessRoleArn == STRING
    input.Body.GcpMySQLSettings.SecretsManagerSecretId == STRING
    input.Body.TimestreamSettings.DatabaseName == STRING
    input.Body.TimestreamSettings.MemoryDuration == INTEGER
    input.Body.TimestreamSettings.MagneticDuration == INTEGER
    input.Body.TimestreamSettings.CdcInsertsAndUpdates == BOOLEAN
    input.Body.TimestreamSettings.EnableMagneticStoreWrites == BOOLEAN
    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
}

ModifyInstanceProfile

valid {
    input.Body.InstanceProfileIdentifier == STRING
    input.Body.AvailabilityZone == STRING
    input.Body.KmsKeyArn == STRING
    input.Body.PubliclyAccessible == BOOLEAN
    input.Body.NetworkType == STRING
    input.Body.InstanceProfileName == STRING
    input.Body.Description == STRING
    input.Body.SubnetGroupIdentifier == STRING
    input.Body.VpcSecurityGroups[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyMigrationProject

valid {
    input.Body.MigrationProjectIdentifier == STRING
    input.Body.MigrationProjectName == STRING
    input.Body.SourceDataProviderDescriptors[_].DataProviderIdentifier == STRING
    input.Body.SourceDataProviderDescriptors[_].SecretsManagerSecretId == STRING
    input.Body.SourceDataProviderDescriptors[_].SecretsManagerAccessRoleArn == STRING
    input.Body.TargetDataProviderDescriptors[_].DataProviderIdentifier == STRING
    input.Body.TargetDataProviderDescriptors[_].SecretsManagerSecretId == STRING
    input.Body.TargetDataProviderDescriptors[_].SecretsManagerAccessRoleArn == STRING
    input.Body.InstanceProfileIdentifier == STRING
    input.Body.TransformationRules == STRING
    input.Body.Description == STRING
    input.Body.SchemaConversionApplicationAttributes.S3BucketPath == STRING
    input.Body.SchemaConversionApplicationAttributes.S3BucketRoleArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyReplicationConfig

enum_MigrationTypeValue := [ "full-load", "cdc", "full-load-and-cdc" ]

valid {
    input.Body.ReplicationConfigArn == STRING
    input.Body.ReplicationConfigIdentifier == STRING
    input.Body.ReplicationType == enum_MigrationTypeValue[_]
    input.Body.TableMappings == STRING
    input.Body.ReplicationSettings == STRING
    input.Body.SupplementalSettings == STRING
    input.Body.ComputeConfig.AvailabilityZone == STRING
    input.Body.ComputeConfig.DnsNameServers == STRING
    input.Body.ComputeConfig.KmsKeyId == STRING
    input.Body.ComputeConfig.MaxCapacityUnits == INTEGER
    input.Body.ComputeConfig.MinCapacityUnits == INTEGER
    input.Body.ComputeConfig.MultiAZ == BOOLEAN
    input.Body.ComputeConfig.PreferredMaintenanceWindow == STRING
    input.Body.ComputeConfig.ReplicationSubnetGroupId == STRING
    input.Body.ComputeConfig.VpcSecurityGroupIds[_] == STRING
    input.Body.SourceEndpointArn == STRING
    input.Body.TargetEndpointArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyReplicationInstance

valid {
    input.Body.ReplicationInstanceArn == STRING
    input.Body.AllocatedStorage == INTEGER
    input.Body.ApplyImmediately == BOOLEAN
    input.Body.ReplicationInstanceClass == STRING
    input.Body.VpcSecurityGroupIds[_] == STRING
    input.Body.PreferredMaintenanceWindow == STRING
    input.Body.MultiAZ == BOOLEAN
    input.Body.EngineVersion == STRING
    input.Body.AllowMajorVersionUpgrade == BOOLEAN
    input.Body.AutoMinorVersionUpgrade == BOOLEAN
    input.Body.ReplicationInstanceIdentifier == STRING
    input.Body.NetworkType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyReplicationSubnetGroup

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

ModifyReplicationTask

enum_MigrationTypeValue := [ "full-load", "cdc", "full-load-and-cdc" ]

valid {
    input.Body.ReplicationTaskArn == STRING
    input.Body.ReplicationTaskIdentifier == STRING
    input.Body.MigrationType == enum_MigrationTypeValue[_]
    input.Body.TableMappings == STRING
    input.Body.ReplicationTaskSettings == STRING
    input.Body.CdcStartTime == TIMESTAMP
    input.Body.CdcStartPosition == STRING
    input.Body.CdcStopPosition == STRING
    input.Body.TaskData == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

MoveReplicationTask

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

RebootReplicationInstance

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

RefreshSchemas

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

ReloadReplicationTables

enum_ReloadOptionValue := [ "data-reload", "validate-only" ]

valid {
    input.Body.ReplicationConfigArn == STRING
    input.Body.TablesToReload[_].SchemaName == STRING
    input.Body.TablesToReload[_].TableName == STRING
    input.Body.ReloadOption == enum_ReloadOptionValue[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReloadTables

enum_ReloadOptionValue := [ "data-reload", "validate-only" ]

valid {
    input.Body.ReplicationTaskArn == STRING
    input.Body.TablesToReload[_].SchemaName == STRING
    input.Body.TablesToReload[_].TableName == STRING
    input.Body.ReloadOption == enum_ReloadOptionValue[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveTagsFromResource

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

RunFleetAdvisorLsaAnalysis

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

StartExtensionPackAssociation

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

StartMetadataModelAssessment

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

StartMetadataModelConversion

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

StartMetadataModelExportAsScript

enum_OriginTypeValue := [ "SOURCE", "TARGET" ]

valid {
    input.Body.MigrationProjectIdentifier == STRING
    input.Body.SelectionRules == STRING
    input.Body.Origin == enum_OriginTypeValue[_]
    input.Body.FileName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartMetadataModelExportToTarget

valid {
    input.Body.MigrationProjectIdentifier == STRING
    input.Body.SelectionRules == STRING
    input.Body.OverwriteExtensionPack == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartMetadataModelImport

enum_OriginTypeValue := [ "SOURCE", "TARGET" ]

valid {
    input.Body.MigrationProjectIdentifier == STRING
    input.Body.SelectionRules == STRING
    input.Body.Origin == enum_OriginTypeValue[_]
    input.Body.Refresh == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartRecommendations

valid {
    input.Body.DatabaseId == STRING
    input.Body.Settings.InstanceSizingType == STRING
    input.Body.Settings.WorkloadType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartReplication

valid {
    input.Body.ReplicationConfigArn == STRING
    input.Body.StartReplicationType == STRING
    input.Body.CdcStartTime == TIMESTAMP
    input.Body.CdcStartPosition == STRING
    input.Body.CdcStopPosition == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartReplicationTask

enum_StartReplicationTaskTypeValue := [ "start-replication", "resume-processing", "reload-target" ]

valid {
    input.Body.ReplicationTaskArn == STRING
    input.Body.StartReplicationTaskType == enum_StartReplicationTaskTypeValue[_]
    input.Body.CdcStartTime == TIMESTAMP
    input.Body.CdcStartPosition == STRING
    input.Body.CdcStopPosition == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartReplicationTaskAssessment

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

StartReplicationTaskAssessmentRun

valid {
    input.Body.ReplicationTaskArn == STRING
    input.Body.ServiceAccessRoleArn == STRING
    input.Body.ResultLocationBucket == STRING
    input.Body.ResultLocationFolder == STRING
    input.Body.ResultEncryptionMode == STRING
    input.Body.ResultKmsKeyArn == STRING
    input.Body.AssessmentRunName == STRING
    input.Body.IncludeOnly[_] == STRING
    input.Body.Exclude[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopReplication

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

StopReplicationTask

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

TestConnection

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

UpdateSubscriptionsToEventBridge

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