package com.github.seratch.jslack.api.model;

import lombok.Builder;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
@Builder
public class Action {
    public static final String BUTTON = "button";

    private String name;
    private String text;
    private String style;
    @Builder.Default private String type = BUTTON;
    private String value;
    private Confirmation confirmation;
    private List<Option> options = new ArrayList<>();
}

@@ -139,83 +139,473 @@
 t;%0A%0A
-@Data%0A@Builder%0Apublic class Action %7B%0A    public static final String
+import com.google.gson.annotations.SerializedName;%0A%0A@Data%0A@Builder%0Apublic class Action %7B%0A    /**%0A     * Represents the type of action (e.g Message button or message menu)%0A     * @see %3Ca href=%22https://api.slack.com/interactive-messages#interaction_types%22%3EInteraction Types%3C/a%3E%0A     */%0A    public enum Type %7B%0A      %0A      /**%0A       * @see %3Ca href=%22https://api.slack.com/docs/message-buttons%22%3EMessage button%3C/a%3E%0A       */%0A      @SerializedName(%22button%22)%0A     
  BUTTON 
 = %22b
@@ -604,18 +604,17 @@
 TON 
-= 
+(
 %22button%22
 ;%0A%0A 
@@ -609,17 +609,348 @@
 %22button%22
-;
+),%0A      %0A      /**%0A       * @see %3Ca href=%22https://api.slack.com/docs/message-menus%22%3EMessage menus%3C/a%3E%0A       */%0A      @SerializedName(%22select%22)%0A      SELECT (%22select%22);%0A      %0A      private final String value;%0A      Type(String value) %7B%0A        this.value = value;%0A      %7D%0A      %0A      public String value() %7B return value; %7D%0A    %7D
 %0A%0A    pr
@@ -1052,22 +1052,20 @@
 ate 
-String
+Type
  type = 
 BUTT
@@ -1060,16 +1060,21 @@
  type = 
+Type.
 BUTTON;%0A

Add support for message menus (#29)