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

com.hubspot.slack.client.models.calls.SlackCallIF Maven / Gradle / Ivy

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

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.hubspot.immutables.style.HubSpotStyle;
import com.hubspot.slack.client.models.json.SlackOrExternalUserDeserializer;
import java.time.Instant;
import java.util.List;
import java.util.Optional;
import org.immutables.value.Value;

@HubSpotStyle
@Value.Immutable
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public interface SlackCallIF {
  String getExternalUniqueId();

  String getId();

  @JsonProperty("start_date")
  Optional getStartDateEpochSeconds();

  @JsonIgnore
  @Value.Derived
  default Optional getStartDate() {
    return getStartDateEpochSeconds().map(Instant::ofEpochSecond);
  }

  Optional getDesktopAppJoinUrl();

  Optional getExternalDisplayId();

  Optional getTitle();

  @JsonDeserialize(contentUsing = SlackOrExternalUserDeserializer.class)
  List getUsers();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy