public Map<String, Object> toMap() {
Map<String, Object> tree = new HashMap<>();
tree.put("datasetId", Integer.toString(datasetId));
tree.put("dataverseName", dataverseName);
tree.put("datasetName", datasetName);
tree.put("recordTypeDataverseName", recordTypeDataverseName);
tree.put("recordTypeName", recordTypeName);
tree.put("nodeGroupName", nodeGroupName);
tree.put("compactionPolicyFactory", compactionPolicyFactory);
tree.put("hints", hints);
tree.put("compactionPolicyProperties", compactionPolicyProperties);
tree.put("datasetType", datasetType.name());
tree.put("datasetDetails", datasetDetails.toString());
tree.put("metaTypeDataverseName", metaTypeDataverseName);
tree.put("metaTypeName", metaTypeName);
tree.put("pendingOp", MetadataUtil.pendingOpToString(pendingOp));
tree.put("rebalanceCount", rebalanceCount);
tree.put("compressionScheme", compressionScheme);
return tree;
}