@Override
  public <T extends DataModel> T findData(UUID jobId, String key, Class<T> type) {
    Key entityKey = getDataKey(jobId, key);
    Entity entity = datastore.get(entityKey);
    if (entity == null) {
      return null;
    }
    String serializedEntity = entity.getString(type.getName());
    try {
      return objectMapper.readValue(serializedEntity, type);
    } catch (IOException t) {
      throw new RuntimeException("Failed to deserialize entity: " + serializedEntity, t);
    }
  }
Finds the ID of the first {@link PortabilityJob} in state {@code jobState} in Datastore, or
null if none found.

<p>TODO(rtannenbaum): Order by creation time so we can process jobs in a FIFO manner. Trying to
OrderBy.asc("created") currently fails because we don't yet have an index set up.
extensions/cloud/portability-cloud-google/src/main/java/org/datatransferproject/cloud/google/GoogleJobStore.java