public URI getRequiredUri(List<String> keyAliases, Predicate<URI> constraint, String message) {
        return Optional
             .ofNullable(getUri(keyAliases, null, constraint, message))
             .orElseThrow(() -> InvalidOptionConfigurationException.requiredValue(keyAliases, "URI"));
    }
As {@link #getUri(List, URI, Predicate, String)}, but additionally throw an exception if no value is provided.

@param keyAliases   the key aliases
@param constraint   the constraint that the value should obey
@param message      a human-readable message to describe a constraint failure
@return the parsed path

@throws InvalidOptionConfigurationException if a constraint violation occurs or if no value provided.
common/config/src/main/java/io/apiman/common/config/options/GenericOptionsParser.java