All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.slack.client.models.AttachmentIF Maven / Gradle / Ivy

package com.hubspot.slack.client.models;

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.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.hubspot.immutables.style.HubSpotStyle;
import com.hubspot.slack.client.jackson.AttachmentSerializer;
import com.hubspot.slack.client.models.actions.Action;
import com.hubspot.slack.client.models.blocks.Block;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import org.immutables.value.Value.Immutable;

@Immutable
@HubSpotStyle
@JsonNaming(SnakeCaseStrategy.class)
@JsonSerialize(using = AttachmentSerializer.class)
public interface AttachmentIF extends BlockOrAttachment {
  Optional getFallback();

  Optional getColor();

  Optional getPretext();

  Optional getAuthorName();

  Optional getAuthorLink();

  Optional getAuthorIcon();

  Optional getTitle();

  Optional getTitleLink();

  Optional getText();

  Optional getImageUrl();

  Optional getAttachmentType();

  List getFields();

  Optional getFooter();

  Optional getFooterIcon();

  Optional getThumbUrl();

  @JsonProperty("ts")
  Optional getEpochSeconds();

  Optional getCallbackId();

  List getActions();

  /**
   * Slack will only markdown in fields whose names are included in this set. See {@link MarkdownSupportedFields}
   */
  Set getMrkdwnIn();

  @JsonInclude(JsonInclude.Include.NON_EMPTY)
  List getBlocks();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy