docs: private TSMeta parseTSMetaQS(final HttpQuery query) {
      final String tsuid = query.getQueryStringParam("tsuid");
      final TSMeta meta;
      if (tsuid != null && !tsuid.isEmpty()) {
        meta = new TSMeta(tsuid);
      } else {
        meta = new TSMeta();
      }
      
      final String display_name = query.getQueryStringParam("display_name");
      if (display_name != null) {
        meta.setDisplayName(display_name);
      }
    
      final String description = query.getQueryStringParam("description");
      if (description != null) {
        meta.setDescription(description);
      }
      
      final String notes = query.getQueryStringParam("notes");
      if (notes != null) {
        meta.setNotes(notes);
      }
      
      final String units = query.getQueryStringParam("units");
      if (units != null) {
        meta.setUnits(units);
      }
      
      final String data_type = query.getQueryStringParam("data_type");
      if (data_type != null) {
        meta.setDataType(data_type);
      }
      
      final String retention = query.getQueryStringParam("retention");
      if (retention != null && !retention.isEmpty()) {
        try {
          meta.setRetention(Integer.parseInt(retention));
        } catch (NumberFormatException nfe) {
          throw new BadRequestException("Unable to parse 'retention' value");
        }
      }
      
      final String max = query.getQueryStringParam("max");
      if (max != null && !max.isEmpty()) {
        try {
          meta.setMax(Float.parseFloat(max));
        } catch (NumberFormatException nfe) {
          throw new BadRequestException("Unable to parse 'max' value");
        }
      }
      
      final String min = query.getQueryStringParam("min");
      if (min != null && !min.isEmpty()) {
        try {
          meta.setMin(Float.parseFloat(min));
        } catch (NumberFormatException nfe) {
          throw new BadRequestException("Unable to parse 'min' value");
        }
      }
      
      return meta;
    }