#![allow(unused_imports)]
use crate::objects::*;
use crate::{
CursorPaginated, NextCursor, ResponseMetadata, SlackApiMethod, SlackClient, SlackError,
};
use serde::{Deserialize, Serialize};
#[doc(alias = "functions.completeError")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct FunctionsCompleteErrorRequest {
pub function_execution_id: String,
pub error: String,
}
impl FunctionsCompleteErrorRequest {
pub fn new(function_execution_id: impl Into<String>, error: impl Into<String>) -> Self {
Self {
function_execution_id: function_execution_id.into(),
error: error.into(),
}
}
}
impl SlackApiMethod for FunctionsCompleteErrorRequest {
const METHOD: &'static str = "functions.completeError";
type Response = FunctionsCompleteErrorResponse;
}
#[doc(alias = "functions.completeError")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsCompleteErrorResponse {
#[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 = "functions.completeSuccess")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct FunctionsCompleteSuccessRequest {
pub function_execution_id: String,
pub outputs: serde_json::Value,
}
impl FunctionsCompleteSuccessRequest {
pub fn new(function_execution_id: impl Into<String>, outputs: serde_json::Value) -> Self {
Self {
function_execution_id: function_execution_id.into(),
outputs,
}
}
}
impl SlackApiMethod for FunctionsCompleteSuccessRequest {
const METHOD: &'static str = "functions.completeSuccess";
type Response = FunctionsCompleteSuccessResponse;
}
#[doc(alias = "functions.completeSuccess")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsCompleteSuccessResponse {
#[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 = "functions.distributions.permissions.add")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct FunctionsDistributionsPermissionsAddRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub function_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_callback_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_app_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_ids: Option<Vec<String>>,
}
impl FunctionsDistributionsPermissionsAddRequest {
pub fn new() -> Self {
Self {
function_id: None,
function_callback_id: None,
function_app_id: None,
user_ids: None,
}
}
pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
self.function_id = Some(function_id.into());
self
}
pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
self.function_callback_id = Some(function_callback_id.into());
self
}
pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
self.function_app_id = Some(function_app_id.into());
self
}
pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
self.user_ids = Some(user_ids);
self
}
}
impl SlackApiMethod for FunctionsDistributionsPermissionsAddRequest {
const METHOD: &'static str = "functions.distributions.permissions.add";
type Response = FunctionsDistributionsPermissionsAddResponse;
}
#[doc(alias = "functions.distributions.permissions.add")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsDistributionsPermissionsAddResponse {
#[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 users: Vec<FunctionsDistributionsPermissionsAddResponseUsers>,
#[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 FunctionsDistributionsPermissionsAddResponseUsers {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub user_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub username: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub email: Option<String>,
}
#[doc(alias = "functions.distributions.permissions.list")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct FunctionsDistributionsPermissionsListRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub function_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_callback_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_app_id: Option<String>,
}
impl FunctionsDistributionsPermissionsListRequest {
pub fn new() -> Self {
Self {
function_id: None,
function_callback_id: None,
function_app_id: None,
}
}
pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
self.function_id = Some(function_id.into());
self
}
pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
self.function_callback_id = Some(function_callback_id.into());
self
}
pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
self.function_app_id = Some(function_app_id.into());
self
}
}
impl SlackApiMethod for FunctionsDistributionsPermissionsListRequest {
const METHOD: &'static str = "functions.distributions.permissions.list";
type Response = FunctionsDistributionsPermissionsListResponse;
}
#[doc(alias = "functions.distributions.permissions.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsDistributionsPermissionsListResponse {
#[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 users: Vec<FunctionsDistributionsPermissionsListResponseUsers>,
#[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 FunctionsDistributionsPermissionsListResponseUsers {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub user_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub username: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub email: Option<String>,
}
#[doc(alias = "functions.distributions.permissions.remove")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct FunctionsDistributionsPermissionsRemoveRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub function_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_callback_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_app_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_ids: Option<Vec<String>>,
}
impl FunctionsDistributionsPermissionsRemoveRequest {
pub fn new() -> Self {
Self {
function_id: None,
function_callback_id: None,
function_app_id: None,
user_ids: None,
}
}
pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
self.function_id = Some(function_id.into());
self
}
pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
self.function_callback_id = Some(function_callback_id.into());
self
}
pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
self.function_app_id = Some(function_app_id.into());
self
}
pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
self.user_ids = Some(user_ids);
self
}
}
impl SlackApiMethod for FunctionsDistributionsPermissionsRemoveRequest {
const METHOD: &'static str = "functions.distributions.permissions.remove";
type Response = FunctionsDistributionsPermissionsRemoveResponse;
}
#[doc(alias = "functions.distributions.permissions.remove")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsDistributionsPermissionsRemoveResponse {
#[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 users: Vec<FunctionsDistributionsPermissionsRemoveResponseUsers>,
#[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 FunctionsDistributionsPermissionsRemoveResponseUsers {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub user_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub username: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub email: Option<String>,
}
#[doc(alias = "functions.distributions.permissions.set")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct FunctionsDistributionsPermissionsSetRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub function_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_callback_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_app_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub permission_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_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 FunctionsDistributionsPermissionsSetRequest {
pub fn new() -> Self {
Self {
function_id: None,
function_callback_id: None,
function_app_id: None,
permission_type: None,
user_ids: None,
team_ids: None,
org_ids: None,
}
}
pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
self.function_id = Some(function_id.into());
self
}
pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
self.function_callback_id = Some(function_callback_id.into());
self
}
pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
self.function_app_id = Some(function_app_id.into());
self
}
pub fn permission_type(mut self, permission_type: impl Into<String>) -> Self {
self.permission_type = Some(permission_type.into());
self
}
pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
self.user_ids = Some(user_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 FunctionsDistributionsPermissionsSetRequest {
const METHOD: &'static str = "functions.distributions.permissions.set";
type Response = FunctionsDistributionsPermissionsSetResponse;
}
#[doc(alias = "functions.distributions.permissions.set")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsDistributionsPermissionsSetResponse {
#[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 users: Vec<FunctionsDistributionsPermissionsSetResponseUsers>,
#[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 FunctionsDistributionsPermissionsSetResponseUsers {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub user_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub username: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub email: Option<String>,
}
#[doc(alias = "functions.workflows.steps.list")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct FunctionsWorkflowsStepsListRequest {
pub function_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow_app_id: Option<String>,
}
impl FunctionsWorkflowsStepsListRequest {
pub fn new(function_id: impl Into<String>) -> Self {
Self {
function_id: function_id.into(),
workflow_id: None,
workflow: None,
workflow_app_id: None,
}
}
pub fn workflow_id(mut self, workflow_id: impl Into<String>) -> Self {
self.workflow_id = Some(workflow_id.into());
self
}
pub fn workflow(mut self, workflow: impl Into<String>) -> Self {
self.workflow = Some(workflow.into());
self
}
pub fn workflow_app_id(mut self, workflow_app_id: impl Into<String>) -> Self {
self.workflow_app_id = Some(workflow_app_id.into());
self
}
}
impl SlackApiMethod for FunctionsWorkflowsStepsListRequest {
const METHOD: &'static str = "functions.workflows.steps.list";
type Response = FunctionsWorkflowsStepsListResponse;
}
#[doc(alias = "functions.workflows.steps.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsWorkflowsStepsListResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub steps_versions: Vec<FunctionsWorkflowsStepsListResponseStepsVersions>,
#[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 FunctionsWorkflowsStepsListResponseStepsVersions {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub title: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub workflow_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub step_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_deleted: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub workflow_version_created: Option<String>,
}
#[doc(alias = "functions.workflows.steps.responses.export")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct FunctionsWorkflowsStepsResponsesExportRequest {
pub step_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow_app_id: Option<String>,
}
impl FunctionsWorkflowsStepsResponsesExportRequest {
pub fn new(step_id: impl Into<String>) -> Self {
Self {
step_id: step_id.into(),
workflow_id: None,
workflow: None,
workflow_app_id: None,
}
}
pub fn workflow_id(mut self, workflow_id: impl Into<String>) -> Self {
self.workflow_id = Some(workflow_id.into());
self
}
pub fn workflow(mut self, workflow: impl Into<String>) -> Self {
self.workflow = Some(workflow.into());
self
}
pub fn workflow_app_id(mut self, workflow_app_id: impl Into<String>) -> Self {
self.workflow_app_id = Some(workflow_app_id.into());
self
}
}
impl SlackApiMethod for FunctionsWorkflowsStepsResponsesExportRequest {
const METHOD: &'static str = "functions.workflows.steps.responses.export";
type Response = FunctionsWorkflowsStepsResponsesExportResponse;
}
#[doc(alias = "functions.workflows.steps.responses.export")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FunctionsWorkflowsStepsResponsesExportResponse {
#[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>,
}
impl SlackClient {
#[doc(alias = "functions.completeError")]
pub async fn functions_complete_error(
&self,
request: &FunctionsCompleteErrorRequest,
) -> Result<FunctionsCompleteErrorResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "functions.completeSuccess")]
pub async fn functions_complete_success(
&self,
request: &FunctionsCompleteSuccessRequest,
) -> Result<FunctionsCompleteSuccessResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "functions.distributions.permissions.add")]
pub async fn functions_distributions_permissions_add(
&self,
request: &FunctionsDistributionsPermissionsAddRequest,
) -> Result<FunctionsDistributionsPermissionsAddResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "functions.distributions.permissions.list")]
pub async fn functions_distributions_permissions_list(
&self,
request: &FunctionsDistributionsPermissionsListRequest,
) -> Result<FunctionsDistributionsPermissionsListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "functions.distributions.permissions.remove")]
pub async fn functions_distributions_permissions_remove(
&self,
request: &FunctionsDistributionsPermissionsRemoveRequest,
) -> Result<FunctionsDistributionsPermissionsRemoveResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "functions.distributions.permissions.set")]
pub async fn functions_distributions_permissions_set(
&self,
request: &FunctionsDistributionsPermissionsSetRequest,
) -> Result<FunctionsDistributionsPermissionsSetResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "functions.workflows.steps.list")]
pub async fn functions_workflows_steps_list(
&self,
request: &FunctionsWorkflowsStepsListRequest,
) -> Result<FunctionsWorkflowsStepsListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "functions.workflows.steps.responses.export")]
pub async fn functions_workflows_steps_responses_export(
&self,
request: &FunctionsWorkflowsStepsResponsesExportRequest,
) -> Result<FunctionsWorkflowsStepsResponsesExportResponse, SlackError> {
self.call(request).await
}
}