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

com.hubspot.slack.client.models.bookmarks.BookmarkIF Maven / Gradle / Ivy

package com.hubspot.slack.client.models.bookmarks;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.hubspot.immutables.style.HubSpotStyle;
import java.time.Instant;
import java.util.Optional;
import org.immutables.value.Value;

@HubSpotStyle
@Value.Immutable
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public interface BookmarkIF {
  BookmarkType getType();

  String getId();

  String getChannelId();

  String getTitle();

  Optional getLink();

  Optional getEmoji();

  Optional getIconUrl();

  Optional getEntityId();

  @JsonProperty("date_created")
  long getDateCreatedEpochSeconds();

  @JsonIgnore
  @Value.Derived
  default Instant getCreatedAt() {
    return Instant.ofEpochSecond(getDateCreatedEpochSeconds());
  }

  @JsonProperty("date_updated")
  long getDateUpdatedEpochSeconds();

  @JsonIgnore
  @Value.Derived
  default Instant getUpdatedAt() {
    return Instant.ofEpochSecond(getDateUpdatedEpochSeconds());
  }

  Optional getRank();

  Optional getLastUpdatedByUserId();

  Optional getLastUpdatedByTeamId();

  Optional getShortcutId();

  Optional getAppId();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy