ROBOMAKER

BatchDeleteWorlds

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

BatchDescribeSimulationJob

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

CancelDeploymentJob

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

CancelSimulationJob

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

CancelSimulationJobBatch

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

CancelWorldExportJob

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

CancelWorldGenerationJob

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

CreateDeploymentJob

valid {
    input.Body.deploymentConfig.concurrentDeploymentPercentage == INTEGER
    input.Body.deploymentConfig.failureThresholdPercentage == INTEGER
    input.Body.deploymentConfig.robotDeploymentTimeoutInSeconds == LONG
    input.Body.deploymentConfig.downloadConditionFile.bucket == STRING
    input.Body.deploymentConfig.downloadConditionFile.key == STRING
    input.Body.deploymentConfig.downloadConditionFile.etag == STRING
    input.Body.clientRequestToken == STRING
    input.Body.fleet == STRING
    input.Body.deploymentApplicationConfigs[_].application == STRING
    input.Body.deploymentApplicationConfigs[_].applicationVersion == STRING
    input.Body.deploymentApplicationConfigs[_].launchConfig.packageName == STRING
    input.Body.deploymentApplicationConfigs[_].launchConfig.preLaunchFile == STRING
    input.Body.deploymentApplicationConfigs[_].launchConfig.launchFile == STRING
    input.Body.deploymentApplicationConfigs[_].launchConfig.postLaunchFile == STRING
    input.Body.deploymentApplicationConfigs[_].launchConfig.environmentVariables.STRING == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFleet

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

CreateRobot

enum_Architecture := [ "X86_64", "ARM64", "ARMHF" ]

valid {
    input.Body.name == STRING
    input.Body.architecture == enum_Architecture[_]
    input.Body.greengrassGroupId == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRobotApplication

enum_Architecture := [ "X86_64", "ARM64", "ARMHF" ]
enum_RobotSoftwareSuiteType := [ "ROS", "ROS2", "General" ]
enum_RobotSoftwareSuiteVersionType := [ "Kinetic", "Melodic", "Dashing", "Foxy" ]

valid {
    input.Body.name == STRING
    input.Body.sources[_].s3Bucket == STRING
    input.Body.sources[_].s3Key == STRING
    input.Body.sources[_].architecture == enum_Architecture[_]
    input.Body.robotSoftwareSuite.name == enum_RobotSoftwareSuiteType[_]
    input.Body.robotSoftwareSuite.version == enum_RobotSoftwareSuiteVersionType[_]
    input.Body.tags.STRING == STRING
    input.Body.environment.uri == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRobotApplicationVersion

valid {
    input.Body.application == STRING
    input.Body.currentRevisionId == STRING
    input.Body.s3Etags[_] == STRING
    input.Body.imageDigest == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSimulationApplication

enum_Architecture := [ "X86_64", "ARM64", "ARMHF" ]
enum_RenderingEngineType := [ "OGRE" ]
enum_RobotSoftwareSuiteType := [ "ROS", "ROS2", "General" ]
enum_RobotSoftwareSuiteVersionType := [ "Kinetic", "Melodic", "Dashing", "Foxy" ]
enum_SimulationSoftwareSuiteType := [ "Gazebo", "RosbagPlay", "SimulationRuntime" ]

valid {
    input.Body.name == STRING
    input.Body.sources[_].s3Bucket == STRING
    input.Body.sources[_].s3Key == STRING
    input.Body.sources[_].architecture == enum_Architecture[_]
    input.Body.simulationSoftwareSuite.name == enum_SimulationSoftwareSuiteType[_]
    input.Body.simulationSoftwareSuite.version == STRING
    input.Body.robotSoftwareSuite.name == enum_RobotSoftwareSuiteType[_]
    input.Body.robotSoftwareSuite.version == enum_RobotSoftwareSuiteVersionType[_]
    input.Body.renderingEngine.name == enum_RenderingEngineType[_]
    input.Body.renderingEngine.version == STRING
    input.Body.tags.STRING == STRING
    input.Body.environment.uri == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSimulationApplicationVersion

valid {
    input.Body.application == STRING
    input.Body.currentRevisionId == STRING
    input.Body.s3Etags[_] == STRING
    input.Body.imageDigest == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSimulationJob

enum_ComputeType := [ "CPU", "GPU_AND_CPU" ]
enum_DataSourceType := [ "Prefix", "Archive", "File" ]
enum_ExitBehavior := [ "FAIL", "RESTART" ]
enum_FailureBehavior := [ "Fail", "Continue" ]
enum_UploadBehavior := [ "UPLOAD_ON_TERMINATE", "UPLOAD_ROLLING_AUTO_REMOVE" ]

valid {
    input.Body.clientRequestToken == STRING
    input.Body.outputLocation.s3Bucket == STRING
    input.Body.outputLocation.s3Prefix == STRING
    input.Body.loggingConfig.recordAllRosTopics == BOOLEAN
    input.Body.maxJobDurationInSeconds == LONG
    input.Body.iamRole == STRING
    input.Body.failureBehavior == enum_FailureBehavior[_]
    input.Body.robotApplications[_].application == STRING
    input.Body.robotApplications[_].applicationVersion == STRING
    input.Body.robotApplications[_].launchConfig.packageName == STRING
    input.Body.robotApplications[_].launchConfig.launchFile == STRING
    input.Body.robotApplications[_].launchConfig.environmentVariables.STRING == STRING
    input.Body.robotApplications[_].launchConfig.portForwardingConfig.portMappings[_].jobPort == INTEGER
    input.Body.robotApplications[_].launchConfig.portForwardingConfig.portMappings[_].applicationPort == INTEGER
    input.Body.robotApplications[_].launchConfig.portForwardingConfig.portMappings[_].enableOnPublicIp == BOOLEAN
    input.Body.robotApplications[_].launchConfig.streamUI == BOOLEAN
    input.Body.robotApplications[_].launchConfig.command[_] == STRING
    input.Body.robotApplications[_].uploadConfigurations[_].name == STRING
    input.Body.robotApplications[_].uploadConfigurations[_].path == STRING
    input.Body.robotApplications[_].uploadConfigurations[_].uploadBehavior == enum_UploadBehavior[_]
    input.Body.robotApplications[_].useDefaultUploadConfigurations == BOOLEAN
    input.Body.robotApplications[_].tools[_].streamUI == BOOLEAN
    input.Body.robotApplications[_].tools[_].name == STRING
    input.Body.robotApplications[_].tools[_].command == STRING
    input.Body.robotApplications[_].tools[_].streamOutputToCloudWatch == BOOLEAN
    input.Body.robotApplications[_].tools[_].exitBehavior == enum_ExitBehavior[_]
    input.Body.robotApplications[_].useDefaultTools == BOOLEAN
    input.Body.simulationApplications[_].application == STRING
    input.Body.simulationApplications[_].applicationVersion == STRING
    input.Body.simulationApplications[_].launchConfig.packageName == STRING
    input.Body.simulationApplications[_].launchConfig.launchFile == STRING
    input.Body.simulationApplications[_].launchConfig.environmentVariables.STRING == STRING
    input.Body.simulationApplications[_].launchConfig.portForwardingConfig.portMappings[_].jobPort == INTEGER
    input.Body.simulationApplications[_].launchConfig.portForwardingConfig.portMappings[_].applicationPort == INTEGER
    input.Body.simulationApplications[_].launchConfig.portForwardingConfig.portMappings[_].enableOnPublicIp == BOOLEAN
    input.Body.simulationApplications[_].launchConfig.streamUI == BOOLEAN
    input.Body.simulationApplications[_].launchConfig.command[_] == STRING
    input.Body.simulationApplications[_].uploadConfigurations[_].name == STRING
    input.Body.simulationApplications[_].uploadConfigurations[_].path == STRING
    input.Body.simulationApplications[_].uploadConfigurations[_].uploadBehavior == enum_UploadBehavior[_]
    input.Body.simulationApplications[_].worldConfigs[_].world == STRING
    input.Body.simulationApplications[_].useDefaultUploadConfigurations == BOOLEAN
    input.Body.simulationApplications[_].tools[_].streamUI == BOOLEAN
    input.Body.simulationApplications[_].tools[_].name == STRING
    input.Body.simulationApplications[_].tools[_].command == STRING
    input.Body.simulationApplications[_].tools[_].streamOutputToCloudWatch == BOOLEAN
    input.Body.simulationApplications[_].tools[_].exitBehavior == enum_ExitBehavior[_]
    input.Body.simulationApplications[_].useDefaultTools == BOOLEAN
    input.Body.dataSources[_].name == STRING
    input.Body.dataSources[_].s3Bucket == STRING
    input.Body.dataSources[_].s3Keys[_] == STRING
    input.Body.dataSources[_].type == enum_DataSourceType[_]
    input.Body.dataSources[_].destination == STRING
    input.Body.tags.STRING == STRING
    input.Body.vpcConfig.subnets[_] == STRING
    input.Body.vpcConfig.securityGroups[_] == STRING
    input.Body.vpcConfig.assignPublicIp == BOOLEAN
    input.Body.compute.simulationUnitLimit == INTEGER
    input.Body.compute.computeType == enum_ComputeType[_]
    input.Body.compute.gpuUnitLimit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorldExportJob

valid {
    input.Body.clientRequestToken == STRING
    input.Body.worlds[_] == STRING
    input.Body.outputLocation.s3Bucket == STRING
    input.Body.outputLocation.s3Prefix == STRING
    input.Body.iamRole == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorldGenerationJob

valid {
    input.Body.clientRequestToken == STRING
    input.Body.template == STRING
    input.Body.worldCount.floorplanCount == INTEGER
    input.Body.worldCount.interiorCountPerFloorplan == INTEGER
    input.Body.tags.STRING == STRING
    input.Body.worldTags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorldTemplate

valid {
    input.Body.clientRequestToken == STRING
    input.Body.name == STRING
    input.Body.templateBody == STRING
    input.Body.templateLocation.s3Bucket == STRING
    input.Body.templateLocation.s3Key == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteFleet

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

DeleteRobot

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

DeleteRobotApplication

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

DeleteSimulationApplication

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

DeleteWorldTemplate

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

DeregisterRobot

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

DescribeDeploymentJob

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

DescribeFleet

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

DescribeRobot

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

DescribeRobotApplication

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

DescribeSimulationApplication

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

DescribeSimulationJob

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

DescribeSimulationJobBatch

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

DescribeWorld

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

DescribeWorldExportJob

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

DescribeWorldGenerationJob

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

DescribeWorldTemplate

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

GetWorldTemplateBody

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

ListDeploymentJobs

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

ListFleets

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

ListRobotApplications

valid {
    input.Body.versionQualifier == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.filters[_].name == STRING
    input.Body.filters[_].values[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRobots

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

ListSimulationApplications

valid {
    input.Body.versionQualifier == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.filters[_].name == STRING
    input.Body.filters[_].values[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSimulationJobBatches

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

ListSimulationJobs

valid {
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.filters[_].name == STRING
    input.Body.filters[_].values[_] == 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
}

ListWorldExportJobs

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

ListWorldGenerationJobs

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

ListWorldTemplates

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

ListWorlds

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

RegisterRobot

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

RestartSimulationJob

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

StartSimulationJobBatch

enum_ComputeType := [ "CPU", "GPU_AND_CPU" ]
enum_DataSourceType := [ "Prefix", "Archive", "File" ]
enum_ExitBehavior := [ "FAIL", "RESTART" ]
enum_FailureBehavior := [ "Fail", "Continue" ]
enum_UploadBehavior := [ "UPLOAD_ON_TERMINATE", "UPLOAD_ROLLING_AUTO_REMOVE" ]

valid {
    input.Body.clientRequestToken == STRING
    input.Body.batchPolicy.timeoutInSeconds == LONG
    input.Body.batchPolicy.maxConcurrency == INTEGER
    input.Body.createSimulationJobRequests[_].outputLocation.s3Bucket == STRING
    input.Body.createSimulationJobRequests[_].outputLocation.s3Prefix == STRING
    input.Body.createSimulationJobRequests[_].loggingConfig.recordAllRosTopics == BOOLEAN
    input.Body.createSimulationJobRequests[_].maxJobDurationInSeconds == LONG
    input.Body.createSimulationJobRequests[_].iamRole == STRING
    input.Body.createSimulationJobRequests[_].failureBehavior == enum_FailureBehavior[_]
    input.Body.createSimulationJobRequests[_].useDefaultApplications == BOOLEAN
    input.Body.createSimulationJobRequests[_].robotApplications[_].application == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].applicationVersion == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.packageName == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.launchFile == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.environmentVariables.STRING == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.portForwardingConfig.portMappings[_].jobPort == INTEGER
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.portForwardingConfig.portMappings[_].applicationPort == INTEGER
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.portForwardingConfig.portMappings[_].enableOnPublicIp == BOOLEAN
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.streamUI == BOOLEAN
    input.Body.createSimulationJobRequests[_].robotApplications[_].launchConfig.command[_] == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].uploadConfigurations[_].name == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].uploadConfigurations[_].path == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].uploadConfigurations[_].uploadBehavior == enum_UploadBehavior[_]
    input.Body.createSimulationJobRequests[_].robotApplications[_].useDefaultUploadConfigurations == BOOLEAN
    input.Body.createSimulationJobRequests[_].robotApplications[_].tools[_].streamUI == BOOLEAN
    input.Body.createSimulationJobRequests[_].robotApplications[_].tools[_].name == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].tools[_].command == STRING
    input.Body.createSimulationJobRequests[_].robotApplications[_].tools[_].streamOutputToCloudWatch == BOOLEAN
    input.Body.createSimulationJobRequests[_].robotApplications[_].tools[_].exitBehavior == enum_ExitBehavior[_]
    input.Body.createSimulationJobRequests[_].robotApplications[_].useDefaultTools == BOOLEAN
    input.Body.createSimulationJobRequests[_].simulationApplications[_].application == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].applicationVersion == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.packageName == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.launchFile == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.environmentVariables.STRING == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.portForwardingConfig.portMappings[_].jobPort == INTEGER
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.portForwardingConfig.portMappings[_].applicationPort == INTEGER
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.portForwardingConfig.portMappings[_].enableOnPublicIp == BOOLEAN
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.streamUI == BOOLEAN
    input.Body.createSimulationJobRequests[_].simulationApplications[_].launchConfig.command[_] == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].uploadConfigurations[_].name == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].uploadConfigurations[_].path == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].uploadConfigurations[_].uploadBehavior == enum_UploadBehavior[_]
    input.Body.createSimulationJobRequests[_].simulationApplications[_].worldConfigs[_].world == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].useDefaultUploadConfigurations == BOOLEAN
    input.Body.createSimulationJobRequests[_].simulationApplications[_].tools[_].streamUI == BOOLEAN
    input.Body.createSimulationJobRequests[_].simulationApplications[_].tools[_].name == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].tools[_].command == STRING
    input.Body.createSimulationJobRequests[_].simulationApplications[_].tools[_].streamOutputToCloudWatch == BOOLEAN
    input.Body.createSimulationJobRequests[_].simulationApplications[_].tools[_].exitBehavior == enum_ExitBehavior[_]
    input.Body.createSimulationJobRequests[_].simulationApplications[_].useDefaultTools == BOOLEAN
    input.Body.createSimulationJobRequests[_].dataSources[_].name == STRING
    input.Body.createSimulationJobRequests[_].dataSources[_].s3Bucket == STRING
    input.Body.createSimulationJobRequests[_].dataSources[_].s3Keys[_] == STRING
    input.Body.createSimulationJobRequests[_].dataSources[_].type == enum_DataSourceType[_]
    input.Body.createSimulationJobRequests[_].dataSources[_].destination == STRING
    input.Body.createSimulationJobRequests[_].vpcConfig.subnets[_] == STRING
    input.Body.createSimulationJobRequests[_].vpcConfig.securityGroups[_] == STRING
    input.Body.createSimulationJobRequests[_].vpcConfig.assignPublicIp == BOOLEAN
    input.Body.createSimulationJobRequests[_].compute.simulationUnitLimit == INTEGER
    input.Body.createSimulationJobRequests[_].compute.computeType == enum_ComputeType[_]
    input.Body.createSimulationJobRequests[_].compute.gpuUnitLimit == INTEGER
    input.Body.createSimulationJobRequests[_].tags.STRING == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SyncDeploymentJob

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

TagResource

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

UntagResource

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

UpdateRobotApplication

enum_Architecture := [ "X86_64", "ARM64", "ARMHF" ]
enum_RobotSoftwareSuiteType := [ "ROS", "ROS2", "General" ]
enum_RobotSoftwareSuiteVersionType := [ "Kinetic", "Melodic", "Dashing", "Foxy" ]

valid {
    input.Body.application == STRING
    input.Body.sources[_].s3Bucket == STRING
    input.Body.sources[_].s3Key == STRING
    input.Body.sources[_].architecture == enum_Architecture[_]
    input.Body.robotSoftwareSuite.name == enum_RobotSoftwareSuiteType[_]
    input.Body.robotSoftwareSuite.version == enum_RobotSoftwareSuiteVersionType[_]
    input.Body.currentRevisionId == STRING
    input.Body.environment.uri == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSimulationApplication

enum_Architecture := [ "X86_64", "ARM64", "ARMHF" ]
enum_RenderingEngineType := [ "OGRE" ]
enum_RobotSoftwareSuiteType := [ "ROS", "ROS2", "General" ]
enum_RobotSoftwareSuiteVersionType := [ "Kinetic", "Melodic", "Dashing", "Foxy" ]
enum_SimulationSoftwareSuiteType := [ "Gazebo", "RosbagPlay", "SimulationRuntime" ]

valid {
    input.Body.application == STRING
    input.Body.sources[_].s3Bucket == STRING
    input.Body.sources[_].s3Key == STRING
    input.Body.sources[_].architecture == enum_Architecture[_]
    input.Body.simulationSoftwareSuite.name == enum_SimulationSoftwareSuiteType[_]
    input.Body.simulationSoftwareSuite.version == STRING
    input.Body.robotSoftwareSuite.name == enum_RobotSoftwareSuiteType[_]
    input.Body.robotSoftwareSuite.version == enum_RobotSoftwareSuiteVersionType[_]
    input.Body.renderingEngine.name == enum_RenderingEngineType[_]
    input.Body.renderingEngine.version == STRING
    input.Body.currentRevisionId == STRING
    input.Body.environment.uri == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWorldTemplate

valid {
    input.Body.template == STRING
    input.Body.name == STRING
    input.Body.templateBody == STRING
    input.Body.templateLocation.s3Bucket == STRING
    input.Body.templateLocation.s3Key == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}