docs: @Override
    public <T extends IncomingDataPoint> List<T> parsePutV1(
        final Class<T> type, final TypeReference<ArrayList<T>> typeReference) {
      if (!query.hasContent()) {
        throw new BadRequestException("Missing request content");
      }
  
      // convert to a string so we can handle character encoding properly
      final String content = query.getContent().trim();
      final int firstbyte = content.charAt(0);
      try {
        if (firstbyte == '{') {
          final T dp =
            JSON.parseToObject(content, type);
          final ArrayList<T> dps =
            new ArrayList<T>(1);
          dps.add(dp);
          return dps;
        } else if (firstbyte == '[') {
          return JSON.parseToObject(content, typeReference);
        } else {
          throw new BadRequestException("The JSON must start as an object or an array");
        }
      } catch (IllegalArgumentException iae) {
        throw new BadRequestException("Unable to parse the given JSON", iae);
      }
    }