public static ReconciliationRequest valueOf(String json) throws JsonParseException, JsonMappingException, IOException{
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readValue(json, JsonNode.class);
//get query
String query = node.path("query").getTextValue();
//get types. can be a single string or an array of strings
String[] types;
JsonNode typesNode = node.path("type");
if(! typesNode.isMissingNode()){