From 60b02d6ea56fe3c4cd9d5d51370f99ca5f9795f3 Mon Sep 17 00:00:00 2001 From: Kazuhiro Sera Date: Tue, 13 Feb 2024 15:27:57 +0900 Subject: [PATCH] version 3.27.0 --- .../slack_sdk/audit_logs/v1/logs.html | 994 +++++++++++++++++- .../slack_sdk/models/basic_objects.html | 1 + .../models/blocks/basic_components.html | 96 ++ .../models/blocks/block_elements.html | 34 +- .../slack_sdk/models/blocks/blocks.html | 46 +- .../slack_sdk/models/blocks/index.html | 49 +- docs/api-docs/slack_sdk/models/index.html | 1 + .../slack_sdk/socket_mode/aiohttp/index.html | 6 +- docs/api-docs/slack_sdk/version.html | 2 +- slack_sdk/version.py | 2 +- 10 files changed, 1149 insertions(+), 82 deletions(-) diff --git a/docs/api-docs/slack_sdk/audit_logs/v1/logs.html b/docs/api-docs/slack_sdk/audit_logs/v1/logs.html index ebc15be8..d519b441 100644 --- a/docs/api-docs/slack_sdk/audit_logs/v1/logs.html +++ b/docs/api-docs/slack_sdk/audit_logs/v1/logs.html @@ -194,14 +194,17 @@

Module slack_sdk.audit_logs.v1.logs

class SharedWith: channel_id: Optional[str] + access_level: Optional[str] def __init__( self, *, channel_id: Optional[str] = None, + access_level: Optional[str] = None, **kwargs, ) -> None: self.channel_id = channel_id + self.access_level = access_level self.unknown_fields = kwargs @@ -262,19 +265,174 @@

Module slack_sdk.audit_logs.v1.logs

self.payload = payload +class AttributeItems: + type: Optional[str] + + def __init__( + self, + *, + type: Optional[str] = None, + **kwargs, + ) -> None: + self.type = type + + class Attribute: name: Optional[str] type: Optional[str] + items: Optional[AttributeItems] def __init__( self, *, name: Optional[str] = None, type: Optional[str] = None, + items: Optional[AttributeItems] = None, **kwargs, ) -> None: self.name = name self.type = type + self.items = items + + +class AAARuleActionResolution: + value: Optional[str] + + def __init__( + self, + *, + value: Optional[str] = None, + **kwargs, + ) -> None: + self.value = value + + +class AAARuleActionNotify: + entity_type: Optional[str] + + def __init__( + self, + *, + entity_type: Optional[str] = None, + **kwargs, + ) -> None: + self.entity_type = entity_type + + +class AAARuleAction: + resolution: Optional[AAARuleActionResolution] + notify: Optional[List[AAARuleActionNotify]] + + def __init__( + self, + *, + resolution: Optional[Union[Dict[str, Any], AAARuleActionResolution]] = None, + notify: Optional[List[Union[Dict[str, Any], AAARuleActionNotify]]] = None, + **kwargs, + ) -> None: + self.resolution = ( + resolution + if resolution is None or isinstance(resolution, AAARuleActionResolution) + else AAARuleActionResolution(**resolution) + ) + self.notify = None + if notify is not None: + self.notify = [] + for a in notify: + if isinstance(a, dict): + self.notify.append(AAARuleActionNotify(**a)) + else: + self.notify.append(a) + + +class AAARuleConditionValue: + field: Optional[str] + values: Optional[List[str]] + datatype: Optional[str] + operator: Optional[str] + + def __init__( + self, + *, + field: Optional[str] = None, + values: Optional[List[str]] = None, + datatype: Optional[str] = None, + operator: Optional[str] = None, + **kwargs, + ) -> None: + self.field = field + self.values = values + self.datatype = datatype + self.operator = operator + + +class AAARuleCondition: + datatype: Optional[str] + operator: Optional[str] + values: Optional[List[AAARuleConditionValue]] + entity_type: Optional[str] + + def __init__( + self, + *, + datatype: Optional[str] = None, + operator: Optional[str] = None, + values: Optional[List[Union[Dict[str, Any], AAARuleConditionValue]]] = None, + entity_type: Optional[str] = None, + **kwargs, + ) -> None: + self.datatype = datatype + self.operator = operator + self.values = None + if values is not None: + self.values = [] + for a in values: + if isinstance(a, dict): + self.values.append(AAARuleConditionValue(**a)) + else: + self.values.append(a) + self.entity_type = entity_type + + +class AAARule: + id: Optional[str] + team_id: Optional[str] + title: Optional[str] + action: Optional[AAARuleAction] + condition: Optional[AAARuleCondition] + + def __init__( + self, + *, + id: Optional[str] = None, + team_id: Optional[str] = None, + title: Optional[str] = None, + action: Optional[Union[Dict[str, Any], AAARuleAction]] = None, + condition: Optional[Union[Dict[str, Any], AAARuleCondition]] = None, + **kwargs, + ) -> None: + self.id = id + self.team_id = team_id + self.title = title + self.action = action if action is None or isinstance(action, AAARuleAction) else AAARuleAction(**action) + self.condition = ( + condition if condition is None or isinstance(condition, AAARuleCondition) else AAARuleCondition(**condition) + ) + + +class AAARequest: + id: Optional[str] + team_id: Optional[str] + + def __init__( + self, + *, + id: Optional[str] = None, + team_id: Optional[str] = None, + **kwargs, + ) -> None: + self.id = id + self.team_id = team_id class Details: @@ -381,6 +539,17 @@

Module slack_sdk.audit_logs.v1.logs

changed_permissions: Optional[List[str]] datastore_name: Optional[str] attributes: Optional[List[Attribute]] + channel: Optional[str] + entity_type: Optional[str] + actor: Optional[str] + access_level: Optional[str] + functions: Optional[List[str]] + workflows: Optional[List[str]] + datastores: Optional[List[str]] + permissions_updated: Optional[bool] + matched_rule: Optional[AAARule] + request: Optional[AAARequest] + rules_checked: Optional[List[AAARule]] def __init__( self, @@ -487,6 +656,17 @@

Module slack_sdk.audit_logs.v1.logs

changed_permissions: Optional[List[str]] = None, datastore_name: Optional[str] = None, attributes: Optional[List[Union[Dict[str, str], Attribute]]] = None, + channel: Optional[str] = None, + entity_type: Optional[str] = None, + actor: Optional[str] = None, + access_level: Optional[str] = None, + functions: Optional[List[str]] = None, + workflows: Optional[List[str]] = None, + datastores: Optional[List[str]] = None, + permissions_updated: Optional[bool] = None, + matched_rule: Optional[Union[Dict[str, Any], AAARule]] = None, + request: Optional[Union[Dict[str, Any], AAARequest]] = None, + rules_checked: Optional[List[Union[Dict[str, Any], AAARule]]] = None, **kwargs, ) -> None: self.name = name @@ -639,6 +819,26 @@

Module slack_sdk.audit_logs.v1.logs

self.attributes.append(Attribute(**a)) else: self.attributes.append(a) + self.channel = channel + self.entity_type = entity_type + self.actor = actor + self.access_level = access_level + self.functions = functions + self.workflows = workflows + self.datastores = datastores + self.permissions_updated = permissions_updated + self.matched_rule = ( + matched_rule if matched_rule is None or isinstance(matched_rule, AAARule) else AAARule(**matched_rule) + ) + self.request = request if request is None or isinstance(request, AAARequest) else AAARequest(**request) + self.rules_checked = None + if rules_checked is not None: + self.rules_checked = [] + for a in rules_checked: + if isinstance(a, dict): + self.rules_checked.append(AAARule(**a)) + else: + self.rules_checked.append(a) class Channel: @@ -799,6 +999,65 @@

Module slack_sdk.audit_logs.v1.logs

self.unknown_fields = kwargs +class WorkflowV2StepConfiguration: + name: Optional[str] + step_function_type: Optional[str] + step_function_app_id: Optional[int] + unknown_fields: Dict[str, Any] + + def __init__( + self, + *, + name: Optional[str] = None, + step_function_type: Optional[str] = None, + step_function_app_id: Optional[str] = None, + **kwargs, + ) -> None: + self.name = name + self.step_function_type = step_function_type + self.step_function_app_id = step_function_app_id + self.unknown_fields = kwargs + + +class WorkflowV2: + id: Optional[str] + app_id: Optional[str] + date_updated: Optional[int] + callback_id: Optional[str] + name: Optional[str] + updated_by: Optional[str] + step_configuration: Optional[List[WorkflowV2StepConfiguration]] + unknown_fields: Dict[str, Any] + + def __init__( + self, + *, + id: Optional[str] = None, + app_id: Optional[str] = None, + date_updated: Optional[int] = None, + callback_id: Optional[str] = None, + name: Optional[str] = None, + updated_by: Optional[str] = None, + step_configuration: Optional[List[Union[Dict[str, Any], WorkflowV2StepConfiguration]]] = None, + **kwargs, + ) -> None: + self.id = id + self.app_id = app_id + self.date_updated = date_updated + self.callback_id = callback_id + self.name = name + self.updated_by = updated_by + self.step_configuration = None + if step_configuration is not None: + self.step_configuration = [] + for a in step_configuration: + if isinstance(a, dict): + self.step_configuration.append(WorkflowV2StepConfiguration(**a)) + else: + self.step_configuration.append(a) + self.unknown_fields = kwargs + + class AccountTypeRole: id: Optional[str] name: Optional[str] @@ -829,6 +1088,7 @@

Module slack_sdk.audit_logs.v1.logs

usergroup: Optional[Usergroup] workflow: Optional[Workflow] barrier: Optional[InformationBarrier] + workflow_v2: Optional[WorkflowV2] account_type_role: Optional[AccountTypeRole] unknown_fields: Dict[str, Any] @@ -847,6 +1107,7 @@

Module slack_sdk.audit_logs.v1.logs

usergroup: Optional[Union[Usergroup, Dict[str, Any]]] = None, workflow: Optional[Union[Workflow, Dict[str, Any]]] = None, barrier: Optional[Union[InformationBarrier, Dict[str, Any]]] = None, + workflow_v2: Optional[Union[WorkflowV2, Dict[str, Any]]] = None, account_type_role: Optional[Union[AccountTypeRole, Dict[str, Any]]] = None, **kwargs, ) -> None: @@ -862,6 +1123,7 @@

Module slack_sdk.audit_logs.v1.logs

self.usergroup = Usergroup(**usergroup) if isinstance(usergroup, dict) else usergroup self.workflow = Workflow(**workflow) if isinstance(workflow, dict) else workflow self.barrier = InformationBarrier(**barrier) if isinstance(barrier, dict) else barrier + self.workflow_v2 = WorkflowV2(**workflow_v2) if isinstance(workflow_v2, dict) else workflow_v2 self.account_type_role = ( AccountTypeRole(**account_type_role) if isinstance(account_type_role, dict) else account_type_role ) @@ -926,34 +1188,341 @@

Module slack_sdk.audit_logs.v1.logs

def __init__( self, *, - entries: Optional[List[Union[Entry, Dict[str, Any]]]] = None, - response_metadata: Optional[Union[ResponseMetadata, Dict[str, Any]]] = None, - ok: Optional[bool] = None, - error: Optional[str] = None, - needed: Optional[str] = None, - provided: Optional[str] = None, + entries: Optional[List[Union[Entry, Dict[str, Any]]]] = None, + response_metadata: Optional[Union[ResponseMetadata, Dict[str, Any]]] = None, + ok: Optional[bool] = None, + error: Optional[str] = None, + needed: Optional[str] = None, + provided: Optional[str] = None, + **kwargs, + ) -> None: + self.entries = [Entry(**e) if isinstance(e, dict) else e for e in entries] + self.response_metadata = ( + ResponseMetadata(**response_metadata) if isinstance(response_metadata, dict) else response_metadata + ) + self.ok = ok + self.error = error + self.needed = needed + self.provided = provided + self.unknown_fields = kwargs + + +
+
+
+
+
+
+
+

Classes

+
+
+class AAARequest +(*, id: Optional[str] = None, team_id: Optional[str] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AAARequest:
+    id: Optional[str]
+    team_id: Optional[str]
+
+    def __init__(
+        self,
+        *,
+        id: Optional[str] = None,
+        team_id: Optional[str] = None,
+        **kwargs,
+    ) -> None:
+        self.id = id
+        self.team_id = team_id
+
+

Class variables

+
+
var id : Optional[str]
+
+
+
+
var team_id : Optional[str]
+
+
+
+
+
+
+class AAARule +(*, id: Optional[str] = None, team_id: Optional[str] = None, title: Optional[str] = None, action: Union[Dict[str, Any], AAARuleAction, ForwardRef(None)] = None, condition: Union[Dict[str, Any], AAARuleCondition, ForwardRef(None)] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AAARule:
+    id: Optional[str]
+    team_id: Optional[str]
+    title: Optional[str]
+    action: Optional[AAARuleAction]
+    condition: Optional[AAARuleCondition]
+
+    def __init__(
+        self,
+        *,
+        id: Optional[str] = None,
+        team_id: Optional[str] = None,
+        title: Optional[str] = None,
+        action: Optional[Union[Dict[str, Any], AAARuleAction]] = None,
+        condition: Optional[Union[Dict[str, Any], AAARuleCondition]] = None,
+        **kwargs,
+    ) -> None:
+        self.id = id
+        self.team_id = team_id
+        self.title = title
+        self.action = action if action is None or isinstance(action, AAARuleAction) else AAARuleAction(**action)
+        self.condition = (
+            condition if condition is None or isinstance(condition, AAARuleCondition) else AAARuleCondition(**condition)
+        )
+
+

Class variables

+
+
var action : Optional[AAARuleAction]
+
+
+
+
var condition : Optional[AAARuleCondition]
+
+
+
+
var id : Optional[str]
+
+
+
+
var team_id : Optional[str]
+
+
+
+
var title : Optional[str]
+
+
+
+
+
+
+class AAARuleAction +(*, resolution: Union[Dict[str, Any], AAARuleActionResolution, ForwardRef(None)] = None, notify: Optional[List[Union[Dict[str, Any], AAARuleActionNotify]]] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AAARuleAction:
+    resolution: Optional[AAARuleActionResolution]
+    notify: Optional[List[AAARuleActionNotify]]
+
+    def __init__(
+        self,
+        *,
+        resolution: Optional[Union[Dict[str, Any], AAARuleActionResolution]] = None,
+        notify: Optional[List[Union[Dict[str, Any], AAARuleActionNotify]]] = None,
+        **kwargs,
+    ) -> None:
+        self.resolution = (
+            resolution
+            if resolution is None or isinstance(resolution, AAARuleActionResolution)
+            else AAARuleActionResolution(**resolution)
+        )
+        self.notify = None
+        if notify is not None:
+            self.notify = []
+            for a in notify:
+                if isinstance(a, dict):
+                    self.notify.append(AAARuleActionNotify(**a))
+                else:
+                    self.notify.append(a)
+
+

Class variables

+
+
var notify : Optional[List[AAARuleActionNotify]]
+
+
+
+
var resolution : Optional[AAARuleActionResolution]
+
+
+
+
+
+
+class AAARuleActionNotify +(*, entity_type: Optional[str] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AAARuleActionNotify:
+    entity_type: Optional[str]
+
+    def __init__(
+        self,
+        *,
+        entity_type: Optional[str] = None,
+        **kwargs,
+    ) -> None:
+        self.entity_type = entity_type
+
+

Class variables

+
+
var entity_type : Optional[str]
+
+
+
+
+
+
+class AAARuleActionResolution +(*, value: Optional[str] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AAARuleActionResolution:
+    value: Optional[str]
+
+    def __init__(
+        self,
+        *,
+        value: Optional[str] = None,
+        **kwargs,
+    ) -> None:
+        self.value = value
+
+

Class variables

+
+
var value : Optional[str]
+
+
+
+
+
+
+class AAARuleCondition +(*, datatype: Optional[str] = None, operator: Optional[str] = None, values: Optional[List[Union[Dict[str, Any], AAARuleConditionValue]]] = None, entity_type: Optional[str] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AAARuleCondition:
+    datatype: Optional[str]
+    operator: Optional[str]
+    values: Optional[List[AAARuleConditionValue]]
+    entity_type: Optional[str]
+
+    def __init__(
+        self,
+        *,
+        datatype: Optional[str] = None,
+        operator: Optional[str] = None,
+        values: Optional[List[Union[Dict[str, Any], AAARuleConditionValue]]] = None,
+        entity_type: Optional[str] = None,
+        **kwargs,
+    ) -> None:
+        self.datatype = datatype
+        self.operator = operator
+        self.values = None
+        if values is not None:
+            self.values = []
+            for a in values:
+                if isinstance(a, dict):
+                    self.values.append(AAARuleConditionValue(**a))
+                else:
+                    self.values.append(a)
+        self.entity_type = entity_type
+
+

Class variables

+
+
var datatype : Optional[str]
+
+
+
+
var entity_type : Optional[str]
+
+
+
+
var operator : Optional[str]
+
+
+
+
var values : Optional[List[AAARuleConditionValue]]
+
+
+
+
+
+
+class AAARuleConditionValue +(*, field: Optional[str] = None, values: Optional[List[str]] = None, datatype: Optional[str] = None, operator: Optional[str] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AAARuleConditionValue:
+    field: Optional[str]
+    values: Optional[List[str]]
+    datatype: Optional[str]
+    operator: Optional[str]
+
+    def __init__(
+        self,
+        *,
+        field: Optional[str] = None,
+        values: Optional[List[str]] = None,
+        datatype: Optional[str] = None,
+        operator: Optional[str] = None,
         **kwargs,
     ) -> None:
-        self.entries = [Entry(**e) if isinstance(e, dict) else e for e in entries]
-        self.response_metadata = (
-            ResponseMetadata(**response_metadata) if isinstance(response_metadata, dict) else response_metadata
-        )
-        self.ok = ok
-        self.error = error
-        self.needed = needed
-        self.provided = provided
-        self.unknown_fields = kwargs
+ self.field = field + self.values = values + self.datatype = datatype + self.operator = operator
-
-
-
-
-
-
-
-
-

Classes

+

Class variables

+
var datatype : Optional[str]
+
+
+
+
var field : Optional[str]
+
+
+
+
var operator : Optional[str]
+
+
+
+
var values : Optional[List[str]]
+
+
+
+
+
class AccountTypeRole (*, id: Optional[str] = None, name: Optional[str] = None, **kwargs) @@ -1109,7 +1678,7 @@

Class variables

class Attribute -(*, name: Optional[str] = None, type: Optional[str] = None, **kwargs) +(*, name: Optional[str] = None, type: Optional[str] = None, items: Optional[AttributeItems] = None, **kwargs)
@@ -1120,19 +1689,26 @@

Class variables

class Attribute:
     name: Optional[str]
     type: Optional[str]
+    items: Optional[AttributeItems]
 
     def __init__(
         self,
         *,
         name: Optional[str] = None,
         type: Optional[str] = None,
+        items: Optional[AttributeItems] = None,
         **kwargs,
     ) -> None:
         self.name = name
-        self.type = type
+ self.type = type + self.items = items

Class variables

+
var items : Optional[AttributeItems]
+
+
+
var name : Optional[str]
@@ -1143,6 +1719,35 @@

Class variables

+
+class AttributeItems +(*, type: Optional[str] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class AttributeItems:
+    type: Optional[str]
+
+    def __init__(
+        self,
+        *,
+        type: Optional[str] = None,
+        **kwargs,
+    ) -> None:
+        self.type = type
+
+

Class variables

+
+
var type : Optional[str]
+
+
+
+
+
class Channel (*, id: Optional[str] = None, privacy: Optional[str] = None, name: Optional[str] = None, is_shared: Optional[bool] = None, is_org_shared: Optional[bool] = None, teams_shared_with: Optional[List[str]] = None, original_connected_channel_id: Optional[str] = None, **kwargs) @@ -1322,7 +1927,7 @@

Class variables

class Details -(*, name: Optional[str] = None, new_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, previous_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, expires_on: Optional[int] = None, mobile_only: Optional[bool] = None, web_only: Optional[bool] = None, non_sso_only: Optional[bool] = None, type: Optional[str] = None, is_workflow: Optional[bool] = None, inviter: Union[User, Dict[str, Any], ForwardRef(None)] = None, kicker: Union[User, Dict[str, Any], ForwardRef(None)] = None, shared_to: Optional[str] = None, reason: Optional[str] = None, origin_team: Optional[str] = None, target_team: Optional[str] = None, is_internal_integration: Optional[bool] = None, cleared_resolution: Optional[str] = None, app_owner_id: Optional[str] = None, bot_scopes: Optional[List[str]] = None, new_scopes: Optional[List[str]] = None, previous_scopes: Optional[List[str]] = None, granular_bot_token: Optional[bool] = None, scopes: Optional[List[str]] = None, scopes_bot: Optional[List[str]] = None, resolution: Optional[str] = None, app_previously_resolved: Optional[bool] = None, admin_app_id: Optional[str] = None, bot_id: Optional[str] = None, installer_user_id: Optional[str] = None, approver_id: Optional[str] = None, approval_type: Optional[str] = None, app_previously_approved: Optional[bool] = None, old_scopes: Optional[List[str]] = None, channels: Optional[List[str]] = None, permissions: Optional[List[Dict[str, Any]]] = None, new_version_id: Optional[str] = None, trigger: Optional[str] = None, export_type: Optional[str] = None, export_start_ts: Optional[str] = None, export_end_ts: Optional[str] = None, barrier_id: Optional[str] = None, primary_usergroup_id: Optional[str] = None, barriered_from_usergroup_ids: Optional[List[str]] = None, restricted_subjects: Optional[List[str]] = None, duration: Optional[int] = None, desktop_app_browser_quit: Optional[bool] = None, invite_id: Optional[str] = None, external_organization_id: Optional[str] = None, external_organization_name: Optional[str] = None, external_user_id: Optional[str] = None, external_user_email: Optional[str] = None, channel_id: Optional[str] = None, added_team_id: Optional[str] = None, is_token_rotation_enabled_app: Optional[bool] = None, old_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, new_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, who_can_post: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, can_thread: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, is_external_limited: Optional[bool] = None, exporting_team_id: Optional[int] = None, session_search_start: Optional[int] = None, deprecation_search_end: Optional[int] = None, is_error: Optional[bool] = None, creator: Optional[str] = None, team: Optional[str] = None, app_id: Optional[str] = None, enable_at_here: Union[Dict[str, Any], FeatureEnablement, ForwardRef(None)] = None, enable_at_channel: Union[Dict[str, Any], FeatureEnablement, ForwardRef(None)] = None, can_huddle: Union[Dict[str, Any], FeatureEnablement, ForwardRef(None)] = None, url_private: Optional[str] = None, shared_with: Union[Dict[str, Any], SharedWith, ForwardRef(None)] = None, initiated_by: Optional[str] = None, source_team: Optional[str] = None, destination_team: Optional[str] = None, succeeded_users: Union[List[str], str, ForwardRef(None)] = None, failed_users: Union[List[str], str, ForwardRef(None)] = None, enterprise: Optional[str] = None, subteam: Optional[str] = None, action: Optional[str] = None, idp_group_member_count: Optional[int] = None, workspace_member_count: Optional[int] = None, added_user_count: Optional[int] = None, added_user_error_count: Optional[int] = None, reactivated_user_count: Optional[int] = None, removed_user_count: Optional[int] = None, removed_user_error_count: Optional[int] = None, total_removal_count: Optional[int] = None, is_flagged: Optional[str] = None, target_user: Optional[str] = None, idp_config_id: Optional[str] = None, config_type: Optional[str] = None, idp_entity_id_hash: Optional[str] = None, label: Optional[str] = None, previous_profile: Union[Dict[str, Any], Profile, ForwardRef(None)] = None, new_profile: Union[Dict[str, Any], Profile, ForwardRef(None)] = None, target_user_id: Optional[str] = None, space_file_id: Union[Dict[str, Any], SpaceFileId, ForwardRef(None)] = None, target_entity: Optional[str] = None, target_entity_id: Optional[str] = None, changed_permissions: Optional[List[str]] = None, datastore_name: Optional[str] = None, attributes: Optional[List[Union[Dict[str, str], Attribute]]] = None, **kwargs) +(*, name: Optional[str] = None, new_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, previous_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, expires_on: Optional[int] = None, mobile_only: Optional[bool] = None, web_only: Optional[bool] = None, non_sso_only: Optional[bool] = None, type: Optional[str] = None, is_workflow: Optional[bool] = None, inviter: Union[User, Dict[str, Any], ForwardRef(None)] = None, kicker: Union[User, Dict[str, Any], ForwardRef(None)] = None, shared_to: Optional[str] = None, reason: Optional[str] = None, origin_team: Optional[str] = None, target_team: Optional[str] = None, is_internal_integration: Optional[bool] = None, cleared_resolution: Optional[str] = None, app_owner_id: Optional[str] = None, bot_scopes: Optional[List[str]] = None, new_scopes: Optional[List[str]] = None, previous_scopes: Optional[List[str]] = None, granular_bot_token: Optional[bool] = None, scopes: Optional[List[str]] = None, scopes_bot: Optional[List[str]] = None, resolution: Optional[str] = None, app_previously_resolved: Optional[bool] = None, admin_app_id: Optional[str] = None, bot_id: Optional[str] = None, installer_user_id: Optional[str] = None, approver_id: Optional[str] = None, approval_type: Optional[str] = None, app_previously_approved: Optional[bool] = None, old_scopes: Optional[List[str]] = None, channels: Optional[List[str]] = None, permissions: Optional[List[Dict[str, Any]]] = None, new_version_id: Optional[str] = None, trigger: Optional[str] = None, export_type: Optional[str] = None, export_start_ts: Optional[str] = None, export_end_ts: Optional[str] = None, barrier_id: Optional[str] = None, primary_usergroup_id: Optional[str] = None, barriered_from_usergroup_ids: Optional[List[str]] = None, restricted_subjects: Optional[List[str]] = None, duration: Optional[int] = None, desktop_app_browser_quit: Optional[bool] = None, invite_id: Optional[str] = None, external_organization_id: Optional[str] = None, external_organization_name: Optional[str] = None, external_user_id: Optional[str] = None, external_user_email: Optional[str] = None, channel_id: Optional[str] = None, added_team_id: Optional[str] = None, is_token_rotation_enabled_app: Optional[bool] = None, old_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, new_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, who_can_post: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, can_thread: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, is_external_limited: Optional[bool] = None, exporting_team_id: Optional[int] = None, session_search_start: Optional[int] = None, deprecation_search_end: Optional[int] = None, is_error: Optional[bool] = None, creator: Optional[str] = None, team: Optional[str] = None, app_id: Optional[str] = None, enable_at_here: Union[Dict[str, Any], FeatureEnablement, ForwardRef(None)] = None, enable_at_channel: Union[Dict[str, Any], FeatureEnablement, ForwardRef(None)] = None, can_huddle: Union[Dict[str, Any], FeatureEnablement, ForwardRef(None)] = None, url_private: Optional[str] = None, shared_with: Union[Dict[str, Any], SharedWith, ForwardRef(None)] = None, initiated_by: Optional[str] = None, source_team: Optional[str] = None, destination_team: Optional[str] = None, succeeded_users: Union[List[str], str, ForwardRef(None)] = None, failed_users: Union[List[str], str, ForwardRef(None)] = None, enterprise: Optional[str] = None, subteam: Optional[str] = None, action: Optional[str] = None, idp_group_member_count: Optional[int] = None, workspace_member_count: Optional[int] = None, added_user_count: Optional[int] = None, added_user_error_count: Optional[int] = None, reactivated_user_count: Optional[int] = None, removed_user_count: Optional[int] = None, removed_user_error_count: Optional[int] = None, total_removal_count: Optional[int] = None, is_flagged: Optional[str] = None, target_user: Optional[str] = None, idp_config_id: Optional[str] = None, config_type: Optional[str] = None, idp_entity_id_hash: Optional[str] = None, label: Optional[str] = None, previous_profile: Union[Dict[str, Any], Profile, ForwardRef(None)] = None, new_profile: Union[Dict[str, Any], Profile, ForwardRef(None)] = None, target_user_id: Optional[str] = None, space_file_id: Union[Dict[str, Any], SpaceFileId, ForwardRef(None)] = None, target_entity: Optional[str] = None, target_entity_id: Optional[str] = None, changed_permissions: Optional[List[str]] = None, datastore_name: Optional[str] = None, attributes: Optional[List[Union[Dict[str, str], Attribute]]] = None, channel: Optional[str] = None, entity_type: Optional[str] = None, actor: Optional[str] = None, access_level: Optional[str] = None, functions: Optional[List[str]] = None, workflows: Optional[List[str]] = None, datastores: Optional[List[str]] = None, permissions_updated: Optional[bool] = None, matched_rule: Union[Dict[str, Any], AAARule, ForwardRef(None)] = None, request: Union[Dict[str, Any], AAARequest, ForwardRef(None)] = None, rules_checked: Optional[List[Union[Dict[str, Any], AAARule]]] = None, **kwargs)
@@ -1434,6 +2039,17 @@

Class variables

changed_permissions: Optional[List[str]] datastore_name: Optional[str] attributes: Optional[List[Attribute]] + channel: Optional[str] + entity_type: Optional[str] + actor: Optional[str] + access_level: Optional[str] + functions: Optional[List[str]] + workflows: Optional[List[str]] + datastores: Optional[List[str]] + permissions_updated: Optional[bool] + matched_rule: Optional[AAARule] + request: Optional[AAARequest] + rules_checked: Optional[List[AAARule]] def __init__( self, @@ -1540,6 +2156,17 @@

Class variables

changed_permissions: Optional[List[str]] = None, datastore_name: Optional[str] = None, attributes: Optional[List[Union[Dict[str, str], Attribute]]] = None, + channel: Optional[str] = None, + entity_type: Optional[str] = None, + actor: Optional[str] = None, + access_level: Optional[str] = None, + functions: Optional[List[str]] = None, + workflows: Optional[List[str]] = None, + datastores: Optional[List[str]] = None, + permissions_updated: Optional[bool] = None, + matched_rule: Optional[Union[Dict[str, Any], AAARule]] = None, + request: Optional[Union[Dict[str, Any], AAARequest]] = None, + rules_checked: Optional[List[Union[Dict[str, Any], AAARule]]] = None, **kwargs, ) -> None: self.name = name @@ -1691,14 +2318,42 @@

Class variables

if isinstance(a, dict): self.attributes.append(Attribute(**a)) else: - self.attributes.append(a)
+ self.attributes.append(a) + self.channel = channel + self.entity_type = entity_type + self.actor = actor + self.access_level = access_level + self.functions = functions + self.workflows = workflows + self.datastores = datastores + self.permissions_updated = permissions_updated + self.matched_rule = ( + matched_rule if matched_rule is None or isinstance(matched_rule, AAARule) else AAARule(**matched_rule) + ) + self.request = request if request is None or isinstance(request, AAARequest) else AAARequest(**request) + self.rules_checked = None + if rules_checked is not None: + self.rules_checked = [] + for a in rules_checked: + if isinstance(a, dict): + self.rules_checked.append(AAARule(**a)) + else: + self.rules_checked.append(a)

Class variables

+
var access_level : Optional[str]
+
+
+
var action : Optional[str]
+
var actor : Optional[str]
+
+
+
var added_team_id : Optional[str]
@@ -1771,6 +2426,10 @@

Class variables

+
var channel : Optional[str]
+
+
+
var channel_id : Optional[str]
@@ -1795,6 +2454,10 @@

Class variables

+
var datastores : Optional[List[str]]
+
+
+
var deprecation_search_end : Optional[int]
@@ -1823,6 +2486,10 @@

Class variables

+
var entity_type : Optional[str]
+
+
+
var expires_on : Optional[int]
@@ -1863,6 +2530,10 @@

Class variables

+
var functions : Optional[List[str]]
+
+
+
var granular_bot_token : Optional[bool]
@@ -1927,6 +2598,10 @@

Class variables

+
var matched_rule : Optional[AAARule]
+
+
+
var mobile_only : Optional[bool]
@@ -1975,6 +2650,10 @@

Class variables

+
var permissions_updated : Optional[bool]
+
+
+
var previous_profile : Optional[Profile]
@@ -2007,6 +2686,10 @@

Class variables

+
var request : Optional[AAARequest]
+
+
+
var resolution : Optional[str]
@@ -2015,6 +2698,10 @@

Class variables

+
var rules_checked : Optional[List[AAARule]]
+
+
+
var scopes : Optional[List[str]]
@@ -2103,6 +2790,10 @@

Class variables

+
var workflows : Optional[List[str]]
+
+
+
var workspace_member_count : Optional[int]
@@ -2111,7 +2802,7 @@

Class variables

class Entity -(*, type: Optional[str] = None, user: Union[User, Dict[str, Any], ForwardRef(None)] = None, workspace: Union[Location, Dict[str, Any], ForwardRef(None)] = None, enterprise: Union[Location, Dict[str, Any], ForwardRef(None)] = None, channel: Union[Channel, Dict[str, Any], ForwardRef(None)] = None, file: Union[File, Dict[str, Any], ForwardRef(None)] = None, app: Union[App, Dict[str, Any], ForwardRef(None)] = None, huddle: Union[Huddle, Dict[str, Any], ForwardRef(None)] = None, role: Union[Role, Dict[str, Any], ForwardRef(None)] = None, usergroup: Union[Usergroup, Dict[str, Any], ForwardRef(None)] = None, workflow: Union[Workflow, Dict[str, Any], ForwardRef(None)] = None, barrier: Union[InformationBarrier, Dict[str, Any], ForwardRef(None)] = None, account_type_role: Union[AccountTypeRole, Dict[str, Any], ForwardRef(None)] = None, **kwargs) +(*, type: Optional[str] = None, user: Union[User, Dict[str, Any], ForwardRef(None)] = None, workspace: Union[Location, Dict[str, Any], ForwardRef(None)] = None, enterprise: Union[Location, Dict[str, Any], ForwardRef(None)] = None, channel: Union[Channel, Dict[str, Any], ForwardRef(None)] = None, file: Union[File, Dict[str, Any], ForwardRef(None)] = None, app: Union[App, Dict[str, Any], ForwardRef(None)] = None, huddle: Union[Huddle, Dict[str, Any], ForwardRef(None)] = None, role: Union[Role, Dict[str, Any], ForwardRef(None)] = None, usergroup: Union[Usergroup, Dict[str, Any], ForwardRef(None)] = None, workflow: Union[Workflow, Dict[str, Any], ForwardRef(None)] = None, barrier: Union[InformationBarrier, Dict[str, Any], ForwardRef(None)] = None, workflow_v2: Union[WorkflowV2, Dict[str, Any], ForwardRef(None)] = None, account_type_role: Union[AccountTypeRole, Dict[str, Any], ForwardRef(None)] = None, **kwargs)
@@ -2132,6 +2823,7 @@

Class variables

usergroup: Optional[Usergroup] workflow: Optional[Workflow] barrier: Optional[InformationBarrier] + workflow_v2: Optional[WorkflowV2] account_type_role: Optional[AccountTypeRole] unknown_fields: Dict[str, Any] @@ -2150,6 +2842,7 @@

Class variables

usergroup: Optional[Union[Usergroup, Dict[str, Any]]] = None, workflow: Optional[Union[Workflow, Dict[str, Any]]] = None, barrier: Optional[Union[InformationBarrier, Dict[str, Any]]] = None, + workflow_v2: Optional[Union[WorkflowV2, Dict[str, Any]]] = None, account_type_role: Optional[Union[AccountTypeRole, Dict[str, Any]]] = None, **kwargs, ) -> None: @@ -2165,6 +2858,7 @@

Class variables

self.usergroup = Usergroup(**usergroup) if isinstance(usergroup, dict) else usergroup self.workflow = Workflow(**workflow) if isinstance(workflow, dict) else workflow self.barrier = InformationBarrier(**barrier) if isinstance(barrier, dict) else barrier + self.workflow_v2 = WorkflowV2(**workflow_v2) if isinstance(workflow_v2, dict) else workflow_v2 self.account_type_role = ( AccountTypeRole(**account_type_role) if isinstance(account_type_role, dict) else account_type_role ) @@ -2224,6 +2918,10 @@

Class variables

+
var workflow_v2 : Optional[WorkflowV2]
+
+
+
var workspace : Optional[Location]
@@ -2862,7 +3560,7 @@

Class variables

class SharedWith -(*, channel_id: Optional[str] = None, **kwargs) +(*, channel_id: Optional[str] = None, access_level: Optional[str] = None, **kwargs)
@@ -2872,18 +3570,25 @@

Class variables

class SharedWith:
     channel_id: Optional[str]
+    access_level: Optional[str]
 
     def __init__(
         self,
         *,
         channel_id: Optional[str] = None,
+        access_level: Optional[str] = None,
         **kwargs,
     ) -> None:
         self.channel_id = channel_id
+        self.access_level = access_level
         self.unknown_fields = kwargs

Class variables

+
var access_level : Optional[str]
+
+
+
var channel_id : Optional[str]
@@ -3066,6 +3771,139 @@

Class variables

+
+class WorkflowV2 +(*, id: Optional[str] = None, app_id: Optional[str] = None, date_updated: Optional[int] = None, callback_id: Optional[str] = None, name: Optional[str] = None, updated_by: Optional[str] = None, step_configuration: Optional[List[Union[Dict[str, Any], WorkflowV2StepConfiguration]]] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class WorkflowV2:
+    id: Optional[str]
+    app_id: Optional[str]
+    date_updated: Optional[int]
+    callback_id: Optional[str]
+    name: Optional[str]
+    updated_by: Optional[str]
+    step_configuration: Optional[List[WorkflowV2StepConfiguration]]
+    unknown_fields: Dict[str, Any]
+
+    def __init__(
+        self,
+        *,
+        id: Optional[str] = None,
+        app_id: Optional[str] = None,
+        date_updated: Optional[int] = None,
+        callback_id: Optional[str] = None,
+        name: Optional[str] = None,
+        updated_by: Optional[str] = None,
+        step_configuration: Optional[List[Union[Dict[str, Any], WorkflowV2StepConfiguration]]] = None,
+        **kwargs,
+    ) -> None:
+        self.id = id
+        self.app_id = app_id
+        self.date_updated = date_updated
+        self.callback_id = callback_id
+        self.name = name
+        self.updated_by = updated_by
+        self.step_configuration = None
+        if step_configuration is not None:
+            self.step_configuration = []
+            for a in step_configuration:
+                if isinstance(a, dict):
+                    self.step_configuration.append(WorkflowV2StepConfiguration(**a))
+                else:
+                    self.step_configuration.append(a)
+        self.unknown_fields = kwargs
+
+

Class variables

+
+
var app_id : Optional[str]
+
+
+
+
var callback_id : Optional[str]
+
+
+
+
var date_updated : Optional[int]
+
+
+
+
var id : Optional[str]
+
+
+
+
var name : Optional[str]
+
+
+
+
var step_configuration : Optional[List[WorkflowV2StepConfiguration]]
+
+
+
+
var unknown_fields : Dict[str, Any]
+
+
+
+
var updated_by : Optional[str]
+
+
+
+
+
+
+class WorkflowV2StepConfiguration +(*, name: Optional[str] = None, step_function_type: Optional[str] = None, step_function_app_id: Optional[str] = None, **kwargs) +
+
+
+
+ +Expand source code + +
class WorkflowV2StepConfiguration:
+    name: Optional[str]
+    step_function_type: Optional[str]
+    step_function_app_id: Optional[int]
+    unknown_fields: Dict[str, Any]
+
+    def __init__(
+        self,
+        *,
+        name: Optional[str] = None,
+        step_function_type: Optional[str] = None,
+        step_function_app_id: Optional[str] = None,
+        **kwargs,
+    ) -> None:
+        self.name = name
+        self.step_function_type = step_function_type
+        self.step_function_app_id = step_function_app_id
+        self.unknown_fields = kwargs
+
+

Class variables

+
+
var name : Optional[str]
+
+
+
+
var step_function_app_id : Optional[int]
+
+
+
+
var step_function_type : Optional[str]
+
+
+
+
var unknown_fields : Dict[str, Any]
+
+
+
+
+
@@ -3083,6 +3921,60 @@

Index

  • Classes

  • diff --git a/docs/api-docs/slack_sdk/models/basic_objects.html b/docs/api-docs/slack_sdk/models/basic_objects.html index 1149adf1..7bc4a65e 100644 --- a/docs/api-docs/slack_sdk/models/basic_objects.html +++ b/docs/api-docs/slack_sdk/models/basic_objects.html @@ -292,6 +292,7 @@

    Subclasses

  • DispatchActionConfig
  • Option
  • OptionGroup
  • +
  • SlackFile
  • TextObject
  • Workflow
  • WorkflowTrigger
  • diff --git a/docs/api-docs/slack_sdk/models/blocks/basic_components.html b/docs/api-docs/slack_sdk/models/blocks/basic_components.html index 01c5f11d..aaa16721 100644 --- a/docs/api-docs/slack_sdk/models/blocks/basic_components.html +++ b/docs/api-docs/slack_sdk/models/blocks/basic_components.html @@ -586,6 +586,35 @@

    Module slack_sdk.models.blocks.basic_components @@ -1706,6 +1735,70 @@

    Inherited members

    +
    +class SlackFile +(*, id: Optional[str] = None, url: Optional[str] = None) +
    +
    +

    The base class for JSON serializable class objects

    +

    An object containing Slack file information to be used in an image block or image element. +https://api.slack.com/reference/block-kit/composition-objects#slack_file

    +

    Args

    +
    +
    id
    +
    Slack ID of the file.
    +
    url
    +
    This URL can be the url_private or the permalink of the Slack file.
    +
    +
    + +Expand source code + +
    class SlackFile(JsonObject):
    +    attributes = {"id", "url"}
    +
    +    def __init__(
    +        self,
    +        *,
    +        id: Optional[str] = None,
    +        url: Optional[str] = None,
    +    ):
    +        """An object containing Slack file information to be used in an image block or image element.
    +        https://api.slack.com/reference/block-kit/composition-objects#slack_file
    +
    +        Args:
    +            id: Slack ID of the file.
    +            url: This URL can be the url_private or the permalink of the Slack file.
    +        """
    +        self._id = id
    +        self._url = url
    +
    +    def to_dict(self) -> Dict[str, Any]:  # skipcq: PYL-W0221
    +        self.validate_json()
    +        json = {}
    +        if self._id is not None:
    +            json["id"] = self._id
    +        if self._url is not None:
    +            json["url"] = self._url
    +        return json
    +
    +

    Ancestors

    + +

    Inherited members

    + +
    class TextObject (text: str, type: Optional[str] = None, subtype: Optional[str] = None, emoji: Optional[bool] = None, **kwargs) @@ -2022,6 +2115,9 @@

  • +

    SlackFile

    +
  • +
  • TextObject

    • logger
    • 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 373181c6..cd0caa0c 100644 --- a/docs/api-docs/slack_sdk/models/blocks/block_elements.html +++ b/docs/api-docs/slack_sdk/models/blocks/block_elements.html @@ -39,7 +39,7 @@

      Module slack_sdk.models.blocks.block_elements

      Module slack_sdk.models.blocks.block_elements
  • Module slack_sdk.models.blocks.block_elementsInherited members
    class ImageElement -(*, image_url: Optional[str] = None, alt_text: Optional[str] = None, **others: dict) +(*, alt_text: Optional[str] = None, image_url: Optional[str] = None, slack_file: Union[Dict[str, Any], SlackFile, ForwardRef(None)] = None, **others: dict)

    Block Elements are things that exists inside of your Blocks. @@ -3985,10 +3988,12 @@

    Inherited members

    https://api.slack.com/reference/block-kit/block-elements#image

    Args

    -
    image_url : required
    -
    The URL of the image to be displayed.
    alt_text : required
    A plain-text summary of the image. This should not contain any markup.
    +
    image_url
    +
    The URL of the image to be displayed.
    +
    slack_file
    +
    A Slack image file object that defines the source of the image.
    @@ -4001,13 +4006,14 @@

    Args

    @property def attributes(self) -> Set[str]: - return super().attributes.union({"alt_text", "image_url"}) + return super().attributes.union({"alt_text", "image_url", "slack_file"}) def __init__( self, *, - image_url: Optional[str] = None, alt_text: Optional[str] = None, + image_url: Optional[str] = None, + slack_file: Optional[Union[Dict[str, Any], SlackFile]] = None, **others: dict, ): """An element to insert an image - this element can be used in section and @@ -4016,18 +4022,20 @@

    Args

    https://api.slack.com/reference/block-kit/block-elements#image Args: - image_url (required): The URL of the image to be displayed. alt_text (required): A plain-text summary of the image. This should not contain any markup. + image_url: The URL of the image to be displayed. + slack_file: A Slack image file object that defines the source of the image. """ super().__init__(type=self.type) show_unknown_key_warning(self, others) self.image_url = image_url self.alt_text = alt_text + self.slack_file = slack_file if slack_file is None or isinstance(slack_file, SlackFile) else SlackFile(**slack_file) @JsonValidator(f"image_url attribute cannot exceed {image_url_max_length} characters") def _validate_image_url_length(self) -> bool: - return len(self.image_url) <= self.image_url_max_length + return self.image_url is None or len(self.image_url) <= self.image_url_max_length @JsonValidator(f"alt_text attribute cannot exceed {alt_text_max_length} characters") def _validate_alt_text_length(self) -> bool: @@ -4067,7 +4075,7 @@

    Instance variables

    @property
     def attributes(self) -> Set[str]:
    -    return super().attributes.union({"alt_text", "image_url"})
    + return super().attributes.union({"alt_text", "image_url", "slack_file"})
    diff --git a/docs/api-docs/slack_sdk/models/blocks/blocks.html b/docs/api-docs/slack_sdk/models/blocks/blocks.html index 80160568..f69ddf4a 100644 --- a/docs/api-docs/slack_sdk/models/blocks/blocks.html +++ b/docs/api-docs/slack_sdk/models/blocks/blocks.html @@ -36,7 +36,7 @@

    Module slack_sdk.models.blocks.blocks

    JsonObject, JsonValidator, ) -from .basic_components import MarkdownTextObject +from .basic_components import MarkdownTextObject, SlackFile from .basic_components import PlainTextObject from .basic_components import TextObject from .block_elements import BlockElement, RichTextElement @@ -236,7 +236,7 @@

    Module slack_sdk.models.blocks.blocks

    @property def attributes(self) -> Set[str]: - return super().attributes.union({"alt_text", "image_url", "title"}) + return super().attributes.union({"alt_text", "image_url", "title", "slack_file"}) image_url_max_length = 3000 alt_text_max_length = 2000 @@ -245,8 +245,9 @@

    Module slack_sdk.models.blocks.blocks

    def __init__( self, *, - image_url: str, alt_text: str, + image_url: Optional[str] = None, + slack_file: Optional[Union[Dict[str, Any], SlackFile]] = None, title: Optional[Union[str, dict, PlainTextObject]] = None, block_id: Optional[str] = None, **others: dict, @@ -255,10 +256,11 @@

    Module slack_sdk.models.blocks.blocks

    https://api.slack.com/reference/block-kit/blocks#image Args: - image_url (required): The URL of the image to be displayed. - Maximum length for this field is 3000 characters. alt_text (required): A plain-text summary of the image. This should not contain any markup. Maximum length for this field is 2000 characters. + image_url: The URL of the image to be displayed. + Maximum length for this field is 3000 characters. + slack_file: A Slack image file object that defines the source of the image. title: An optional title for the image in the form of a text object that can only be of type: plain_text. Maximum length for the text in this field is 2000 characters. block_id: A string acting as a unique identifier for a block. If not specified, one will be generated. @@ -283,11 +285,15 @@

    Module slack_sdk.models.blocks.blocks

    parsed_title = title else: raise SlackObjectFormationError(f"Unsupported type for title in an image block: {type(title)}") + if slack_file is not None: + self.slack_file = ( + slack_file if slack_file is None or isinstance(slack_file, SlackFile) else SlackFile(**slack_file) + ) self.title = parsed_title @JsonValidator(f"image_url attribute cannot exceed {image_url_max_length} characters") def _validate_image_url_length(self): - return len(self.image_url) <= self.image_url_max_length + return self.image_url is None or len(self.image_url) <= self.image_url_max_length @JsonValidator(f"alt_text attribute cannot exceed {alt_text_max_length} characters") def _validate_alt_text_length(self): @@ -1466,7 +1472,7 @@

    Inherited members

    class ImageBlock -(*, image_url: str, alt_text: str, title: Union[str, dict, PlainTextObject, ForwardRef(None)] = None, block_id: Optional[str] = None, **others: dict) +(*, alt_text: str, image_url: Optional[str] = None, slack_file: Union[Dict[str, Any], SlackFile, ForwardRef(None)] = None, title: Union[str, dict, PlainTextObject, ForwardRef(None)] = None, block_id: Optional[str] = None, **others: dict)

    Blocks are a series of components that can be combined @@ -1476,12 +1482,14 @@

    Inherited members

    https://api.slack.com/reference/block-kit/blocks#image

    Args

    -
    image_url : required
    -
    The URL of the image to be displayed. -Maximum length for this field is 3000 characters.
    alt_text : required
    A plain-text summary of the image. This should not contain any markup. Maximum length for this field is 2000 characters.
    +
    image_url
    +
    The URL of the image to be displayed. +Maximum length for this field is 3000 characters.
    +
    slack_file
    +
    A Slack image file object that defines the source of the image.
    title
    An optional title for the image in the form of a text object that can only be of type: plain_text. Maximum length for the text in this field is 2000 characters.
    @@ -1500,7 +1508,7 @@

    Args

    @property def attributes(self) -> Set[str]: - return super().attributes.union({"alt_text", "image_url", "title"}) + return super().attributes.union({"alt_text", "image_url", "title", "slack_file"}) image_url_max_length = 3000 alt_text_max_length = 2000 @@ -1509,8 +1517,9 @@

    Args

    def __init__( self, *, - image_url: str, alt_text: str, + image_url: Optional[str] = None, + slack_file: Optional[Union[Dict[str, Any], SlackFile]] = None, title: Optional[Union[str, dict, PlainTextObject]] = None, block_id: Optional[str] = None, **others: dict, @@ -1519,10 +1528,11 @@

    Args

    https://api.slack.com/reference/block-kit/blocks#image Args: - image_url (required): The URL of the image to be displayed. - Maximum length for this field is 3000 characters. alt_text (required): A plain-text summary of the image. This should not contain any markup. Maximum length for this field is 2000 characters. + image_url: The URL of the image to be displayed. + Maximum length for this field is 3000 characters. + slack_file: A Slack image file object that defines the source of the image. title: An optional title for the image in the form of a text object that can only be of type: plain_text. Maximum length for the text in this field is 2000 characters. block_id: A string acting as a unique identifier for a block. If not specified, one will be generated. @@ -1547,11 +1557,15 @@

    Args

    parsed_title = title else: raise SlackObjectFormationError(f"Unsupported type for title in an image block: {type(title)}") + if slack_file is not None: + self.slack_file = ( + slack_file if slack_file is None or isinstance(slack_file, SlackFile) else SlackFile(**slack_file) + ) self.title = parsed_title @JsonValidator(f"image_url attribute cannot exceed {image_url_max_length} characters") def _validate_image_url_length(self): - return len(self.image_url) <= self.image_url_max_length + return self.image_url is None or len(self.image_url) <= self.image_url_max_length @JsonValidator(f"alt_text attribute cannot exceed {alt_text_max_length} characters") def _validate_alt_text_length(self): @@ -1599,7 +1613,7 @@

    Instance variables

    @property
     def attributes(self) -> Set[str]:
    -    return super().attributes.union({"alt_text", "image_url", "title"})
    + return super().attributes.union({"alt_text", "image_url", "title", "slack_file"})
    diff --git a/docs/api-docs/slack_sdk/models/blocks/index.html b/docs/api-docs/slack_sdk/models/blocks/index.html index c68d8194..f1a2c547 100644 --- a/docs/api-docs/slack_sdk/models/blocks/index.html +++ b/docs/api-docs/slack_sdk/models/blocks/index.html @@ -2892,7 +2892,7 @@

    Inherited members

    class ImageBlock -(*, image_url: str, alt_text: str, title: Union[str, dict, PlainTextObject, ForwardRef(None)] = None, block_id: Optional[str] = None, **others: dict) +(*, alt_text: str, image_url: Optional[str] = None, slack_file: Union[Dict[str, Any], SlackFile, ForwardRef(None)] = None, title: Union[str, dict, PlainTextObject, ForwardRef(None)] = None, block_id: Optional[str] = None, **others: dict)

    Blocks are a series of components that can be combined @@ -2902,12 +2902,14 @@

    Inherited members

    https://api.slack.com/reference/block-kit/blocks#image

    Args

    -
    image_url : required
    -
    The URL of the image to be displayed. -Maximum length for this field is 3000 characters.
    alt_text : required
    A plain-text summary of the image. This should not contain any markup. Maximum length for this field is 2000 characters.
    +
    image_url
    +
    The URL of the image to be displayed. +Maximum length for this field is 3000 characters.
    +
    slack_file
    +
    A Slack image file object that defines the source of the image.
    title
    An optional title for the image in the form of a text object that can only be of type: plain_text. Maximum length for the text in this field is 2000 characters.
    @@ -2926,7 +2928,7 @@

    Args

    @property def attributes(self) -> Set[str]: - return super().attributes.union({"alt_text", "image_url", "title"}) + return super().attributes.union({"alt_text", "image_url", "title", "slack_file"}) image_url_max_length = 3000 alt_text_max_length = 2000 @@ -2935,8 +2937,9 @@

    Args

    def __init__( self, *, - image_url: str, alt_text: str, + image_url: Optional[str] = None, + slack_file: Optional[Union[Dict[str, Any], SlackFile]] = None, title: Optional[Union[str, dict, PlainTextObject]] = None, block_id: Optional[str] = None, **others: dict, @@ -2945,10 +2948,11 @@

    Args

    https://api.slack.com/reference/block-kit/blocks#image Args: - image_url (required): The URL of the image to be displayed. - Maximum length for this field is 3000 characters. alt_text (required): A plain-text summary of the image. This should not contain any markup. Maximum length for this field is 2000 characters. + image_url: The URL of the image to be displayed. + Maximum length for this field is 3000 characters. + slack_file: A Slack image file object that defines the source of the image. title: An optional title for the image in the form of a text object that can only be of type: plain_text. Maximum length for the text in this field is 2000 characters. block_id: A string acting as a unique identifier for a block. If not specified, one will be generated. @@ -2973,11 +2977,15 @@

    Args

    parsed_title = title else: raise SlackObjectFormationError(f"Unsupported type for title in an image block: {type(title)}") + if slack_file is not None: + self.slack_file = ( + slack_file if slack_file is None or isinstance(slack_file, SlackFile) else SlackFile(**slack_file) + ) self.title = parsed_title @JsonValidator(f"image_url attribute cannot exceed {image_url_max_length} characters") def _validate_image_url_length(self): - return len(self.image_url) <= self.image_url_max_length + return self.image_url is None or len(self.image_url) <= self.image_url_max_length @JsonValidator(f"alt_text attribute cannot exceed {alt_text_max_length} characters") def _validate_alt_text_length(self): @@ -3025,7 +3033,7 @@

    Instance variables

    @property
     def attributes(self) -> Set[str]:
    -    return super().attributes.union({"alt_text", "image_url", "title"})
    + return super().attributes.union({"alt_text", "image_url", "title", "slack_file"})
    @@ -3042,7 +3050,7 @@

    Inherited members

    class ImageElement -(*, image_url: Optional[str] = None, alt_text: Optional[str] = None, **others: dict) +(*, alt_text: Optional[str] = None, image_url: Optional[str] = None, slack_file: Union[Dict[str, Any], SlackFile, ForwardRef(None)] = None, **others: dict)

    Block Elements are things that exists inside of your Blocks. @@ -3053,10 +3061,12 @@

    Inherited members

    https://api.slack.com/reference/block-kit/block-elements#image

    Args

    -
    image_url : required
    -
    The URL of the image to be displayed.
    alt_text : required
    A plain-text summary of the image. This should not contain any markup.
    +
    image_url
    +
    The URL of the image to be displayed.
    +
    slack_file
    +
    A Slack image file object that defines the source of the image.
    @@ -3069,13 +3079,14 @@

    Args

    @property def attributes(self) -> Set[str]: - return super().attributes.union({"alt_text", "image_url"}) + return super().attributes.union({"alt_text", "image_url", "slack_file"}) def __init__( self, *, - image_url: Optional[str] = None, alt_text: Optional[str] = None, + image_url: Optional[str] = None, + slack_file: Optional[Union[Dict[str, Any], SlackFile]] = None, **others: dict, ): """An element to insert an image - this element can be used in section and @@ -3084,18 +3095,20 @@

    Args

    https://api.slack.com/reference/block-kit/block-elements#image Args: - image_url (required): The URL of the image to be displayed. alt_text (required): A plain-text summary of the image. This should not contain any markup. + image_url: The URL of the image to be displayed. + slack_file: A Slack image file object that defines the source of the image. """ super().__init__(type=self.type) show_unknown_key_warning(self, others) self.image_url = image_url self.alt_text = alt_text + self.slack_file = slack_file if slack_file is None or isinstance(slack_file, SlackFile) else SlackFile(**slack_file) @JsonValidator(f"image_url attribute cannot exceed {image_url_max_length} characters") def _validate_image_url_length(self) -> bool: - return len(self.image_url) <= self.image_url_max_length + return self.image_url is None or len(self.image_url) <= self.image_url_max_length @JsonValidator(f"alt_text attribute cannot exceed {alt_text_max_length} characters") def _validate_alt_text_length(self) -> bool: @@ -3135,7 +3148,7 @@

    Instance variables

    @property
     def attributes(self) -> Set[str]:
    -    return super().attributes.union({"alt_text", "image_url"})
    + return super().attributes.union({"alt_text", "image_url", "slack_file"})
    diff --git a/docs/api-docs/slack_sdk/models/index.html b/docs/api-docs/slack_sdk/models/index.html index b8c89d62..04c55c86 100644 --- a/docs/api-docs/slack_sdk/models/index.html +++ b/docs/api-docs/slack_sdk/models/index.html @@ -342,6 +342,7 @@

    Subclasses

  • DispatchActionConfig
  • Option
  • OptionGroup
  • +
  • SlackFile
  • TextObject
  • Workflow
  • WorkflowTrigger
  • diff --git a/docs/api-docs/slack_sdk/socket_mode/aiohttp/index.html b/docs/api-docs/slack_sdk/socket_mode/aiohttp/index.html index bc814fc8..908953c8 100644 --- a/docs/api-docs/slack_sdk/socket_mode/aiohttp/index.html +++ b/docs/api-docs/slack_sdk/socket_mode/aiohttp/index.html @@ -272,7 +272,7 @@

    Module slack_sdk.socket_mode.aiohttp

    message_data = message.data if isinstance(message_data, bytes): message_data = message_data.decode("utf-8") - if len(message_data) > 0: + if message_data is not None and len(message_data) > 0: # To skip the empty message that Slack server-side often sends self.logger.debug( f"Received message " @@ -748,7 +748,7 @@

    Args

    message_data = message.data if isinstance(message_data, bytes): message_data = message_data.decode("utf-8") - if len(message_data) > 0: + if message_data is not None and len(message_data) > 0: # To skip the empty message that Slack server-side often sends self.logger.debug( f"Received message " @@ -1375,7 +1375,7 @@

    Methods

    message_data = message.data if isinstance(message_data, bytes): message_data = message_data.decode("utf-8") - if len(message_data) > 0: + if message_data is not None and len(message_data) > 0: # To skip the empty message that Slack server-side often sends self.logger.debug( f"Received message " diff --git a/docs/api-docs/slack_sdk/version.html b/docs/api-docs/slack_sdk/version.html index 146286f6..75ae6d42 100644 --- a/docs/api-docs/slack_sdk/version.html +++ b/docs/api-docs/slack_sdk/version.html @@ -28,7 +28,7 @@

    Module slack_sdk.version

    Expand source code
    """Check the latest version at https://pypi.org/project/slack-sdk/"""
    -__version__ = "3.26.2"
    +__version__ = "3.27.0"
    diff --git a/slack_sdk/version.py b/slack_sdk/version.py index 9cda6501..8f4485f1 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.26.2" +__version__ = "3.27.0"