
com.hubspot.slack.client.methods.params.chat.AbstractChatMessageParams Maven / Gradle / Ivy
package com.hubspot.slack.client.methods.params.chat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import java.util.Optional;
import org.immutables.value.Value.Check;
@JsonNaming(SnakeCaseStrategy.class)
public abstract class AbstractChatMessageParams implements MessageParams {
@JsonProperty("channel")
public abstract String getChannelId();
public abstract Optional getText();
public abstract Optional getThreadTs();
public abstract Optional getUsername();
@JsonInclude(JsonInclude.Include.NON_ABSENT)
public abstract Optional getAsUser();
public abstract Optional getIconEmoji();
public abstract Optional getIconUrl();
public abstract Optional getLinkNames();
public abstract Optional getUnfurlLinks();
public abstract Optional getUnfurlMedia();
public abstract Optional getReplyBroadcast();
@Check
public void check() {
Preconditions.checkState(
(getText().isPresent() && !Strings.isNullOrEmpty(getText().get())) ||
!getAttachments().isEmpty() ||
!getBlocks().isEmpty(),
"Must include text if not providing attachments or blocks"
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy