slackblocks-3.1.0: src/Slackblocks/Internal/Schema.hs
-- Generated shared limits, vocabulary and local field constraints.
module Slackblocks.Internal.Schema (fieldConstraints, limits, icons, surfaceBlocks) where
import Data.Text (Text)
fieldConstraints :: Text -> [(Text, Text, Text, [(Text, Integer)], [Text])]
fieldConstraints owner = case owner of
"ActionsBlock" -> [("elements", "list", "actions.elements", [("max_items", 25)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"AlertBlock" -> [("text", "text", "alert.text", [("max_length", 200)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"CardBlock" -> [("title", "text", "card.title", [("max_length", 150)], []), ("subtitle", "text", "card.subtitle", [("max_length", 150)], []), ("body", "text", "card.body", [("max_length", 200)], []), ("actions", "list", "card.actions", [("max_items", 3)], []), ("subtext", "text", "card.subtext", [("max_length", 200)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"CarouselBlock" -> [("elements", "list", "carousel.elements", [("min_items", 1), ("max_items", 10)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"ContainerBlock" -> [("child_blocks", "list", "container.child_blocks", [("min_items", 1), ("max_items", 10)], []), ("title", "text", "container.title", [("max_length", 150)], []), ("subtitle", "text", "container.subtitle", [("max_length", 150)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"ContextActionsBlock" -> [("elements", "list", "context_actions.elements", [("max_items", 5)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"ContextBlock" -> [("elements", "list", "context.elements", [("max_items", 10)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"DataTableBlock" -> [("rows", "rows", "data_table.rows", [("min_items", 2), ("max_items", 201)], []), ("page_size", "int", "data_table.page_size", [("min", 1), ("max", 100)], []), ("row_header_column_index", "int", "data_table.row_header_column_index", [("min", 0)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"DataVisualizationBlock" -> [("title", "string", "data_visualization.title", [("max_length", 50)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"DividerBlock" -> [("block_id", "string", "block_id", [("max_length", 255)], [])]
"FileBlock" -> [("block_id", "string", "block_id", [("max_length", 255)], [])]
"HeaderBlock" -> [("text", "text", "header.text", [("max_length", 150)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"ImageBlock" -> [("image_url", "string", "image.image_url", [("max_length", 3000)], []), ("alt_text", "string", "image.alt_text", [("max_length", 2000)], []), ("title", "text", "image.title", [("max_length", 2000)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"InputBlock" -> [("label", "text", "input.label", [("max_length", 2000)], []), ("block_id", "string", "block_id", [("max_length", 255)], []), ("hint", "text", "input.hint", [("max_length", 2000)], [])]
"MarkdownBlock" -> [("text", "string", "markdown.text", [("max_length", 12000)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"PlanBlock" -> [("tasks", "list", "plan.tasks", [("max_items", 50)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"RichTextBlock" -> [("block_id", "string", "block_id", [("max_length", 255)], [])]
"SectionBlock" -> [("text", "text", "section.text", [("max_length", 3000)], []), ("fields", "textList", "section.fields", [("max_items", 10), ("item_max_length", 2000)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"TableBlock" -> [("rows", "rows", "table.rows", [("max_items", 100)], []), ("column_settings", "list", "table.column_settings", [("max_items", 20)], []), ("block_id", "string", "block_id", [("max_length", 255)], [])]
"TaskCardBlock" -> [("block_id", "string", "block_id", [("max_length", 255)], [])]
"VideoBlock" -> [("alt_text", "string", "video.alt_text", [("max_length", 2000)], []), ("thumbnail_url", "string", "video.thumbnail_url", [("max_length", 3000)], []), ("title", "text", "video.title", [("max_length", 200)], []), ("video_url", "string", "video.video_url", [("max_length", 3000)], []), ("block_id", "string", "block_id", [("max_length", 255)], []), ("author_name", "string", "video.author_name", [("max_length", 50)], []), ("description", "text", "video.description", [("max_length", 200)], []), ("provider_icon_url", "string", "video.provider_icon_url", [("max_length", 2000)], []), ("provider_name", "string", "video.provider_name", [("max_length", 50)], []), ("title_url", "string", "video.title_url", [("max_length", 2000)], [])]
"ButtonElement" -> [("text", "text", "button.text", [("max_length", 75)], []), ("action_id", "string", "action_id", [("max_length", 255)], []), ("url", "string", "button.url", [("max_length", 3000)], []), ("value", "string", "button.value", [("max_length", 2000)], []), ("accessibility_label", "string", "button.accessibility_label", [("max_length", 75)], []), ("agent_prompt", "string", "button.agent_prompt", [("max_length", 4000)], [])]
"ChannelMultiSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("max_selected_items", "int", "multi_select.max_selected_items", [("min", 1)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"ChannelSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"CheckboxesElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("options", "list", "checkboxes.options", [("min_items", 1), ("max_items", 10)], [])]
"ConversationMultiSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("max_selected_items", "int", "multi_select.max_selected_items", [("min", 1)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"ConversationSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"DatePickerElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "date_picker.placeholder", [("max_length", 150)], [])]
"DateTimePickerElement" -> [("action_id", "string", "action_id", [("max_length", 255)], [])]
"EmailInputElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "email_input.placeholder", [("max_length", 150)], [])]
"ExternalMultiSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("min_query_length", "int", "select.min_query_length", [("min", 0)], []), ("max_selected_items", "int", "multi_select.max_selected_items", [("min", 1)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"ExternalSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("min_query_length", "int", "select.min_query_length", [("min", 0)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"FeedbackButtonsElement" -> [("action_id", "string", "action_id", [("max_length", 255)], [])]
"FileInputElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("max_files", "int", "file_input.max_files", [("min", 1), ("max", 10)], [])]
"IconButtonElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("value", "string", "icon_button.value", [("max_length", 2000)], []), ("accessibility_label", "string", "icon_button.accessibility_label", [("max_length", 75)], []), ("visible_to_user_ids", "stringList", "icon_button.visible_to_user_ids", [("max_items", 10)], [])]
"ImageElement" -> [("alt_text", "string", "image_element.alt_text", [("max_length", 2000)], []), ("image_url", "string", "image_element.image_url", [("max_length", 3000)], [])]
"NumberInputElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "number_input.placeholder", [("max_length", 150)], [])]
"OverflowElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("options", "list", "overflow.options", [("min_items", 1), ("max_items", 5)], [])]
"PlainTextInputElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("min_length", "int", "plain_text_input.min_length", [("min", 0), ("max", 3000)], []), ("max_length", "int", "plain_text_input.max_length", [("min", 1), ("max", 3000)], []), ("placeholder", "text", "plain_text_input.placeholder", [("max_length", 150)], [])]
"RadioButtonsElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("options", "list", "radio_buttons.options", [("min_items", 1), ("max_items", 10)], [])]
"RichTextInputElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "rich_text_input.placeholder", [("max_length", 150)], []), ("min_lines", "int", "rich_text_input.min_lines", [("min", 1), ("max", 100)], []), ("max_lines", "int", "rich_text_input.max_lines", [("min", 1), ("max", 100)], [])]
"StaticMultiSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("options", "list", "select.options", [("min_items", 1), ("max_items", 100)], []), ("option_groups", "list", "select.option_groups", [("min_items", 1), ("max_items", 100)], []), ("max_selected_items", "int", "multi_select.max_selected_items", [("min", 1)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"StaticSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("options", "list", "select.options", [("min_items", 1), ("max_items", 100)], []), ("option_groups", "list", "select.option_groups", [("min_items", 1), ("max_items", 100)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"TimePickerElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "time_picker.placeholder", [("max_length", 150)], [])]
"UrlInputElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "url_input.placeholder", [("max_length", 150)], [])]
"UserMultiSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("max_selected_items", "int", "multi_select.max_selected_items", [("min", 1)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"UserSelectElement" -> [("action_id", "string", "action_id", [("max_length", 255)], []), ("placeholder", "text", "select.placeholder", [("max_length", 150)], [])]
"WorkflowButtonElement" -> [("text", "text", "workflow_button.text", [("max_length", 75)], []), ("action_id", "string", "action_id", [("max_length", 255)], []), ("accessibility_label", "string", "workflow_button.accessibility_label", [("max_length", 75)], [])]
"AreaChart" -> [("series", "list", "data_visualization.series", [("min_items", 1), ("max_items", 12)], [])]
"AxisConfig" -> [("categories", "stringList", "data_visualization.categories", [("min_items", 1), ("max_items", 20)], []), ("x_label", "string", "data_visualization.axis_label", [("max_length", 50)], []), ("y_label", "string", "data_visualization.axis_label", [("max_length", 50)], [])]
"BarChart" -> [("series", "list", "data_visualization.series", [("min_items", 1), ("max_items", 12)], [])]
"ChartSegment" -> [("label", "string", "data_visualization.segment.label", [("max_length", 20)], [])]
"ColumnSettings" -> []
"Confirmation" -> [("title", "text", "confirmation.title", [("max_length", 100)], []), ("text", "text", "confirmation.text", [("max_length", 300)], []), ("confirm", "text", "confirmation.confirm", [("max_length", 30)], []), ("deny", "text", "confirmation.deny", [("max_length", 30)], [])]
"ConversationFilter" -> [("include", "stringList", "conversation_filter.include", [("min_items", 1)], [])]
"DataPoint" -> [("label", "string", "data_visualization.point_label", [("max_length", 20)], [])]
"DataSeries" -> [("name", "string", "data_visualization.series_name", [("max_length", 20)], []), ("data", "list", "data_visualization.data", [("min_items", 1), ("max_items", 20)], [])]
"DispatchActionConfiguration" -> [("trigger_actions_on", "stringList", "dispatch_action_configuration.trigger_actions_on", [("min_items", 1), ("max_items", 2)], [])]
"FeedbackButton" -> [("text", "text", "feedback_button.text", [("max_length", 75)], []), ("value", "string", "feedback_button.value", [("max_length", 2000)], []), ("accessibility_label", "string", "feedback_button.accessibility_label", [("max_length", 75)], [])]
"InputParameter" -> []
"LineChart" -> [("series", "list", "data_visualization.series", [("min_items", 1), ("max_items", 12)], [])]
"MarkdownText" -> [("text", "string", "text", [("min_length", 1), ("max_length", 3000)], [])]
"Option" -> [("text", "text", "option.text", [("max_length", 75)], []), ("value", "string", "option.value", [("max_length", 150)], []), ("description", "text", "option.description", [("max_length", 75)], []), ("url", "string", "option.url", [("max_length", 3000)], [])]
"OptionGroup" -> [("label", "text", "option_group.label", [("max_length", 75)], []), ("options", "list", "option_group.options", [("min_items", 1), ("max_items", 100)], [])]
"PieChart" -> [("segments", "list", "data_visualization.segments", [("min_items", 1), ("max_items", 12)], [])]
"PlainText" -> [("text", "string", "text", [("min_length", 1), ("max_length", 3000)], [])]
"RawNumber" -> []
"RawText" -> []
"RichTextChannel" -> [("style", "style", "", [], ["bold", "italic", "strike", "highlight", "client_highlight", "unlink"])]
"RichTextCodeBlock" -> [("border", "int", "rich_text_preformatted.border", [("min", 0), ("max", 1)], [])]
"RichTextEmoji" -> []
"RichTextLink" -> [("style", "style", "", [], ["bold", "italic", "strike", "code"])]
"RichTextList" -> [("indent", "int", "rich_text_list.indent", [("min", 0), ("max", 8)], []), ("offset", "int", "rich_text_list.offset", [("min", 0)], []), ("border", "int", "rich_text_list.border", [("min", 0), ("max", 1)], [])]
"RichTextQuote" -> [("border", "int", "rich_text_quote.border", [("min", 0), ("max", 1)], [])]
"RichTextSection" -> []
"RichTextText" -> [("style", "style", "", [], ["bold", "italic", "strike", "code"])]
"RichTextUser" -> [("style", "style", "", [], ["bold", "italic", "strike", "highlight", "client_highlight", "unlink"])]
"RichTextUserGroup" -> [("style", "style", "", [], ["bold", "italic", "strike", "highlight", "client_highlight", "unlink"])]
"SlackFile" -> []
"SlackIcon" -> []
"Trigger" -> []
"UrlSource" -> []
"Workflow" -> []
"Attachment" -> []
"HomeTabView" -> [("blocks", "list", "view.blocks", [("max_items", 100)], []), ("private_metadata", "string", "view.private_metadata", [("max_length", 3000)], []), ("callback_id", "string", "view.callback_id", [("max_length", 255)], []), ("external_id", "string", "view.external_id", [("max_length", 255)], [])]
"MessagePayload" -> [("channel", "string", "message.channel", [("min_length", 1)], []), ("blocks", "list", "message.blocks", [("max_items", 50)], []), ("attachments", "list", "message.attachments", [("max_items", 100)], [])]
"MessageResponse" -> [("blocks", "list", "message.blocks", [("max_items", 50)], []), ("attachments", "list", "message.attachments", [("max_items", 100)], [])]
"ModalView" -> [("title", "text", "view.title", [("max_length", 24)], []), ("blocks", "list", "view.blocks", [("max_items", 100)], []), ("close", "text", "view.close", [("max_length", 24)], []), ("submit", "text", "view.submit", [("max_length", 24)], []), ("private_metadata", "string", "view.private_metadata", [("max_length", 3000)], []), ("callback_id", "string", "view.callback_id", [("max_length", 255)], []), ("external_id", "string", "view.external_id", [("max_length", 255)], [])]
"WebhookMessage" -> [("blocks", "list", "message.blocks", [("max_items", 50)], []), ("attachments", "list", "message.attachments", [("max_items", 100)], [])]
_ -> []
limits :: [(Text, Integer)]
limits = [("text.min_length", 1), ("text.max_length", 3000), ("action_id.max_length", 255), ("block_id.max_length", 255), ("button.text.max_length", 75), ("button.url.max_length", 3000), ("button.value.max_length", 2000), ("button.accessibility_label.max_length", 75), ("button.agent_prompt.max_length", 4000), ("confirmation.title.max_length", 100), ("confirmation.text.max_length", 300), ("confirmation.confirm.max_length", 30), ("confirmation.deny.max_length", 30), ("option.text.max_length", 75), ("option.value.max_length", 150), ("option.description.max_length", 75), ("option.url.max_length", 3000), ("option_group.label.max_length", 75), ("option_group.options.min_items", 1), ("option_group.options.max_items", 100), ("select.placeholder.max_length", 150), ("select.options.min_items", 1), ("select.options.max_items", 100), ("select.option_groups.min_items", 1), ("select.option_groups.max_items", 100), ("select.min_query_length.min", 0), ("overflow.options.min_items", 1), ("overflow.options.max_items", 5), ("checkboxes.options.min_items", 1), ("checkboxes.options.max_items", 10), ("radio_buttons.options.min_items", 1), ("radio_buttons.options.max_items", 10), ("file_input.max_files.min", 1), ("file_input.max_files.max", 10), ("plain_text_input.min_length.min", 0), ("plain_text_input.min_length.max", 3000), ("plain_text_input.max_length.min", 1), ("plain_text_input.max_length.max", 3000), ("plain_text_input.placeholder.max_length", 150), ("email_input.placeholder.max_length", 150), ("url_input.placeholder.max_length", 150), ("number_input.placeholder.max_length", 150), ("date_picker.placeholder.max_length", 150), ("time_picker.placeholder.max_length", 150), ("rich_text_input.placeholder.max_length", 150), ("rich_text_input.min_lines.min", 1), ("rich_text_input.min_lines.max", 100), ("rich_text_input.max_lines.min", 1), ("rich_text_input.max_lines.max", 100), ("multi_select.max_selected_items.min", 1), ("conversation_filter.include.min_items", 1), ("dispatch_action_configuration.trigger_actions_on.min_items", 1), ("dispatch_action_configuration.trigger_actions_on.max_items", 2), ("actions.elements.max_items", 25), ("alert.text.max_length", 200), ("card.title.max_length", 150), ("card.subtitle.max_length", 150), ("card.body.max_length", 200), ("card.actions.max_items", 3), ("card.subtext.max_length", 200), ("carousel.elements.min_items", 1), ("carousel.elements.max_items", 10), ("container.title.max_length", 150), ("container.subtitle.max_length", 150), ("container.child_blocks.min_items", 1), ("container.child_blocks.max_items", 10), ("context.elements.max_items", 10), ("context_actions.elements.max_items", 5), ("feedback_button.text.max_length", 75), ("feedback_button.value.max_length", 2000), ("feedback_button.accessibility_label.max_length", 75), ("icon_button.value.max_length", 2000), ("icon_button.accessibility_label.max_length", 75), ("icon_button.visible_to_user_ids.max_items", 10), ("workflow_button.text.max_length", 75), ("workflow_button.accessibility_label.max_length", 75), ("table.rows.max_items", 100), ("table.columns.max_items", 20), ("table.column_settings.max_items", 20), ("data_table.rows.min_items", 2), ("data_table.rows.max_items", 201), ("data_table.columns.min_items", 1), ("data_table.columns.max_items", 20), ("data_table.page_size.min", 1), ("data_table.page_size.max", 100), ("data_table.cell_text.min_length", 1), ("data_table.content.max_length", 20000), ("data_table.total_content.max_length", 20000), ("data_table.row_header_column_index.min", 0), ("data_visualization.title.max_length", 50), ("data_visualization.segments.min_items", 1), ("data_visualization.segments.max_items", 12), ("data_visualization.segment.label.max_length", 20), ("data_visualization.segment.value.exclusive_min", 0), ("data_visualization.series.min_items", 1), ("data_visualization.series.max_items", 12), ("data_visualization.series_name.max_length", 20), ("data_visualization.data.min_items", 1), ("data_visualization.data.max_items", 20), ("data_visualization.point_label.max_length", 20), ("data_visualization.categories.min_items", 1), ("data_visualization.categories.max_items", 20), ("data_visualization.category_label.max_length", 20), ("data_visualization.axis_label.max_length", 50), ("header.text.max_length", 150), ("image.image_url.max_length", 3000), ("image.alt_text.max_length", 2000), ("image.title.max_length", 2000), ("image_element.image_url.max_length", 3000), ("image_element.alt_text.max_length", 2000), ("input.label.max_length", 2000), ("input.hint.max_length", 2000), ("markdown.text.max_length", 12000), ("markdown.total_text.max_length", 12000), ("plan.tasks.max_items", 50), ("rich_text_list.indent.min", 0), ("rich_text_list.indent.max", 8), ("rich_text_list.offset.min", 0), ("rich_text_list.border.min", 0), ("rich_text_list.border.max", 1), ("rich_text_quote.border.min", 0), ("rich_text_quote.border.max", 1), ("rich_text_preformatted.border.min", 0), ("rich_text_preformatted.border.max", 1), ("section.text.max_length", 3000), ("section.fields.max_items", 10), ("section.fields.item_max_length", 2000), ("video.alt_text.max_length", 2000), ("video.title.max_length", 200), ("video.author_name.max_length", 50), ("video.description.max_length", 200), ("video.provider_name.max_length", 50), ("video.thumbnail_url.max_length", 3000), ("video.video_url.max_length", 3000), ("video.title_url.max_length", 2000), ("video.provider_icon_url.max_length", 2000), ("message.data_visualizations.max_items", 2), ("message.channel.min_length", 1), ("message.blocks.max_items", 50), ("message.attachments.max_items", 100), ("view.blocks.max_items", 100), ("view.private_metadata.max_length", 3000), ("view.callback_id.max_length", 255), ("view.external_id.max_length", 255), ("view.title.max_length", 24), ("view.close.max_length", 24), ("view.submit.max_length", 24)]
icons :: [Text]
icons = ["archive", "book", "bookmark", "bot", "bug", "calendar", "call", "caret-left", "caret-right", "check", "clipboard", "code", "comment", "compass", "copy", "cube", "download", "edit", "email", "eye-closed", "eye-open", "file", "flag", "folder", "gear", "globe", "heart", "help", "image", "info", "key", "lightbulb", "link", "map", "mobile", "new-window", "pin", "plus", "refine", "refresh", "rocket", "save", "screen", "share", "sparkle", "star", "star-filled", "tag", "thumbs-down", "thumbs-up", "trash", "upload", "user", "warning"]
surfaceBlocks :: Text -> [Text]
surfaceBlocks surface = case surface of
"home" -> ["actions", "card", "carousel", "container", "context", "data_table", "data_visualization", "divider", "header", "image", "input", "rich_text", "section", "table", "video"]
"message" -> ["actions", "card", "carousel", "container", "context", "context_actions", "data_table", "data_visualization", "divider", "file", "header", "image", "input", "markdown", "plan", "rich_text", "section", "table", "task_card", "video"]
"modal" -> ["actions", "alert", "card", "context", "divider", "header", "image", "input", "rich_text", "section", "video"]
_ -> []