From af8adc77aee54171a79201b1bdf8509b6d6dde92 Mon Sep 17 00:00:00 2001 From: Kazuhiro Sera Date: Tue, 21 Nov 2023 15:08:22 +0900 Subject: [PATCH] version 3.25.0 --- docs/api-docs/slack_sdk/index.html | 242 +++++ .../models/blocks/block_elements.html | 981 +++++++++++++++++- .../slack_sdk/models/blocks/blocks.html | 139 ++- .../slack_sdk/models/blocks/index.html | 790 ++++++++++++++ .../socket_mode/builtin/internals.html | 2 - docs/api-docs/slack_sdk/version.html | 2 +- docs/api-docs/slack_sdk/web/async_client.html | 327 ++++++ docs/api-docs/slack_sdk/web/client.html | 327 ++++++ docs/api-docs/slack_sdk/web/index.html | 242 +++++ .../api-docs/slack_sdk/web/legacy_client.html | 327 ++++++ slack_sdk/version.py | 2 +- 11 files changed, 3374 insertions(+), 7 deletions(-) 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 @@

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, + ) -> 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 + """ + 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 + """ + 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 + """ + 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 + """ + 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, + ) -> 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, *, @@ -8155,6 +8240,134 @@

Methods

return self.api_call("apps.event.authorizations.list", params=kwargs) +
+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

+
+ +Expand source code + +
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

+
+ +Expand source code + +
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

+
+ +Expand source code + +
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

+
+ +Expand source code + +
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 +
+
+ +
+ +Expand source code + +
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
@@ -12324,6 +12537,29 @@

Methods

return self.api_call("team.profile.get", http_verb="GET", params=kwargs) +
+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

+
+ +Expand source code + +
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
@@ -13686,6 +13922,11 @@

WebClientapi_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 @@

    WebClientteam_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

    + +

    Inherited members

    + +
    +
    +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

    +
    + +
    +

    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

    + +
    +
    +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

    + +
    +
    +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

    + +
    +
    +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

    + +
    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

    + +
  • +
  • +

    RichTextPreformattedElement

    + +
  • +
  • +

    RichTextQuoteElement

    + +
  • +
  • +

    RichTextSectionElement

    + +
  • +
  • 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

    + +

    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

    + +
    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

    + + +
  • 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

    + +

    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

    + +
    +
    +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

    + +

    Inherited members

    + +
    +
    +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

    +
    + +
    +

    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

    + +
    +
    +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

    + +
    +
    +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

    + +
    +
    +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

    + +
    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

    + + +
  • +

    RichTextElement

    +
  • +
  • +

    RichTextElementParts

    + +
  • +
  • RichTextInputElement

  • +

    RichTextListElement

    + +
  • +
  • +

    RichTextPreformattedElement

    + +
  • +
  • +

    RichTextQuoteElement

    + +
  • +
  • +

    RichTextSectionElement

    + +
  • +
  • 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.internalsModule slack_sdk.socket_mode.builtin.internalsModule 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 +
      +
      + +
      + +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

      +
      + +Expand source code + +
      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
      @@ -18075,6 +18396,11 @@

      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
    • @@ -18222,6 +18548,7 @@

      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/client.html b/docs/api-docs/slack_sdk/web/client.html index e2750b7be..ea8df8911 100644 --- a/docs/api-docs/slack_sdk/web/client.html +++ b/docs/api-docs/slack_sdk/web/client.html @@ -1948,6 +1948,91 @@

      Module slack_sdk.web.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, + ) -> 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 + """ + 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 + """ + 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 + """ + 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 + """ + 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, + ) -> 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, *, @@ -6999,6 +7084,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, + ) -> 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 + """ + 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 + """ + 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 + """ + 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 + """ + 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, + ) -> 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, *, @@ -12996,6 +13166,134 @@

      Methods

      return self.api_call("apps.event.authorizations.list", params=kwargs)
      +
      +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

      +
      + +Expand source code + +
      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

      +
      + +Expand source code + +
      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

      +
      + +Expand source code + +
      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

      +
      + +Expand source code + +
      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 +
      +
      + +
      + +Expand source code + +
      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
      @@ -17165,6 +17463,29 @@

      Methods

      return self.api_call("team.profile.get", http_verb="GET", params=kwargs) +
      +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

      +
      + +Expand source code + +
      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
      @@ -18065,6 +18386,11 @@

      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
    • @@ -18212,6 +18538,7 @@

      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/index.html b/docs/api-docs/slack_sdk/web/index.html index 8d513a594..037adcf42 100644 --- a/docs/api-docs/slack_sdk/web/index.html +++ b/docs/api-docs/slack_sdk/web/index.html @@ -2369,6 +2369,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, + ) -> 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 + """ + 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 + """ + 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 + """ + 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 + """ + 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, + ) -> 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, *, @@ -8366,6 +8451,134 @@

      Methods

      return self.api_call("apps.event.authorizations.list", params=kwargs) +
      +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

      +
      + +Expand source code + +
      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

      +
      + +Expand source code + +
      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

      +
      + +Expand source code + +
      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

      +
      + +Expand source code + +
      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 +
      +
      + +
      + +Expand source code + +
      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
      @@ -12535,6 +12748,29 @@

      Methods

      return self.api_call("team.profile.get", http_verb="GET", params=kwargs) +
      +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

      +
      + +Expand source code + +
      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
      @@ -13458,6 +13694,11 @@

      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] +
      +
      + +
      + +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

      +
      + +Expand source code + +
      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]
      @@ -18075,6 +18396,11 @@

      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
    • @@ -18222,6 +18548,7 @@

      team_integrationLogs
    • team_preferences_list
    • team_profile_get
    • +
    • tooling_tokens_rotate
    • usergroups_create
    • usergroups_disable
    • usergroups_enable
    • diff --git a/slack_sdk/version.py b/slack_sdk/version.py index 5ddd7a109..10e4696ad 100644 --- a/slack_sdk/version.py +++ b/slack_sdk/version.py @@ -1,2 +1,2 @@ """Check the latest version at https://pypi.org/project/slack-sdk/""" -__version__ = "3.24.0" +__version__ = "3.25.0"