AssociateSourceNetworkStack

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

CreateExtendedSourceServer

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

CreateLaunchConfigurationTemplate

enum_LaunchDisposition := [ "STOPPED", "STARTED" ]
enum_TargetInstanceTypeRightSizingMethod := [ "NONE", "BASIC", "IN_AWS" ]

valid {
    input.Body.copyPrivateIp == BOOLEAN
    input.Body.copyTags == BOOLEAN
    input.Body.exportBucketArn == STRING
    input.Body.launchDisposition == enum_LaunchDisposition[_]
    input.Body.launchIntoSourceInstance == BOOLEAN
    input.Body.licensing.osByol == BOOLEAN
    input.Body.postLaunchEnabled == BOOLEAN
    input.Body.tags.STRING == STRING
    input.Body.targetInstanceTypeRightSizingMethod == enum_TargetInstanceTypeRightSizingMethod[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReplicationConfigurationTemplate

enum_PITPolicyRuleUnits := [ "MINUTE", "HOUR", "DAY" ]
enum_ReplicationConfigurationDataPlaneRouting := [ "PRIVATE_IP", "PUBLIC_IP" ]
enum_ReplicationConfigurationDefaultLargeStagingDiskType := [ "GP2", "GP3", "ST1", "AUTO" ]
enum_ReplicationConfigurationEbsEncryption := [ "DEFAULT", "CUSTOM", "NONE" ]

valid {
    input.Body.associateDefaultSecurityGroup == BOOLEAN
    input.Body.autoReplicateNewDisks == BOOLEAN
    input.Body.bandwidthThrottling == LONG
    input.Body.createPublicIP == BOOLEAN
    input.Body.dataPlaneRouting == enum_ReplicationConfigurationDataPlaneRouting[_]
    input.Body.defaultLargeStagingDiskType == enum_ReplicationConfigurationDefaultLargeStagingDiskType[_]
    input.Body.ebsEncryption == enum_ReplicationConfigurationEbsEncryption[_]
    input.Body.ebsEncryptionKeyArn == STRING
    input.Body.pitPolicy[_].enabled == BOOLEAN
    input.Body.pitPolicy[_].interval == INTEGER
    input.Body.pitPolicy[_].retentionDuration == INTEGER
    input.Body.pitPolicy[_].ruleID == LONG
    input.Body.pitPolicy[_].units == enum_PITPolicyRuleUnits[_]
    input.Body.replicationServerInstanceType == STRING
    input.Body.replicationServersSecurityGroupsIDs[_] == STRING
    input.Body.stagingAreaSubnetId == STRING
    input.Body.stagingAreaTags.STRING == STRING
    input.Body.tags.STRING == STRING
    input.Body.useDedicatedReplicationServer == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSourceNetwork

valid {
    input.Body.originAccountID == STRING
    input.Body.originRegion == STRING
    input.Body.tags.STRING == STRING
    input.Body.vpcID == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteJob

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

DeleteLaunchAction

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

DeleteLaunchConfigurationTemplate

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

DeleteRecoveryInstance

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

DeleteReplicationConfigurationTemplate

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

DeleteSourceNetwork

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

DeleteSourceServer

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

DescribeJobLogItems

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

DescribeJobs

valid {
    input.Body.filters.fromDate == STRING
    input.Body.filters.jobIDs[_] == STRING
    input.Body.filters.toDate == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLaunchConfigurationTemplates

valid {
    input.Body.launchConfigurationTemplateIDs[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRecoveryInstances

valid {
    input.Body.filters.recoveryInstanceIDs[_] == STRING
    input.Body.filters.sourceServerIDs[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRecoverySnapshots

enum_RecoverySnapshotsOrder := [ "ASC", "DESC" ]

valid {
    input.Body.filters.fromDateTime == STRING
    input.Body.filters.toDateTime == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.order == enum_RecoverySnapshotsOrder[_]
    input.Body.sourceServerID == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReplicationConfigurationTemplates

valid {
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.replicationConfigurationTemplateIDs[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSourceNetworks

valid {
    input.Body.filters.originAccountID == STRING
    input.Body.filters.originRegion == STRING
    input.Body.filters.sourceNetworkIDs[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSourceServers

valid {
    input.Body.filters.hardwareId == STRING
    input.Body.filters.sourceServerIDs[_] == STRING
    input.Body.filters.stagingAccountIDs[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisconnectRecoveryInstance

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

DisconnectSourceServer

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

ExportSourceNetworkCfnTemplate

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

GetFailbackReplicationConfiguration

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

GetLaunchConfiguration

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

GetReplicationConfiguration

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

InitializeService

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

ListExtensibleSourceServers

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

ListLaunchActions

valid {
    input.Body.filters.actionIds[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.resourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStagingAccounts

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

ListTagsForResource

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

PutLaunchAction

enum_LaunchActionCategory := [ "MONITORING", "VALIDATION", "CONFIGURATION", "SECURITY", "OTHER" ]
enum_LaunchActionParameterType := [ "SSM_STORE", "DYNAMIC" ]

valid {
    input.Body.actionCode == STRING
    input.Body.actionId == STRING
    input.Body.actionVersion == STRING
    input.Body.active == BOOLEAN
    input.Body.category == enum_LaunchActionCategory[_]
    input.Body.description == STRING
    input.Body.name == STRING
    input.Body.optional == BOOLEAN
    input.Body.order == INTEGER
    input.Body.parameters.STRING.type == enum_LaunchActionParameterType[_]
    input.Body.parameters.STRING.value == STRING
    input.Body.resourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RetryDataReplication

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

ReverseReplication

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

StartFailbackLaunch

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

StartRecovery

valid {
    input.Body.isDrill == BOOLEAN
    input.Body.sourceServers[_].recoverySnapshotID == STRING
    input.Body.sourceServers[_].sourceServerID == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartReplication

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

StartSourceNetworkRecovery

valid {
    input.Body.deployAsNew == BOOLEAN
    input.Body.sourceNetworks[_].cfnStackName == STRING
    input.Body.sourceNetworks[_].sourceNetworkID == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartSourceNetworkReplication

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

StopFailback

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

StopReplication

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

StopSourceNetworkReplication

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

TagResource

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

TerminateRecoveryInstances

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

UntagResource

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

UpdateFailbackReplicationConfiguration

valid {
    input.Body.bandwidthThrottling == LONG
    input.Body.name == STRING
    input.Body.recoveryInstanceID == STRING
    input.Body.usePrivateIP == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLaunchConfiguration

enum_LaunchDisposition := [ "STOPPED", "STARTED" ]
enum_TargetInstanceTypeRightSizingMethod := [ "NONE", "BASIC", "IN_AWS" ]

valid {
    input.Body.copyPrivateIp == BOOLEAN
    input.Body.copyTags == BOOLEAN
    input.Body.launchDisposition == enum_LaunchDisposition[_]
    input.Body.launchIntoInstanceProperties.launchIntoEC2InstanceID == STRING
    input.Body.licensing.osByol == BOOLEAN
    input.Body.name == STRING
    input.Body.postLaunchEnabled == BOOLEAN
    input.Body.sourceServerID == STRING
    input.Body.targetInstanceTypeRightSizingMethod == enum_TargetInstanceTypeRightSizingMethod[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLaunchConfigurationTemplate

enum_LaunchDisposition := [ "STOPPED", "STARTED" ]
enum_TargetInstanceTypeRightSizingMethod := [ "NONE", "BASIC", "IN_AWS" ]

valid {
    input.Body.copyPrivateIp == BOOLEAN
    input.Body.copyTags == BOOLEAN
    input.Body.exportBucketArn == STRING
    input.Body.launchConfigurationTemplateID == STRING
    input.Body.launchDisposition == enum_LaunchDisposition[_]
    input.Body.launchIntoSourceInstance == BOOLEAN
    input.Body.licensing.osByol == BOOLEAN
    input.Body.postLaunchEnabled == BOOLEAN
    input.Body.targetInstanceTypeRightSizingMethod == enum_TargetInstanceTypeRightSizingMethod[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateReplicationConfiguration

enum_PITPolicyRuleUnits := [ "MINUTE", "HOUR", "DAY" ]
enum_ReplicationConfigurationDataPlaneRouting := [ "PRIVATE_IP", "PUBLIC_IP" ]
enum_ReplicationConfigurationDefaultLargeStagingDiskType := [ "GP2", "GP3", "ST1", "AUTO" ]
enum_ReplicationConfigurationEbsEncryption := [ "DEFAULT", "CUSTOM", "NONE" ]
enum_ReplicationConfigurationReplicatedDiskStagingDiskType := [ "AUTO", "GP2", "GP3", "IO1", "SC1", "ST1", "STANDARD" ]

valid {
    input.Body.associateDefaultSecurityGroup == BOOLEAN
    input.Body.autoReplicateNewDisks == BOOLEAN
    input.Body.bandwidthThrottling == LONG
    input.Body.createPublicIP == BOOLEAN
    input.Body.dataPlaneRouting == enum_ReplicationConfigurationDataPlaneRouting[_]
    input.Body.defaultLargeStagingDiskType == enum_ReplicationConfigurationDefaultLargeStagingDiskType[_]
    input.Body.ebsEncryption == enum_ReplicationConfigurationEbsEncryption[_]
    input.Body.ebsEncryptionKeyArn == STRING
    input.Body.name == STRING
    input.Body.pitPolicy[_].enabled == BOOLEAN
    input.Body.pitPolicy[_].interval == INTEGER
    input.Body.pitPolicy[_].retentionDuration == INTEGER
    input.Body.pitPolicy[_].ruleID == LONG
    input.Body.pitPolicy[_].units == enum_PITPolicyRuleUnits[_]
    input.Body.replicatedDisks[_].deviceName == STRING
    input.Body.replicatedDisks[_].iops == LONG
    input.Body.replicatedDisks[_].isBootDisk == BOOLEAN
    input.Body.replicatedDisks[_].optimizedStagingDiskType == enum_ReplicationConfigurationReplicatedDiskStagingDiskType[_]
    input.Body.replicatedDisks[_].stagingDiskType == enum_ReplicationConfigurationReplicatedDiskStagingDiskType[_]
    input.Body.replicatedDisks[_].throughput == LONG
    input.Body.replicationServerInstanceType == STRING
    input.Body.replicationServersSecurityGroupsIDs[_] == STRING
    input.Body.sourceServerID == STRING
    input.Body.stagingAreaSubnetId == STRING
    input.Body.stagingAreaTags.STRING == STRING
    input.Body.useDedicatedReplicationServer == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateReplicationConfigurationTemplate

enum_PITPolicyRuleUnits := [ "MINUTE", "HOUR", "DAY" ]
enum_ReplicationConfigurationDataPlaneRouting := [ "PRIVATE_IP", "PUBLIC_IP" ]
enum_ReplicationConfigurationDefaultLargeStagingDiskType := [ "GP2", "GP3", "ST1", "AUTO" ]
enum_ReplicationConfigurationEbsEncryption := [ "DEFAULT", "CUSTOM", "NONE" ]

valid {
    input.Body.arn == STRING
    input.Body.associateDefaultSecurityGroup == BOOLEAN
    input.Body.autoReplicateNewDisks == BOOLEAN
    input.Body.bandwidthThrottling == LONG
    input.Body.createPublicIP == BOOLEAN
    input.Body.dataPlaneRouting == enum_ReplicationConfigurationDataPlaneRouting[_]
    input.Body.defaultLargeStagingDiskType == enum_ReplicationConfigurationDefaultLargeStagingDiskType[_]
    input.Body.ebsEncryption == enum_ReplicationConfigurationEbsEncryption[_]
    input.Body.ebsEncryptionKeyArn == STRING
    input.Body.pitPolicy[_].enabled == BOOLEAN
    input.Body.pitPolicy[_].interval == INTEGER
    input.Body.pitPolicy[_].retentionDuration == INTEGER
    input.Body.pitPolicy[_].ruleID == LONG
    input.Body.pitPolicy[_].units == enum_PITPolicyRuleUnits[_]
    input.Body.replicationConfigurationTemplateID == STRING
    input.Body.replicationServerInstanceType == STRING
    input.Body.replicationServersSecurityGroupsIDs[_] == STRING
    input.Body.stagingAreaSubnetId == STRING
    input.Body.stagingAreaTags.STRING == STRING
    input.Body.useDedicatedReplicationServer == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}