
com.hubspot.slack.client.methods.params.chat.ChatPostEphemeralMessageParamsIF 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.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.hubspot.immutables.style.HubSpotStyle;
import java.util.Optional;
import org.immutables.value.Value.Check;
import org.immutables.value.Value.Default;
import org.immutables.value.Value.Immutable;
@Immutable
@HubSpotStyle
public interface ChatPostEphemeralMessageParamsIF extends MessageParams {
@Override
@JsonProperty("channel")
String getChannelId();
@JsonProperty("user")
String getUserToSendTo();
@JsonInclude(JsonInclude.Include.NON_ABSENT)
@JsonProperty("as_user")
Optional getSendAsUser();
@JsonProperty("thread_ts")
Optional getThreadTs();
@Default
@JsonProperty("link_names")
default boolean getShouldLinkNames() {
return true;
}
@Default
@JsonProperty("parse")
default String getParseMode() {
return "none";
}
@Check
default 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