docs: public BoxLock lock(Date expiresAt, boolean isDownloadPrevented) {
          String queryString = new QueryStringBuilder().appendParam("fields", "lock").toString();
          URL url = FILE_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID());
          BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "PUT");
  
          JsonObject lockConfig = new JsonObject();
          lockConfig.add("type", "lock");
          if (expiresAt != null) {
              lockConfig.add("expires_at", BoxDateFormat.format(expiresAt));
          }
          lockConfig.add("is_download_prevented", isDownloadPrevented);
  
          JsonObject requestJSON = new JsonObject();
          requestJSON.add("lock", lockConfig);
          request.setBody(requestJSON.toString());
  
          BoxJSONResponse response = (BoxJSONResponse) request.send();
  
          JsonObject responseJSON = JsonObject.readFrom(response.getJSON());
          JsonValue lockValue = responseJSON.get("lock");
          JsonObject lockJSON = JsonObject.readFrom(lockValue.toString());
  
          return new BoxLock(lockJSON, this.getAPI());
      }