diff --git a/docs/api-docs/slack_sdk/index.html b/docs/api-docs/slack_sdk/index.html index d2d10fb55..c047a6407 100644 --- a/docs/api-docs/slack_sdk/index.html +++ b/docs/api-docs/slack_sdk/index.html @@ -2158,6 +2158,91 @@
+def apps_manifest_create(self, *, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> SlackResponse
+
Create an app from an app manifest +https://api.slack.com/methods/apps.manifest.create
def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> SlackResponse:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return self.api_call("apps.manifest.create", params=kwargs)
+
+def apps_manifest_delete(self, *, app_id: str, **kwargs) ‑> SlackResponse
+
Permanently deletes an app created through app manifests +https://api.slack.com/methods/apps.manifest.delete
def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> SlackResponse:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.delete", params=kwargs)
+
+def apps_manifest_export(self, *, app_id: str, **kwargs) ‑> SlackResponse
+
Export an app manifest from an existing app +https://api.slack.com/methods/apps.manifest.export
def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> SlackResponse:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.export", params=kwargs)
+
+def apps_manifest_update(self, *, app_id: str, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> SlackResponse
+
Update an app from an app manifest +https://api.slack.com/methods/apps.manifest.update
def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> SlackResponse:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.update", params=kwargs)
+
+def apps_manifest_validate(self, *, manifest: Union[str, Dict[str, Any]], app_id: Optional[str] = None, **kwargs) ‑> SlackResponse
+
Validate an app manifest +https://api.slack.com/methods/apps.manifest.validate
def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+) -> SlackResponse:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.validate", params=kwargs)
+
def apps_uninstall(self, *, client_id: str, client_secret: str, **kwargs) ‑> SlackResponse
+def tooling_tokens_rotate(self, *, refresh_token: str, **kwargs) ‑> SlackResponse
+
Exchanges a refresh token for a new app configuration token +https://api.slack.com/methods/tooling.tokens.rotate
def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+) -> SlackResponse:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return self.api_call("tooling.tokens.rotate", params=kwargs)
+
def usergroups_create(self, *, name: str, channels: Union[str, Sequence[str], ForwardRef(None)] = None, description: Optional[str] = None, handle: Optional[str] = None, include_count: Optional[bool] = None, team_id: Optional[str] = None, **kwargs) ‑> SlackResponse
WebClient
api_test
apps_connections_open
apps_event_authorizations_list
+apps_manifest_create
+apps_manifest_delete
+apps_manifest_export
+apps_manifest_update
+apps_manifest_validate
apps_uninstall
auth_revoke
auth_teams_list
@@ -13833,6 +14074,7 @@ WebClient
team_integrationLogs
team_preferences_list
team_profile_get
+tooling_tokens_rotate
usergroups_create
usergroups_disable
usergroups_enable
diff --git a/docs/api-docs/slack_sdk/models/blocks/block_elements.html b/docs/api-docs/slack_sdk/models/blocks/block_elements.html
index 61dc13352..373181c67 100644
--- a/docs/api-docs/slack_sdk/models/blocks/block_elements.html
+++ b/docs/api-docs/slack_sdk/models/blocks/block_elements.html
@@ -122,6 +122,7 @@ Module slack_sdk.models.blocks.block_elements
Module slack_sdk.models.blocks.block_elements
+ self.accessibility_label = accessibility_label
+
+
+# -------------------------------------------------
+# Rich text elements
+# -------------------------------------------------
+
+
+class RichTextElement(BlockElement):
+ pass
+
+
+class RichTextListElement(RichTextElement):
+ type = "rich_text_list"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "style", "indent", "offset", "border"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ style: Optional[str] = None, # bullet, ordered
+ indent: Optional[int] = None,
+ offset: Optional[int] = None,
+ border: Optional[int] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+ self.style = style
+ self.indent = indent
+ self.offset = offset
+ self.border = border
+
+
+class RichTextPreformattedElement(RichTextElement):
+ type = "rich_text_preformatted"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "border"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ border: Optional[int] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+ self.border = border
+
+
+class RichTextQuoteElement(RichTextElement):
+ type = "rich_text_quote"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+
+
+class RichTextSectionElement(RichTextElement):
+ type = "rich_text_section"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+
+
+class RichTextElementParts:
+ class TextStyle:
+ def __init__(
+ self,
+ *,
+ bold: Optional[bool] = None,
+ italic: Optional[bool] = None,
+ strike: Optional[bool] = None,
+ code: Optional[bool] = None,
+ ):
+ self.bold = bold
+ self.italic = italic
+ self.strike = strike
+ self.code = code
+
+ def to_dict(self, *args) -> dict:
+ result = {
+ "bold": self.bold,
+ "italic": self.italic,
+ "strike": self.strike,
+ "code": self.code,
+ }
+ return {k: v for k, v in result.items() if v is not None}
+
+ class Text(RichTextElement):
+ type = "text"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"text", "style"})
+
+ def __init__(
+ self,
+ *,
+ text: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.text = text
+ self.style = style
+
+ class Channel(RichTextElement):
+ type = "channel"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"channel_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ channel_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.channel_id = channel_id
+ self.style = style
+
+ class User(RichTextElement):
+ type = "user"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"user_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ user_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.user_id = user_id
+ self.style = style
+
+ class Emoji(RichTextElement):
+ type = "emoji"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"name", "skin_tone", "unicode", "style"})
+
+ def __init__(
+ self,
+ *,
+ name: str,
+ skin_tone: Optional[int] = None,
+ unicode: Optional[str] = None,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.name = name
+ self.skin_tone = skin_tone
+ self.unicode = unicode
+ self.style = style
+
+ class Link(RichTextElement):
+ type = "link"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"url", "text", "style"})
+
+ def __init__(
+ self,
+ *,
+ url: str,
+ text: Optional[str] = None,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.url = url
+ self.text = text
+ self.style = style
+
+ class Team(RichTextElement):
+ type = "team"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"team_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ team_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.team_id = team_id
+ self.style = style
+
+ class UserGroup(RichTextElement):
+ type = "usergroup"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"usergroup_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ usergroup_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.usergroup_id = usergroup_id
+ self.style = style
+
+ class Date(RichTextElement):
+ type = "date"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"timestamp"})
+
+ def __init__(
+ self,
+ *,
+ timestamp: str,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.timestamp = timestamp
+
+ class Broadcast(RichTextElement):
+ type = "broadcast"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"range"})
+
+ def __init__(
+ self,
+ *,
+ range: str, # channel, here, ..
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.range = range
+
+ class Color(RichTextElement):
+ type = "color"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"value"})
+
+ def __init__(
+ self,
+ *,
+ value: str,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.value = value
@@ -1956,6 +2263,7 @@ Subclasses
Class variables
@@ -4593,6 +4901,340 @@ Inherited members
+
+class RichTextElement
+(*, type: Optional[str] = None, subtype: Optional[str] = None, **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextElement(BlockElement):
+ pass
+
+Ancestors
+
+Subclasses
+
+- RichTextElementParts.Broadcast
+- RichTextElementParts.Channel
+- RichTextElementParts.Color
+- RichTextElementParts.Date
+- RichTextElementParts.Emoji
+- RichTextElementParts.Link
+- RichTextElementParts.Team
+- RichTextElementParts.Text
+- RichTextElementParts.User
+- RichTextElementParts.UserGroup
+- RichTextListElement
+- RichTextPreformattedElement
+- RichTextQuoteElement
+- RichTextSectionElement
+
+Inherited members
+
+BlockElement
:
+
+
+JsonObject
:
+
+attributes
+
+
+
+
+
+class RichTextElementParts
+
+-
+
+
+
+Expand source code
+
+class RichTextElementParts:
+ class TextStyle:
+ def __init__(
+ self,
+ *,
+ bold: Optional[bool] = None,
+ italic: Optional[bool] = None,
+ strike: Optional[bool] = None,
+ code: Optional[bool] = None,
+ ):
+ self.bold = bold
+ self.italic = italic
+ self.strike = strike
+ self.code = code
+
+ def to_dict(self, *args) -> dict:
+ result = {
+ "bold": self.bold,
+ "italic": self.italic,
+ "strike": self.strike,
+ "code": self.code,
+ }
+ return {k: v for k, v in result.items() if v is not None}
+
+ class Text(RichTextElement):
+ type = "text"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"text", "style"})
+
+ def __init__(
+ self,
+ *,
+ text: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.text = text
+ self.style = style
+
+ class Channel(RichTextElement):
+ type = "channel"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"channel_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ channel_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.channel_id = channel_id
+ self.style = style
+
+ class User(RichTextElement):
+ type = "user"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"user_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ user_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.user_id = user_id
+ self.style = style
+
+ class Emoji(RichTextElement):
+ type = "emoji"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"name", "skin_tone", "unicode", "style"})
+
+ def __init__(
+ self,
+ *,
+ name: str,
+ skin_tone: Optional[int] = None,
+ unicode: Optional[str] = None,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.name = name
+ self.skin_tone = skin_tone
+ self.unicode = unicode
+ self.style = style
+
+ class Link(RichTextElement):
+ type = "link"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"url", "text", "style"})
+
+ def __init__(
+ self,
+ *,
+ url: str,
+ text: Optional[str] = None,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.url = url
+ self.text = text
+ self.style = style
+
+ class Team(RichTextElement):
+ type = "team"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"team_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ team_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.team_id = team_id
+ self.style = style
+
+ class UserGroup(RichTextElement):
+ type = "usergroup"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"usergroup_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ usergroup_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.usergroup_id = usergroup_id
+ self.style = style
+
+ class Date(RichTextElement):
+ type = "date"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"timestamp"})
+
+ def __init__(
+ self,
+ *,
+ timestamp: str,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.timestamp = timestamp
+
+ class Broadcast(RichTextElement):
+ type = "broadcast"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"range"})
+
+ def __init__(
+ self,
+ *,
+ range: str, # channel, here, ..
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.range = range
+
+ class Color(RichTextElement):
+ type = "color"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"value"})
+
+ def __init__(
+ self,
+ *,
+ value: str,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.value = value
+
+Class variables
+
+var Broadcast
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Channel
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Color
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Date
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Emoji
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Link
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Team
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Text
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var TextStyle
+-
+
+
+var User
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var UserGroup
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+
class RichTextInputElement
(*, action_id: Optional[str] = None, placeholder: Union[str, dict, TextObject, ForwardRef(None)] = None, initial_value: Optional[Dict[str, Any]] = None, dispatch_action_config: Union[dict, DispatchActionConfig, ForwardRef(None)] = None, focus_on_load: Optional[bool] = None, **others: dict)
@@ -4670,6 +5312,296 @@ Inherited members
+
+class RichTextListElement
+(*, elements: Sequence[Union[dict, RichTextElement]], style: Optional[str] = None, indent: Optional[int] = None, offset: Optional[int] = None, border: Optional[int] = None, **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextListElement(RichTextElement):
+ type = "rich_text_list"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "style", "indent", "offset", "border"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ style: Optional[str] = None, # bullet, ordered
+ indent: Optional[int] = None,
+ offset: Optional[int] = None,
+ border: Optional[int] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+ self.style = style
+ self.indent = indent
+ self.offset = offset
+ self.border = border
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "style", "indent", "offset", "border"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
+
+class RichTextPreformattedElement
+(*, elements: Sequence[Union[dict, RichTextElement]], border: Optional[int] = None, **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextPreformattedElement(RichTextElement):
+ type = "rich_text_preformatted"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "border"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ border: Optional[int] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+ self.border = border
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "border"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
+
+class RichTextQuoteElement
+(*, elements: Sequence[Union[dict, RichTextElement]], **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextQuoteElement(RichTextElement):
+ type = "rich_text_quote"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
+
+class RichTextSectionElement
+(*, elements: Sequence[Union[dict, RichTextElement]], **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextSectionElement(RichTextElement):
+ type = "rich_text_section"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
class SelectElement
(*, action_id: Optional[str] = None, placeholder: Optional[str] = None, options: Optional[Sequence[Option]] = None, option_groups: Optional[Sequence[OptionGroup]] = None, initial_option: Optional[Option] = None, confirm: Union[dict, ConfirmObject, ForwardRef(None)] = None, focus_on_load: Optional[bool] = None, **others: dict)
@@ -5884,12 +6816,59 @@
-
+
RichTextElement
+
+-
+
RichTextElementParts
+
+
+-
RichTextInputElement
-
+
RichTextListElement
+
+attributes
+type
+
+
+-
+
RichTextPreformattedElement
+
+attributes
+type
+
+
+-
+
RichTextQuoteElement
+
+attributes
+type
+
+
+-
+
RichTextSectionElement
+
+attributes
+type
+
+
+-
SelectElement
option_groups_max_length
diff --git a/docs/api-docs/slack_sdk/models/blocks/blocks.html b/docs/api-docs/slack_sdk/models/blocks/blocks.html
index 394e9eeb0..9876d253f 100644
--- a/docs/api-docs/slack_sdk/models/blocks/blocks.html
+++ b/docs/api-docs/slack_sdk/models/blocks/blocks.html
@@ -39,7 +39,7 @@ Module slack_sdk.models.blocks.blocks
from .basic_components import MarkdownTextObject
from .basic_components import PlainTextObject
from .basic_components import TextObject
-from .block_elements import BlockElement
+from .block_elements import BlockElement, RichTextElement
from .block_elements import ImageElement
from .block_elements import InputInteractiveElement
from .block_elements import InteractiveElement
@@ -631,7 +631,38 @@ Module slack_sdk.models.blocks.blocks
@JsonValidator(f"author_name attribute cannot exceed {author_name_max_length} characters")
def _validate_author_name_length(self):
- return self.author_name is None or len(self.author_name) < self.author_name_max_length
+ return self.author_name is None or len(self.author_name) < self.author_name_max_length
+
+
+class RichTextBlock(Block):
+ type = "rich_text"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ block_id: Optional[str] = None,
+ **others: dict,
+ ):
+ """A block that is used to hold interactive elements.
+ https://api.slack.com/reference/block-kit/blocks#rich_text
+
+ Args:
+ elements (required): An array of rich text objects -
+ rich_text_section, rich_text_list, rich_text_quote, rich_text_preformatted
+ block_id: A unique identifier for a block. If not specified, one will be generated.
+ Maximum length for this field is 255 characters.
+ block_id should be unique for each message or view and each iteration of a message or view.
+ If a message or view is updated, use a new block_id.
+ """
+ super().__init__(type=self.type, block_id=block_id)
+ show_unknown_key_warning(self, others)
+
+ self.elements = BlockElement.parse_all(elements)
@@ -856,6 +887,7 @@ Subclasses
HeaderBlock
ImageBlock
InputBlock
+RichTextBlock
SectionBlock
VideoBlock
@@ -1731,6 +1763,102 @@ Inherited members
+
+class RichTextBlock
+(*, elements: Sequence[Union[dict, RichTextElement]], block_id: Optional[str] = None, **others: dict)
+
+
+Blocks are a series of components that can be combined
+to create visually rich and compellingly interactive messages.
+https://api.slack.com/reference/block-kit/blocks
+A block that is used to hold interactive elements.
+https://api.slack.com/reference/block-kit/blocks#rich_text
+Args
+
+elements
: required
+- An array of rich text objects -
+rich_text_section, rich_text_list, rich_text_quote, rich_text_preformatted
+block_id
+- A unique identifier for a block. If not specified, one will be generated.
+Maximum length for this field is 255 characters.
+block_id should be unique for each message or view and each iteration of a message or view.
+If a message or view is updated, use a new block_id.
+
+
+
+Expand source code
+
+class RichTextBlock(Block):
+ type = "rich_text"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ block_id: Optional[str] = None,
+ **others: dict,
+ ):
+ """A block that is used to hold interactive elements.
+ https://api.slack.com/reference/block-kit/blocks#rich_text
+
+ Args:
+ elements (required): An array of rich text objects -
+ rich_text_section, rich_text_list, rich_text_quote, rich_text_preformatted
+ block_id: A unique identifier for a block. If not specified, one will be generated.
+ Maximum length for this field is 255 characters.
+ block_id should be unique for each message or view and each iteration of a message or view.
+ If a message or view is updated, use a new block_id.
+ """
+ super().__init__(type=self.type, block_id=block_id)
+ show_unknown_key_warning(self, others)
+
+ self.elements = BlockElement.parse_all(elements)
+
+Ancestors
+
+- Block
+- JsonObject
+- BaseObject
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+
+
+Inherited members
+
+Block
:
+
+
+
+
class SectionBlock
(*, block_id: Optional[str] = None, text: Union[str, dict, TextObject, ForwardRef(None)] = None, fields: Optional[Sequence[Union[str, dict, TextObject]]] = None, accessory: Union[dict, BlockElement, ForwardRef(None)] = None, **others: dict)
@@ -2178,6 +2306,13 @@ RichTextBlock
+
+attributes
+type
+
+
+
SectionBlock
attributes
diff --git a/docs/api-docs/slack_sdk/models/blocks/index.html b/docs/api-docs/slack_sdk/models/blocks/index.html
index 01140707d..39d33b193 100644
--- a/docs/api-docs/slack_sdk/models/blocks/index.html
+++ b/docs/api-docs/slack_sdk/models/blocks/index.html
@@ -78,6 +78,12 @@ Module slack_sdk.models.blocks
from .block_elements import StaticSelectElement
from .block_elements import UserMultiSelectElement
from .block_elements import UserSelectElement
+from .block_elements import RichTextElement
+from .block_elements import RichTextElementParts
+from .block_elements import RichTextListElement
+from .block_elements import RichTextPreformattedElement
+from .block_elements import RichTextQuoteElement
+from .block_elements import RichTextSectionElement
from .blocks import ActionsBlock
from .blocks import Block
from .blocks import CallBlock
@@ -89,6 +95,7 @@ Module slack_sdk.models.blocks
from .blocks import InputBlock
from .blocks import SectionBlock
from .blocks import VideoBlock
+from .blocks import RichTextBlock
__all__ = [
"ButtonStyles",
@@ -128,6 +135,12 @@ Module slack_sdk.models.blocks
"StaticSelectElement",
"UserMultiSelectElement",
"UserSelectElement",
+ "RichTextElement",
+ "RichTextElementParts",
+ "RichTextListElement",
+ "RichTextPreformattedElement",
+ "RichTextQuoteElement",
+ "RichTextSectionElement",
"ActionsBlock",
"Block",
"CallBlock",
@@ -139,6 +152,7 @@ Module slack_sdk.models.blocks
"InputBlock",
"SectionBlock",
"VideoBlock",
+ "RichTextBlock",
]
@@ -379,6 +393,7 @@ Subclasses
HeaderBlock
ImageBlock
InputBlock
+RichTextBlock
SectionBlock
VideoBlock
@@ -566,6 +581,7 @@ Subclasses
Class variables
@@ -4894,6 +4910,436 @@ Inherited members
+
+class RichTextBlock
+(*, elements: Sequence[Union[dict, RichTextElement]], block_id: Optional[str] = None, **others: dict)
+
+-
+
Blocks are a series of components that can be combined
+to create visually rich and compellingly interactive messages.
+https://api.slack.com/reference/block-kit/blocks
+A block that is used to hold interactive elements.
+https://api.slack.com/reference/block-kit/blocks#rich_text
+Args
+
+elements
: required
+- An array of rich text objects -
+rich_text_section, rich_text_list, rich_text_quote, rich_text_preformatted
+block_id
+- A unique identifier for a block. If not specified, one will be generated.
+Maximum length for this field is 255 characters.
+block_id should be unique for each message or view and each iteration of a message or view.
+If a message or view is updated, use a new block_id.
+
+
+
+Expand source code
+
+class RichTextBlock(Block):
+ type = "rich_text"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ block_id: Optional[str] = None,
+ **others: dict,
+ ):
+ """A block that is used to hold interactive elements.
+ https://api.slack.com/reference/block-kit/blocks#rich_text
+
+ Args:
+ elements (required): An array of rich text objects -
+ rich_text_section, rich_text_list, rich_text_quote, rich_text_preformatted
+ block_id: A unique identifier for a block. If not specified, one will be generated.
+ Maximum length for this field is 255 characters.
+ block_id should be unique for each message or view and each iteration of a message or view.
+ If a message or view is updated, use a new block_id.
+ """
+ super().__init__(type=self.type, block_id=block_id)
+ show_unknown_key_warning(self, others)
+
+ self.elements = BlockElement.parse_all(elements)
+
+Ancestors
+
+- Block
+- JsonObject
+- BaseObject
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+
+
+Inherited members
+
+Block
:
+
+
+
+
+
+class RichTextElement
+(*, type: Optional[str] = None, subtype: Optional[str] = None, **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextElement(BlockElement):
+ pass
+
+Ancestors
+
+Subclasses
+
+- RichTextElementParts.Broadcast
+- RichTextElementParts.Channel
+- RichTextElementParts.Color
+- RichTextElementParts.Date
+- RichTextElementParts.Emoji
+- RichTextElementParts.Link
+- RichTextElementParts.Team
+- RichTextElementParts.Text
+- RichTextElementParts.User
+- RichTextElementParts.UserGroup
+- RichTextListElement
+- RichTextPreformattedElement
+- RichTextQuoteElement
+- RichTextSectionElement
+
+Inherited members
+
+BlockElement
:
+
+
+JsonObject
:
+
+attributes
+
+
+
+
+
+class RichTextElementParts
+
+-
+
+
+
+Expand source code
+
+class RichTextElementParts:
+ class TextStyle:
+ def __init__(
+ self,
+ *,
+ bold: Optional[bool] = None,
+ italic: Optional[bool] = None,
+ strike: Optional[bool] = None,
+ code: Optional[bool] = None,
+ ):
+ self.bold = bold
+ self.italic = italic
+ self.strike = strike
+ self.code = code
+
+ def to_dict(self, *args) -> dict:
+ result = {
+ "bold": self.bold,
+ "italic": self.italic,
+ "strike": self.strike,
+ "code": self.code,
+ }
+ return {k: v for k, v in result.items() if v is not None}
+
+ class Text(RichTextElement):
+ type = "text"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"text", "style"})
+
+ def __init__(
+ self,
+ *,
+ text: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.text = text
+ self.style = style
+
+ class Channel(RichTextElement):
+ type = "channel"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"channel_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ channel_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.channel_id = channel_id
+ self.style = style
+
+ class User(RichTextElement):
+ type = "user"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"user_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ user_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.user_id = user_id
+ self.style = style
+
+ class Emoji(RichTextElement):
+ type = "emoji"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"name", "skin_tone", "unicode", "style"})
+
+ def __init__(
+ self,
+ *,
+ name: str,
+ skin_tone: Optional[int] = None,
+ unicode: Optional[str] = None,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.name = name
+ self.skin_tone = skin_tone
+ self.unicode = unicode
+ self.style = style
+
+ class Link(RichTextElement):
+ type = "link"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"url", "text", "style"})
+
+ def __init__(
+ self,
+ *,
+ url: str,
+ text: Optional[str] = None,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.url = url
+ self.text = text
+ self.style = style
+
+ class Team(RichTextElement):
+ type = "team"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"team_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ team_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.team_id = team_id
+ self.style = style
+
+ class UserGroup(RichTextElement):
+ type = "usergroup"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"usergroup_id", "style"})
+
+ def __init__(
+ self,
+ *,
+ usergroup_id: str,
+ style: Optional[Union[dict, "RichTextElementParts.TextStyle"]] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.usergroup_id = usergroup_id
+ self.style = style
+
+ class Date(RichTextElement):
+ type = "date"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"timestamp"})
+
+ def __init__(
+ self,
+ *,
+ timestamp: str,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.timestamp = timestamp
+
+ class Broadcast(RichTextElement):
+ type = "broadcast"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"range"})
+
+ def __init__(
+ self,
+ *,
+ range: str, # channel, here, ..
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.range = range
+
+ class Color(RichTextElement):
+ type = "color"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"value"})
+
+ def __init__(
+ self,
+ *,
+ value: str,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.value = value
+
+Class variables
+
+var Broadcast
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Channel
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Color
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Date
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Emoji
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Link
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Team
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var Text
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var TextStyle
+-
+
+
+var User
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+var UserGroup
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+
class RichTextInputElement
(*, action_id: Optional[str] = None, placeholder: Union[str, dict, TextObject, ForwardRef(None)] = None, initial_value: Optional[Dict[str, Any]] = None, dispatch_action_config: Union[dict, DispatchActionConfig, ForwardRef(None)] = None, focus_on_load: Optional[bool] = None, **others: dict)
@@ -4971,6 +5417,296 @@ Inherited members
+
+class RichTextListElement
+(*, elements: Sequence[Union[dict, RichTextElement]], style: Optional[str] = None, indent: Optional[int] = None, offset: Optional[int] = None, border: Optional[int] = None, **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextListElement(RichTextElement):
+ type = "rich_text_list"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "style", "indent", "offset", "border"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ style: Optional[str] = None, # bullet, ordered
+ indent: Optional[int] = None,
+ offset: Optional[int] = None,
+ border: Optional[int] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+ self.style = style
+ self.indent = indent
+ self.offset = offset
+ self.border = border
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "style", "indent", "offset", "border"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
+
+class RichTextPreformattedElement
+(*, elements: Sequence[Union[dict, RichTextElement]], border: Optional[int] = None, **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextPreformattedElement(RichTextElement):
+ type = "rich_text_preformatted"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "border"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ border: Optional[int] = None,
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+ self.border = border
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements", "border"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
+
+class RichTextQuoteElement
+(*, elements: Sequence[Union[dict, RichTextElement]], **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextQuoteElement(RichTextElement):
+ type = "rich_text_quote"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
+
+class RichTextSectionElement
+(*, elements: Sequence[Union[dict, RichTextElement]], **others: dict)
+
+-
+
Block Elements are things that exists inside of your Blocks.
+https://api.slack.com/reference/block-kit/block-elements
+
+
+Expand source code
+
+class RichTextSectionElement(RichTextElement):
+ type = "rich_text_section"
+
+ @property
+ def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+ def __init__(
+ self,
+ *,
+ elements: Sequence[Union[dict, RichTextElement]],
+ **others: dict,
+ ):
+ super().__init__(type=self.type)
+ show_unknown_key_warning(self, others)
+ self.elements = elements
+
+Ancestors
+
+Class variables
+
+var type
+-
+
+
+
+Instance variables
+
+var attributes : Set[str]
+-
+
set() -> new empty set object
+set(iterable) -> new set object
+Build an unordered collection of unique elements.
+
+
+Expand source code
+
+@property
+def attributes(self) -> Set[str]:
+ return super().attributes.union({"elements"})
+
+
+
+Inherited members
+
+RichTextElement
:
+
+
+
+
class SectionBlock
(*, block_id: Optional[str] = None, text: Union[str, dict, TextObject, ForwardRef(None)] = None, fields: Optional[Sequence[Union[str, dict, TextObject]]] = None, accessory: Union[dict, BlockElement, ForwardRef(None)] = None, **others: dict)
@@ -6704,12 +7440,66 @@ RichTextBlock
+
+attributes
+type
+
+
+-
+
RichTextElement
+
+-
+
RichTextElementParts
+
+
+-
RichTextInputElement
-
+
RichTextListElement
+
+attributes
+type
+
+
+-
+
RichTextPreformattedElement
+
+attributes
+type
+
+
+-
+
RichTextQuoteElement
+
+attributes
+type
+
+
+-
+
RichTextSectionElement
+
+attributes
+type
+
+
+-
SectionBlock
attributes
diff --git a/docs/api-docs/slack_sdk/socket_mode/builtin/internals.html b/docs/api-docs/slack_sdk/socket_mode/builtin/internals.html
index 236ce868b..f2c8bca68 100644
--- a/docs/api-docs/slack_sdk/socket_mode/builtin/internals.html
+++ b/docs/api-docs/slack_sdk/socket_mode/builtin/internals.html
@@ -83,7 +83,6 @@ Module slack_sdk.socket_mode.builtin.internals
Module slack_sdk.socket_mode.builtin.internals
Module slack_sdk.version
Expand source code
"""Check the latest version at https://pypi.org/project/slack-sdk/"""
-__version__ = "3.24.0"
+__version__ = "3.25.0"
diff --git a/docs/api-docs/slack_sdk/web/async_client.html b/docs/api-docs/slack_sdk/web/async_client.html
index e353c6d74..76e49fc86 100644
--- a/docs/api-docs/slack_sdk/web/async_client.html
+++ b/docs/api-docs/slack_sdk/web/async_client.html
@@ -1957,6 +1957,91 @@ Module slack_sdk.web.async_client
kwargs.update({"client_id": client_id, "client_secret": client_secret})
return await self.api_call("apps.uninstall", params=kwargs)
+ async def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return await self.api_call("apps.manifest.create", params=kwargs)
+
+ async def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.delete", params=kwargs)
+
+ async def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.export", params=kwargs)
+
+ async def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.update", params=kwargs)
+
+ async def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.validate", params=kwargs)
+
+ async def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return await self.api_call("tooling.tokens.rotate", params=kwargs)
+
async def auth_revoke(
self,
*,
@@ -7008,6 +7093,91 @@ Note
kwargs.update({"client_id": client_id, "client_secret": client_secret})
return await self.api_call("apps.uninstall", params=kwargs)
+ async def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return await self.api_call("apps.manifest.create", params=kwargs)
+
+ async def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.delete", params=kwargs)
+
+ async def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.export", params=kwargs)
+
+ async def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.update", params=kwargs)
+
+ async def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.validate", params=kwargs)
+
+ async def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+ ) -> AsyncSlackResponse:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return await self.api_call("tooling.tokens.rotate", params=kwargs)
+
async def auth_revoke(
self,
*,
@@ -13005,6 +13175,134 @@ Methods
return await self.api_call("apps.event.authorizations.list", params=kwargs)
+
+async def apps_manifest_create(self, *, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> AsyncSlackResponse
+
+-
+
Create an app from an app manifest
+https://api.slack.com/methods/apps.manifest.create
+
+
+Expand source code
+
+async def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return await self.api_call("apps.manifest.create", params=kwargs)
+
+
+
+async def apps_manifest_delete(self, *, app_id: str, **kwargs) ‑> AsyncSlackResponse
+
+-
+
Permanently deletes an app created through app manifests
+https://api.slack.com/methods/apps.manifest.delete
+
+
+Expand source code
+
+async def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.delete", params=kwargs)
+
+
+
+async def apps_manifest_export(self, *, app_id: str, **kwargs) ‑> AsyncSlackResponse
+
+-
+
Export an app manifest from an existing app
+https://api.slack.com/methods/apps.manifest.export
+
+
+Expand source code
+
+async def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.export", params=kwargs)
+
+
+
+async def apps_manifest_update(self, *, app_id: str, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> AsyncSlackResponse
+
+-
+
Update an app from an app manifest
+https://api.slack.com/methods/apps.manifest.update
+
+
+Expand source code
+
+async def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.update", params=kwargs)
+
+
+
+async def apps_manifest_validate(self, *, manifest: Union[str, Dict[str, Any]], app_id: Optional[str] = None, **kwargs) ‑> AsyncSlackResponse
+
+-
+
Validate an app manifest
+https://api.slack.com/methods/apps.manifest.validate
+
+
+Expand source code
+
+async def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return await self.api_call("apps.manifest.validate", params=kwargs)
+
+
async def apps_uninstall(self, *, client_id: str, client_secret: str, **kwargs) ‑> AsyncSlackResponse
@@ -17174,6 +17472,29 @@ Methods
return await self.api_call("team.profile.get", http_verb="GET", params=kwargs)
+
+async def tooling_tokens_rotate(self, *, refresh_token: str, **kwargs) ‑> AsyncSlackResponse
+
Exchanges a refresh token for a new app configuration token +https://api.slack.com/methods/tooling.tokens.rotate
async def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+) -> AsyncSlackResponse:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return await self.api_call("tooling.tokens.rotate", params=kwargs)
+
async def usergroups_create(self, *, name: str, channels: Union[str, Sequence[str], ForwardRef(None)] = None, description: Optional[str] = None, handle: Optional[str] = None, include_count: Optional[bool] = None, team_id: Optional[str] = None, **kwargs) ‑> AsyncSlackResponse
api_test
apps_connections_open
apps_event_authorizations_list
apps_manifest_create
apps_manifest_delete
apps_manifest_export
apps_manifest_update
apps_manifest_validate
apps_uninstall
auth_revoke
auth_teams_list
team_integrationLogs
team_preferences_list
team_profile_get
tooling_tokens_rotate
usergroups_create
usergroups_disable
usergroups_enable
slack_sdk.web.client
+def apps_manifest_create(self, *, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> SlackResponse
+
Create an app from an app manifest +https://api.slack.com/methods/apps.manifest.create
def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> SlackResponse:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return self.api_call("apps.manifest.create", params=kwargs)
+
+def apps_manifest_delete(self, *, app_id: str, **kwargs) ‑> SlackResponse
+
Permanently deletes an app created through app manifests +https://api.slack.com/methods/apps.manifest.delete
def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> SlackResponse:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.delete", params=kwargs)
+
+def apps_manifest_export(self, *, app_id: str, **kwargs) ‑> SlackResponse
+
Export an app manifest from an existing app +https://api.slack.com/methods/apps.manifest.export
def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> SlackResponse:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.export", params=kwargs)
+
+def apps_manifest_update(self, *, app_id: str, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> SlackResponse
+
Update an app from an app manifest +https://api.slack.com/methods/apps.manifest.update
def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> SlackResponse:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.update", params=kwargs)
+
+def apps_manifest_validate(self, *, manifest: Union[str, Dict[str, Any]], app_id: Optional[str] = None, **kwargs) ‑> SlackResponse
+
Validate an app manifest +https://api.slack.com/methods/apps.manifest.validate
def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+) -> SlackResponse:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.validate", params=kwargs)
+
def apps_uninstall(self, *, client_id: str, client_secret: str, **kwargs) ‑> SlackResponse
+def tooling_tokens_rotate(self, *, refresh_token: str, **kwargs) ‑> SlackResponse
+
Exchanges a refresh token for a new app configuration token +https://api.slack.com/methods/tooling.tokens.rotate
def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+) -> SlackResponse:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return self.api_call("tooling.tokens.rotate", params=kwargs)
+
def usergroups_create(self, *, name: str, channels: Union[str, Sequence[str], ForwardRef(None)] = None, description: Optional[str] = None, handle: Optional[str] = None, include_count: Optional[bool] = None, team_id: Optional[str] = None, **kwargs) ‑> SlackResponse
api_test
apps_connections_open
apps_event_authorizations_list
apps_manifest_create
apps_manifest_delete
apps_manifest_export
apps_manifest_update
apps_manifest_validate
apps_uninstall
auth_revoke
auth_teams_list
team_integrationLogs
team_preferences_list
team_profile_get
tooling_tokens_rotate
usergroups_create
usergroups_disable
usergroups_enable
+def apps_manifest_create(self, *, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> SlackResponse
+
Create an app from an app manifest +https://api.slack.com/methods/apps.manifest.create
def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> SlackResponse:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return self.api_call("apps.manifest.create", params=kwargs)
+
+def apps_manifest_delete(self, *, app_id: str, **kwargs) ‑> SlackResponse
+
Permanently deletes an app created through app manifests +https://api.slack.com/methods/apps.manifest.delete
def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> SlackResponse:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.delete", params=kwargs)
+
+def apps_manifest_export(self, *, app_id: str, **kwargs) ‑> SlackResponse
+
Export an app manifest from an existing app +https://api.slack.com/methods/apps.manifest.export
def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> SlackResponse:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.export", params=kwargs)
+
+def apps_manifest_update(self, *, app_id: str, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> SlackResponse
+
Update an app from an app manifest +https://api.slack.com/methods/apps.manifest.update
def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> SlackResponse:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.update", params=kwargs)
+
+def apps_manifest_validate(self, *, manifest: Union[str, Dict[str, Any]], app_id: Optional[str] = None, **kwargs) ‑> SlackResponse
+
Validate an app manifest +https://api.slack.com/methods/apps.manifest.validate
def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+) -> SlackResponse:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.validate", params=kwargs)
+
def apps_uninstall(self, *, client_id: str, client_secret: str, **kwargs) ‑> SlackResponse
+def tooling_tokens_rotate(self, *, refresh_token: str, **kwargs) ‑> SlackResponse
+
Exchanges a refresh token for a new app configuration token +https://api.slack.com/methods/tooling.tokens.rotate
def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+) -> SlackResponse:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return self.api_call("tooling.tokens.rotate", params=kwargs)
+
def usergroups_create(self, *, name: str, channels: Union[str, Sequence[str], ForwardRef(None)] = None, description: Optional[str] = None, handle: Optional[str] = None, include_count: Optional[bool] = None, team_id: Optional[str] = None, **kwargs) ‑> SlackResponse
Web
api_test
apps_connections_open
apps_event_authorizations_list
+apps_manifest_create
+apps_manifest_delete
+apps_manifest_export
+apps_manifest_update
+apps_manifest_validate
apps_uninstall
auth_revoke
auth_teams_list
@@ -13605,6 +13846,7 @@ Web
team_integrationLogs
team_preferences_list
team_profile_get
+tooling_tokens_rotate
usergroups_create
usergroups_disable
usergroups_enable
diff --git a/docs/api-docs/slack_sdk/web/legacy_client.html b/docs/api-docs/slack_sdk/web/legacy_client.html
index 7b09ffc9b..c643976d3 100644
--- a/docs/api-docs/slack_sdk/web/legacy_client.html
+++ b/docs/api-docs/slack_sdk/web/legacy_client.html
@@ -1958,6 +1958,91 @@ Module slack_sdk.web.legacy_client
kwargs.update({"client_id": client_id, "client_secret": client_secret})
return self.api_call("apps.uninstall", params=kwargs)
+ def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return self.api_call("apps.manifest.create", params=kwargs)
+
+ def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.delete", params=kwargs)
+
+ def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.export", params=kwargs)
+
+ def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.update", params=kwargs)
+
+ def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.validate", params=kwargs)
+
+ def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return self.api_call("tooling.tokens.rotate", params=kwargs)
+
def auth_revoke(
self,
*,
@@ -7009,6 +7094,91 @@ Note
kwargs.update({"client_id": client_id, "client_secret": client_secret})
return self.api_call("apps.uninstall", params=kwargs)
+ def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return self.api_call("apps.manifest.create", params=kwargs)
+
+ def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.delete", params=kwargs)
+
+ def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.export", params=kwargs)
+
+ def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.update", params=kwargs)
+
+ def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.validate", params=kwargs)
+
+ def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+ ) -> Union[Future, SlackResponse]:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return self.api_call("tooling.tokens.rotate", params=kwargs)
+
def auth_revoke(
self,
*,
@@ -13006,6 +13176,134 @@ Methods
return self.api_call("apps.event.authorizations.list", params=kwargs)
+
+def apps_manifest_create(self, *, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
+
+
+Create an app from an app manifest
+https://api.slack.com/methods/apps.manifest.create
+
+
+Expand source code
+
+def apps_manifest_create(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> Union[Future, SlackResponse]:
+ """Create an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.create
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ return self.api_call("apps.manifest.create", params=kwargs)
+
+
+
+def apps_manifest_delete(self, *, app_id: str, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
+
+
+Permanently deletes an app created through app manifests
+https://api.slack.com/methods/apps.manifest.delete
+
+
+Expand source code
+
+def apps_manifest_delete(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> Union[Future, SlackResponse]:
+ """Permanently deletes an app created through app manifests
+ https://api.slack.com/methods/apps.manifest.delete
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.delete", params=kwargs)
+
+
+
+def apps_manifest_export(self, *, app_id: str, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
+
+
+Export an app manifest from an existing app
+https://api.slack.com/methods/apps.manifest.export
+
+
+Expand source code
+
+def apps_manifest_export(
+ self,
+ *,
+ app_id: str,
+ **kwargs,
+) -> Union[Future, SlackResponse]:
+ """Export an app manifest from an existing app
+ https://api.slack.com/methods/apps.manifest.export
+ """
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.export", params=kwargs)
+
+
+
+def apps_manifest_update(self, *, app_id: str, manifest: Union[str, Dict[str, Any]], **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
+
+
+Update an app from an app manifest
+https://api.slack.com/methods/apps.manifest.update
+
+
+Expand source code
+
+def apps_manifest_update(
+ self,
+ *,
+ app_id: str,
+ manifest: Union[str, Dict[str, Any]],
+ **kwargs,
+) -> Union[Future, SlackResponse]:
+ """Update an app from an app manifest
+ https://api.slack.com/methods/apps.manifest.update
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.update", params=kwargs)
+
+
+
+def apps_manifest_validate(self, *, manifest: Union[str, Dict[str, Any]], app_id: Optional[str] = None, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
+
+
+Validate an app manifest
+https://api.slack.com/methods/apps.manifest.validate
+
+
+Expand source code
+
+def apps_manifest_validate(
+ self,
+ *,
+ manifest: Union[str, Dict[str, Any]],
+ app_id: Optional[str] = None,
+ **kwargs,
+) -> Union[Future, SlackResponse]:
+ """Validate an app manifest
+ https://api.slack.com/methods/apps.manifest.validate
+ """
+ if isinstance(manifest, str):
+ kwargs.update({"manifest": manifest})
+ else:
+ kwargs.update({"manifest": json.dumps(manifest)})
+ kwargs.update({"app_id": app_id})
+ return self.api_call("apps.manifest.validate", params=kwargs)
+
+
def apps_uninstall(self, *, client_id: str, client_secret: str, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
@@ -17175,6 +17473,29 @@ Methods
return self.api_call("team.profile.get", http_verb="GET", params=kwargs)
+
+def tooling_tokens_rotate(self, *, refresh_token: str, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
+
Exchanges a refresh token for a new app configuration token +https://api.slack.com/methods/tooling.tokens.rotate
def tooling_tokens_rotate(
+ self,
+ *,
+ refresh_token: str,
+ **kwargs,
+) -> Union[Future, SlackResponse]:
+ """Exchanges a refresh token for a new app configuration token
+ https://api.slack.com/methods/tooling.tokens.rotate
+ """
+ kwargs.update({"refresh_token": refresh_token})
+ return self.api_call("tooling.tokens.rotate", params=kwargs)
+
def usergroups_create(self, *, name: str, channels: Union[str, Sequence[str], ForwardRef(None)] = None, description: Optional[str] = None, handle: Optional[str] = None, include_count: Optional[bool] = None, team_id: Optional[str] = None, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]
api_test
apps_connections_open
apps_event_authorizations_list
apps_manifest_create
apps_manifest_delete
apps_manifest_export
apps_manifest_update
apps_manifest_validate
apps_uninstall
auth_revoke
auth_teams_list
team_integrationLogs
team_preferences_list
team_profile_get
tooling_tokens_rotate
usergroups_create
usergroups_disable
usergroups_enable