code: @PublicEvolving
  	public <T extends Enum<T>> T getEnum(
  			final Class<T> enumClass,
  			final ConfigOption<String> configOption) {
  		checkNotNull(enumClass, "enumClass must not be null");
  		checkNotNull(configOption, "configOption must not be null");
  
  		final String configValue = getString(configOption);
  		try {
  			return Enum.valueOf(enumClass, configValue.toUpperCase(Locale.ROOT));
  		} catch (final IllegalArgumentException | NullPointerException e) {
  			final String errorMessage = String.format("Value for config option %s must be one of %s (was %s)",
  				configOption.key(),
  				Arrays.toString(enumClass.getEnumConstants()),
  				configValue);
  			throw new IllegalArgumentException(errorMessage, e);
  		}
  	}
docs: Returns the value associated with the given config option as an enum.
  
  @param enumClass    The return enum class
  @param configOption The configuration option
  @throws IllegalArgumentException If the string associated with the given config option cannot
  be parsed as a value of the provided enum class.