package com.hubspot.blazar.config; import java.util.Collections; import java.util.Set; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; public class BlazarSlackDirectMessageConfiguration { private final Set<String> whitelistedUserEmails; private final Set<String> blacklistedUserEmails; private final Set<String> ignoredBranches; /** * @param whitelistedUserEmails The list of users to directly slack when a build they pushed build fails * @param blacklistedUserEmails list of users not to slack when a build they pushed build fails * @param ignoredBranches The list of branches not to send direct message build alerts for. Useful to silence notifications for mass pull-requests. */ @JsonCreator public BlazarSlackDirectMessageConfiguration(@JsonProperty("whitelistedUserEmails") Set<String> whitelistedUserEmails, @JsonProperty("blacklistedUserEmails") Set<String> blacklistedUserEmails, @JsonProperty("ignoredBranches") Set<String> ignoredBranches) { this.whitelistedUserEmails = MoreObjects.firstNonNull(whitelistedUserEmails, Collections.emptySet()); this.blacklistedUserEmails = MoreObjects.firstNonNull(blacklistedUserEmails, Collections.emptySet()); this.ignoredBranches = MoreObjects.firstNonNull(ignoredBranches, Collections.emptySet()); } public Set<String> getWhitelistedUserEmails() { return whitelistedUserEmails; } public Set<String> getBlacklistedUserEmails() { return blacklistedUserEmails; } public Set<String> getIgnoredBranches() { return ignoredBranches; } }