WebClient
views_publish
views_push
views_update
+workflows_featured_add
+workflows_featured_list
+workflows_featured_remove
+workflows_featured_set
workflows_stepCompleted
workflows_stepFailed
workflows_updateStep
diff --git a/docs/reference/models/blocks/basic_components.html b/docs/reference/models/blocks/basic_components.html
index ac7ce17ac..7b56352d3 100644
--- a/docs/reference/models/blocks/basic_components.html
+++ b/docs/reference/models/blocks/basic_components.html
@@ -56,7 +56,7 @@
Expand source code
class ConfirmObject(JsonObject):
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementations
+ attributes: Set[str] = set()
title_max_length = 100
text_max_length = 300
@@ -164,7 +164,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
@@ -546,7 +546,7 @@ Inherited members
different required formats in different situations
"""
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementations
+ attributes: Set[str] = set()
logger = logging.getLogger(__name__)
label_max_length = 75
@@ -719,7 +719,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
@@ -828,7 +828,7 @@ Inherited members
different required formats in different situations
"""
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementations
+ attributes: Set[str] = set()
label_max_length = 75
options_max_length = 100
logger = logging.getLogger(__name__)
@@ -932,7 +932,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
diff --git a/docs/reference/models/blocks/index.html b/docs/reference/models/blocks/index.html
index d3327ac93..97d9b5294 100644
--- a/docs/reference/models/blocks/index.html
+++ b/docs/reference/models/blocks/index.html
@@ -1130,7 +1130,7 @@ Inherited members
Expand source code
class ConfirmObject(JsonObject):
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementations
+ attributes: Set[str] = set()
title_max_length = 100
text_max_length = 300
@@ -1238,7 +1238,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
@@ -3936,7 +3936,7 @@ Inherited members
different required formats in different situations
"""
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementations
+ attributes: Set[str] = set()
logger = logging.getLogger(__name__)
label_max_length = 75
@@ -4109,7 +4109,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
@@ -4218,7 +4218,7 @@ Inherited members
different required formats in different situations
"""
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementations
+ attributes: Set[str] = set()
label_max_length = 75
options_max_length = 100
logger = logging.getLogger(__name__)
@@ -4322,7 +4322,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
diff --git a/docs/reference/models/dialoags.html b/docs/reference/models/dialoags.html
index 2657bdbe8..d850bd9ca 100644
--- a/docs/reference/models/dialoags.html
+++ b/docs/reference/models/dialoags.html
@@ -247,7 +247,7 @@ Inherited members
Expand source code
class DialogBuilder(JsonObject):
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementation
+ attributes: Set[str] = set()
_callback_id: Optional[str]
_elements: List[Union[DialogTextComponent, AbstractDialogSelector]]
@@ -687,7 +687,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
diff --git a/docs/reference/models/dialogs/index.html b/docs/reference/models/dialogs/index.html
index d077673e1..85cc3757d 100644
--- a/docs/reference/models/dialogs/index.html
+++ b/docs/reference/models/dialogs/index.html
@@ -247,7 +247,7 @@ Inherited members
Expand source code
class DialogBuilder(JsonObject):
- attributes = {} # type: ignore[assignment] # no attributes because to_dict has unique implementation
+ attributes: Set[str] = set()
_callback_id: Optional[str]
_elements: List[Union[DialogTextComponent, AbstractDialogSelector]]
@@ -687,7 +687,7 @@ Ancestors
Class variables
-var attributes
+var attributes : Set[str]
-
The type of the None singleton.
diff --git a/docs/reference/oauth/installation_store/async_cacheable_installation_store.html b/docs/reference/oauth/installation_store/async_cacheable_installation_store.html
index 100c62c4a..a38205174 100644
--- a/docs/reference/oauth/installation_store/async_cacheable_installation_store.html
+++ b/docs/reference/oauth/installation_store/async_cacheable_installation_store.html
@@ -74,7 +74,7 @@
def logger(self) -> Logger:
return self.underlying.logger
- async def async_save(self, installation: Installation): # type: ignore[explicit-override]
+ async def async_save(self, installation: Installation):
# Invalidate cache data for update operations
key = f"{installation.enterprise_id or ''}-{installation.team_id or ''}"
if key in self.cached_bots:
@@ -84,14 +84,14 @@
self.cached_installations.pop(key)
return await self.underlying.async_save(installation)
- async def async_save_bot(self, bot: Bot): # type: ignore[explicit-override]
+ async def async_save_bot(self, bot: Bot):
# Invalidate cache data for update operations
key = f"{bot.enterprise_id or ''}-{bot.team_id or ''}"
if key in self.cached_bots:
self.cached_bots.pop(key)
return await self.underlying.async_save_bot(bot)
- async def async_find_bot( # type: ignore[explicit-override]
+ async def async_find_bot(
self,
*,
enterprise_id: Optional[str],
@@ -112,7 +112,7 @@
self.cached_bots[key] = bot
return bot
- async def async_find_installation( # type: ignore[explicit-override]
+ async def async_find_installation(
self,
*,
enterprise_id: Optional[str],
diff --git a/docs/reference/oauth/installation_store/cacheable_installation_store.html b/docs/reference/oauth/installation_store/cacheable_installation_store.html
index 5e2802f11..54bb7662d 100644
--- a/docs/reference/oauth/installation_store/cacheable_installation_store.html
+++ b/docs/reference/oauth/installation_store/cacheable_installation_store.html
@@ -74,7 +74,7 @@
def logger(self) -> Logger:
return self.underlying.logger
- def save(self, installation: Installation): # type: ignore[explicit-override]
+ def save(self, installation: Installation):
# Invalidate cache data for update operations
key = f"{installation.enterprise_id or ''}-{installation.team_id or ''}"
if key in self.cached_bots:
@@ -85,14 +85,14 @@
return self.underlying.save(installation)
- def save_bot(self, bot: Bot): # type: ignore[explicit-override]
+ def save_bot(self, bot: Bot):
# Invalidate cache data for update operations
key = f"{bot.enterprise_id or ''}-{bot.team_id or ''}"
if key in self.cached_bots:
self.cached_bots.pop(key)
return self.underlying.save_bot(bot)
- def find_bot( # type: ignore[explicit-override]
+ def find_bot(
self,
*,
enterprise_id: Optional[str],
@@ -113,7 +113,7 @@
self.cached_bots[key] = bot
return bot
- def find_installation( # type: ignore[explicit-override]
+ def find_installation(
self,
*,
enterprise_id: Optional[str],
diff --git a/docs/reference/socket_mode/client.html b/docs/reference/socket_mode/client.html
index dda047bd6..3c8c615f9 100644
--- a/docs/reference/socket_mode/client.html
+++ b/docs/reference/socket_mode/client.html
@@ -167,7 +167,7 @@
for listener in self.message_listeners:
try:
- listener(self, message, raw_message) # type: ignore[call-arg, arg-type]
+ listener(self, message, raw_message) # type: ignore[call-arg, arg-type, misc]
except Exception as e:
self.logger.exception(f"Failed to run a message listener: {e}")
@@ -431,7 +431,7 @@ Methods
for listener in self.message_listeners:
try:
- listener(self, message, raw_message) # type: ignore[call-arg, arg-type]
+ listener(self, message, raw_message) # type: ignore[call-arg, arg-type, misc]
except Exception as e:
self.logger.exception(f"Failed to run a message listener: {e}")
diff --git a/docs/reference/socket_mode/websocket_client/index.html b/docs/reference/socket_mode/websocket_client/index.html
index 20a1f0ac5..6cce0c780 100644
--- a/docs/reference/socket_mode/websocket_client/index.html
+++ b/docs/reference/socket_mode/websocket_client/index.html
@@ -91,7 +91,7 @@
auto_reconnect_enabled: bool
default_auto_reconnect_enabled: bool
- close: bool # type: ignore[assignment]
+ closed: bool
connect_operation_lock: Lock
on_open_listeners: List[Callable[[WebSocketApp], None]]
@@ -258,7 +258,7 @@
)
raise e
- def close(self) -> None: # type: ignore[explicit-override, no-redef]
+ def close(self) -> None:
self.closed = True
self.auto_reconnect_enabled = False
self.disconnect()
@@ -384,7 +384,7 @@ Methods
Expand source code
-def close(self) -> None: # type: ignore[explicit-override, no-redef]
+def close(self) -> None:
self.closed = True
self.auto_reconnect_enabled = False
self.disconnect()
diff --git a/docs/reference/web/async_client.html b/docs/reference/web/async_client.html
index 86403ce5d..ab5c0ab98 100644
--- a/docs/reference/web/async_client.html
+++ b/docs/reference/web/async_client.html
@@ -1752,7 +1752,7 @@
async def admin_users_list(
self,
*,
- team_id: str,
+ team_id: Optional[str] = None,
include_deactivated_user_workspaces: Optional[bool] = None,
is_active: Optional[bool] = None,
cursor: Optional[str] = None,
@@ -2097,12 +2097,15 @@
channel_id: str,
thread_ts: str,
status: str,
+ loading_messages: Optional[List[str]] = None,
**kwargs,
) -> AsyncSlackResponse:
- """Revokes a token.
+ """Set the status for an AI assistant thread.
https://api.slack.com/methods/assistant.threads.setStatus
"""
- kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "status": status})
+ kwargs.update(
+ {"channel_id": channel_id, "thread_ts": thread_ts, "status": status, "loading_messages": loading_messages}
+ )
return await self.api_call("assistant.threads.setStatus", params=kwargs)
async def assistant_threads_setTitle(
@@ -2113,7 +2116,7 @@
title: str,
**kwargs,
) -> AsyncSlackResponse:
- """Revokes a token.
+ """Set the title for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setTitle
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "title": title})
@@ -2128,7 +2131,7 @@
prompts: List[Dict[str, str]],
**kwargs,
) -> AsyncSlackResponse:
- """Revokes a token.
+ """Set suggested prompts for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setSuggestedPrompts
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "prompts": prompts})
@@ -2642,6 +2645,26 @@
# --------------------------
+ async def chat_appendStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: str,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Appends text to an existing streaming conversation.
+ https://api.slack.com/methods/chat.appendStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ }
+ )
+ return await self.api_call("chat.appendStream", params=kwargs)
+
async def chat_delete(
self,
*,
@@ -2717,6 +2740,7 @@
link_names: Optional[bool] = None,
username: Optional[str] = None,
parse: Optional[str] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Sends an ephemeral message to a user in a channel.
@@ -2736,11 +2760,12 @@
"link_names": link_names,
"username": username,
"parse": parse,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postEphemeral", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postEphemeral", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return await self.api_call("chat.postEphemeral", json=kwargs)
@@ -2764,6 +2789,7 @@
username: Optional[str] = None,
parse: Optional[str] = None, # none, full
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Sends a message to a channel.
@@ -2788,11 +2814,12 @@
"username": username,
"parse": parse,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return await self.api_call("chat.postMessage", json=kwargs)
@@ -2801,7 +2828,7 @@
*,
channel: str,
post_at: Union[str, int],
- text: str,
+ text: Optional[str] = None,
as_user: Optional[bool] = None,
attachments: Optional[Union[str, Sequence[Union[Dict, Attachment]]]] = None,
blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
@@ -2812,6 +2839,7 @@
unfurl_media: Optional[bool] = None,
link_names: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Schedules a message.
@@ -2832,14 +2860,90 @@
"unfurl_media": unfurl_media,
"link_names": link_names,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.scheduleMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.scheduleMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return await self.api_call("chat.scheduleMessage", json=kwargs)
+ async def chat_scheduledMessages_list(
+ self,
+ *,
+ channel: Optional[str] = None,
+ cursor: Optional[str] = None,
+ latest: Optional[str] = None,
+ limit: Optional[int] = None,
+ oldest: Optional[str] = None,
+ team_id: Optional[str] = None,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Lists all scheduled messages.
+ https://api.slack.com/methods/chat.scheduledMessages.list
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "cursor": cursor,
+ "latest": latest,
+ "limit": limit,
+ "oldest": oldest,
+ "team_id": team_id,
+ }
+ )
+ return await self.api_call("chat.scheduledMessages.list", params=kwargs)
+
+ async def chat_startStream(
+ self,
+ *,
+ channel: str,
+ thread_ts: Optional[str] = None,
+ markdown_text: Optional[str] = None,
+ unfurl_links: Optional[bool] = None,
+ unfurl_media: Optional[bool] = None,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Starts a new streaming conversation.
+ https://api.slack.com/methods/chat.startStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "thread_ts": thread_ts,
+ "markdown_text": markdown_text,
+ "unfurl_links": unfurl_links,
+ "unfurl_media": unfurl_media,
+ }
+ )
+ return await self.api_call("chat.startStream", params=kwargs)
+
+ async def chat_stopStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: Optional[str] = None,
+ blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
+ metadata: Optional[Union[Dict, Metadata]] = None,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Stops a streaming conversation.
+ https://api.slack.com/methods/chat.stopStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ "blocks": blocks,
+ "metadata": metadata,
+ }
+ )
+ _parse_web_class_objects(kwargs)
+ return await self.api_call("chat.stopStream", params=kwargs)
+
async def chat_unfurl(
self,
*,
@@ -2889,6 +2993,7 @@
parse: Optional[str] = None, # none, full
reply_broadcast: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Updates a message in a channel.
@@ -2906,6 +3011,7 @@
"parse": parse,
"reply_broadcast": reply_broadcast,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
if isinstance(file_ids, (list, tuple)):
@@ -2914,36 +3020,10 @@
kwargs.update({"file_ids": file_ids})
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.update", kwargs)
+ _warn_if_message_text_content_is_missing("chat.update", kwargs)
# NOTE: intentionally using json over params for API methods using blocks/attachments
return await self.api_call("chat.update", json=kwargs)
- async def chat_scheduledMessages_list(
- self,
- *,
- channel: Optional[str] = None,
- cursor: Optional[str] = None,
- latest: Optional[str] = None,
- limit: Optional[int] = None,
- oldest: Optional[str] = None,
- team_id: Optional[str] = None,
- **kwargs,
- ) -> AsyncSlackResponse:
- """Lists all scheduled messages.
- https://api.slack.com/methods/chat.scheduledMessages.list
- """
- kwargs.update(
- {
- "channel": channel,
- "cursor": cursor,
- "latest": latest,
- "limit": limit,
- "oldest": oldest,
- "team_id": team_id,
- }
- )
- return await self.api_call("chat.scheduledMessages.list", params=kwargs)
-
async def conversations_acceptSharedInvite(
self,
*,
@@ -5438,6 +5518,72 @@
# NOTE: Intentionally using json for the "view" parameter
return await self.api_call("views.publish", json=kwargs)
+ async def workflows_featured_add(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Add featured workflows to a channel.
+ https://api.slack.com/methods/workflows.featured.add
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return await self.api_call("workflows.featured.add", params=kwargs)
+
+ async def workflows_featured_list(
+ self,
+ *,
+ channel_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """List the featured workflows for specified channels.
+ https://api.slack.com/methods/workflows.featured.list
+ """
+ if isinstance(channel_ids, (list, tuple)):
+ kwargs.update({"channel_ids": ",".join(channel_ids)})
+ else:
+ kwargs.update({"channel_ids": channel_ids})
+ return await self.api_call("workflows.featured.list", params=kwargs)
+
+ async def workflows_featured_remove(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Remove featured workflows from a channel.
+ https://api.slack.com/methods/workflows.featured.remove
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return await self.api_call("workflows.featured.remove", params=kwargs)
+
+ async def workflows_featured_set(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Set featured workflows for a channel.
+ https://api.slack.com/methods/workflows.featured.set
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return await self.api_call("workflows.featured.set", params=kwargs)
+
async def workflows_stepCompleted(
self,
*,
@@ -7915,7 +8061,7 @@ Methods
https://api.slack.com/methods/admin.users.invite
-async def admin_users_list(self,
*,
team_id: str,
include_deactivated_user_workspaces: bool | None = None,
is_active: bool | None = None,
cursor: str | None = None,
limit: int | None = None,
**kwargs) ‑> AsyncSlackResponse
+async def admin_users_list(self,
*,
team_id: str | None = None,
include_deactivated_user_workspaces: bool | None = None,
is_active: bool | None = None,
cursor: str | None = None,
limit: int | None = None,
**kwargs) ‑> AsyncSlackResponse
-
@@ -7925,7 +8071,7 @@ Methods
async def admin_users_list(
self,
*,
- team_id: str,
+ team_id: Optional[str] = None,
include_deactivated_user_workspaces: Optional[bool] = None,
is_active: Optional[bool] = None,
cursor: Optional[str] = None,
@@ -8712,7 +8858,7 @@ Methods
https://api.slack.com/methods/apps.uninstall
-async def assistant_threads_setStatus(self, *, channel_id: str, thread_ts: str, status: str, **kwargs) ‑> AsyncSlackResponse
+async def assistant_threads_setStatus(self,
*,
channel_id: str,
thread_ts: str,
status: str,
loading_messages: List[str] | None = None,
**kwargs) ‑> AsyncSlackResponse
-
@@ -8725,15 +8871,18 @@ Methods
channel_id: str,
thread_ts: str,
status: str,
+ loading_messages: Optional[List[str]] = None,
**kwargs,
) -> AsyncSlackResponse:
- """Revokes a token.
+ """Set the status for an AI assistant thread.
https://api.slack.com/methods/assistant.threads.setStatus
"""
- kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "status": status})
+ kwargs.update(
+ {"channel_id": channel_id, "thread_ts": thread_ts, "status": status, "loading_messages": loading_messages}
+ )
return await self.api_call("assistant.threads.setStatus", params=kwargs)
-Revokes a token.
+
@@ -8753,7 +8902,7 @@ Methods
prompts: List[Dict[str, str]],
**kwargs,
) -> AsyncSlackResponse:
- """Revokes a token.
+ """Set suggested prompts for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setSuggestedPrompts
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "prompts": prompts})
@@ -8761,7 +8910,7 @@ Methods
kwargs.update({"title": title})
return await self.api_call("assistant.threads.setSuggestedPrompts", json=kwargs)
-Revokes a token.
+
@@ -8780,13 +8929,13 @@ Methods
title: str,
**kwargs,
) -> AsyncSlackResponse:
- """Revokes a token.
+ """Set the title for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setTitle
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "title": title})
return await self.api_call("assistant.threads.setTitle", params=kwargs)
-Revokes a token.
+
@@ -9657,6 +9806,37 @@ Methods
+
+async def chat_appendStream(self, *, channel: str, ts: str, markdown_text: str, **kwargs) ‑> AsyncSlackResponse
+
+-
+
+
+Expand source code
+
+async def chat_appendStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: str,
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Appends text to an existing streaming conversation.
+ https://api.slack.com/methods/chat.appendStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ }
+ )
+ return await self.api_call("chat.appendStream", params=kwargs)
+
+
+
async def chat_delete(self, *, channel: str, ts: str, as_user: bool | None = None, **kwargs) ‑> AsyncSlackResponse
@@ -9762,7 +9942,7 @@ Methods
https://api.slack.com/methods/chat.meMessage
-async def chat_postEphemeral(self,
*,
channel: str,
user: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
**kwargs) ‑> AsyncSlackResponse
+async def chat_postEphemeral(self,
*,
channel: str,
user: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
markdown_text: str | None = None,
**kwargs) ‑> AsyncSlackResponse
-
@@ -9784,6 +9964,7 @@ Methods
link_names: Optional[bool] = None,
username: Optional[str] = None,
parse: Optional[str] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Sends an ephemeral message to a user in a channel.
@@ -9803,11 +9984,12 @@ Methods
"link_names": link_names,
"username": username,
"parse": parse,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postEphemeral", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postEphemeral", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return await self.api_call("chat.postEphemeral", json=kwargs)
@@ -9815,7 +9997,7 @@ Methods
https://api.slack.com/methods/chat.postEphemeral
-async def chat_postMessage(self,
*,
channel: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
container_id: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
mrkdwn: bool | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> AsyncSlackResponse
+async def chat_postMessage(self,
*,
channel: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
container_id: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
mrkdwn: bool | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
metadata: Dict | Metadata | None = None,
markdown_text: str | None = None,
**kwargs) ‑> AsyncSlackResponse
-
@@ -9842,6 +10024,7 @@ Methods
username: Optional[str] = None,
parse: Optional[str] = None, # none, full
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Sends a message to a channel.
@@ -9866,11 +10049,12 @@ Methods
"username": username,
"parse": parse,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return await self.api_call("chat.postMessage", json=kwargs)
@@ -9878,7 +10062,7 @@ Methods
https://api.slack.com/methods/chat.postMessage
-async def chat_scheduleMessage(self,
*,
channel: str,
post_at: str | int,
text: str,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
link_names: bool | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> AsyncSlackResponse
+async def chat_scheduleMessage(self,
*,
channel: str,
post_at: str | int,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
link_names: bool | None = None,
metadata: Dict | Metadata | None = None,
markdown_text: str | None = None,
**kwargs) ‑> AsyncSlackResponse
-
@@ -9890,7 +10074,7 @@ Methods
*,
channel: str,
post_at: Union[str, int],
- text: str,
+ text: Optional[str] = None,
as_user: Optional[bool] = None,
attachments: Optional[Union[str, Sequence[Union[Dict, Attachment]]]] = None,
blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
@@ -9901,6 +10085,7 @@ Methods
unfurl_media: Optional[bool] = None,
link_names: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Schedules a message.
@@ -9921,11 +10106,12 @@ Methods
"unfurl_media": unfurl_media,
"link_names": link_names,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.scheduleMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.scheduleMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return await self.api_call("chat.scheduleMessage", json=kwargs)
@@ -9969,6 +10155,77 @@ Methods
+
+async def chat_startStream(self,
*,
channel: str,
thread_ts: str | None = None,
markdown_text: str | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
**kwargs) ‑> AsyncSlackResponse
+
+-
+
+
+Expand source code
+
+async def chat_startStream(
+ self,
+ *,
+ channel: str,
+ thread_ts: Optional[str] = None,
+ markdown_text: Optional[str] = None,
+ unfurl_links: Optional[bool] = None,
+ unfurl_media: Optional[bool] = None,
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Starts a new streaming conversation.
+ https://api.slack.com/methods/chat.startStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "thread_ts": thread_ts,
+ "markdown_text": markdown_text,
+ "unfurl_links": unfurl_links,
+ "unfurl_media": unfurl_media,
+ }
+ )
+ return await self.api_call("chat.startStream", params=kwargs)
+
+
+
+
+async def chat_stopStream(self,
*,
channel: str,
ts: str,
markdown_text: str | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> AsyncSlackResponse
+
+-
+
+
+Expand source code
+
+async def chat_stopStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: Optional[str] = None,
+ blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
+ metadata: Optional[Union[Dict, Metadata]] = None,
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Stops a streaming conversation.
+ https://api.slack.com/methods/chat.stopStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ "blocks": blocks,
+ "metadata": metadata,
+ }
+ )
+ _parse_web_class_objects(kwargs)
+ return await self.api_call("chat.stopStream", params=kwargs)
+
+
+
async def chat_unfurl(self,
*,
channel: str | None = None,
ts: str | None = None,
source: str | None = None,
unfurl_id: str | None = None,
unfurls: Dict[str, Dict] | None = None,
user_auth_blocks: str | Sequence[Dict | Block] | None = None,
user_auth_message: str | None = None,
user_auth_required: bool | None = None,
user_auth_url: str | None = None,
**kwargs) ‑> AsyncSlackResponse
@@ -10016,7 +10273,7 @@ Methods
https://api.slack.com/methods/chat.unfurl
-async def chat_update(self,
*,
channel: str,
ts: str,
text: str | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
as_user: bool | None = None,
file_ids: str | Sequence[str] | None = None,
link_names: bool | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> AsyncSlackResponse
+async def chat_update(self,
*,
channel: str,
ts: str,
text: str | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
as_user: bool | None = None,
file_ids: str | Sequence[str] | None = None,
link_names: bool | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
metadata: Dict | Metadata | None = None,
markdown_text: str | None = None,
**kwargs) ‑> AsyncSlackResponse
-
@@ -10037,6 +10294,7 @@ Methods
parse: Optional[str] = None, # none, full
reply_broadcast: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
"""Updates a message in a channel.
@@ -10054,6 +10312,7 @@ Methods
"parse": parse,
"reply_broadcast": reply_broadcast,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
if isinstance(file_ids, (list, tuple)):
@@ -10062,7 +10321,7 @@ Methods
kwargs.update({"file_ids": file_ids})
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.update", kwargs)
+ _warn_if_message_text_content_is_missing("chat.update", kwargs)
# NOTE: intentionally using json over params for API methods using blocks/attachments
return await self.api_call("chat.update", json=kwargs)
@@ -14090,6 +14349,116 @@ Methods
to learn more about updating views and avoiding race conditions with the hash argument.
https://api.slack.com/methods/views.update
+
+async def workflows_featured_add(self, *, channel_id: str, trigger_ids: str | Sequence[str], **kwargs) ‑> AsyncSlackResponse
+
+-
+
+
+Expand source code
+
+async def workflows_featured_add(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Add featured workflows to a channel.
+ https://api.slack.com/methods/workflows.featured.add
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return await self.api_call("workflows.featured.add", params=kwargs)
+
+
+
+
+async def workflows_featured_list(self, *, channel_ids: str | Sequence[str], **kwargs) ‑> AsyncSlackResponse
+
+-
+
+
+Expand source code
+
+async def workflows_featured_list(
+ self,
+ *,
+ channel_ids: Union[str, Sequence[str]],
+ **kwargs,
+) -> AsyncSlackResponse:
+ """List the featured workflows for specified channels.
+ https://api.slack.com/methods/workflows.featured.list
+ """
+ if isinstance(channel_ids, (list, tuple)):
+ kwargs.update({"channel_ids": ",".join(channel_ids)})
+ else:
+ kwargs.update({"channel_ids": channel_ids})
+ return await self.api_call("workflows.featured.list", params=kwargs)
+
+
+
+
+async def workflows_featured_remove(self, *, channel_id: str, trigger_ids: str | Sequence[str], **kwargs) ‑> AsyncSlackResponse
+
+-
+
+
+Expand source code
+
+async def workflows_featured_remove(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Remove featured workflows from a channel.
+ https://api.slack.com/methods/workflows.featured.remove
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return await self.api_call("workflows.featured.remove", params=kwargs)
+
+
+
+
+async def workflows_featured_set(self, *, channel_id: str, trigger_ids: str | Sequence[str], **kwargs) ‑> AsyncSlackResponse
+
+-
+
+
+Expand source code
+
+async def workflows_featured_set(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Set featured workflows for a channel.
+ https://api.slack.com/methods/workflows.featured.set
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return await self.api_call("workflows.featured.set", params=kwargs)
+
+
+
async def workflows_stepCompleted(self, *, workflow_step_execute_id: str, outputs: dict | None = None, **kwargs) ‑> AsyncSlackResponse
@@ -14363,6 +14732,7 @@
channels_setTopic
channels_unarchive
+chat_appendStream
chat_delete
chat_deleteScheduledMessage
chat_getPermalink
@@ -14371,6 +14741,8 @@ chat_scheduleMessage
chat_scheduledMessages_list
+chat_startStream
+chat_stopStream
chat_unfurl
chat_update
conversations_acceptSharedInvite
@@ -14513,6 +14885,10 @@ views_push
views_update
+workflows_featured_add
+workflows_featured_list
+workflows_featured_remove
+workflows_featured_set
workflows_stepCompleted
workflows_stepFailed
workflows_updateStep
diff --git a/docs/reference/web/client.html b/docs/reference/web/client.html
index 28212dff5..9e743c5b8 100644
--- a/docs/reference/web/client.html
+++ b/docs/reference/web/client.html
@@ -1752,7 +1752,7 @@
def admin_users_list(
self,
*,
- team_id: str,
+ team_id: Optional[str] = None,
include_deactivated_user_workspaces: Optional[bool] = None,
is_active: Optional[bool] = None,
cursor: Optional[str] = None,
@@ -2097,12 +2097,15 @@
channel_id: str,
thread_ts: str,
status: str,
+ loading_messages: Optional[List[str]] = None,
**kwargs,
) -> SlackResponse:
- """Revokes a token.
+ """Set the status for an AI assistant thread.
https://api.slack.com/methods/assistant.threads.setStatus
"""
- kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "status": status})
+ kwargs.update(
+ {"channel_id": channel_id, "thread_ts": thread_ts, "status": status, "loading_messages": loading_messages}
+ )
return self.api_call("assistant.threads.setStatus", params=kwargs)
def assistant_threads_setTitle(
@@ -2113,7 +2116,7 @@
title: str,
**kwargs,
) -> SlackResponse:
- """Revokes a token.
+ """Set the title for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setTitle
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "title": title})
@@ -2128,7 +2131,7 @@
prompts: List[Dict[str, str]],
**kwargs,
) -> SlackResponse:
- """Revokes a token.
+ """Set suggested prompts for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setSuggestedPrompts
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "prompts": prompts})
@@ -2642,6 +2645,26 @@
# --------------------------
+ def chat_appendStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: str,
+ **kwargs,
+ ) -> SlackResponse:
+ """Appends text to an existing streaming conversation.
+ https://api.slack.com/methods/chat.appendStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ }
+ )
+ return self.api_call("chat.appendStream", params=kwargs)
+
def chat_delete(
self,
*,
@@ -2717,6 +2740,7 @@
link_names: Optional[bool] = None,
username: Optional[str] = None,
parse: Optional[str] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Sends an ephemeral message to a user in a channel.
@@ -2736,11 +2760,12 @@
"link_names": link_names,
"username": username,
"parse": parse,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postEphemeral", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postEphemeral", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return self.api_call("chat.postEphemeral", json=kwargs)
@@ -2764,6 +2789,7 @@
username: Optional[str] = None,
parse: Optional[str] = None, # none, full
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Sends a message to a channel.
@@ -2788,11 +2814,12 @@
"username": username,
"parse": parse,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return self.api_call("chat.postMessage", json=kwargs)
@@ -2801,7 +2828,7 @@
*,
channel: str,
post_at: Union[str, int],
- text: str,
+ text: Optional[str] = None,
as_user: Optional[bool] = None,
attachments: Optional[Union[str, Sequence[Union[Dict, Attachment]]]] = None,
blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
@@ -2812,6 +2839,7 @@
unfurl_media: Optional[bool] = None,
link_names: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Schedules a message.
@@ -2832,14 +2860,90 @@
"unfurl_media": unfurl_media,
"link_names": link_names,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.scheduleMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.scheduleMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return self.api_call("chat.scheduleMessage", json=kwargs)
+ def chat_scheduledMessages_list(
+ self,
+ *,
+ channel: Optional[str] = None,
+ cursor: Optional[str] = None,
+ latest: Optional[str] = None,
+ limit: Optional[int] = None,
+ oldest: Optional[str] = None,
+ team_id: Optional[str] = None,
+ **kwargs,
+ ) -> SlackResponse:
+ """Lists all scheduled messages.
+ https://api.slack.com/methods/chat.scheduledMessages.list
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "cursor": cursor,
+ "latest": latest,
+ "limit": limit,
+ "oldest": oldest,
+ "team_id": team_id,
+ }
+ )
+ return self.api_call("chat.scheduledMessages.list", params=kwargs)
+
+ def chat_startStream(
+ self,
+ *,
+ channel: str,
+ thread_ts: Optional[str] = None,
+ markdown_text: Optional[str] = None,
+ unfurl_links: Optional[bool] = None,
+ unfurl_media: Optional[bool] = None,
+ **kwargs,
+ ) -> SlackResponse:
+ """Starts a new streaming conversation.
+ https://api.slack.com/methods/chat.startStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "thread_ts": thread_ts,
+ "markdown_text": markdown_text,
+ "unfurl_links": unfurl_links,
+ "unfurl_media": unfurl_media,
+ }
+ )
+ return self.api_call("chat.startStream", params=kwargs)
+
+ def chat_stopStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: Optional[str] = None,
+ blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
+ metadata: Optional[Union[Dict, Metadata]] = None,
+ **kwargs,
+ ) -> SlackResponse:
+ """Stops a streaming conversation.
+ https://api.slack.com/methods/chat.stopStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ "blocks": blocks,
+ "metadata": metadata,
+ }
+ )
+ _parse_web_class_objects(kwargs)
+ return self.api_call("chat.stopStream", params=kwargs)
+
def chat_unfurl(
self,
*,
@@ -2889,6 +2993,7 @@
parse: Optional[str] = None, # none, full
reply_broadcast: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Updates a message in a channel.
@@ -2906,6 +3011,7 @@
"parse": parse,
"reply_broadcast": reply_broadcast,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
if isinstance(file_ids, (list, tuple)):
@@ -2914,36 +3020,10 @@
kwargs.update({"file_ids": file_ids})
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.update", kwargs)
+ _warn_if_message_text_content_is_missing("chat.update", kwargs)
# NOTE: intentionally using json over params for API methods using blocks/attachments
return self.api_call("chat.update", json=kwargs)
- def chat_scheduledMessages_list(
- self,
- *,
- channel: Optional[str] = None,
- cursor: Optional[str] = None,
- latest: Optional[str] = None,
- limit: Optional[int] = None,
- oldest: Optional[str] = None,
- team_id: Optional[str] = None,
- **kwargs,
- ) -> SlackResponse:
- """Lists all scheduled messages.
- https://api.slack.com/methods/chat.scheduledMessages.list
- """
- kwargs.update(
- {
- "channel": channel,
- "cursor": cursor,
- "latest": latest,
- "limit": limit,
- "oldest": oldest,
- "team_id": team_id,
- }
- )
- return self.api_call("chat.scheduledMessages.list", params=kwargs)
-
def conversations_acceptSharedInvite(
self,
*,
@@ -5438,6 +5518,72 @@
# NOTE: Intentionally using json for the "view" parameter
return self.api_call("views.publish", json=kwargs)
+ def workflows_featured_add(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> SlackResponse:
+ """Add featured workflows to a channel.
+ https://api.slack.com/methods/workflows.featured.add
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return self.api_call("workflows.featured.add", params=kwargs)
+
+ def workflows_featured_list(
+ self,
+ *,
+ channel_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> SlackResponse:
+ """List the featured workflows for specified channels.
+ https://api.slack.com/methods/workflows.featured.list
+ """
+ if isinstance(channel_ids, (list, tuple)):
+ kwargs.update({"channel_ids": ",".join(channel_ids)})
+ else:
+ kwargs.update({"channel_ids": channel_ids})
+ return self.api_call("workflows.featured.list", params=kwargs)
+
+ def workflows_featured_remove(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> SlackResponse:
+ """Remove featured workflows from a channel.
+ https://api.slack.com/methods/workflows.featured.remove
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return self.api_call("workflows.featured.remove", params=kwargs)
+
+ def workflows_featured_set(
+ self,
+ *,
+ channel_id: str,
+ trigger_ids: Union[str, Sequence[str]],
+ **kwargs,
+ ) -> SlackResponse:
+ """Set featured workflows for a channel.
+ https://api.slack.com/methods/workflows.featured.set
+ """
+ kwargs.update({"channel_id": channel_id})
+ if isinstance(trigger_ids, (list, tuple)):
+ kwargs.update({"trigger_ids": ",".join(trigger_ids)})
+ else:
+ kwargs.update({"trigger_ids": trigger_ids})
+ return self.api_call("workflows.featured.set", params=kwargs)
+
def workflows_stepCompleted(
self,
*,
@@ -7915,7 +8061,7 @@ Methods
https://api.slack.com/methods/admin.users.invite
-def admin_users_list(self,
*,
team_id: str,
include_deactivated_user_workspaces: bool | None = None,
is_active: bool | None = None,
cursor: str | None = None,
limit: int | None = None,
**kwargs) ‑> SlackResponse
+def admin_users_list(self,
*,
team_id: str | None = None,
include_deactivated_user_workspaces: bool | None = None,
is_active: bool | None = None,
cursor: str | None = None,
limit: int | None = None,
**kwargs) ‑> SlackResponse
-
@@ -7925,7 +8071,7 @@ Methods
def admin_users_list(
self,
*,
- team_id: str,
+ team_id: Optional[str] = None,
include_deactivated_user_workspaces: Optional[bool] = None,
is_active: Optional[bool] = None,
cursor: Optional[str] = None,
@@ -8712,7 +8858,7 @@ Methods
https://api.slack.com/methods/apps.uninstall
-def assistant_threads_setStatus(self, *, channel_id: str, thread_ts: str, status: str, **kwargs) ‑> SlackResponse
+def assistant_threads_setStatus(self,
*,
channel_id: str,
thread_ts: str,
status: str,
loading_messages: List[str] | None = None,
**kwargs) ‑> SlackResponse
-
@@ -8725,15 +8871,18 @@ Methods
channel_id: str,
thread_ts: str,
status: str,
+ loading_messages: Optional[List[str]] = None,
**kwargs,
) -> SlackResponse:
- """Revokes a token.
+ """Set the status for an AI assistant thread.
https://api.slack.com/methods/assistant.threads.setStatus
"""
- kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "status": status})
+ kwargs.update(
+ {"channel_id": channel_id, "thread_ts": thread_ts, "status": status, "loading_messages": loading_messages}
+ )
return self.api_call("assistant.threads.setStatus", params=kwargs)
-Revokes a token.
+
@@ -8753,7 +8902,7 @@ Methods
prompts: List[Dict[str, str]],
**kwargs,
) -> SlackResponse:
- """Revokes a token.
+ """Set suggested prompts for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setSuggestedPrompts
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "prompts": prompts})
@@ -8761,7 +8910,7 @@ Methods
kwargs.update({"title": title})
return self.api_call("assistant.threads.setSuggestedPrompts", json=kwargs)
-Revokes a token.
+
@@ -8780,13 +8929,13 @@ Methods
title: str,
**kwargs,
) -> SlackResponse:
- """Revokes a token.
+ """Set the title for the given assistant thread.
https://api.slack.com/methods/assistant.threads.setTitle
"""
kwargs.update({"channel_id": channel_id, "thread_ts": thread_ts, "title": title})
return self.api_call("assistant.threads.setTitle", params=kwargs)
-Revokes a token.
+
@@ -9657,6 +9806,37 @@ Methods
+
+def chat_appendStream(self, *, channel: str, ts: str, markdown_text: str, **kwargs) ‑> SlackResponse
+
+-
+
+
+Expand source code
+
+def chat_appendStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: str,
+ **kwargs,
+) -> SlackResponse:
+ """Appends text to an existing streaming conversation.
+ https://api.slack.com/methods/chat.appendStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ }
+ )
+ return self.api_call("chat.appendStream", params=kwargs)
+
+
+
def chat_delete(self, *, channel: str, ts: str, as_user: bool | None = None, **kwargs) ‑> SlackResponse
@@ -9762,7 +9942,7 @@ Methods
https://api.slack.com/methods/chat.meMessage
-def chat_postEphemeral(self,
*,
channel: str,
user: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
**kwargs) ‑> SlackResponse
+def chat_postEphemeral(self,
*,
channel: str,
user: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
markdown_text: str | None = None,
**kwargs) ‑> SlackResponse
-
@@ -9784,6 +9964,7 @@ Methods
link_names: Optional[bool] = None,
username: Optional[str] = None,
parse: Optional[str] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Sends an ephemeral message to a user in a channel.
@@ -9803,11 +9984,12 @@ Methods
"link_names": link_names,
"username": username,
"parse": parse,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postEphemeral", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postEphemeral", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return self.api_call("chat.postEphemeral", json=kwargs)
@@ -9815,7 +9997,7 @@ Methods
https://api.slack.com/methods/chat.postEphemeral
-def chat_postMessage(self,
*,
channel: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
container_id: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
mrkdwn: bool | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> SlackResponse
+def chat_postMessage(self,
*,
channel: str,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
container_id: str | None = None,
icon_emoji: str | None = None,
icon_url: str | None = None,
mrkdwn: bool | None = None,
link_names: bool | None = None,
username: str | None = None,
parse: str | None = None,
metadata: Dict | Metadata | None = None,
markdown_text: str | None = None,
**kwargs) ‑> SlackResponse
-
@@ -9842,6 +10024,7 @@ Methods
username: Optional[str] = None,
parse: Optional[str] = None, # none, full
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Sends a message to a channel.
@@ -9866,11 +10049,12 @@ Methods
"username": username,
"parse": parse,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.postMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.postMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return self.api_call("chat.postMessage", json=kwargs)
@@ -9878,7 +10062,7 @@ Methods
https://api.slack.com/methods/chat.postMessage
-def chat_scheduleMessage(self,
*,
channel: str,
post_at: str | int,
text: str,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
link_names: bool | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> SlackResponse
+def chat_scheduleMessage(self,
*,
channel: str,
post_at: str | int,
text: str | None = None,
as_user: bool | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
thread_ts: str | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
link_names: bool | None = None,
metadata: Dict | Metadata | None = None,
markdown_text: str | None = None,
**kwargs) ‑> SlackResponse
-
@@ -9890,7 +10074,7 @@ Methods
*,
channel: str,
post_at: Union[str, int],
- text: str,
+ text: Optional[str] = None,
as_user: Optional[bool] = None,
attachments: Optional[Union[str, Sequence[Union[Dict, Attachment]]]] = None,
blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
@@ -9901,6 +10085,7 @@ Methods
unfurl_media: Optional[bool] = None,
link_names: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Schedules a message.
@@ -9921,11 +10106,12 @@ Methods
"unfurl_media": unfurl_media,
"link_names": link_names,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.scheduleMessage", kwargs)
+ _warn_if_message_text_content_is_missing("chat.scheduleMessage", kwargs)
# NOTE: intentionally using json over params for the API methods using blocks/attachments
return self.api_call("chat.scheduleMessage", json=kwargs)
@@ -9969,6 +10155,77 @@ Methods
+
+def chat_startStream(self,
*,
channel: str,
thread_ts: str | None = None,
markdown_text: str | None = None,
unfurl_links: bool | None = None,
unfurl_media: bool | None = None,
**kwargs) ‑> SlackResponse
+
+-
+
+
+Expand source code
+
+def chat_startStream(
+ self,
+ *,
+ channel: str,
+ thread_ts: Optional[str] = None,
+ markdown_text: Optional[str] = None,
+ unfurl_links: Optional[bool] = None,
+ unfurl_media: Optional[bool] = None,
+ **kwargs,
+) -> SlackResponse:
+ """Starts a new streaming conversation.
+ https://api.slack.com/methods/chat.startStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "thread_ts": thread_ts,
+ "markdown_text": markdown_text,
+ "unfurl_links": unfurl_links,
+ "unfurl_media": unfurl_media,
+ }
+ )
+ return self.api_call("chat.startStream", params=kwargs)
+
+
+
+
+def chat_stopStream(self,
*,
channel: str,
ts: str,
markdown_text: str | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> SlackResponse
+
+-
+
+
+Expand source code
+
+def chat_stopStream(
+ self,
+ *,
+ channel: str,
+ ts: str,
+ markdown_text: Optional[str] = None,
+ blocks: Optional[Union[str, Sequence[Union[Dict, Block]]]] = None,
+ metadata: Optional[Union[Dict, Metadata]] = None,
+ **kwargs,
+) -> SlackResponse:
+ """Stops a streaming conversation.
+ https://api.slack.com/methods/chat.stopStream
+ """
+ kwargs.update(
+ {
+ "channel": channel,
+ "ts": ts,
+ "markdown_text": markdown_text,
+ "blocks": blocks,
+ "metadata": metadata,
+ }
+ )
+ _parse_web_class_objects(kwargs)
+ return self.api_call("chat.stopStream", params=kwargs)
+
+
+
def chat_unfurl(self,
*,
channel: str | None = None,
ts: str | None = None,
source: str | None = None,
unfurl_id: str | None = None,
unfurls: Dict[str, Dict] | None = None,
user_auth_blocks: str | Sequence[Dict | Block] | None = None,
user_auth_message: str | None = None,
user_auth_required: bool | None = None,
user_auth_url: str | None = None,
**kwargs) ‑> SlackResponse
@@ -10016,7 +10273,7 @@ Methods
https://api.slack.com/methods/chat.unfurl
-def chat_update(self,
*,
channel: str,
ts: str,
text: str | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
as_user: bool | None = None,
file_ids: str | Sequence[str] | None = None,
link_names: bool | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
metadata: Dict | Metadata | None = None,
**kwargs) ‑> SlackResponse
+def chat_update(self,
*,
channel: str,
ts: str,
text: str | None = None,
attachments: str | Sequence[Dict | Attachment] | None = None,
blocks: str | Sequence[Dict | Block] | None = None,
as_user: bool | None = None,
file_ids: str | Sequence[str] | None = None,
link_names: bool | None = None,
parse: str | None = None,
reply_broadcast: bool | None = None,
metadata: Dict | Metadata | None = None,
markdown_text: str | None = None,
**kwargs) ‑> SlackResponse
-
@@ -10037,6 +10294,7 @@ Methods
parse: Optional[str] = None, # none, full
reply_broadcast: Optional[bool] = None,
metadata: Optional[Union[Dict, Metadata]] = None,
+ markdown_text: Optional[str] = None,
**kwargs,
) -> SlackResponse:
"""Updates a message in a channel.
@@ -10054,6 +10312,7 @@ Methods
"parse": parse,
"reply_broadcast": reply_broadcast,
"metadata": metadata,
+ "markdown_text": markdown_text,
}
)
if isinstance(file_ids, (list, tuple)):
@@ -10062,7 +10321,7 @@ Methods
kwargs.update({"file_ids": file_ids})
_parse_web_class_objects(kwargs)
kwargs = _remove_none_values(kwargs)
- _warn_if_text_or_attachment_fallback_is_missing("chat.update", kwargs)
+ _warn_if_message_text_content_is_missing("chat.update", kwargs)
# NOTE: intentionally using json over params for API methods using blocks/attachments
return self.api_call("chat.update", json=kwargs)
@@ -14090,6 +14349,116 @@ Methods
to learn more about updating views and avoiding race conditions with the hash argument.