o
    aqex                    @   s   d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ ddlmZmZ G d	d
 d
eZdS )z5A Python module for interacting with Slack's Web API.    N)Future)IOBase)UnionListOptionalDict)
BaseClientSlackResponse)View)_parse_web_class_objects_update_call_participantsc                   @   s^  e Zd ZdZddddededeeef fddZdeeef fd	d
Z	deeef fddZ
deeef fddZdeeef fddZdededeeef fddZdedeeef fddZdedeeee f deeef fddZdedeeef fddZdedeeef fddZdededeeef fdd Zdeeef fd!d"Zdedeeef fd#d$Zded%eeef deeef fd&d'Zdedeeef fd(d)Zdedeeef fd*d+Zdeeef fd,d-Zded.edeeef fd/d0Zdedeeef fd1d2Zded.ed3edeeef fd4d5Zdedeeef fd6d7Zdedeeef fd8d9Z deeef fd:d;Z!deeef fd<d=Z"deeef fd>d?Z#deeef fd@dAZ$deeef fdBdCZ%dDedeeef fdEdFZ&dGed3edeeef fdHdIZ'dJedeeef fdKdLZ(deeef fdMdNZ)deeef fdOdPZ*dJedeeef fdQdRZ+deeef fdSdTZ,d3edeeef fdUdVZ-dWedXedeeef fdYdZZ.deeef fd[d\Z/d3edeeef fd]d^Z0d3edeeef fd_d`Z1d3edaeeee f deeef fdbdcZ2d3eddedeeef fdedfZ3d3edgedeeef fdhdiZ4d3edjedeeef fdkdlZ5d3ededeeef fdmdnZ6d3edoedaeeee f deeef fdpdqZ7doedreeee f deeef fdsdtZ8doedeeef fdudvZ9doedaeeee f deeef fdwdxZ:d3edDedeeef fdydzZ;d3ed{edaeeee f deeef fd|d}Z<d3edeeef fd~dZ=d3edDedeeef fddZ>d3edDedeeef fddZ?de@d3edDedeeef fddZAd3edDedeeef fddZBd3edDedeeef fddZCdeeef fddZDdedeeef fddZEdededeeef fddZFdeeef fddZGdeeef fddZHdeeef fddZIdededeeef fddZJdedeeef fddZKdedeeef fddZLdedeeeeMeef  f deeef fddZNdedeeeeMeef  f deeef fddZOdedeeef fddZPdedeeef fddZQdedeeef fddZRdedeeef fddZSdedeeef fddZTdededeeef fddZUdedeeef fddZVdededeeef fddZWdedeeef fddZXdeeef fddZYdededeeef fddZZdededeeef fddZ[dededeeef fddńZ\dededeeef fddȄZ]dededeeef fdd˄Z^dedeeef fdd̈́Z_dededeeef fddτZ`dededeeef fdd҄Zadededeeef fddՄZbdededeeef fdd؄Zcdededeeef fddڄZddedeeef fdd܄Zededededeeef fdd߄Zfdedededeeef fddZgdededeeef fddZhdeeef fddZidedeeef fddZjdedeeef fddZkdedeeef fddZldedeeef fddZmdedeeef fddZndedeeee f deeef fddZodedeeef fddZpdededeeef fddZqdedeeef fddZrdeeef fddZsdededeeef fddZtdedeeef fddZudeeef fdd Zvdededeeef fddZwdededeeef fddZxdededeeef fddZydededeeef fddZzdedeeef fd	d
Z{dededeeef fddZ|deeef fddZ}deeef fddZ~deeef fddZde@deeef fddZdeeee f deeef fddZdeeef fddZdededeeef fddZdedeeef fdd Zdedeeef fd!d"Zdeeef fd#d$Zdeeef fd%d&Zdeeef fd'd(Zd)ed*ed+edeeef fd,d-Zdeeef fd.d/Zdeeef fd0d1Zd2eeee f deeef fd3d4Zdedeeef fd5d6Zdedeeef fd7d8Zddd9deeef d:edeeef fd;d<Zdedeeef fd=d>Zdedeeef fd?d@Zdedeeef fdAdBZdedeeef fdCdDZdedeeef fdEdFZdededeeef fdGdHZdededeeef fdIdJZdedeeef fdKdLZdeeef fdMdNZdededeeef fdOdPZdedeeef fdQdRZdededeeef fdSdTZdededeeef fdUdVZdededeeef fdWdXZdededeeef fdYdZZdedeeef fd[d\Zdedeeef fd]d^Zdedeeef fd_d`Zdeeef fdadbZdededeeef fdcddZdedeeef fdedfZdededeeef fdgdhZdeeee f deeef fdidjZdedeeef fdkdlZdedeeef fdmdnZdeeef fdodpZdededeeef fdqdrZdeeee f deeef fdsdtZdededeeef fdudvZddwdededxedyee deeef f
dzd{Zddwdededxedyee deeef f
d|d}Zdedeeef fd~dZdedeeef fddZdedeeef fddZdedeeef fddZdeeef fddZdeeef fddZdedeeef fddZdededeeef fddZdedeeef fddZdedeeef fddZdedeeef fddZdeeef fddZdeeef fddZdeeef fddZdedeeef fddZdedeeef fddZdedeeef fddZdeeef fddZdeeef fddZdeeef fddZdeeef fddZdeeef fddZdeeef fddZdeeef fddZdeeef fddZdedeeef fddZʐdedeeef fddZːdedeeef fddZdeeef fddZ͐dedeeef fddZΐdedeeef fddZϐdedeeee f deeef fddZdeeef fddÄZdeeef fdĐdńZdedeeef fdƐdǄZdeeef fdȐdɄZdedeeef fdʐd˄Zdeeef fd̐d̈́Zd{edeeef fdΐdτZאdeeef deeef fdѐd҄Zؐdedeeef fdԐdՄZdeeef fd֐dׄZdeeef fdؐdلZېdedeeef deeef fdېd܄Zݐdedeeef deeef fdݐdބZdddߜdeeef d)ededeeef fddZdDedeeef deeef fddZdddededeeef fddZdededeeef fddZddddedededeeef fddZdS (  	WebClientax  A WebClient allows apps to communicate with the Slack Platform's Web API.

    The Slack Web API is an interface for querying information from
    and enacting change in a Slack workspace.

    This client handles constructing and sending HTTP requests to Slack
    as well as parsing any responses received into a `SlackResponse`.

    Attributes:
        token (str): A string specifying an xoxp or xoxb token.
        use_session (bool): An boolean specifying if the client
            should take advantage of connection pooling.
            Default is True.
        base_url (str): A string representing the Slack API base URL.
            Default is 'https://www.slack.com/api/'
        timeout (int): The maximum number of seconds the client will wait
            to connect and receive a response from Slack.
            Default is 30 seconds.

    Methods:
        api_call: Constructs a request and executes the API call to Slack.

    Example of recommended usage:
    ```python
        import os
        import slack

        client = slack.WebClient(token=os.environ['SLACK_API_TOKEN'])
        response = client.chat_postMessage(
            channel='#random',
            text="Hello world!")
        assert response["ok"]
        assert response["message"]["text"] == "Hello world!"
    ```

    Example manually creating an API request:
    ```python
        import os
        import slack

        client = slack.WebClient(token=os.environ['SLACK_API_TOKEN'])
        response = client.api_call(
            api_method='chat.postMessage',
            json={'channel': '#random','text': "Hello world!"}
        )
        assert response["ok"]
        assert response["message"]["text"] == "Hello world!"
    ```

    Note:
        Any attributes or methods prefixed with _underscores are
        intended to be "private" internal use only. They may be changed or
        removed at anytime.
    N)app_id
request_idr   r   returnc                K   s@   |r
| d|i n|r| d|i ntd| jd|dS )a  Approve an app for installation on a workspace.

        Either app_id or request_id is required.
        These IDs can be obtained either directly via the app_requested event,
        or by the admin.apps.requests.list method.

        Args:
            app_id (str): The id of the app to approve. e.g. 'A12345'
            request_id (str): The id of the request to approve. e.g. 'Ar12345'
        Raises:
            SlackRequestError: If neither or both the `app_id` and `request_id` args are specified.
        r   r   z4The app_id or request_id argument must be specified.zadmin.apps.approvejson)updateeSlackRequestErrorapi_call)selfr   r   kwargs r   Q/var/www/html/humari/django-venv/lib/python3.10/site-packages/slack/web/client.pyadmin_apps_approveE   s   zWebClient.admin_apps_approvec                 K      | j dd|dS )z+List approved apps for an org or workspace.zadmin.apps.approved.listGET	http_verbparamsr   r   r   r   r   r   admin_apps_approved_list_      z"WebClient.admin_apps_approved_listc                 K   r   )z'List app requests for a team/workspace.zadmin.apps.requests.listr   r   r!   r"   r   r   r   admin_apps_requests_listc   r$   z"WebClient.admin_apps_requests_listc                 K      | j d|dS )z0Restrict an app for installation on a workspace.zadmin.apps.restrictr   r!   r"   r   r   r   admin_apps_restrictg      zWebClient.admin_apps_restrictc                 K   r   )z-List restricted apps for an org or workspace.zadmin.apps.restricted.listr   r   r!   r"   r   r   r   admin_apps_restricted_listk   s   z$WebClient.admin_apps_restricted_list
is_privatenamec                K      | ||d | jd|dS )a@  Create a public or private channel-based conversation.

        Args:
            is_private (bool): When true, creates a private channel instead of a public channel
            name (str): Name of the public or private channel to create.
            org_wide (bool): When true, the channel will be available org-wide.
                Note: if the channel is not org_wide=true, you must specify a team_id for this channel
            team_id (str): The workspace to create the channel in.
                Note: this argument is required unless you set org_wide=true.

        )r*   r+   zadmin.conversations.creater   r   r   )r   r*   r+   r   r   r   r   admin_conversations_createq   s   z$WebClient.admin_conversations_create
channel_idc                K      | d|i | jd|dS )zqDelete a public or private channel.

        Args:
            channel_id (str): The channel to delete.

        r/   zadmin.conversations.deleter   r-   r   r/   r   r   r   r   admin_conversations_delete      	z$WebClient.admin_conversations_deleteuser_idsc                K   J   | d|i t|tr| dd|i n| d|i | jd|dS )zInvite a user to a public or private channel.

        Args:
            channel_id (str): The channel that the users will be invited to.
            user_ids (str or list): The users to invite.
        r/   r4   ,zadmin.conversations.inviter    r   
isinstancelistjoinr   )r   r/   r4   r   r   r   r   admin_conversations_invite   s
   	
z$WebClient.admin_conversations_invitec                K   r0   )zrArchive a public or private channel.

        Args:
            channel_id (str): The channel to archive.
        r/   zadmin.conversations.archiver   r-   r1   r   r   r   admin_conversations_archive      z%WebClient.admin_conversations_archivec                K   r0   )zvUnarchive a public or private channel.

        Args:
            channel_id (str): The channel to unarchive.
        r/   zadmin.conversations.unarchiver   r-   r1   r   r   r   admin_conversations_unarchive   r>   z'WebClient.admin_conversations_unarchivec                K   r,   )zRename a public or private channel.

        Args:
            channel_id (str): The channel to rename.
            name (str): The name to rename the channel to.
        )r/   r+   zadmin.conversations.renamer   r-   )r   r/   r+   r   r   r   r   admin_conversations_rename      	z$WebClient.admin_conversations_renamec                 K   r&   )zDSearch for public or private channels in an Enterprise organization.zadmin.conversations.searchr   r!   r"   r   r   r   admin_conversations_search   r(   z$WebClient.admin_conversations_searchc                K   r0   )zConvert a public channel to a private channel.

        Args:
            channel_id (str): The channel to convert to private.
        r/   z$admin.conversations.convertToPrivater   r-   r1   r   r   r   $admin_conversations_convertToPrivate   r>   z.WebClient.admin_conversations_convertToPrivateprefsc                K   r,   )zSet the posting permissions for a public or private channel.

        Args:
            channel_id (str): The channel to set the prefs for
            prefs (str or dict): The prefs for this channel in a stringified JSON format.
        )r/   rD   z(admin.conversations.setConversationPrefsr   r-   )r   r/   rD   r   r   r   r   (admin_conversations_setConversationPrefs   rA   z2WebClient.admin_conversations_setConversationPrefsc                K   r0   )zGet conversation preferences for a public or private channel.

        Args:
            channel_id (str): The channel to get the preferences for.
        r/   z(admin.conversations.getConversationPrefsr   r-   r1   r   r   r   (admin_conversations_getConversationPrefs   r>   z2WebClient.admin_conversations_getConversationPrefsc                K   r0   )zDisconnect a connected channel from one or more workspaces.

        Args:
            channel_id (str): The channel to be disconnected from some workspaces.
        r/   z$admin.conversations.disconnectSharedr   r-   r1   r   r   r   $admin_conversations_disconnectShared   r>   z.WebClient.admin_conversations_disconnectSharedc                 K   r&   )u   List all disconnected channels—i.e.,
        channels that were once connected to other workspaces and then disconnected—and
        the corresponding original channel IDs for key revocation with EKM.
        z8admin.conversations.ekm.listOriginalConnectedChannelInfor7   r!   r"   r   r   r   8admin_conversations_ekm_listOriginalConnectedChannelInfo   s   zBWebClient.admin_conversations_ekm_listOriginalConnectedChannelInfogroup_idc                K       | ||d | jdd|dS )a  Add an allowlist of IDP groups for accessing a channel.

        Args:
            channel_id (str): The channel to link this group to. e.g. 'C1234567890'
            group_id (str): The IDP Group ID to be an allowlist for the private channel. 'S0604QSJC'
            team_id (str): The workspace where the channel exists.
                This argument is required for channels only tied to one workspace,
                and optional for channels that are shared across an organization.
                e.g 'T1234'
        )r/   rI   z+admin.conversations.restrictAccess.addGroupr   r   r-   )r   r/   rI   r   r   r   r   +admin_conversations_restrictAccess_addGroup   s   z5WebClient.admin_conversations_restrictAccess_addGroupc                K      | d|i | jdd|dS )a  List all IDP Groups linked to a channel.

        Args:
            channel_id (str): The channel to link this group to. e.g. 'C1234567890'
            team_id (str): The workspace where the channel exists.
                This argument is required for channels only tied to one workspace,
                and optional for channels that are shared across an organization.
                e.g 'T1234'
        r/   z-admin.conversations.restrictAccess.listGroupsr   r   r-   r1   r   r   r   -admin_conversations_restrictAccess_listGroups  s   z7WebClient.admin_conversations_restrictAccess_listGroupsteam_idc                K   s"   | |||d | jdd|dS )a  Remove a linked IDP group linked from a private channel.

        Args:
            channel_id (str): The channel to link this group to. e.g. 'C1234567890'
            group_id (str): The IDP Group ID to be an allowlist for the private channel. 'S0604QSJC'
            team_id (str): The workspace where the channel exists.
                This argument is required for channels only tied to one workspace,
                and optional for channels that are shared across an organization.
                e.g 'T1234'
        )r/   rI   rN   z.admin.conversations.restrictAccess.removeGroupr   r   r-   )r   r/   rI   rN   r   r   r   r   .admin_conversations_restrictAccess_removeGroup$  s   
z8WebClient.admin_conversations_restrictAccess_removeGroupc                K   r0   )zSet the workspaces in an Enterprise grid org that connect to a channel.

        Args:
            channel_id (str): The encoded channel_id to add or remove to workspaces.

        r/   zadmin.conversations.setTeamsr   r-   r1   r   r   r   admin_conversations_setTeams:  r3   z&WebClient.admin_conversations_setTeamsc                K   r0   )zSet the workspaces in an Enterprise grid org that connect to a channel.

        Args:
            channel_id (str): The channel to determine connected workspaces within the organization for.

        r/   zadmin.conversations.getTeamsr   r-   r1   r   r   r   admin_conversations_getTeamsF  r3   z&WebClient.admin_conversations_getTeamsc                 K   r   )zAdd an emoji.zadmin.emoji.addr   r   r!   r"   r   r   r   admin_emoji_addR  r$   zWebClient.admin_emoji_addc                 K   r   )zAdd an emoji alias.zadmin.emoji.addAliasr   r   r!   r"   r   r   r   admin_emoji_addAliasV  r$   zWebClient.admin_emoji_addAliasc                 K   r   )z/List emoji for an Enterprise Grid organization.zadmin.emoji.listr   r   r!   r"   r   r   r   admin_emoji_listZ  r$   zWebClient.admin_emoji_listc                 K   r   )z7Remove an emoji across an Enterprise Grid organization.zadmin.emoji.remover   r   r!   r"   r   r   r   admin_emoji_remove^  r$   zWebClient.admin_emoji_removec                 K   r   )zRename an emoji.zadmin.emoji.renamer   r   r!   r"   r   r   r   admin_emoji_renameb  r$   zWebClient.admin_emoji_renameuser_idc                K   r0   )zWipes all valid sessions on all devices for a given user.

        Args:
            user_id (str): The ID of the user to wipe sessions for. e.g. 'W12345678'
        rW   zadmin.users.session.resetr   r-   )r   rW   r   r   r   r   admin_users_session_resetf  r>   z#WebClient.admin_users_session_reset
session_idc                K   r,   )zInvalidate a single session for a user by session_id.

        Args:
            session_id (str): The ID of a session
            team_id (str): ID of the team that the session belongs to
        )rY   rN   zadmin.users.session.invalidater7   r-   )r   rY   rN   r   r   r   r   admin_users_session_invalidateq  rA   z(WebClient.admin_users_session_invalidateinvite_request_idc                K   r0   )zApprove a workspace invite request.

        team_id is required if your Enterprise Grid org contains more than one workspace.

        Args:
            invite_request_id (str): ID of the request to invite. e.g. 'Ir1234'
        r[   zadmin.inviteRequests.approver   r-   r   r[   r   r   r   r   admin_inviteRequests_approve}  s   
z&WebClient.admin_inviteRequests_approvec                 K   r&   )z,List all approved workspace invite requests.z"admin.inviteRequests.approved.listr   r!   r"   r   r   r   "admin_inviteRequests_approved_list     z,WebClient.admin_inviteRequests_approved_listc                 K   r&   )z*List all denied workspace invite requests.z admin.inviteRequests.denied.listr   r!   r"   r   r   r    admin_inviteRequests_denied_list  r_   z*WebClient.admin_inviteRequests_denied_listc                K   r0   )zDeny a workspace invite request.

        Args:
            invite_request_id (str): ID of the request to invite. e.g. 'Ir1234'
        r[   zadmin.inviteRequests.denyr   r-   r\   r   r   r   admin_inviteRequests_deny  r>   z#WebClient.admin_inviteRequests_denyc                 K   r&   )z+List all pending workspace invite requests.zadmin.inviteRequests.listr   r!   r"   r   r   r   admin_inviteRequests_list  r(   z#WebClient.admin_inviteRequests_listc                K   rL   )oList all of the admins on a given workspace.

        Args:
            team_id (str): ID of the team.
        rN   zadmin.teams.admins.listr   r   r-   r   rN   r   r   r   r   admin_teams_admins_list     z!WebClient.admin_teams_admins_listteam_domain	team_namec                K   r,   )zCreate an Enterprise team.

        Args:
            team_domain (str): Team domain. e.g. 'slacksoftballteam'
            team_name (str): Team name. e.g. 'Slack Softball Team'
        )rg   rh   zadmin.teams.creater   r-   )r   rg   rh   r   r   r   r   admin_teams_create  rA   zWebClient.admin_teams_createc                 K   r&   )z-List all teams on an Enterprise organization.zadmin.teams.listr   r!   r"   r   r   r   admin_teams_list  r(   zWebClient.admin_teams_listc                K   rL   )rc   rN   zadmin.teams.owners.listr   r   r-   rd   r   r   r   admin_teams_owners_list  rf   z!WebClient.admin_teams_owners_listc                 K   r0   )zrFetch information about settings in a workspace

        Args:
            team_id (str): ID of the team.
        rN   zadmin.teams.settings.infor   r-   rd   r   r   r   admin_teams_settings_info  r>   z#WebClient.admin_teams_settings_infochannel_idsc                K   sL   | d|i t|tr| dd|i n| d|i | jdd|dS )zSet the default channels of a workspace.

        Args:
            team_id (str): ID of the team.
            channel_ids (str or list): A list of channel_ids.
                At least one channel is required. e.g. ['C1A2B3C4D', 'C26Z25Y24']
        rN   rm   r6   z'admin.teams.settings.setDefaultChannelsr   r   r8   )r   rN   rm   r   r   r   r   'admin_teams_settings_setDefaultChannels  s   

z1WebClient.admin_teams_settings_setDefaultChannelsdescriptionc                K   r,   )zSet the description of a given workspace.

        Args:
            team_id (str): ID of the team.
            description (str): Description of the team.
        )rN   ro   z#admin.teams.settings.setDescriptionr   r-   )r   rN   ro   r   r   r   r   #admin_teams_settings_setDescription  rA   z-WebClient.admin_teams_settings_setDescriptiondiscoverabilityc                K   r,   )zSets the icon of a workspace.

        Args:
            team_id (str): ID of the team.
            discoverability (str): This workspace's discovery setting.
                It must be set to one of open, invite_only, closed, or unlisted.
        )rN   rq   z'admin.teams.settings.setDiscoverabilityr   r-   )r   rN   rq   r   r   r   r   'admin_teams_settings_setDiscoverability  s   
z1WebClient.admin_teams_settings_setDiscoverability	image_urlc                K   rJ   )zSets the icon of a workspace.

        Args:
            team_id (str): ID of the team.
            image_url (str): Url of the icon.
        )rN   rs   zadmin.teams.settings.setIconr   r   r-   )r   rN   rs   r   r   r   r   admin_teams_settings_setIcon  s   	z&WebClient.admin_teams_settings_setIconc                K   r,   )zSets the icon of a workspace.

        Args:
            team_id (str): ID of the team.
            name (str): Name of the team.
        )rN   r+   zadmin.teams.settings.setNamer   r-   )r   rN   r+   r   r   r   r   admin_teams_settings_setName  rA   z&WebClient.admin_teams_settings_setNameusergroup_idc                K   L   | ||d t|tr| dd|i n| d|i | jd|dS )al  Add one or more default channels to an IDP group.

        Args:
            team_id (str): The workspace to add default channels in. e.g. 'T1234'
            usergroup_id (str): ID of the IDP group to add default channels for. e.g. 'S1234'
            channel_ids (str or list): Comma separated string of channel IDs. e.g. 'C123,C234' or ['C123', 'C234']
        )rN   rv   rm   r6   zadmin.usergroups.addChannelsr   r8   )r   rN   rv   rm   r   r   r   r   admin_usergroups_addChannels  s
   
z&WebClient.admin_usergroups_addChannelsteam_idsc                K   r5   )a  Associate one or more default workspaces with an organization-wide IDP group.

        Args:
            usergroup_id (str): ID of the IDP group. e.g. 'S1234'
            team_ids (str or list): A comma separated list of encoded team (workspace) IDs.
                Each workspace MUST belong to the organization associated with the token.
                e.g. 'T12345678,T98765432' or ['T12345678', 'T98765432']
        rv   ry   r6   zadmin.usergroups.addTeamsr   r8   )r   rv   ry   r   r   r   r   admin_usergroups_addTeams2  
   
z#WebClient.admin_usergroups_addTeamsc                K   r0   )zAdd one or more default channels to an IDP group.

        Args:
            usergroup_id (str): ID of the IDP group to list default channels for. e.g. 'S1234'
        rv   zadmin.usergroups.listChannelsr   r-   )r   rv   r   r   r   r   admin_usergroups_listChannelsD  r>   z'WebClient.admin_usergroups_listChannelsc                K   r5   )zAdd one or more default channels to an IDP group.

        Args:
            usergroup_id (str): ID of the IDP group. e.g. 'S1234'
            channel_ids (str or list): Comma separated string of channel IDs. e.g. 'C123,C234' or ['C123', 'C234']
        rv   rm   r6   zadmin.usergroups.removeChannelsr   r8   )r   rv   rm   r   r   r   r   admin_usergroups_removeChannelsO  
   	
z)WebClient.admin_usergroups_removeChannelsc                K   r,   )zAdd an Enterprise user to a workspace.

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
            user_id (str): ID of the user to add to the workspace.
        rN   rW   zadmin.users.assignr   r-   r   rN   rW   r   r   r   r   admin_users_assign_  rA   zWebClient.admin_users_assignemailc                K   rw   )al  Invite a user to a workspace.

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
            email (str): The email address of the person to invite. e.g. 'joe@email.com'
            channel_ids (str or list): A list of channel_ids for this user to join.
                At least one channel is required. e.g. ['C1A2B3C4D', 'C26Z25Y24']
        )rN   r   rm   r6   zadmin.users.inviter   r8   )r   rN   r   rm   r   r   r   r   admin_users_invitek  s
   
zWebClient.admin_users_invitec                K   r0   )ziList users on a workspace

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
        rN   zadmin.users.listr   r-   rd   r   r   r   admin_users_list}  r>   zWebClient.admin_users_listc                K   r,   )zRemove a user from a workspace.

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
            user_id (str): The ID of the user to remove. e.g. 'W12345678'
        r   zadmin.users.remover   r-   r   r   r   r   admin_users_remove  rA   zWebClient.admin_users_removec                K   r,   )zSet an existing guest, regular user, or owner to be an admin user.

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
            user_id (str): The ID of the user to remove. e.g. 'W12345678'
        r   zadmin.users.setAdminr   r-   r   r   r   r   admin_users_setAdmin  rA   zWebClient.admin_users_setAdminexpiration_tsc                K       | |||d | jd|dS )a0  Set an expiration for a guest user.

        Args:
            expiration_ts (int): Timestamp when guest account should be disabled. e.g. '1234567890'
            team_id (str): ID of the team. e.g. 'T1234'
            user_id (str): The ID of the user to set an expiration for. e.g. 'W12345678'
        )r   rN   rW   zadmin.users.setExpirationr   r-   )r   r   rN   rW   r   r   r   r   admin_users_setExpiration  s   

z#WebClient.admin_users_setExpirationc                K   r,   )zSet an existing guest, regular user, or admin user to be a workspace owner.

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
            user_id (str): The ID of the user to remove. e.g. 'W12345678'
        r   zadmin.users.setOwnerr   r-   r   r   r   r   admin_users_setOwner  rA   zWebClient.admin_users_setOwnerc                K   r,   )zSet an existing guest user, admin user, or owner to be a regular user.

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
            user_id (str): The ID of the user to remove. e.g. 'W12345678'
        r   zadmin.users.setRegularr   r-   r   r   r   r   admin_users_setRegular  rA   z WebClient.admin_users_setRegularc                 K   r&   )zChecks API calling code.zapi.testr   r!   r"   r   r   r   api_test  r(   zWebClient.api_testevent_contextc                 K   r0   )a'  Get a list of authorizations for the given event context.
        Each authorization represents an app installation that the event is visible to.

        Args:
            event_context (str): You'll receive an event_context identifying an event in each event payload sent to your app.
        r   zapps.event.authorizations.listr7   r-   )r   r   r   r   r   r   apps_event_authorizations_list  r3   z(WebClient.apps_event_authorizations_list	client_idclient_secretc                 K   r,   )a  Uninstalls your app from a workspace.

        Args:
            client_id (str): Issued when you created your application. e.g. '56579136444.26251006572'
            client_secret (str): Issued when you created your application. e.g. 'f25b5ceaf8a3c2a2c4f52bb4f0b0499e'
        r   r   zapps.uninstallr7   r-   )r   r   r   r   r   r   r   apps_uninstall  rA   zWebClient.apps_uninstallc                 K   r   )zRevokes a token.zauth.revoker   r   r!   r"   r   r   r   auth_revoke  r$   zWebClient.auth_revokec                 K   r&   )z!Checks authentication & identity.z	auth.testr   r!   r"   r   r   r   	auth_test  r(   zWebClient.auth_testc                 K   r   )z"Gets information about a bot user.z	bots.infor   r   r!   r"   r   r   r   	bots_info  r$   zWebClient.bots_infoexternal_unique_idjoin_urlc                K   s0   | ||d t||d | jdd|dS )a  Registers a new Call.

        Args:
            external_unique_id (str): An ID supplied by the 3rd-party Call provider.
                It must be unique across all Calls from that service.
                e.g. '025169F6-E37A-4E62-BB54-7F93A0FC4C1F'
            join_url (str): The URL required for a client to join the Call.
                e.g. 'https://example.com/calls/1234567890'
        )r   r   usersz	calls.addPOSTr   )r   r   getr   )r   r   r   r   r   r   r   	calls_add  s   zWebClient.calls_addidc                K   rL   )z|Ends a Call.

        Args:
            id (str): id returned when registering the call using the calls.add method.
        r   z	calls.endr   r   r-   r   r   r   r   r   r   	calls_end  rf   zWebClient.calls_endc                K   rL   )zReturns information about a Call.

        Args:
            id (str): id returned when registering the call using the calls.add method.
        r   z
calls.infor   r   r-   r   r   r   r   
calls_info
  rf   zWebClient.calls_infor   c                K   (   | d|i t|| | jdd|dS )zRegisters new participants added to a Call.

        Args:
            id (str): id returned when registering the call using the calls.add method.
            users: (list): The list of users to add as participants in the Call.
        r   zcalls.participants.addr   r   r   r   r   r   r   r   r   r   r   r   calls_participants_add  s   
z WebClient.calls_participants_addc                K   r   )zRegisters participants removed from a Call.

        Args:
            id (str): id returned when registering the call using the calls.add method.
            users: (list): The list of users to remove as participants in the Call.
        r   zcalls.participants.remover   r   r   r   r   r   r   calls_participants_remove&  s
   
z#WebClient.calls_participants_removec                K   rL   )ztUpdates information about a Call.

        Args:
            id (str): id returned by the calls.add method.
        r   zcalls.updater   r   r-   r   r   r   r   calls_update9  rf   zWebClient.calls_updatechannelc                K   r0   )ziArchives a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.archiver   r-   r   r   r   r   r   r   channels_archiveD  r>   zWebClient.channels_archivec                K   r0   )zlCreates a channel.

        Args:
            name (str): The name of the channel. e.g. 'mychannel'
        r+   zchannels.creater   r-   r   r+   r   r   r   r   channels_createO     zWebClient.channels_createc                K   rL   )zFetches history of messages and events from a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.historyr   r   r-   r   r   r   r   channels_historyX  rf   zWebClient.channels_historyc                K   rL   )zwGets information about a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.infor   r   r-   r   r   r   r   channels_infoc     zWebClient.channels_infouserc                K   r,   )zInvites a user to a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            user (str): The user id. e.g. 'U1234567890'
        r   r   zchannels.inviter   r-   r   r   r   r   r   r   r   channels_invitel  rA   zWebClient.channels_invitec                K   r0   )zyJoins a channel, creating it if needed.

        Args:
            name (str): The channel name. e.g. '#general'
        r+   zchannels.joinr   r-   r   r   r   r   channels_joinx  r   zWebClient.channels_joinc                K   r,   )zRemoves a user from a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            user (str): The user id. e.g. 'U1234567890'
        r   zchannels.kickr   r-   r   r   r   r   channels_kick  rA   zWebClient.channels_kickc                K   r0   )zgLeaves a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.leaver   r-   r   r   r   r   channels_leave  r   zWebClient.channels_leavec                 K   r   )#Lists all channels in a Slack team.zchannels.listr   r   r!   r"   r   r   r   channels_list  r$   zWebClient.channels_listtsc                K   r,   )zSets the read cursor in a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            ts (str): Timestamp of the most recently seen message. e.g. '1234567890.123456'
        r   r   zchannels.markr   r-   r   r   r   r   r   r   r   channels_mark  rA   zWebClient.channels_markc                K   r,   )zRenames a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            name (str): The new channel name. e.g. 'newchannel'
        r   r+   zchannels.renamer   r-   r   r   r+   r   r   r   r   channels_rename  rA   zWebClient.channels_rename	thread_tsc                K   rJ   )a
  Retrieve a thread of messages posted to a channel

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            thread_ts (str): The timestamp of an existing message with 0 or more replies.
                e.g. '1234567890.123456'
        r   r   zchannels.repliesr   r   r-   r   r   r   r   r   r   r   channels_replies     
zWebClient.channels_repliespurposec                K   r,   )zSets the purpose for a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            purpose (str): The new purpose for the channel. e.g. 'My Purpose'
        r   r   zchannels.setPurposer   r-   r   r   r   r   r   r   r   channels_setPurpose  rA   zWebClient.channels_setPurposetopicc                K   r,   )zSets the topic for a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            topic (str): The new topic for the channel. e.g. 'My Topic'
        r   r   zchannels.setTopicr   r-   r   r   r   r   r   r   r   channels_setTopic  rA   zWebClient.channels_setTopicc                K   r0   )zkUnarchives a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.unarchiver   r-   r   r   r   r   channels_unarchive  r>   zWebClient.channels_unarchivec                K   r,   )zDeletes a message.

        Args:
            channel (str): Channel containing the message to be deleted. e.g. 'C1234567890'
            ts (str): Timestamp of the message to be deleted. e.g. '1234567890.123456'
        r   zchat.deleter   r-   r   r   r   r   chat_delete  rA   zWebClient.chat_deletescheduled_message_idc                K   r,   )a  Deletes a scheduled message.

        Args:
            channel (str): The channel the scheduled_message is posting to. e.g. 'C1234567890'
            scheduled_message_id (str): scheduled_message_id returned from call to chat.scheduleMessage e.g. 'Q1234ABCD'
        )r   r   zchat.deleteScheduledMessager   r-   )r   r   r   r   r   r   r   chat_deleteScheduledMessage  s   	z%WebClient.chat_deleteScheduledMessage
message_tsc                K   rJ   )zRetrieve a permalink URL for a specific extant message

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            message_ts (str): The timestamp. e.g. '1234567890.123456'
        )r   r   zchat.getPermalinkr   r   r-   )r   r   r   r   r   r   r   chat_getPermalink     	zWebClient.chat_getPermalinktextc                K   r,   )zShare a me message into a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            text (str): The message you'd like to share. e.g. 'Hello world'
        )r   r   zchat.meMessager   r-   )r   r   r   r   r   r   r   chat_meMessage  rA   zWebClient.chat_meMessagec                K   &   | ||d t| | jd|dS )a=  Sends an ephemeral message to a user in a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            user (str): The id of user who should see the message. e.g. 'U0BPQUNTA'
            text (str): The message you'd like to share. e.g. 'Hello world'
                text is not required when presenting blocks.
            blocks (list): A dictionary list of blocks.
                Blocks are required when not presenting text.
                e.g. [{"type": "section", "text": {"type": "plain_text", "text": "Hello world"}}]
        r   zchat.postEphemeralr   r   r   r   r   r   r   r   chat_postEphemeral     zWebClient.chat_postEphemeralc                K   s$   | d|i t| | jd|dS )a  Sends a message to a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            text (str): The message you'd like to share. e.g. 'Hello world'
                text is not required when presenting blocks.
            blocks (list): A dictionary list of blocks.
                Blocks are required when not presenting text.
                e.g. [{"type": "section", "text": {"type": "plain_text", "text": "Hello world"}}]
        r   zchat.postMessager   r   r   r   r   r   chat_postMessage&  s   zWebClient.chat_postMessagepost_atc                K   s(   | |||d t| | jd|dS )a>  Schedules a message.

        Args:
            channel (str): The channel the scheduled_message is posting to. e.g. 'C1234567890'
            post_at (str): Unix EPOCH timestamp of time in future to send the message. e.g. '299876400'
            text (str): The message you'd like to send. e.g. 'Hello world'
        )r   r   r   zchat.scheduleMessager   r   )r   r   r   r   r   r   r   r   chat_scheduleMessage7  s   
zWebClient.chat_scheduleMessageunfurlsc                K   r   )a  Provide custom unfurl behavior for user-posted URLs.

        Args:
            channel (str): The Channel ID of the message. e.g. 'C1234567890'
            ts (str): Timestamp of the message to add unfurl behavior to. e.g. '1234567890.123456'
            unfurls (dict): a dict of the specific URLs you're offering an unfurl for.
                e.g. {"https://example.com/": {"text": "Every day is the test."}}
        )r   r   r   zchat.unfurlr   r-   )r   r   r   r   r   r   r   r   chat_unfurlE  s   zWebClient.chat_unfurlc                K   r   )aO  Updates a message in a channel.

        Args:
            channel (str): The channel containing the message to be updated. e.g. 'C1234567890'
            ts (str): Timestamp of the message to be updated. e.g. '1234567890.123456'
            text (str): The message you'd like to share. e.g. 'Hello world'
                text is not required when presenting blocks.
            blocks (list): A dictionary list of blocks.
                Blocks are required when not presenting text.
                e.g. [{"type": "section", "text": {"type": "plain_text", "text": "Hello world"}}]
        r   zchat.updater   r   r   r   r   r   chat_updateS  r   zWebClient.chat_updatec                 K   r&   )zLists all scheduled messages.zchat.scheduledMessages.listr   r!   r"   r   r   r   chat_scheduledMessages_liste  r(   z%WebClient.chat_scheduledMessages_listc                K   r0   )znArchives a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.archiver   r-   r   r   r   r   conversations_archivei  r>   zWebClient.conversations_archivec                K   r0   )zCloses a direct message or multi-person direct message.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.closer   r-   r   r   r   r   conversations_closet  r>   zWebClient.conversations_closec                K   r0   )zInitiates a public or private channel-based conversation

        Args:
            name (str): The name of the channel. e.g. 'mychannel'
        r+   zconversations.creater   r-   r   r   r   r   conversations_create  r>   zWebClient.conversations_createc                K   rL   )zFetches a conversation's history of messages and events.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.historyr   r   r-   r   r   r   r   conversations_history  rf   zWebClient.conversations_historyc                K   rL   )zRetrieve information about a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.infor   r   r-   r   r   r   r   conversations_info  rf   zWebClient.conversations_infoc                K   r5   )zInvites users to a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            users (str or list): An list of user id's to invite. e.g. ['U2345678901', 'U3456789012']
        r   r   r6   zconversations.inviter   r8   )r   r   r   r   r   r   r   conversations_invite  r~   zWebClient.conversations_invitec                K   r0   )zuJoins an existing conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.joinr   r-   r   r   r   r   conversations_join  r>   zWebClient.conversations_joinc                K   r,   )zRemoves a user from a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            user (str): The id of the user to kick. e.g. 'U2345678901'
        r   zconversations.kickr   r-   r   r   r   r   conversations_kick  rA   zWebClient.conversations_kickc                K   r0   )zlLeaves a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.leaver   r-   r   r   r   r   conversations_leave  r>   zWebClient.conversations_leavec                 K   r   )r   zconversations.listr   r   r!   r"   r   r   r   conversations_list  r$   zWebClient.conversations_listc                K   r,   )a  Sets the read cursor in a channel.

        Args:
            channel (str): Channel or conversation to set the read cursor for e.g. 'C1234567890'
            ts (str): Unique identifier of message to mark as most recently seen in the convo e.g. '1593473566.000200'
        r   zconversations.markr   r-   r   r   r   r   conversations_mark  rA   zWebClient.conversations_markc                K   rL   )zyRetrieve members of a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.membersr   r   r-   r   r   r   r   conversations_members  rf   zWebClient.conversations_membersc                 K   r&   )zAOpens or resumes a direct message or multi-person direct message.zconversations.openr   r!   r"   r   r   r   conversations_open  r(   zWebClient.conversations_openc                K   r,   )zRenames a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            name (str): The new channel name. e.g. 'newchannel'
        r   zconversations.renamer   r-   r   r   r   r   conversations_rename  rA   zWebClient.conversations_renamec                K   rJ   )a  Retrieve a thread of messages posted to a conversation

        Args:
            channel (str): Conversation ID to fetch thread from. e.g. 'C1234567890'
            ts (str): Unique identifier of a thread's parent message. e.g. '1234567890.123456'
        r   zconversations.repliesr   r   r-   r   r   r   r   conversations_replies  r   zWebClient.conversations_repliesc                K   r,   )zSets the purpose for a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            purpose (str): The new purpose for the channel. e.g. 'My Purpose'
        r   zconversations.setPurposer   r-   r   r   r   r   conversations_setPurpose	  rA   z"WebClient.conversations_setPurposec                K   r,   )zSets the topic for a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            topic (str): The new topic for the channel. e.g. 'My Topic'
        r   zconversations.setTopicr   r-   r   r   r   r   conversations_setTopic  rA   z WebClient.conversations_setTopicc                K   r0   )zuReverses conversation archival.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.unarchiver   r-   r   r   r   r   conversations_unarchive!  r>   z!WebClient.conversations_unarchivedialog
trigger_idc                K   r,   )a  Open a dialog with a user.

        Args:
            dialog (dict): A dictionary of dialog arguments.
                {
                    "callback_id": "46eh782b0",
                    "title": "Request something",
                    "submit_label": "Request",
                    "state": "Max",
                    "elements": [
                        {
                            "type": "text",
                            "label": "Origin",
                            "name": "loc_origin"
                        },
                        {
                            "type": "text",
                            "label": "Destination",
                            "name": "loc_destination"
                        }
                    ]
                }
            trigger_id (str): The trigger id of a recent message interaction.
                e.g. '12345.98765.abcd2358fdea'
        )r   r   zdialog.openr   r-   )r   r   r   r   r   r   r   dialog_open,  s   zWebClient.dialog_openc                 K   r&   )z;Ends the current user's Do Not Disturb session immediately.z
dnd.endDndr   r!   r"   r   r   r   
dnd_endDndK  r(   zWebClient.dnd_endDndc                 K   r&   )z0Ends the current user's snooze mode immediately.zdnd.endSnoozer   r!   r"   r   r   r   dnd_endSnoozeO  r(   zWebClient.dnd_endSnoozec                 K   r   )z1Retrieves a user's current Do Not Disturb status.zdnd.infor   r   r!   r"   r   r   r   dnd_infoS  r$   zWebClient.dnd_infonum_minutesc                K   rL   )zTurns on Do Not Disturb mode for the current user, or changes its duration.

        Args:
            num_minutes (int): The snooze duration. e.g. 60
        r   zdnd.setSnoozer   r   r-   )r   r   r   r   r   r   dnd_setSnoozeW  rf   zWebClient.dnd_setSnoozec                 K   >   t |tr|dd|i n|d|i | jdd|dS )zRetrieves the Do Not Disturb status for users on a team.

        Args:
            users (str or list): User IDs to fetch information e.g. 'U123,U234' or ["U123", "U234"]
        r   r6   zdnd.teamInfor   r   r9   r:   r   r;   r   r   r   r   r   r   r   dnd_teamInfob  s   
zWebClient.dnd_teamInfoc                 K   r   )zLists custom emoji for a team.z
emoji.listr   r   r!   r"   r   r   r   
emoji_listp  r$   zWebClient.emoji_listfilec                K   r,   )zDeletes an existing comment on a file.

        Args:
            file (str): The file id. e.g. 'F1234467890'
            id (str): The file comment id. e.g. 'Fc1234567890'
        )r   r   zfiles.comments.deleter   r-   )r   r   r   r   r   r   r   files_comments_deletet  rA   zWebClient.files_comments_deletec                K   r0   )z_Deletes a file.

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   zfiles.deleter   r-   r   r   r   r   r   r   files_delete  r   zWebClient.files_deletec                K   rL   )zsGets information about a team file.

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   z
files.infor   r   r-   r  r   r   r   
files_info  r   zWebClient.files_infoc                 K   r   )zLists & filters team files.z
files.listr   r   r!   r"   r   r   r   
files_list  r$   zWebClient.files_listc                 K   r   )8Retrieve information about a remote file added to Slack.zfiles.remote.infor   r   r!   r"   r   r   r   files_remote_info  r$   zWebClient.files_remote_infoc                 K   r   )r  zfiles.remote.listr   r   r!   r"   r   r   r   files_remote_list  r$   zWebClient.files_remote_listexternal_idexternal_urltitlec                K   s>   | |||d d}d|v rd|di}| jdd||dS )aO  Adds a file from a remote service.

        Args:
            external_id (str): Creator defined GUID for the file. e.g. '123456'
            external_url (str): URL of the remote file. e.g. 'http://example.com/my_cloud_service_file/abc123'
            title (str): Title of the file being shared. e.g. 'Danger, High Voltage!'
        )r  r	  r
  Npreview_imagezfiles.remote.addr   )r   datafiles)r   popr   )r   r  r	  r
  r   r  r   r   r   files_remote_add  s   

zWebClient.files_remote_addc                 K   r   )z Updates an existing remote file.zfiles.remote.updater   r   r!   r"   r   r   r   files_remote_update  r$   zWebClient.files_remote_updatec                 K   r   )zRemove a remote file.zfiles.remote.remover   r   r!   r"   r   r   r   files_remote_remove  r$   zWebClient.files_remote_removechannelsc                K   r   )zShare a remote file into a channel.

        Args:
            channels (str or list): Comma-separated list of channel IDs where the file will be shared.
                e.g. ['C1234567890', 'C2345678901']
        r  r6   zfiles.remote.sharer   r   r   )r   r  r   r   r   r   files_remote_share     
	zWebClient.files_remote_sharec                K   r0   )zRevokes public/external sharing access for a file

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   zfiles.revokePublicURLr   r-   r  r   r   r   files_revokePublicURL  r>   zWebClient.files_revokePublicURLc                K   r0   )z{Enables a file for public/external sharing.

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   zfiles.sharedPublicURLr   r-   r  r   r   r   files_sharedPublicURL  r>   zWebClient.files_sharedPublicURL)r   contentr  c                K   s   |du r|du rt d|dur|durt d|r:d|vr0t|tr0|tjjd |d< | jdd|i|dS |	 }|
d	|i | jd|d
S )a  Uploads or creates a file.

        Args:
            file (str): Supply a file path.
                when you'd like to upload a specific file. e.g. 'dramacat.gif'
            content (str): Supply content when you'd like to create an
                editable text file containing the specified text. e.g. 'launch plan'
        Raises:
            SlackRequestError: If niether or both the `file` and `content` args are specified.
        Nz/The file or content argument must be specified.z:You cannot specify both the file and the content argument.filenamezfiles.uploadr   r  r  r  )r  )r   r   r9   strsplitospathsepr   copyr   )r   r   r  r   r  r   r   r   files_upload  s   
zWebClient.files_uploadc                K   r0   )zqArchives a private channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zgroups.archiver   r-   r   r   r   r   groups_archive  r   zWebClient.groups_archivec                K   r0   )zzCreates a private channel.

        Args:
            name (str): The name of the private group. e.g. 'mychannel'
        r+   zgroups.creater   r-   r   r   r   r   groups_create  r   zWebClient.groups_createc                K   rL   )zzClones and archives a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.createChildr   r   r-   r   r   r   r   groups_createChild  rf   zWebClient.groups_createChildc                K   rL   )zFetches history of messages and events from a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.historyr   r   r-   r   r   r   r   groups_history  r   zWebClient.groups_historyc                K   rL   )z}Gets information about a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.infor   r   r-   r   r   r   r   groups_info(  r   zWebClient.groups_infoc                K   r,   )zInvites a user to a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
            user (str): The user id. e.g. 'U1234567890'
        r   zgroups.inviter   r-   r   r   r   r   groups_invite1  rA   zWebClient.groups_invitec                K   r,   )zRemoves a user from a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
            user (str): The user id. e.g. 'U1234567890'
        r   zgroups.kickr   r-   r   r   r   r   groups_kick=  rA   zWebClient.groups_kickc                K   r0   )zmLeaves a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.leaver   r-   r   r   r   r   groups_leaveI  r   zWebClient.groups_leavec                 K   r   )z;Lists private channels that the calling user has access to.zgroups.listr   r   r!   r"   r   r   r   groups_listR  r$   zWebClient.groups_listc                K   r,   )zSets the read cursor in a private channel.

        Args:
            channel (str): Private channel to set reading cursor in. e.g. 'C1234567890'
            ts (str): Timestamp of the most recently seen message. e.g. '1234567890.123456'
        r   zgroups.markr   r-   r   r   r   r   groups_markV  rA   zWebClient.groups_markc                K   r0   )znOpens a private channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zgroups.openr   r-   r   r   r   r   groups_openb  r   zWebClient.groups_openc                K   r,   )zRenames a private channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            name (str): The new channel name. e.g. 'newchannel'
        r   zgroups.renamer   r-   r   r   r   r   groups_renamek  rA   zWebClient.groups_renamec                K   rJ   )a  Retrieve a thread of messages posted to a private channel

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
            thread_ts (str): The timestamp of an existing message with 0 or more replies.
                e.g. '1234567890.123456'
        r   zgroups.repliesr   r   r-   r   r   r   r   groups_repliesw  r   zWebClient.groups_repliesc                K   r,   )zSets the purpose for a private channel.

        Args:
            channel (str): The channel id. e.g. 'G1234567890'
            purpose (str): The new purpose for the channel. e.g. 'My Purpose'
        r   zgroups.setPurposer   r-   r   r   r   r   groups_setPurpose  rA   zWebClient.groups_setPurposec                K   r,   )zSets the topic for a private channel.

        Args:
            channel (str): The channel id. e.g. 'G1234567890'
            topic (str): The new topic for the channel. e.g. 'My Topic'
        r   zgroups.setTopicr   r-   r   r   r   r   groups_setTopic  rA   zWebClient.groups_setTopicc                K   r0   )zsUnarchives a private channel.

        Args:
            channel (str): The channel id. e.g. 'G1234567890'
        r   zgroups.unarchiver   r-   r   r   r   r   groups_unarchive  r>   zWebClient.groups_unarchivec                K   r0   )zClose a direct message channel.

        Args:
            channel (str): Direct message channel to close. e.g. 'D1234567890'
        r   zim.closer   r-   r   r   r   r   im_close  r   zWebClient.im_closec                K   rL   )zFetches history of messages and events from direct message channel.

        Args:
            channel (str): Direct message channel to fetch history from. e.g. 'D1234567890'
        r   z
im.historyr   r   r-   r   r   r   r   
im_history  r   zWebClient.im_historyc                 K   r   )z3Lists direct message channels for the calling user.zim.listr   r   r!   r"   r   r   r   im_list  r$   zWebClient.im_listc                K   r,   )a  Sets the read cursor in a direct message channel.

        Args:
            channel (str): Direct message channel to set reading cursor in. e.g. 'D1234567890'
            ts (str): Timestamp of the most recently seen message. e.g. '1234567890.123456'
        r   zim.markr   r-   r   r   r   r   im_mark  rA   zWebClient.im_markc                K   r0   )zOpens a direct message channel.

        Args:
            user (str): The user id to open a DM with. e.g. 'W1234567890'
        r   zim.openr   r-   r   r   r   r   r   r   im_open  r   zWebClient.im_openc                K   rJ   )a;  Retrieve a thread of messages posted to a direct message conversation

        Args:
            channel (str): Direct message channel to fetch thread from. e.g. 'C1234567890'
            thread_ts (str): The timestamp of an existing message with 0 or more replies.
                e.g. '1234567890.123456'
        r   z
im.repliesr   r   r-   r   r   r   r   
im_replies  r   zWebClient.im_repliesc                K   r   )zFor Enterprise Grid workspaces, map local user IDs to global user IDs

        Args:
            users (str or list): A list of user ids, up to 400 per request.
                e.g. ['W1234567890', 'U2345678901', 'U3456789012']
        r   r6   zmigration.exchanger   r   r   r   r   r   r   migration_exchange  r  zWebClient.migration_exchangec                K   r0   )zCloses a multiparty direct message channel.

        Args:
            channel (str): Multiparty Direct message channel to close. e.g. 'G1234567890'
        r   z
mpim.closer   r-   r   r   r   r   
mpim_close  r   zWebClient.mpim_closec                K   rL   )zFetches history of messages and events from a multiparty direct message.

        Args:
            channel (str): Multiparty direct message to fetch history for. e.g. 'G1234567890'
        r   zmpim.historyr   r   r-   r   r   r   r   mpim_history  r   zWebClient.mpim_historyc                 K   r   )z>Lists multiparty direct message channels for the calling user.z	mpim.listr   r   r!   r"   r   r   r   	mpim_list   r$   zWebClient.mpim_listc                K   r,   )a:  Sets the read cursor in a multiparty direct message channel.

        Args:
            channel (str): Multiparty direct message channel to set reading cursor in.
                e.g. 'G1234567890'
            ts (str): Timestamp of the most recently seen message.
                e.g. '1234567890.123456'
        r   z	mpim.markr   r-   r   r   r   r   	mpim_mark  s   zWebClient.mpim_markc                K   s<   t |tr|dd|i n|d|i | jd|dS )a  This method opens a multiparty direct message.

        Args:
            users (str or list): A lists of user ids. The ordering of the users
                is preserved whenever a MPIM group is returned.
                e.g. ['W1234567890', 'U2345678901', 'U3456789012']
        r   r6   z	mpim.openr   r   r   r   r   r   	mpim_open  s   

zWebClient.mpim_openc                K   rJ   )as  Retrieve a thread of messages posted to a direct message conversation from a
        multiparty direct message.

        Args:
            channel (str): Multiparty direct message channel to fetch thread from.
                e.g. 'G1234567890'
            thread_ts (str): Unique identifier of a thread's parent message.
                e.g. '1234567890.123456'
        r   zmpim.repliesr   r   r-   r   r   r   r   mpim_replies"  s   zWebClient.mpim_replies)redirect_uricoder@  c                K   :   |dur| d|i | d|i | jd|||ddS )  Exchanges a temporary OAuth verifier code for an access token.

        Args:
            client_id (str): Issued when you created your application. e.g. '4b39e9-752c4'
            client_secret (str): Issued when you created your application. e.g. '33fea0113f5b1'
            code (str): The code param returned via the OAuth callback. e.g. 'ccdaa72ad'
            redirect_uri (optional str): Must match the originally submitted URI
                (if one was sent). e.g. 'https://example.com'
        Nr@  rA  zoauth.v2.accessr   r  authr-   r   r   r   rA  r@  r   r   r   r   oauth_v2_access1     zWebClient.oauth_v2_accessc                K   rB  )rC  Nr@  rA  zoauth.accessr   rD  r-   rF  r   r   r   oauth_accessL  rH  zWebClient.oauth_accessc                K   r0   )aS  Pins an item to a channel.

        Args:
            channel (str): Channel to pin the item in. e.g. 'C1234567890'
            file (str): File id to pin. e.g. 'F1234567890'
            file_comment (str): File comment to pin. e.g. 'Fc1234567890'
            timestamp (str): Timestamp of message to pin. e.g. '1234567890.123456'
        r   zpins.addr   r-   r   r   r   r   pins_addg  r3   zWebClient.pins_addc                K   rL   )zLists items pinned to a channel.

        Args:
            channel (str): Channel to get pinned items for. e.g. 'C1234567890'
        r   z	pins.listr   r   r-   r   r   r   r   	pins_lists  r   zWebClient.pins_listc                K   r0   )aX  Un-pins an item from a channel.

        Args:
            channel (str): Channel to pin the item in. e.g. 'C1234567890'
            file (str): File id to pin. e.g. 'F1234567890'
            file_comment (str): File comment to pin. e.g. 'Fc1234567890'
            timestamp (str): Timestamp of message to pin. e.g. '1234567890.123456'
        r   zpins.remover   r-   r   r   r   r   pins_remove|  r3   zWebClient.pins_removec                K   r0   )aL  Adds a reaction to an item.

        Args:
            name (str): Reaction (emoji) name. e.g. 'thumbsup'
            channel (str): Channel where the message to add reaction to was posted.
                e.g. 'C1234567890'
            timestamp (str): Timestamp of the message to add reaction to. e.g. '1234567890.123456'
        r+   zreactions.addr   r-   r   r   r   r   reactions_add  r3   zWebClient.reactions_addc                 K   r   )zGets reactions for an item.zreactions.getr   r   r!   r"   r   r   r   reactions_get  r$   zWebClient.reactions_getc                 K   r   )zLists reactions made by a user.zreactions.listr   r   r!   r"   r   r   r   reactions_list  r$   zWebClient.reactions_listc                K   r0   )zwRemoves a reaction from an item.

        Args:
            name (str): Reaction (emoji) name. e.g. 'thumbsup'
        r+   zreactions.remover   r-   r   r   r   r   reactions_remove  r   zWebClient.reactions_removetimec                K   r,   )a  Creates a reminder.

        Args:
            text (str): The content of the reminder. e.g. 'eat a banana'
            time (str): When this reminder should happen:
                the Unix timestamp (up to five years from now e.g. '1602288000'),
                the number of seconds until the reminder (if within 24 hours),
                or a natural language description (Ex. 'in 15 minutes' or 'every Thursday')
        )r   rQ  zreminders.addr   r-   )r   r   rQ  r   r   r   r   reminders_add  s   zWebClient.reminders_addreminderc                K   r0   )zMarks a reminder as complete.

        Args:
            reminder (str): The ID of the reminder to be marked as complete.
                e.g. 'Rm12345678'
        rS  zreminders.completer   r-   r   rS  r   r   r   r   reminders_complete  r3   zWebClient.reminders_completec                K   r0   )zqDeletes a reminder.

        Args:
            reminder (str): The ID of the reminder. e.g. 'Rm12345678'
        rS  zreminders.deleter   r-   rT  r   r   r   reminders_delete  r>   zWebClient.reminders_deletec                K   rL   )zGets information about a reminder.

        Args:
            reminder (str): The ID of the reminder. e.g. 'Rm12345678'
        rS  zreminders.infor   r   r-   rT  r   r   r   reminders_info  rf   zWebClient.reminders_infoc                 K   r   )z3Lists all reminders created by or for a given user.zreminders.listr   r   r!   r"   r   r   r   reminders_list  r$   zWebClient.reminders_listc                 K   r   )%Starts a Real Time Messaging session.zrtm.connectr   r   r!   r"   r   r   r   rtm_connect  r$   zWebClient.rtm_connectc                 K   r   )rY  z	rtm.startr   r   r!   r"   r   r   r   	rtm_start  r$   zWebClient.rtm_startqueryc                K   rL   )zSearches for messages and files matching a query.

        Args:
            query (str): Search query. May contains booleans, etc.
                e.g. 'pickleface'
        r\  z
search.allr   r   r-   r   r\  r   r   r   r   
search_all     zWebClient.search_allc                K   rL   )zSearches for files matching a query.

        Args:
            query (str): Search query. May contains booleans, etc.
                e.g. 'pickleface'
        r\  zsearch.filesr   r   r-   r]  r   r   r   search_files  r_  zWebClient.search_filesc                K   rL   )zSearches for messages matching a query.

        Args:
            query (str): Search query. May contains booleans, etc.
                e.g. 'pickleface'
        r\  zsearch.messagesr   r   r-   r]  r   r   r   search_messages  r_  zWebClient.search_messagesc                 K   r&   )a  Adds a star to an item.

        Args:
            channel (str): Channel to add star to, or channel where the message to add
                star to was posted (used with timestamp). e.g. 'C1234567890'
            file (str): File to add star to. e.g. 'F1234567890'
            file_comment (str): File comment to add star to. e.g. 'Fc1234567890'
            timestamp (str): Timestamp of the message to add star to. e.g. '1234567890.123456'
        z	stars.addr   r!   r"   r   r   r   	stars_add      
zWebClient.stars_addc                 K   r   )zLists stars for a user.z
stars.listr   r   r!   r"   r   r   r   
stars_list  r$   zWebClient.stars_listc                 K   r&   )a  Removes a star from an item.

        Args:
            channel (str): Channel to remove star from, or channel where
                the message to remove star from was posted (used with timestamp). e.g. 'C1234567890'
            file (str): File to remove star from. e.g. 'F1234567890'
            file_comment (str): File comment to remove star from. e.g. 'Fc1234567890'
            timestamp (str): Timestamp of the message to remove star from. e.g. '1234567890.123456'
        zstars.remover   r!   r"   r   r   r   stars_remove  rc  zWebClient.stars_removec                 K   r   )z*Gets the access logs for the current team.zteam.accessLogsr   r   r!   r"   r   r   r   team_accessLogs  r$   zWebClient.team_accessLogsc                 K   r   )z5Gets billable users information for the current team.zteam.billableInfor   r   r!   r"   r   r   r   team_billableInfo   r$   zWebClient.team_billableInfoc                 K   r   )z(Gets information about the current team.z	team.infor   r   r!   r"   r   r   r   	team_info$  r$   zWebClient.team_infoc                 K   r   )z/Gets the integration logs for the current team.zteam.integrationLogsr   r   r!   r"   r   r   r   team_integrationLogs(  r$   zWebClient.team_integrationLogsc                 K   r   )zRetrieve a team's profile.zteam.profile.getr   r   r!   r"   r   r   r   team_profile_get,  r$   zWebClient.team_profile_getc                K   r0   )zCreate a User Group

        Args:
            name (str): A name for the User Group. Must be unique among User Groups.
                e.g. 'My Test Team'
        r+   zusergroups.creater   r-   r   r   r   r   usergroups_create0  s   zWebClient.usergroups_create	usergroupc                K   r0   )zDisable an existing User Group

        Args:
            usergroup (str): The encoded ID of the User Group to disable.
                e.g. 'S0604QSJC'
        rl  zusergroups.disabler   r-   r   rl  r   r   r   r   usergroups_disable:  r3   zWebClient.usergroups_disablec                K   r0   )zEnable a User Group

        Args:
            usergroup (str): The encoded ID of the User Group to enable.
                e.g. 'S0604QSJC'
        rl  zusergroups.enabler   r-   rm  r   r   r   usergroups_enableF  r3   zWebClient.usergroups_enablec                 K   r   )zList all User Groups for a teamzusergroups.listr   r   r!   r"   r   r   r   usergroups_listR  r$   zWebClient.usergroups_listc                K   r0   )zUpdate an existing User Group

        Args:
            usergroup (str): The encoded ID of the User Group to update.
                e.g. 'S0604QSJC'
        rl  zusergroups.updater   r-   rm  r   r   r   usergroups_updateV  r3   zWebClient.usergroups_updatec                K   rL   )zList all users in a User Group

        Args:
            usergroup (str): The encoded ID of the User Group to update.
                e.g. 'S0604QSJC'
        rl  zusergroups.users.listr   r   r-   rm  r   r   r   usergroups_users_listb     	zWebClient.usergroups_users_listc                K   r5   )aH  Update the list of users for a User Group

        Args:
            usergroup (str): The encoded ID of the User Group to update.
                e.g. 'S0604QSJC'
            users (str or list): A list user IDs that represent the entire list of
                users for the User Group. e.g. ['U060R4BJ4', 'U060RNRCZ']
        rl  r   r6   zusergroups.users.updater   r8   )r   rl  r   r   r   r   r   usergroups_users_updaten  r{   z!WebClient.usergroups_users_updatec                 K   r   )z/List conversations the calling user may access.zusers.conversationsr   r   r!   r"   r   r   r   users_conversations  r$   zWebClient.users_conversationsc                 K   r   )zDelete the user profile photozusers.deletePhotor   r   r!   r"   r   r   r   users_deletePhoto  r$   zWebClient.users_deletePhotoc                K   rL   )zGets user presence information.

        Args:
            user (str): User to get presence info on. Defaults to the authed user.
                e.g. 'W1234567890'
        r   zusers.getPresencer   r   r-   r6  r   r   r   users_getPresence  r_  zWebClient.users_getPresencec                 K   r   )zGet a user's identity.zusers.identityr   r   r!   r"   r   r   r   users_identity  r$   zWebClient.users_identityc                K   rL   )zGets information about a user.

        Args:
            user (str): User to get info on.
                e.g. 'W1234567890'
        r   z
users.infor   r   r-   r6  r   r   r   
users_info  r_  zWebClient.users_infoc                 K   r   )z Lists all users in a Slack team.z
users.listr   r   r!   r"   r   r   r   
users_list  r$   zWebClient.users_listc                K   rL   )zFind a user with an email address.

        Args:
            email (str): An email address belonging to a user in the workspace.
                e.g. 'spengler@ghostbusters.example.com'
        r   zusers.lookupByEmailr   r   r-   )r   r   r   r   r   r   users_lookupByEmail  rs  zWebClient.users_lookupByEmailimagec                K   s   | j dd|i|dS )zSet the user profile photo

        Args:
            image (str): Supply the path of the image you'd like to upload.
                e.g. 'myimage.png'
        zusers.setPhotor|  r  r!   )r   r|  r   r   r   r   users_setPhoto  s   	zWebClient.users_setPhotopresencec                K   r0   )ziManually sets user presence.

        Args:
            presence (str): Either 'auto' or 'away'.
        r~  zusers.setPresencer   r-   )r   r~  r   r   r   r   users_setPresence  r>   zWebClient.users_setPresencec                 K   r   )z'Retrieves a user's profile information.zusers.profile.getr   r   r!   r"   r   r   r   users_profile_get  r$   zWebClient.users_profile_getc                 K   r&   )z'Set the profile information for a user.zusers.profile.setr   r!   r"   r   r   r   users_profile_set  r(   zWebClient.users_profile_setviewc                K   H   | d|i t|tr| d| i n| d|i | jd|dS )a!  Open a view for a user.
        See https://api.slack.com/block-kit/surfaces/modals for details.

        Args:
            trigger_id (str): Exchange a trigger to post to the user.
                e.g. '12345.98765.abcd2358fdea'
            view (dict or View): The view payload.
        r   r  z
views.openr   r   r9   r
   to_dictr   r   r   r  r   r   r   r   
views_open  s
   
zWebClient.views_openc                K   r  )a8  Push a view onto the stack of a root view.

        Push a new view onto the existing view stack by passing a view
        payload and a valid trigger_id generated from an interaction
        within the existing modal.

        Read the modals documentation (https://api.slack.com/block-kit/surfaces/modals)
        to learn more about the lifecycle and intricacies of views.

        Args:
            trigger_id (str): Exchange a trigger to post to the user.
                e.g. '12345.98765.abcd2358fdea'
            view (dict or View): The view payload.
        r   r  z
views.pushr   r  r  r   r   r   
views_push  s
   
zWebClient.views_push)r  view_idr  c                K   sl   |r
| d|i n|r| d|i ntdt|tr(| d| i n| d|i | jd|dS )a  Update an existing view.

        Update a view by passing a new view definition along with the
        view_id returned in views.open or the external_id.

        See the modals documentation (https://api.slack.com/block-kit/surfaces/modals#updating_views)
        to learn more about updating views and avoiding race conditions with the hash argument.

        Args:
            view (dict or View): The view payload.
            external_id (str): A unique identifier of the view set by the developer.
                e.g. 'bmarley_view2'
            view_id (str): A unique identifier of the view to be updated.
                e.g. 'VMM512F2U'
        Raises:
            SlackRequestError: Either view_id or external_id is required.
        r  r  z*Either view_id or external_id is required.r  zviews.updater   )r   r   r   r9   r
   r  r   )r   r  r  r  r   r   r   r   views_update  s   

zWebClient.views_updatec                K   r  )a`  Publish a static view for a User.
        Create or update the view that comprises an
        app's Home tab (https://api.slack.com/surfaces/tabs)
        for a specific user.
        Args:
            user_id (str): id of the user you want publish a view to.
                e.g. 'U0BPQUNTA'
            view (dict or View): The view payload.
        rW   r  zviews.publishr   r  )r   rW   r  r   r   r   r   views_publish	  s
   
zWebClient.views_publish)outputsworkflow_step_execute_idr  c                K   s.   | d|i |r| d|i | jd|dS )aT  Indicate a successful outcome of a workflow step's execution.
        Args:
            workflow_step_execute_id (str): A unique identifier of the workflow step to be updated.
                e.g. 'add_task'
            outputs (dict): A key-value object of outputs from your step.
                e.g. { 'task_name': 'Task Name' }
        r  r  zworkflows.stepCompletedr   r-   )r   r  r  r   r   r   r   workflows_stepCompleted2	  s   
z!WebClient.workflows_stepCompletederrorc                K   r,   )a}  Indicate an unsuccessful outcome of a workflow step's execution.
        Args:
            workflow_step_execute_id (str): A unique identifier of the workflow step to be updated.
                e.g. 'add_task'
            error (dict): A dict with a message property that contains a human readable error message
                e.g. { message: 'Step failed to execute.' }
        )r  r  zworkflows.stepFailedr   r-   )r   r  r  r   r   r   r   workflows_stepFailedB	  s   
zWebClient.workflows_stepFailed)inputsr  workflow_step_edit_idr  c                K   s@   | d|i |r| d|i |r| d|i | jd|dS )a;  Update the configuration for a workflow extension step.
        Args:
            workflow_step_edit_id (str): A unique identifier of the workflow step to be updated.
                e.g. 'add_task'
            inputs (dict): A key-value object of inputs required from a user during step configuration.
                e.g. { 'title': { 'value': 'The Title' }, 'submitter': { 'value': 'The Submitter' } }
            outputs (list): A list of output objects used during step execution.
                e.g. [{ 'type': 'text', 'name': 'title', 'label': 'Title' }]
        r  r  r  zworkflows.updateStepr   r-   )r   r  r  r  r   r   r   r   workflows_updateStepQ	  s   zWebClient.workflows_updateStep)__name__
__module____qualname____doc__r  r   r   r	   r   r#   r%   r'   r)   boolr.   r2   r   r<   r=   r?   r@   rB   rC   dictrE   rF   rG   rH   rK   rM   rO   rP   rQ   rR   rS   rT   rU   rV   rX   rZ   r]   r^   r`   ra   rb   re   ri   rj   rk   rl   rn   rp   rr   rt   ru   rx   rz   r|   r}   r   r   r   r   r   intr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r7  r8  r9  r:  r;  r<  r=  r>  r?  r   rG  rI  rJ  rK  rL  rM  rN  rO  rP  rR  rU  rV  rW  rX  rZ  r[  r^  r`  ra  rb  rd  re  rf  rg  rh  ri  rj  rk  rn  ro  rp  rq  rr  rt  ru  rv  rw  rx  ry  rz  r{  r}  r  r  r  r
   r  r  r  r  r  r  r:   r  r   r   r   r   r      s6   8










































































































	

	

	

	




























































  		






		
		

	
	




		
	

		



!
		



  
 




















'






r   )r  r  asyncior   ior   typingr   r   r   r   slack.errorserrorsr   slack.web.base_clientr   r	   slack.web.classes.viewsr
   slack.web.internal_utilsr   r   r   r   r   r   r   <module>   s    