code: public static PropertyKey fromString(String input) {
      // First try to parse it as default key
      PropertyKey key = DEFAULT_KEYS_MAP.get(input);
      if (key != null) {
        return key;
      }
      // Try to match input with alias
      key = DEFAULT_ALIAS_MAP.get(input);
      if (key != null) {
        return key;
      }
      // Try different templates and see if any template matches
      for (Template template : Template.values()) {
        key = template.getPropertyKey(input);
        if (key != null) {
          return key;
        }
      }
      throw new IllegalArgumentException(
          ExceptionMessage.INVALID_CONFIGURATION_KEY.getMessage(input));
    }
docs: Parses a string and return its corresponding {@link PropertyKey}, throwing exception if no such
  a property can be found.
  
  @param input string of property key
  @return corresponding property