docs: @ShellMethod(key = "find", value = "Look up properties associated with a CAS group/module.")
      public void find(
          @ShellOption(value = {"name"},
              help = "Property name regex pattern",
              defaultValue = ".+") final String name,
          @ShellOption(value = {"strict-match"},
              help = "Whether pattern should be done in strict-mode which means "
                  + "the matching engine tries to match the entire region for the query.") final boolean strict,
          @ShellOption(value = {"summary"},
              help = "Whether results should be presented in summarized mode") final boolean summary) {
  
          val results = find(strict, RegexUtils.createPattern(name));
  
          if (results.isEmpty()) {
              LOGGER.info("Could not find any results matching the criteria");
              return;
          }
  
          results.forEach((k, v) -> {
              if (summary) {
                  LOGGER.info("{}={}", k, v.getDefaultValue());
                  val value = StringUtils.normalizeSpace(v.getShortDescription());
                  if (StringUtils.isNotBlank(value)) {
                      LOGGER.info("{}", value);
                  }
              } else {
                  LOGGER.info("Property: {}", k);
                  LOGGER.info("Group: {}", StringUtils.substringBeforeLast(k, "."));
                  LOGGER.info("Default Value: {}", ObjectUtils.defaultIfNull(v.getDefaultValue(), "[blank]"));
                  LOGGER.info("Type: {}", v.getType());
                  LOGGER.info("Summary: {}", StringUtils.normalizeSpace(v.getShortDescription()));
                  LOGGER.info("Description: {}", StringUtils.normalizeSpace(v.getDescription()));
                  LOGGER.info("Deprecated: {}", BooleanUtils.toStringYesNo(v.isDeprecated()));
              }
              LOGGER.info("-".repeat(SEP_LINE_LENGTH));
          });
      }