batch.projects.locations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.jobs.cancel

valid {
    input.Body.requestId == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.jobs.create

enum_InstancePolicyProvisioningModel := [ "PROVISIONING_MODEL_UNSPECIFIED", "STANDARD", "SPOT", "PREEMPTIBLE" ]
enum_LifecyclePolicyAction := [ "ACTION_UNSPECIFIED", "RETRY_TASK", "FAIL_TASK" ]
enum_LogsPolicyDestination := [ "DESTINATION_UNSPECIFIED", "CLOUD_LOGGING", "PATH" ]
enum_MessageNewJobState := [ "STATE_UNSPECIFIED", "QUEUED", "SCHEDULED", "RUNNING", "SUCCEEDED", "FAILED", "DELETION_IN_PROGRESS", "CANCELLATION_IN_PROGRESS", "CANCELLED" ]
enum_MessageNewTaskState := [ "STATE_UNSPECIFIED", "PENDING", "ASSIGNED", "RUNNING", "FAILED", "SUCCEEDED", "UNEXECUTED" ]
enum_MessageType := [ "TYPE_UNSPECIFIED", "JOB_STATE_CHANGED", "TASK_STATE_CHANGED" ]
enum_TaskGroupSchedulingPolicy := [ "SCHEDULING_POLICY_UNSPECIFIED", "AS_SOON_AS_POSSIBLE", "IN_ORDER" ]

valid {
    input.Body.allocationPolicy.instances[_].blockProjectSshKeys == BOOLEAN
    input.Body.allocationPolicy.instances[_].installGpuDrivers == BOOLEAN
    input.Body.allocationPolicy.instances[_].installOpsAgent == BOOLEAN
    input.Body.allocationPolicy.instances[_].instanceTemplate == STRING
    input.Body.allocationPolicy.instances[_].policy.accelerators[_].count == STRING
    input.Body.allocationPolicy.instances[_].policy.accelerators[_].driverVersion == STRING
    input.Body.allocationPolicy.instances[_].policy.accelerators[_].installGpuDrivers == BOOLEAN
    input.Body.allocationPolicy.instances[_].policy.accelerators[_].type == STRING
    input.Body.allocationPolicy.instances[_].policy.bootDisk.diskInterface == STRING
    input.Body.allocationPolicy.instances[_].policy.bootDisk.image == STRING
    input.Body.allocationPolicy.instances[_].policy.bootDisk.sizeGb == STRING
    input.Body.allocationPolicy.instances[_].policy.bootDisk.snapshot == STRING
    input.Body.allocationPolicy.instances[_].policy.bootDisk.type == STRING
    input.Body.allocationPolicy.instances[_].policy.disks[_].deviceName == STRING
    input.Body.allocationPolicy.instances[_].policy.disks[_].existingDisk == STRING
    input.Body.allocationPolicy.instances[_].policy.disks[_].newDisk.diskInterface == STRING
    input.Body.allocationPolicy.instances[_].policy.disks[_].newDisk.image == STRING
    input.Body.allocationPolicy.instances[_].policy.disks[_].newDisk.sizeGb == STRING
    input.Body.allocationPolicy.instances[_].policy.disks[_].newDisk.snapshot == STRING
    input.Body.allocationPolicy.instances[_].policy.disks[_].newDisk.type == STRING
    input.Body.allocationPolicy.instances[_].policy.machineType == STRING
    input.Body.allocationPolicy.instances[_].policy.minCpuPlatform == STRING
    input.Body.allocationPolicy.instances[_].policy.provisioningModel == enum_InstancePolicyProvisioningModel[_]
    input.Body.allocationPolicy.instances[_].policy.reservation == STRING
    input.Body.allocationPolicy.labels.STRING == STRING
    input.Body.allocationPolicy.location.allowedLocations[_] == STRING
    input.Body.allocationPolicy.network.networkInterfaces[_].network == STRING
    input.Body.allocationPolicy.network.networkInterfaces[_].noExternalIpAddress == BOOLEAN
    input.Body.allocationPolicy.network.networkInterfaces[_].subnetwork == STRING
    input.Body.allocationPolicy.placement.collocation == STRING
    input.Body.allocationPolicy.placement.maxDistance == STRING
    input.Body.allocationPolicy.serviceAccount.email == STRING
    input.Body.allocationPolicy.serviceAccount.scopes[_] == STRING
    input.Body.allocationPolicy.tags[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.logsPolicy.cloudLoggingOption.useGenericTaskMonitoredResource == BOOLEAN
    input.Body.logsPolicy.destination == enum_LogsPolicyDestination[_]
    input.Body.logsPolicy.logsPath == STRING
    input.Body.notifications[_].message.newJobState == enum_MessageNewJobState[_]
    input.Body.notifications[_].message.newTaskState == enum_MessageNewTaskState[_]
    input.Body.notifications[_].message.type == enum_MessageType[_]
    input.Body.notifications[_].pubsubTopic == STRING
    input.Body.priority == STRING
    input.Body.taskGroups[_].parallelism == STRING
    input.Body.taskGroups[_].permissiveSsh == BOOLEAN
    input.Body.taskGroups[_].requireHostsFile == BOOLEAN
    input.Body.taskGroups[_].runAsNonRoot == BOOLEAN
    input.Body.taskGroups[_].schedulingPolicy == enum_TaskGroupSchedulingPolicy[_]
    input.Body.taskGroups[_].taskCount == STRING
    input.Body.taskGroups[_].taskCountPerNode == STRING
    input.Body.taskGroups[_].taskEnvironments[_].encryptedVariables.cipherText == STRING
    input.Body.taskGroups[_].taskEnvironments[_].encryptedVariables.keyName == STRING
    input.Body.taskGroups[_].taskEnvironments[_].secretVariables.STRING == STRING
    input.Body.taskGroups[_].taskEnvironments[_].variables.STRING == STRING
    input.Body.taskGroups[_].taskSpec.computeResource.bootDiskMib == STRING
    input.Body.taskGroups[_].taskSpec.computeResource.cpuMilli == STRING
    input.Body.taskGroups[_].taskSpec.computeResource.memoryMib == STRING
    input.Body.taskGroups[_].taskSpec.environment.encryptedVariables.cipherText == STRING
    input.Body.taskGroups[_].taskSpec.environment.encryptedVariables.keyName == STRING
    input.Body.taskGroups[_].taskSpec.environment.secretVariables.STRING == STRING
    input.Body.taskGroups[_].taskSpec.environment.variables.STRING == STRING
    input.Body.taskGroups[_].taskSpec.environments.STRING == STRING
    input.Body.taskGroups[_].taskSpec.lifecyclePolicies[_].action == enum_LifecyclePolicyAction[_]
    input.Body.taskGroups[_].taskSpec.lifecyclePolicies[_].actionCondition.exitCodes[_] == INTEGER
    input.Body.taskGroups[_].taskSpec.maxRetryCount == INTEGER
    input.Body.taskGroups[_].taskSpec.maxRunDuration == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].alwaysRun == BOOLEAN
    input.Body.taskGroups[_].taskSpec.runnables[_].background == BOOLEAN
    input.Body.taskGroups[_].taskSpec.runnables[_].barrier.name == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].container.blockExternalNetwork == BOOLEAN
    input.Body.taskGroups[_].taskSpec.runnables[_].container.commands[_] == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].container.enableImageStreaming == BOOLEAN
    input.Body.taskGroups[_].taskSpec.runnables[_].container.entrypoint == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].container.imageUri == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].container.options == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].container.password == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].container.username == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].container.volumes[_] == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].displayName == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].environment.encryptedVariables.cipherText == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].environment.encryptedVariables.keyName == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].environment.secretVariables.STRING == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].environment.variables.STRING == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].ignoreExitStatus == BOOLEAN
    input.Body.taskGroups[_].taskSpec.runnables[_].labels.STRING == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].script.path == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].script.text == STRING
    input.Body.taskGroups[_].taskSpec.runnables[_].timeout == STRING
    input.Body.taskGroups[_].taskSpec.volumes[_].deviceName == STRING
    input.Body.taskGroups[_].taskSpec.volumes[_].gcs.remotePath == STRING
    input.Body.taskGroups[_].taskSpec.volumes[_].mountOptions[_] == STRING
    input.Body.taskGroups[_].taskSpec.volumes[_].mountPath == STRING
    input.Body.taskGroups[_].taskSpec.volumes[_].nfs.remotePath == STRING
    input.Body.taskGroups[_].taskSpec.volumes[_].nfs.server == STRING
    input.ReqMap.parent == STRING
    input.Qs.jobId == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.jobs.delete

valid {
    input.ReqMap.name == STRING
    input.Qs.reason == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.jobs.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.jobs.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.jobs.taskGroups.tasks.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.jobs.taskGroups.tasks.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.extraLocationTypes == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.operations.cancel

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.operations.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

batch.projects.locations.state.report

enum_AgentInfoState := [ "AGENT_STATE_UNSPECIFIED", "AGENT_STARTING", "AGENT_RUNNING", "AGENT_STOPPED" ]
enum_StatusEventTaskState := [ "STATE_UNSPECIFIED", "PENDING", "ASSIGNED", "RUNNING", "FAILED", "SUCCEEDED", "UNEXECUTED" ]
enum_TaskStatusState := [ "STATE_UNSPECIFIED", "PENDING", "ASSIGNED", "RUNNING", "FAILED", "SUCCEEDED", "UNEXECUTED" ]

valid {
    input.Body.agentInfo.jobId == STRING
    input.Body.agentInfo.reportTime == STRING
    input.Body.agentInfo.state == enum_AgentInfoState[_]
    input.Body.agentInfo.taskGroupId == STRING
    input.Body.agentInfo.tasks[_].runnable == STRING
    input.Body.agentInfo.tasks[_].taskId == STRING
    input.Body.agentInfo.tasks[_].taskStatus.state == enum_TaskStatusState[_]
    input.Body.agentInfo.tasks[_].taskStatus.statusEvents[_].description == STRING
    input.Body.agentInfo.tasks[_].taskStatus.statusEvents[_].eventTime == STRING
    input.Body.agentInfo.tasks[_].taskStatus.statusEvents[_].taskExecution.exitCode == INTEGER
    input.Body.agentInfo.tasks[_].taskStatus.statusEvents[_].taskState == enum_StatusEventTaskState[_]
    input.Body.agentInfo.tasks[_].taskStatus.statusEvents[_].type == STRING
    input.Body.agentTimingInfo.agentStartupTime == STRING
    input.Body.agentTimingInfo.bootTime == STRING
    input.Body.agentTimingInfo.scriptStartupTime == STRING
    input.Body.metadata.creationTime == STRING
    input.Body.metadata.creator == STRING
    input.Body.metadata.imageVersion == STRING
    input.Body.metadata.instance == STRING
    input.Body.metadata.instanceId == STRING
    input.Body.metadata.instancePreemptionNoticeReceived == BOOLEAN
    input.Body.metadata.machineType == STRING
    input.Body.metadata.osRelease.STRING == STRING
    input.Body.metadata.version == STRING
    input.Body.metadata.zone == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}