code: public BoxFile.Info restoreFile(String fileID, String newName, String newParentID) {
          JsonObject requestJSON = new JsonObject();
  
          if (newName != null) {
              requestJSON.add("name", newName);
          }
  
          if (newParentID != null) {
              JsonObject parent = new JsonObject();
              parent.add("id", newParentID);
              requestJSON.add("parent", parent);
          }
  
          URL url = RESTORE_FILE_URL_TEMPLATE.build(this.api.getBaseURL(), fileID);
          BoxJSONRequest request = new BoxJSONRequest(this.api, url, "POST");
          request.setBody(requestJSON.toString());
          BoxJSONResponse response = (BoxJSONResponse) request.send();
          JsonObject responseJSON = JsonObject.readFrom(response.getJSON());
  
          BoxFile restoredFile = new BoxFile(this.api, responseJSON.get("id").asString());
          return restoredFile.new Info(responseJSON);
      }
docs: Restores a trashed file to a new location with a new name.
  @param  fileID      the ID of the trashed file.
  @param  newName     an optional new name to give the file. This can be null to use the file's original name.
  @param  newParentID an optional new parent ID for the file. This can be null to use the file's original
  parent.
  @return             info about the restored file.