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

com.hubspot.slack.client.methods.params.calls.CallsEndParamsIF Maven / Gradle / Ivy

package com.hubspot.slack.client.methods.params.calls;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.google.common.primitives.Ints;
import com.hubspot.immutables.style.HubSpotStyle;
import java.time.Duration;
import java.util.Optional;
import org.immutables.value.Value;

@Value.Immutable
@HubSpotStyle
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public interface CallsEndParamsIF {
  @Value.Parameter(order = 0)
  String getId();

  @JsonIgnore
  Optional getDuration();

  @Value.Derived
  @JsonProperty("duration")
  default Optional getDurationSeconds() {
    return getDuration().map(Duration::getSeconds).map(Ints::checkedCast);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy