slack_morphism/models/blocks/
workflow.rs1use rsb_derive::Builder;
2use serde::{Deserialize, Serialize};
3use serde_with::skip_serializing_none;
4use url::Url;
5
6use super::kit::{SlackAccessibilityLabel, SlackBlockButtonStyle, SlackBlockPlainTextOnly};
7use crate::SlackActionId;
8
9#[skip_serializing_none]
13#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
14pub struct SlackWorkflowTriggerInputParameter {
15 pub name: String,
16 pub value: String,
17}
18
19#[skip_serializing_none]
20#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
21pub struct SlackWorkflowTrigger {
22 pub url: Url,
23 pub customizable_input_parameters: Option<Vec<SlackWorkflowTriggerInputParameter>>,
24}
25
26#[skip_serializing_none]
27#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
28pub struct SlackWorkflow {
29 pub trigger: SlackWorkflowTrigger,
30}
31
32#[skip_serializing_none]
36#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
37pub struct SlackBlockWorkflowButtonElement {
38 pub action_id: SlackActionId,
39 pub text: SlackBlockPlainTextOnly,
40 pub workflow: SlackWorkflow,
41 pub style: Option<SlackBlockButtonStyle>,
42 pub accessibility_label: Option<SlackAccessibilityLabel>,
43}