@Override
    protected void parse(Map<String, String> options) {
        this.options = (TreeMap) options;
        apiManagerUri = getRequiredUri(
             keys("apimanManagerUrl"),
             this::hasRequiredUriComponents,
             "Apiman Manager endpoint must contain protocol/scheme (e.g. http), host, "
                  + "port (e.g. 8080), and any path segment (e.g. /apiman). "
                  + "Examples: https://localhost:8443/apiman or http://localhost:8080/apiman"
        );
        this.clientId = getString(
             keys("clientId"),
             "apiman-service-account",
             Predicates.noWhitespace(),
             Predicates.noWhitespaceMsg()
        );
    }
Options for Apiman's Keycloak event listener

@author Marc Savy {@literal <marc@blackparrotlabs.io>}
sso/keycloak/extensions/src/main/java/io/apiman/manager/sso/keycloak/event/ApimanEventListenerOptions.java