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

com.hubspot.slack.client.models.interaction.views.ViewInput Maven / Gradle / Ivy

package com.hubspot.slack.client.models.interaction.views;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import java.util.Optional;

@JsonTypeInfo(
  use = Id.NAME,
  include = As.EXISTING_PROPERTY,
  property = "type",
  visible = true
)
@JsonNaming(SnakeCaseStrategy.class)
@JsonSubTypes(
  {
    @Type(value = ViewPlainTextInput.class, name = "plain_text_input"),
    @Type(value = ViewNumberInput.class, name = "number_input"),
    @Type(value = ViewEmailInput.class, name = "email_text_input"),
    @Type(value = ViewUrlInput.class, name = "url_text_input"),
    @Type(value = ViewDatePicker.class, name = "datepicker"),
    @Type(value = ViewTimePicker.class, name = "timepicker"),
    @Type(value = ViewDateTimePicker.class, name = "datetimepicker"),
    @Type(value = ViewRadioButtonGroup.class, name = "radio_buttons"),
    @Type(value = UsersSelectInput.class, name = "users_select"),
    @Type(value = ViewCheckboxes.class, name = "checkboxes"),
    @Type(value = ViewConversationsSelect.class, name = "conversations_select"),
    @Type(value = ViewStaticSelect.class, name = "static_select"),
    @Type(value = ViewExternalSelect.class, name = "external_select"),
    @Type(value = ViewMultiStaticSelect.class, name = "multi_static_select"),
    @Type(value = ViewMultiExternalSelect.class, name = "multi_external_select"),
  }
)
public interface ViewInput {
  ViewInputType getType();

  @JsonIgnore
  Optional getStringValue();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy