@Override
    protected void parse(Map<String, String> options) {
        super.parse(options);
        this.enabled = getBool(keys("enable"), false);
        if (enabled) {
            this.mock = getBool(keys(PREFIX + "mock"), false);
            this.ssl = getBool(keys(PREFIX + "ssl"), true);
            this.startTLSMode = getEnum(keys(PREFIX + "startTLSMode"), StartTLSEnum.OPTIONAL, StartTLSEnum::toValue);
            this.fromName = getRequiredString(keys(PREFIX + "fromName"), anyOk(), "");
            this.fromEmail = getRequiredString(keys(PREFIX + "fromEmail"), anyOk(), "");
            this.host = getRequiredString(keys(PREFIX + "host"), anyOk(), "");
            this.port = getInt(keys(PREFIX + "port"), 587, greaterThanZeroInt(), greaterThanZeroMsg());
            this.username = getString(keys(PREFIX + "username"), null, Predicates.anyOk(), "");
            this.password = getString(keys(PREFIX + "password"), null, Predicates.anyOk(), "");
        }
    }
@author Marc Savy {@literal <marc@blackparrotlabs.io>}
manager/api/rest-impl/src/main/java/io/apiman/manager/api/notifications/email/SmtpEmailConfiguration.java