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

com.hubspot.slack.client.methods.params.files.FilesUploadParamsIF Maven / Gradle / Ivy

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

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.hubspot.immutables.style.HubSpotStyle;
import com.hubspot.slack.client.models.files.SlackFileType;
import java.io.File;
import java.util.List;
import java.util.Optional;
import org.immutables.value.Value.Check;
import org.immutables.value.Value.Immutable;

@Immutable
@HubSpotStyle
@JsonNaming(SnakeCaseStrategy.class)
public interface FilesUploadParamsIF {
  List getChannels();

  Optional getContent();

  Optional getFile();

  Optional getFilename();

  Optional getFiletype();

  Optional getInitialComment();

  Optional getThreadTs();

  Optional getTitle();

  @Check
  @JsonIgnore
  default void hasContent() {
    if (!getContent().isPresent() && !getFile().isPresent()) {
      throw new IllegalStateException("Must provide either content or raw file");
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy