#![allow(unused_imports)]
use crate::objects::*;
use crate::{
CursorPaginated, NextCursor, ResponseMetadata, SlackApiMethod, SlackClient, SlackError,
};
use serde::{Deserialize, Serialize};
#[doc(alias = "workflows.featured.add")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsFeaturedAddRequest {
pub channel_id: String,
#[serde(serialize_with = "crate::form::as_json")]
pub trigger_ids: Vec<String>,
}
impl WorkflowsFeaturedAddRequest {
pub fn new(channel_id: impl Into<String>, trigger_ids: Vec<String>) -> Self {
Self {
channel_id: channel_id.into(),
trigger_ids,
}
}
}
impl SlackApiMethod for WorkflowsFeaturedAddRequest {
const METHOD: &'static str = "workflows.featured.add";
type Response = WorkflowsFeaturedAddResponse;
}
#[doc(alias = "workflows.featured.add")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsFeaturedAddResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "workflows.featured.list")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsFeaturedListRequest {
#[serde(serialize_with = "crate::form::as_json")]
pub channel_ids: Vec<String>,
}
impl WorkflowsFeaturedListRequest {
pub fn new(channel_ids: Vec<String>) -> Self {
Self { channel_ids }
}
}
impl SlackApiMethod for WorkflowsFeaturedListRequest {
const METHOD: &'static str = "workflows.featured.list";
type Response = WorkflowsFeaturedListResponse;
}
#[doc(alias = "workflows.featured.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsFeaturedListResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub featured_workflows: Vec<WorkflowsFeaturedListResponseFeaturedWorkflows>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsFeaturedListResponseFeaturedWorkflows {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub channel_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub triggers: Vec<WorkflowsFeaturedListResponseFeaturedWorkflowsTriggers>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsFeaturedListResponseFeaturedWorkflowsTriggers {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub title: Option<String>,
}
#[doc(alias = "workflows.featured.remove")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsFeaturedRemoveRequest {
pub channel_id: String,
#[serde(serialize_with = "crate::form::as_json")]
pub trigger_ids: Vec<String>,
}
impl WorkflowsFeaturedRemoveRequest {
pub fn new(channel_id: impl Into<String>, trigger_ids: Vec<String>) -> Self {
Self {
channel_id: channel_id.into(),
trigger_ids,
}
}
}
impl SlackApiMethod for WorkflowsFeaturedRemoveRequest {
const METHOD: &'static str = "workflows.featured.remove";
type Response = WorkflowsFeaturedRemoveResponse;
}
#[doc(alias = "workflows.featured.remove")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsFeaturedRemoveResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "workflows.featured.set")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsFeaturedSetRequest {
pub channel_id: String,
#[serde(serialize_with = "crate::form::as_json")]
pub trigger_ids: Vec<String>,
}
impl WorkflowsFeaturedSetRequest {
pub fn new(channel_id: impl Into<String>, trigger_ids: Vec<String>) -> Self {
Self {
channel_id: channel_id.into(),
trigger_ids,
}
}
}
impl SlackApiMethod for WorkflowsFeaturedSetRequest {
const METHOD: &'static str = "workflows.featured.set";
type Response = WorkflowsFeaturedSetResponse;
}
#[doc(alias = "workflows.featured.set")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsFeaturedSetResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "workflows.triggers.permissions.add")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsTriggersPermissionsAddRequest {
pub trigger_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub org_ids: Option<Vec<String>>,
}
impl WorkflowsTriggersPermissionsAddRequest {
pub fn new(trigger_id: impl Into<String>) -> Self {
Self {
trigger_id: trigger_id.into(),
user_ids: None,
channel_ids: None,
team_ids: None,
org_ids: None,
}
}
pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
self.user_ids = Some(user_ids);
self
}
pub fn channel_ids(mut self, channel_ids: Vec<String>) -> Self {
self.channel_ids = Some(channel_ids);
self
}
pub fn team_ids(mut self, team_ids: Vec<String>) -> Self {
self.team_ids = Some(team_ids);
self
}
pub fn org_ids(mut self, org_ids: Vec<String>) -> Self {
self.org_ids = Some(org_ids);
self
}
}
impl SlackApiMethod for WorkflowsTriggersPermissionsAddRequest {
const METHOD: &'static str = "workflows.triggers.permissions.add";
type Response = WorkflowsTriggersPermissionsAddResponse;
}
#[doc(alias = "workflows.triggers.permissions.add")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsTriggersPermissionsAddResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub permission_type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub user_ids: Vec<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub channel_ids: Vec<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "workflows.triggers.permissions.list")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsTriggersPermissionsListRequest {
pub trigger_id: String,
}
impl WorkflowsTriggersPermissionsListRequest {
pub fn new(trigger_id: impl Into<String>) -> Self {
Self {
trigger_id: trigger_id.into(),
}
}
}
impl SlackApiMethod for WorkflowsTriggersPermissionsListRequest {
const METHOD: &'static str = "workflows.triggers.permissions.list";
type Response = WorkflowsTriggersPermissionsListResponse;
}
#[doc(alias = "workflows.triggers.permissions.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsTriggersPermissionsListResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub permission_type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub user_ids: Vec<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "workflows.triggers.permissions.remove")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsTriggersPermissionsRemoveRequest {
pub trigger_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub org_ids: Option<Vec<String>>,
}
impl WorkflowsTriggersPermissionsRemoveRequest {
pub fn new(trigger_id: impl Into<String>) -> Self {
Self {
trigger_id: trigger_id.into(),
user_ids: None,
channel_ids: None,
team_ids: None,
org_ids: None,
}
}
pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
self.user_ids = Some(user_ids);
self
}
pub fn channel_ids(mut self, channel_ids: Vec<String>) -> Self {
self.channel_ids = Some(channel_ids);
self
}
pub fn team_ids(mut self, team_ids: Vec<String>) -> Self {
self.team_ids = Some(team_ids);
self
}
pub fn org_ids(mut self, org_ids: Vec<String>) -> Self {
self.org_ids = Some(org_ids);
self
}
}
impl SlackApiMethod for WorkflowsTriggersPermissionsRemoveRequest {
const METHOD: &'static str = "workflows.triggers.permissions.remove";
type Response = WorkflowsTriggersPermissionsRemoveResponse;
}
#[doc(alias = "workflows.triggers.permissions.remove")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsTriggersPermissionsRemoveResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub permission_type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub user_ids: Vec<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub channel_ids: Vec<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "workflows.triggers.permissions.set")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct WorkflowsTriggersPermissionsSetRequest {
pub trigger_id: String,
pub permission_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub org_ids: Option<Vec<String>>,
}
impl WorkflowsTriggersPermissionsSetRequest {
pub fn new(trigger_id: impl Into<String>, permission_type: impl Into<String>) -> Self {
Self {
trigger_id: trigger_id.into(),
permission_type: permission_type.into(),
user_ids: None,
channel_ids: None,
team_ids: None,
org_ids: None,
}
}
pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
self.user_ids = Some(user_ids);
self
}
pub fn channel_ids(mut self, channel_ids: Vec<String>) -> Self {
self.channel_ids = Some(channel_ids);
self
}
pub fn team_ids(mut self, team_ids: Vec<String>) -> Self {
self.team_ids = Some(team_ids);
self
}
pub fn org_ids(mut self, org_ids: Vec<String>) -> Self {
self.org_ids = Some(org_ids);
self
}
}
impl SlackApiMethod for WorkflowsTriggersPermissionsSetRequest {
const METHOD: &'static str = "workflows.triggers.permissions.set";
type Response = WorkflowsTriggersPermissionsSetResponse;
}
#[doc(alias = "workflows.triggers.permissions.set")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkflowsTriggersPermissionsSetResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub permission_type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub user_ids: Vec<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
impl SlackClient {
#[doc(alias = "workflows.featured.add")]
pub async fn workflows_featured_add(
&self,
request: &WorkflowsFeaturedAddRequest,
) -> Result<WorkflowsFeaturedAddResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "workflows.featured.list")]
pub async fn workflows_featured_list(
&self,
request: &WorkflowsFeaturedListRequest,
) -> Result<WorkflowsFeaturedListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "workflows.featured.remove")]
pub async fn workflows_featured_remove(
&self,
request: &WorkflowsFeaturedRemoveRequest,
) -> Result<WorkflowsFeaturedRemoveResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "workflows.featured.set")]
pub async fn workflows_featured_set(
&self,
request: &WorkflowsFeaturedSetRequest,
) -> Result<WorkflowsFeaturedSetResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "workflows.triggers.permissions.add")]
pub async fn workflows_triggers_permissions_add(
&self,
request: &WorkflowsTriggersPermissionsAddRequest,
) -> Result<WorkflowsTriggersPermissionsAddResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "workflows.triggers.permissions.list")]
pub async fn workflows_triggers_permissions_list(
&self,
request: &WorkflowsTriggersPermissionsListRequest,
) -> Result<WorkflowsTriggersPermissionsListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "workflows.triggers.permissions.remove")]
pub async fn workflows_triggers_permissions_remove(
&self,
request: &WorkflowsTriggersPermissionsRemoveRequest,
) -> Result<WorkflowsTriggersPermissionsRemoveResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "workflows.triggers.permissions.set")]
pub async fn workflows_triggers_permissions_set(
&self,
request: &WorkflowsTriggersPermissionsSetRequest,
) -> Result<WorkflowsTriggersPermissionsSetResponse, SlackError> {
self.call(request).await
}
}