o
    aqe{                    @   s|   d Z ddl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)IOBase)UnionListOptionalDict)AsyncBaseClientAsyncSlackResponse)View)_parse_web_class_objects_update_call_participantsc                   @   s  e Zd ZdZddddededefddZdefd	d
ZdefddZdefddZ	defddZ
dededefddZdedefddZdedeeee f defddZdedefddZdedefddZdededefdd Zdefd!d"Zdedefd#d$Zded%eeef defd&d'Zdedefd(d)Zdedefd*d+Zdefd,d-Zded.edefd/d0Zdedefd1d2Zded.ed3edefd4d5Zdedefd6d7Zdedefd8d9Zdefd:d;Z defd<d=Z!defd>d?Z"defd@dAZ#defdBdCZ$dDedefdEdFZ%dGed3edefdHdIZ&dJedefdKdLZ'defdMdNZ(defdOdPZ)dJedefdQdRZ*defdSdTZ+d3edefdUdVZ,dWedXedefdYdZZ-defd[d\Z.d3edefd]d^Z/d3edefd_d`Z0d3edaeeee f defdbdcZ1d3eddedefdedfZ2d3edgedefdhdiZ3d3edjedefdkdlZ4d3ededefdmdnZ5d3edoedaeeee f defdpdqZ6doedreeee f defdsdtZ7doedefdudvZ8doedaeeee f defdwdxZ9d3edDedefdydzZ:d3ed{edaeeee f defd|d}Z;d3edefd~dZ<d3edDedefddZ=d3edDedefddZ>de?d3edDedefddZ@d3edDedefddZAd3edDedefddZBdefddZCdedefddZDdededefddZEdefddZFdefddZGdefddZHdededefddZIdedefddZJdedefddZKdedeeeeLeef  f defddZMdedeeeeLeef  f defddZNdedefddZOdedefddZPdedefddZQdedefddZRdedefddZSdededefddZTdedefddZUdededefddZVdedefddZWdefddZXdededefddZYdededefddZZdededefddńZ[dededefddȄZ\dededefdd˄Z]dedefdd̈́Z^dededefddτZ_dededefdd҄Z`dededefddՄZadededefdd؄ZbdededefddڄZcdedefdd܄Zddedededefdd߄ZededededefddZfdededefddZgdefddZhdedefddZidedefddZjdedefddZkdedefddZldedefddZmdedeeee f defddZndedefddZodededefddZpdedefddZqdefddZrdededefddZsdedefddZtdefdd ZudededefddZvdededefddZwdededefddZxdededefddZydedefd	d
ZzdededefddZ{defddZ|defddZ}defddZ~de?defddZdeeee f defddZdefddZdededefddZdedefdd Zdedefd!d"Zdefd#d$Zdefd%d&Zdefd'd(Zd)ed*ed+edefd,d-Zdefd.d/Zdefd0d1Zd2eeee f defd3d4Zdedefd5d6Zdedefd7d8Zddd9deeef d:edefd;d<Zdedefd=d>Zdedefd?d@ZdedefdAdBZdedefdCdDZdedefdEdFZdededefdGdHZdededefdIdJZdedefdKdLZdefdMdNZdededefdOdPZdedefdQdRZdededefdSdTZdededefdUdVZdededefdWdXZdededefdYdZZdedefd[d\Zdedefd]d^Zdedefd_d`ZdefdadbZdededefdcddZdedefdedfZdededefdgdhZdeeee f defdidjZdedefdkdlZdedefdmdnZdefdodpZdededefdqdrZdeeee f defdsdtZdededefdudvZddwdededxedyee def
dzd{Zddwdededxedyee def
d|d}Zdedefd~dZdedefddZdedefddZdedefddZdefddZdefddZdedefddZdededefddZdedefddZdedefddZdedefddZdefddZdefddZdefddZdedefddZdedefddZdedefddZdefddZdefddZdefddZdefddZdefddZdefddZdefddZdefddZdedefddZɐdedefddZʐdedefddZdefddZ̐dedefddZ͐dedefddZΐdedeeee f defddZdefddÄZdefdĐdńZdedefdƐdǄZdefdȐdɄZdedefdʐd˄Zdefd̐d̈́Zd{edefdΐdτZ֐deeef defdѐd҄ZאdedefdԐdՄZdefd֐dׄZdefdؐdلZڐdedeeef defdېd܄Zܐdedeeef defdݐdބZdddߜdeeef d)ededefddZdDedeeef defddZdddededefddZdededefddZddddedededefddZdS (  AsyncWebClientax  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                   sH   |r| d|i n|r| d|i ntd| jd|dI dH 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jsonN)updateeSlackRequestErrorapi_call)selfr   r   kwargs r   W/var/www/html/humari/django-venv/lib/python3.10/site-packages/slack/web/async_client.pyadmin_apps_approveM   s   z!AsyncWebClient.admin_apps_approvec                       | j dd|dI dH S )z+List approved apps for an org or workspace.zadmin.apps.approved.listGET	http_verbparamsNr   r   r   r   r   r   admin_apps_approved_listg      z'AsyncWebClient.admin_apps_approved_listc                    r   )z'List app requests for a team/workspace.zadmin.apps.requests.listr   r   Nr    r!   r   r   r   admin_apps_requests_listm   r#   z'AsyncWebClient.admin_apps_requests_listc                       | j d|dI dH S )z0Restrict an app for installation on a workspace.zadmin.apps.restrictr   Nr    r!   r   r   r   admin_apps_restricts      z"AsyncWebClient.admin_apps_restrictc                    r   )z-List restricted apps for an org or workspace.zadmin.apps.restricted.listr   r   Nr    r!   r   r   r   admin_apps_restricted_listw   r#   z)AsyncWebClient.admin_apps_restricted_list
is_privatenamec                   &   | ||d | jd|dI dH 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   Nr   r   )r   r)   r*   r   r   r   r   admin_conversations_create}   s   z)AsyncWebClient.admin_conversations_create
channel_idc                   $   | d|i | jd|dI dH S )zqDelete a public or private channel.

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

        r.   zadmin.conversations.deleter   Nr,   r   r.   r   r   r   r   admin_conversations_delete      	z)AsyncWebClient.admin_conversations_deleteuser_idsc                   R   | d|i t|tr| dd|i n| d|i | jd|dI dH 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.   r3   ,zadmin.conversations.inviter   Nr   
isinstancelistjoinr   )r   r.   r3   r   r   r   r   admin_conversations_invite   s   	
z)AsyncWebClient.admin_conversations_invitec                   r/   )zrArchive a public or private channel.

        Args:
            channel_id (str): The channel to archive.
        r.   zadmin.conversations.archiver   Nr,   r0   r   r   r   admin_conversations_archive      z*AsyncWebClient.admin_conversations_archivec                   r/   )zvUnarchive a public or private channel.

        Args:
            channel_id (str): The channel to unarchive.
        r.   zadmin.conversations.unarchiver   Nr,   r0   r   r   r   admin_conversations_unarchive   r=   z,AsyncWebClient.admin_conversations_unarchivec                   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   Nr,   )r   r.   r*   r   r   r   r   admin_conversations_rename      	z)AsyncWebClient.admin_conversations_renamec                    r%   )zDSearch for public or private channels in an Enterprise organization.zadmin.conversations.searchr   Nr    r!   r   r   r   admin_conversations_search   r'   z)AsyncWebClient.admin_conversations_searchc                   r/   )zConvert a public channel to a private channel.

        Args:
            channel_id (str): The channel to convert to private.
        r.   z$admin.conversations.convertToPrivater   Nr,   r0   r   r   r   $admin_conversations_convertToPrivate   r=   z3AsyncWebClient.admin_conversations_convertToPrivateprefsc                   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.   rC   z(admin.conversations.setConversationPrefsr   Nr,   )r   r.   rC   r   r   r   r   (admin_conversations_setConversationPrefs   s
   	z7AsyncWebClient.admin_conversations_setConversationPrefsc                   r/   )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   Nr,   r0   r   r   r   (admin_conversations_getConversationPrefs   s
   z7AsyncWebClient.admin_conversations_getConversationPrefsc                   r/   )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   Nr,   r0   r   r   r   $admin_conversations_disconnectShared   r=   z3AsyncWebClient.admin_conversations_disconnectSharedc                    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.listOriginalConnectedChannelInfor6   Nr    r!   r   r   r   8admin_conversations_ekm_listOriginalConnectedChannelInfo  s   zGAsyncWebClient.admin_conversations_ekm_listOriginalConnectedChannelInfogroup_idc                   (   | ||d | jdd|dI dH 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.   rH   z+admin.conversations.restrictAccess.addGroupr   r   Nr,   )r   r.   rH   r   r   r   r   +admin_conversations_restrictAccess_addGroup  s   z:AsyncWebClient.admin_conversations_restrictAccess_addGroupc                   &   | d|i | jdd|dI dH 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   Nr,   r0   r   r   r   -admin_conversations_restrictAccess_listGroups!  s   z<AsyncWebClient.admin_conversations_restrictAccess_listGroupsteam_idc                   s*   | |||d | jdd|dI dH 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.   rH   rM   z.admin.conversations.restrictAccess.removeGroupr   r   Nr,   )r   r.   rH   rM   r   r   r   r   .admin_conversations_restrictAccess_removeGroup4  s   
z=AsyncWebClient.admin_conversations_restrictAccess_removeGroupc                   r/   )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   Nr,   r0   r   r   r   admin_conversations_setTeamsJ  r2   z+AsyncWebClient.admin_conversations_setTeamsc                   r/   )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   Nr,   r0   r   r   r   admin_conversations_getTeamsV  r2   z+AsyncWebClient.admin_conversations_getTeamsc                    r   )zAdd an emoji.zadmin.emoji.addr   r   Nr    r!   r   r   r   admin_emoji_addb     zAsyncWebClient.admin_emoji_addc                    r   )zAdd an emoji alias.zadmin.emoji.addAliasr   r   Nr    r!   r   r   r   admin_emoji_addAliasf  r#   z#AsyncWebClient.admin_emoji_addAliasc                    r   )z/List emoji for an Enterprise Grid organization.zadmin.emoji.listr   r   Nr    r!   r   r   r   admin_emoji_listl  rR   zAsyncWebClient.admin_emoji_listc                    r   )z7Remove an emoji across an Enterprise Grid organization.zadmin.emoji.remover   r   Nr    r!   r   r   r   admin_emoji_removep  rR   z!AsyncWebClient.admin_emoji_removec                    r   )zRename an emoji.zadmin.emoji.renamer   r   Nr    r!   r   r   r   admin_emoji_renamet  rR   z!AsyncWebClient.admin_emoji_renameuser_idc                   r/   )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   Nr,   )r   rW   r   r   r   r   admin_users_session_resetx  r=   z(AsyncWebClient.admin_users_session_reset
session_idc                   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   rM   zadmin.users.session.invalidater6   Nr,   )r   rY   rM   r   r   r   r   admin_users_session_invalidate  r@   z-AsyncWebClient.admin_users_session_invalidateinvite_request_idc                   r/   )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   Nr,   r   r[   r   r   r   r   admin_inviteRequests_approve  s   
z+AsyncWebClient.admin_inviteRequests_approvec                    r%   )z,List all approved workspace invite requests.z"admin.inviteRequests.approved.listr   Nr    r!   r   r   r   "admin_inviteRequests_approved_list  r'   z1AsyncWebClient.admin_inviteRequests_approved_listc                    r%   )z*List all denied workspace invite requests.z admin.inviteRequests.denied.listr   Nr    r!   r   r   r    admin_inviteRequests_denied_list  r'   z/AsyncWebClient.admin_inviteRequests_denied_listc                   r/   )zDeny a workspace invite request.

        Args:
            invite_request_id (str): ID of the request to invite. e.g. 'Ir1234'
        r[   zadmin.inviteRequests.denyr   Nr,   r\   r   r   r   admin_inviteRequests_deny  r=   z(AsyncWebClient.admin_inviteRequests_denyc                    r%   )z+List all pending workspace invite requests.zadmin.inviteRequests.listr   Nr    r!   r   r   r   admin_inviteRequests_list  r'   z(AsyncWebClient.admin_inviteRequests_listc                   rK   )oList all of the admins on a given workspace.

        Args:
            team_id (str): ID of the team.
        rM   zadmin.teams.admins.listr   r   Nr,   r   rM   r   r   r   r   admin_teams_admins_list  
   z&AsyncWebClient.admin_teams_admins_listteam_domain	team_namec                   r+   )zCreate an Enterprise team.

        Args:
            team_domain (str): Team domain. e.g. 'slacksoftballteam'
            team_name (str): Team name. e.g. 'Slack Softball Team'
        )rf   rg   zadmin.teams.creater   Nr,   )r   rf   rg   r   r   r   r   admin_teams_create  r@   z!AsyncWebClient.admin_teams_createc                    r%   )z-List all teams on an Enterprise organization.zadmin.teams.listr   Nr    r!   r   r   r   admin_teams_list  r'   zAsyncWebClient.admin_teams_listc                   rK   )rb   rM   zadmin.teams.owners.listr   r   Nr,   rc   r   r   r   admin_teams_owners_list  re   z&AsyncWebClient.admin_teams_owners_listc                    r/   )zrFetch information about settings in a workspace

        Args:
            team_id (str): ID of the team.
        rM   zadmin.teams.settings.infor   Nr,   rc   r   r   r   admin_teams_settings_info  r=   z(AsyncWebClient.admin_teams_settings_infochannel_idsc                   sT   | d|i t|tr| dd|i n| d|i | jdd|dI dH 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']
        rM   rl   r5   z'admin.teams.settings.setDefaultChannelsr   r   Nr7   )r   rM   rl   r   r   r   r   'admin_teams_settings_setDefaultChannels  s   

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

        Args:
            team_id (str): ID of the team.
            description (str): Description of the team.
        )rM   rn   z#admin.teams.settings.setDescriptionr   Nr,   )r   rM   rn   r   r   r   r   #admin_teams_settings_setDescription  r@   z2AsyncWebClient.admin_teams_settings_setDescriptiondiscoverabilityc                   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.
        )rM   rp   z'admin.teams.settings.setDiscoverabilityr   Nr,   )r   rM   rp   r   r   r   r   'admin_teams_settings_setDiscoverability  s
   
z6AsyncWebClient.admin_teams_settings_setDiscoverability	image_urlc                   rI   )zSets the icon of a workspace.

        Args:
            team_id (str): ID of the team.
            image_url (str): Url of the icon.
        )rM   rr   zadmin.teams.settings.setIconr   r   Nr,   )r   rM   rr   r   r   r   r   admin_teams_settings_setIcon  
   	z+AsyncWebClient.admin_teams_settings_setIconc                   r+   )zSets the icon of a workspace.

        Args:
            team_id (str): ID of the team.
            name (str): Name of the team.
        )rM   r*   zadmin.teams.settings.setNamer   Nr,   )r   rM   r*   r   r   r   r   admin_teams_settings_setName$  r@   z+AsyncWebClient.admin_teams_settings_setNameusergroup_idc                   T   | ||d t|tr| dd|i n| d|i | jd|dI dH 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']
        )rM   rv   rl   r5   zadmin.usergroups.addChannelsr   Nr7   )r   rM   rv   rl   r   r   r   r   admin_usergroups_addChannels0  s   
z+AsyncWebClient.admin_usergroups_addChannelsteam_idsc                   r4   )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   r5   zadmin.usergroups.addTeamsr   Nr7   )r   rv   ry   r   r   r   r   admin_usergroups_addTeamsF     
z(AsyncWebClient.admin_usergroups_addTeamsc                   r/   )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   Nr,   )r   rv   r   r   r   r   admin_usergroups_listChannelsX  r=   z,AsyncWebClient.admin_usergroups_listChannelsc                   r4   )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   rl   r5   zadmin.usergroups.removeChannelsr   Nr7   )r   rv   rl   r   r   r   r   admin_usergroups_removeChannelsc     	
z.AsyncWebClient.admin_usergroups_removeChannelsc                   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.
        rM   rW   zadmin.users.assignr   Nr,   r   rM   rW   r   r   r   r   admin_users_assigns  r@   z!AsyncWebClient.admin_users_assignemailc                   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']
        )rM   r   rl   r5   zadmin.users.inviter   Nr7   )r   rM   r   rl   r   r   r   r   admin_users_invite  s   
z!AsyncWebClient.admin_users_invitec                   r/   )ziList users on a workspace

        Args:
            team_id (str): ID of the team. e.g. 'T1234'
        rM   zadmin.users.listr   Nr,   rc   r   r   r   admin_users_list     zAsyncWebClient.admin_users_listc                   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   Nr,   r   r   r   r   admin_users_remove  r@   z!AsyncWebClient.admin_users_removec                   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   Nr,   r   r   r   r   admin_users_setAdmin  r@   z#AsyncWebClient.admin_users_setAdminexpiration_tsc                   (   | |||d | jd|dI dH 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   rM   rW   zadmin.users.setExpirationr   Nr,   )r   r   rM   rW   r   r   r   r   admin_users_setExpiration  s
   

z(AsyncWebClient.admin_users_setExpirationc                   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   Nr,   r   r   r   r   admin_users_setOwner  r@   z#AsyncWebClient.admin_users_setOwnerc                   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   Nr,   r   r   r   r   admin_users_setRegular  r@   z%AsyncWebClient.admin_users_setRegularc                    r%   )zChecks API calling code.zapi.testr   Nr    r!   r   r   r   api_test  r'   zAsyncWebClient.api_testevent_contextc                    r/   )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.listr6   Nr,   )r   r   r   r   r   r   apps_event_authorizations_list  r2   z-AsyncWebClient.apps_event_authorizations_list	client_idclient_secretc                    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.uninstallr6   Nr,   )r   r   r   r   r   r   r   apps_uninstall  r@   zAsyncWebClient.apps_uninstallc                    r   )zRevokes a token.zauth.revoker   r   Nr    r!   r   r   r   auth_revoke  rR   zAsyncWebClient.auth_revokec                    r%   )z!Checks authentication & identity.z	auth.testr   Nr    r!   r   r   r   	auth_test  r'   zAsyncWebClient.auth_testc                    r   )z"Gets information about a bot user.z	bots.infor   r   Nr    r!   r   r   r   	bots_info  rR   zAsyncWebClient.bots_infoexternal_unique_idjoin_urlc                   s8   | ||d t||d | jdd|dI dH 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   N)r   r   getr   )r   r   r   r   r   r   r   	calls_add  s   zAsyncWebClient.calls_addidc                   rK   )z|Ends a Call.

        Args:
            id (str): id returned when registering the call using the calls.add method.
        r   z	calls.endr   r   Nr,   r   r   r   r   r   r   	calls_end     zAsyncWebClient.calls_endc                   rK   )zReturns information about a Call.

        Args:
            id (str): id returned when registering the call using the calls.add method.
        r   z
calls.infor   r   Nr,   r   r   r   r   
calls_info  r   zAsyncWebClient.calls_infor   c                   0   | d|i t|| | jdd|dI dH 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   Nr   r   r   r   r   r   r   r   r   r   calls_participants_add'     
z%AsyncWebClient.calls_participants_addc                   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   Nr   r   r   r   r   calls_participants_remove:  r   z(AsyncWebClient.calls_participants_removec                   rK   )ztUpdates information about a Call.

        Args:
            id (str): id returned by the calls.add method.
        r   zcalls.updater   r   Nr,   r   r   r   r   calls_updateM  r   zAsyncWebClient.calls_updatechannelc                   r/   )ziArchives a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.archiver   Nr,   r   r   r   r   r   r   channels_archiveX  r   zAsyncWebClient.channels_archivec                   r/   )zlCreates a channel.

        Args:
            name (str): The name of the channel. e.g. 'mychannel'
        r*   zchannels.creater   Nr,   r   r*   r   r   r   r   channels_createa  r   zAsyncWebClient.channels_createc                   rK   )zFetches history of messages and events from a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.historyr   r   Nr,   r   r   r   r   channels_historyj     zAsyncWebClient.channels_historyc                   rK   )zwGets information about a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.infor   r   Nr,   r   r   r   r   channels_infos  r   zAsyncWebClient.channels_infouserc                   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   Nr,   r   r   r   r   r   r   r   channels_invite|  r@   zAsyncWebClient.channels_invitec                   r/   )zyJoins a channel, creating it if needed.

        Args:
            name (str): The channel name. e.g. '#general'
        r*   zchannels.joinr   Nr,   r   r   r   r   channels_join  r   zAsyncWebClient.channels_joinc                   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   Nr,   r   r   r   r   channels_kick  r@   zAsyncWebClient.channels_kickc                   r/   )zgLeaves a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.leaver   Nr,   r   r   r   r   channels_leave  r   zAsyncWebClient.channels_leavec                    r   )#Lists all channels in a Slack team.zchannels.listr   r   Nr    r!   r   r   r   channels_list  rR   zAsyncWebClient.channels_listtsc                   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   Nr,   r   r   r   r   r   r   r   channels_mark  r@   zAsyncWebClient.channels_markc                   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   Nr,   r   r   r*   r   r   r   r   channels_rename  r@   zAsyncWebClient.channels_rename	thread_tsc                   rI   )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   Nr,   r   r   r   r   r   r   r   channels_replies     
zAsyncWebClient.channels_repliespurposec                   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   Nr,   r   r   r   r   r   r   r   channels_setPurpose  r@   z"AsyncWebClient.channels_setPurposetopicc                   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   Nr,   r   r   r   r   r   r   r   channels_setTopic  r@   z AsyncWebClient.channels_setTopicc                   r/   )zkUnarchives a channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zchannels.unarchiver   Nr,   r   r   r   r   channels_unarchive  r   z!AsyncWebClient.channels_unarchivec                   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   Nr,   r   r   r   r   chat_delete  r@   zAsyncWebClient.chat_deletescheduled_message_idc                   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   Nr,   )r   r   r   r   r   r   r   chat_deleteScheduledMessage  s
   	z*AsyncWebClient.chat_deleteScheduledMessage
message_tsc                   rI   )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   Nr,   )r   r   r   r   r   r   r   chat_getPermalink
  s   	z AsyncWebClient.chat_getPermalinktextc                   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   Nr,   )r   r   r   r   r   r   r   chat_meMessage  r@   zAsyncWebClient.chat_meMessagec                   .   | ||d t| | jd|dI dH 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   Nr   r
   r   r   r   r   r   chat_postEphemeral"     z!AsyncWebClient.chat_postEphemeralc                   s,   | d|i t| | jd|dI dH 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   Nr   r   r   r   r   chat_postMessage4  s   zAsyncWebClient.chat_postMessagepost_atc                   s0   | |||d t| | jd|dI dH 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   Nr   )r   r   r   r   r   r   r   r   chat_scheduleMessageC  s   
z#AsyncWebClient.chat_scheduleMessageunfurlsc                   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   Nr,   )r   r   r   r   r   r   r   r   chat_unfurlQ  s   zAsyncWebClient.chat_unfurlc                   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   Nr   r   r   r   r   chat_update_  r   zAsyncWebClient.chat_updatec                    r%   )zLists all scheduled messages.zchat.scheduledMessages.listr   Nr    r!   r   r   r   chat_scheduledMessages_listq  r'   z*AsyncWebClient.chat_scheduledMessages_listc                   r/   )znArchives a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.archiver   Nr,   r   r   r   r   conversations_archiveu  r=   z$AsyncWebClient.conversations_archivec                   r/   )zCloses a direct message or multi-person direct message.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.closer   Nr,   r   r   r   r   conversations_close  r=   z"AsyncWebClient.conversations_closec                   r/   )zInitiates a public or private channel-based conversation

        Args:
            name (str): The name of the channel. e.g. 'mychannel'
        r*   zconversations.creater   Nr,   r   r   r   r   conversations_create  r   z#AsyncWebClient.conversations_createc                   rK   )zFetches a conversation's history of messages and events.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.historyr   r   Nr,   r   r   r   r   conversations_history  re   z$AsyncWebClient.conversations_historyc                   rK   )zRetrieve information about a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.infor   r   Nr,   r   r   r   r   conversations_info  r   z!AsyncWebClient.conversations_infoc                   r4   )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   r5   zconversations.inviter   Nr7   )r   r   r   r   r   r   r   conversations_invite  r~   z#AsyncWebClient.conversations_invitec                   r/   )zuJoins an existing conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.joinr   Nr,   r   r   r   r   conversations_join  r   z!AsyncWebClient.conversations_joinc                   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   Nr,   r   r   r   r   conversations_kick  r@   z!AsyncWebClient.conversations_kickc                   r/   )zlLeaves a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.leaver   Nr,   r   r   r   r   conversations_leave  r=   z"AsyncWebClient.conversations_leavec                    r   )r   zconversations.listr   r   Nr    r!   r   r   r   conversations_list  rR   z!AsyncWebClient.conversations_listc                   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   Nr,   r   r   r   r   conversations_mark  r@   z!AsyncWebClient.conversations_markc                   rK   )zyRetrieve members of a conversation.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.membersr   r   Nr,   r   r   r   r   conversations_members  re   z$AsyncWebClient.conversations_membersc                    r%   )zAOpens or resumes a direct message or multi-person direct message.zconversations.openr   Nr    r!   r   r   r   conversations_open  r'   z!AsyncWebClient.conversations_openc                   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   Nr,   r   r   r   r   conversations_rename  r@   z#AsyncWebClient.conversations_renamec                   rI   )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   Nr,   r   r   r   r   conversations_replies  rt   z$AsyncWebClient.conversations_repliesc                   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   Nr,   r   r   r   r   conversations_setPurpose  r@   z'AsyncWebClient.conversations_setPurposec                   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   Nr,   r   r   r   r   conversations_setTopic!  r@   z%AsyncWebClient.conversations_setTopicc                   r/   )zuReverses conversation archival.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zconversations.unarchiver   Nr,   r   r   r   r   conversations_unarchive-  r=   z&AsyncWebClient.conversations_unarchivedialog
trigger_idc                   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   Nr,   )r   r   r   r   r   r   r   dialog_open8  s   zAsyncWebClient.dialog_openc                    r%   )z;Ends the current user's Do Not Disturb session immediately.z
dnd.endDndr   Nr    r!   r   r   r   
dnd_endDndW  r'   zAsyncWebClient.dnd_endDndc                    r%   )z0Ends the current user's snooze mode immediately.zdnd.endSnoozer   Nr    r!   r   r   r   dnd_endSnooze[  r'   zAsyncWebClient.dnd_endSnoozec                    r   )z1Retrieves a user's current Do Not Disturb status.zdnd.infor   r   Nr    r!   r   r   r   dnd_info_  rR   zAsyncWebClient.dnd_infonum_minutesc                   rK   )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   Nr,   )r   r   r   r   r   r   dnd_setSnoozec  r   zAsyncWebClient.dnd_setSnoozec                    F   t |tr|dd|i n|d|i | jdd|dI dH 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   r5   zdnd.teamInfor   r   Nr8   r9   r   r:   r   r   r   r   r   r   r   dnd_teamInfol  s
   
zAsyncWebClient.dnd_teamInfoc                    r   )zLists custom emoji for a team.z
emoji.listr   r   Nr    r!   r   r   r   
emoji_listz  rR   zAsyncWebClient.emoji_listfilec                   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   Nr,   )r   r   r   r   r   r   r   files_comments_delete~  r@   z$AsyncWebClient.files_comments_deletec                   r/   )z_Deletes a file.

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   zfiles.deleter   Nr,   r   r   r   r   r   r   files_delete  r   zAsyncWebClient.files_deletec                   rK   )zsGets information about a team file.

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   z
files.infor   r   Nr,   r  r   r   r   
files_info  r   zAsyncWebClient.files_infoc                    r   )zLists & filters team files.z
files.listr   r   Nr    r!   r   r   r   
files_list  rR   zAsyncWebClient.files_listc                    r   )8Retrieve information about a remote file added to Slack.zfiles.remote.infor   r   Nr    r!   r   r   r   files_remote_info  rR   z AsyncWebClient.files_remote_infoc                    r   )r  zfiles.remote.listr   r   Nr    r!   r   r   r   files_remote_list  rR   z AsyncWebClient.files_remote_listexternal_idexternal_urltitlec                   sF   | |||d d}d|v rd|di}| jdd||dI dH 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AsyncWebClient.files_remote_addc                    r   )z Updates an existing remote file.zfiles.remote.updater   r   Nr    r!   r   r   r   files_remote_update  r#   z"AsyncWebClient.files_remote_updatec                    r   )zRemove a remote file.zfiles.remote.remover   r   Nr    r!   r   r   r   files_remote_remove  r#   z"AsyncWebClient.files_remote_removechannelsc                   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  r5   zfiles.remote.sharer   r   Nr   )r   r  r   r   r   r   files_remote_share  
   
	z!AsyncWebClient.files_remote_sharec                   r/   )zRevokes public/external sharing access for a file

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   zfiles.revokePublicURLr   Nr,   r  r   r   r   files_revokePublicURL  r   z$AsyncWebClient.files_revokePublicURLc                   r/   )z{Enables a file for public/external sharing.

        Args:
            file (str): The file id. e.g. 'F1234467890'
        r   zfiles.sharedPublicURLr   Nr,   r  r   r   r   files_sharedPublicURL  r   z$AsyncWebClient.files_sharedPublicURL)r   contentr  c                   s   |du r|du rt d|dur|durt d|r>d|vr1t|tr1|tjjd |d< | jdd|i|dI dH S |	 }|
d	|i | jd|d
I dH 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   r8   strsplitospathsepr   copyr   )r   r   r  r   r  r   r   r   files_upload  s    

zAsyncWebClient.files_uploadc                   r/   )zqArchives a private channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zgroups.archiver   Nr,   r   r   r   r   groups_archive  r   zAsyncWebClient.groups_archivec                   r/   )zzCreates a private channel.

        Args:
            name (str): The name of the private group. e.g. 'mychannel'
        r*   zgroups.creater   Nr,   r   r   r   r   groups_create  r   zAsyncWebClient.groups_createc                   rK   )zzClones and archives a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.createChildr   r   Nr,   r   r   r   r   groups_createChild   r   z!AsyncWebClient.groups_createChildc                   rK   )zFetches history of messages and events from a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.historyr   r   Nr,   r   r   r   r   groups_history)  r   zAsyncWebClient.groups_historyc                   rK   )z}Gets information about a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.infor   r   Nr,   r   r   r   r   groups_info2  r   zAsyncWebClient.groups_infoc                   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   Nr,   r   r   r   r   groups_invite;  r@   zAsyncWebClient.groups_invitec                   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   Nr,   r   r   r   r   groups_kickG  r@   zAsyncWebClient.groups_kickc                   r/   )zmLeaves a private channel.

        Args:
            channel (str): The group id. e.g. 'G1234567890'
        r   zgroups.leaver   Nr,   r   r   r   r   groups_leaveS  r   zAsyncWebClient.groups_leavec                    r   )z;Lists private channels that the calling user has access to.zgroups.listr   r   Nr    r!   r   r   r   groups_list\  rR   zAsyncWebClient.groups_listc                   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   Nr,   r   r   r   r   groups_mark`  r@   zAsyncWebClient.groups_markc                   r/   )znOpens a private channel.

        Args:
            channel (str): The channel id. e.g. 'C1234567890'
        r   zgroups.openr   Nr,   r   r   r   r   groups_openl  r   zAsyncWebClient.groups_openc                   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   Nr,   r   r   r   r   groups_renameu  r@   zAsyncWebClient.groups_renamec                   rI   )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   Nr,   r   r   r   r   groups_replies  r   zAsyncWebClient.groups_repliesc                   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   Nr,   r   r   r   r   groups_setPurpose  r@   z AsyncWebClient.groups_setPurposec                   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   Nr,   r   r   r   r   groups_setTopic  r@   zAsyncWebClient.groups_setTopicc                   r/   )zsUnarchives a private channel.

        Args:
            channel (str): The channel id. e.g. 'G1234567890'
        r   zgroups.unarchiver   Nr,   r   r   r   r   groups_unarchive  r   zAsyncWebClient.groups_unarchivec                   r/   )zClose a direct message channel.

        Args:
            channel (str): Direct message channel to close. e.g. 'D1234567890'
        r   zim.closer   Nr,   r   r   r   r   im_close  r   zAsyncWebClient.im_closec                   rK   )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   Nr,   r   r   r   r   
im_history  r   zAsyncWebClient.im_historyc                    r   )z3Lists direct message channels for the calling user.zim.listr   r   Nr    r!   r   r   r   im_list  rR   zAsyncWebClient.im_listc                   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   Nr,   r   r   r   r   im_mark  s   zAsyncWebClient.im_markc                   r/   )zOpens a direct message channel.

        Args:
            user (str): The user id to open a DM with. e.g. 'W1234567890'
        r   zim.openr   Nr,   r   r   r   r   r   r   im_open  r   zAsyncWebClient.im_openc                   rI   )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   Nr,   r   r   r   r   
im_replies  r   zAsyncWebClient.im_repliesc                   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   r5   zmigration.exchanger   r   Nr   r   r   r   r   migration_exchange  r  z!AsyncWebClient.migration_exchangec                   r/   )zCloses a multiparty direct message channel.

        Args:
            channel (str): Multiparty Direct message channel to close. e.g. 'G1234567890'
        r   z
mpim.closer   Nr,   r   r   r   r   
mpim_close  r   zAsyncWebClient.mpim_closec                   rK   )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   Nr,   r   r   r   r   mpim_history  r   zAsyncWebClient.mpim_historyc                    r   )z>Lists multiparty direct message channels for the calling user.z	mpim.listr   r   Nr    r!   r   r   r   	mpim_list  rR   zAsyncWebClient.mpim_listc                   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   Nr,   r   r   r   r   	mpim_mark
  r@   zAsyncWebClient.mpim_markc                   sD   t |tr|dd|i n|d|i | jd|dI dH 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   r5   z	mpim.openr   Nr   r   r   r   r   	mpim_open  s
   

zAsyncWebClient.mpim_openc                   rI   )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   Nr,   r   r   r   r   mpim_replies&  s   zAsyncWebClient.mpim_replies)redirect_uricoderA  c                   B   |dur| d|i | d|i | jd|||ddI dH 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'
        NrA  rB  zoauth.v2.accessr   r  authr,   r   r   r   rB  rA  r   r   r   r   oauth_v2_access5     zAsyncWebClient.oauth_v2_accessc                   rC  )rD  NrA  rB  zoauth.accessr   rE  r,   rG  r   r   r   oauth_accessP  rI  zAsyncWebClient.oauth_accessc                   r/   )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   Nr,   r   r   r   r   pins_addk  r2   zAsyncWebClient.pins_addc                   rK   )zLists items pinned to a channel.

        Args:
            channel (str): Channel to get pinned items for. e.g. 'C1234567890'
        r   z	pins.listr   r   Nr,   r   r   r   r   	pins_listw  r   zAsyncWebClient.pins_listc                   r/   )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   Nr,   r   r   r   r   pins_remove  r2   zAsyncWebClient.pins_removec                   r/   )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   Nr,   r   r   r   r   reactions_add  r2   zAsyncWebClient.reactions_addc                    r   )zGets reactions for an item.zreactions.getr   r   Nr    r!   r   r   r   reactions_get  rR   zAsyncWebClient.reactions_getc                    r   )zLists reactions made by a user.zreactions.listr   r   Nr    r!   r   r   r   reactions_list  rR   zAsyncWebClient.reactions_listc                   r/   )zwRemoves a reaction from an item.

        Args:
            name (str): Reaction (emoji) name. e.g. 'thumbsup'
        r*   zreactions.remover   Nr,   r   r   r   r   reactions_remove  r   zAsyncWebClient.reactions_removetimec                   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   rR  zreminders.addr   Nr,   )r   r   rR  r   r   r   r   reminders_add  s   zAsyncWebClient.reminders_addreminderc                   r/   )zMarks a reminder as complete.

        Args:
            reminder (str): The ID of the reminder to be marked as complete.
                e.g. 'Rm12345678'
        rT  zreminders.completer   Nr,   r   rT  r   r   r   r   reminders_complete  r2   z!AsyncWebClient.reminders_completec                   r/   )zqDeletes a reminder.

        Args:
            reminder (str): The ID of the reminder. e.g. 'Rm12345678'
        rT  zreminders.deleter   Nr,   rU  r   r   r   reminders_delete  r   zAsyncWebClient.reminders_deletec                   rK   )zGets information about a reminder.

        Args:
            reminder (str): The ID of the reminder. e.g. 'Rm12345678'
        rT  zreminders.infor   r   Nr,   rU  r   r   r   reminders_info  r   zAsyncWebClient.reminders_infoc                    r   )z3Lists all reminders created by or for a given user.zreminders.listr   r   Nr    r!   r   r   r   reminders_list  rR   zAsyncWebClient.reminders_listc                    r   )%Starts a Real Time Messaging session.zrtm.connectr   r   Nr    r!   r   r   r   rtm_connect  rR   zAsyncWebClient.rtm_connectc                    r   )rZ  z	rtm.startr   r   Nr    r!   r   r   r   	rtm_start  rR   zAsyncWebClient.rtm_startqueryc                   rK   )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   Nr,   r   r]  r   r   r   r   
search_all     zAsyncWebClient.search_allc                   rK   )zSearches for files matching a query.

        Args:
            query (str): Search query. May contains booleans, etc.
                e.g. 'pickleface'
        r]  zsearch.filesr   r   Nr,   r^  r   r   r   search_files  r`  zAsyncWebClient.search_filesc                   rK   )zSearches for messages matching a query.

        Args:
            query (str): Search query. May contains booleans, etc.
                e.g. 'pickleface'
        r]  zsearch.messagesr   r   Nr,   r^  r   r   r   search_messages  r`  zAsyncWebClient.search_messagesc                    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   Nr    r!   r   r   r   	stars_add      
zAsyncWebClient.stars_addc                    r   )zLists stars for a user.z
stars.listr   r   Nr    r!   r   r   r   
stars_list  rR   zAsyncWebClient.stars_listc                    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   Nr    r!   r   r   r   stars_remove  rd  zAsyncWebClient.stars_removec                    r   )z*Gets the access logs for the current team.zteam.accessLogsr   r   Nr    r!   r   r   r   team_accessLogs  rR   zAsyncWebClient.team_accessLogsc                    r   )z5Gets billable users information for the current team.zteam.billableInfor   r   Nr    r!   r   r   r   team_billableInfo   rR   z AsyncWebClient.team_billableInfoc                    r   )z(Gets information about the current team.z	team.infor   r   Nr    r!   r   r   r   	team_info$  rR   zAsyncWebClient.team_infoc                    r   )z/Gets the integration logs for the current team.zteam.integrationLogsr   r   Nr    r!   r   r   r   team_integrationLogs(  r#   z#AsyncWebClient.team_integrationLogsc                    r   )zRetrieve a team's profile.zteam.profile.getr   r   Nr    r!   r   r   r   team_profile_get.  rR   zAsyncWebClient.team_profile_getc                   r/   )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   Nr,   r   r   r   r   usergroups_create2  s   z AsyncWebClient.usergroups_create	usergroupc                   r/   )zDisable an existing User Group

        Args:
            usergroup (str): The encoded ID of the User Group to disable.
                e.g. 'S0604QSJC'
        rm  zusergroups.disabler   Nr,   r   rm  r   r   r   r   usergroups_disable<  r2   z!AsyncWebClient.usergroups_disablec                   r/   )zEnable a User Group

        Args:
            usergroup (str): The encoded ID of the User Group to enable.
                e.g. 'S0604QSJC'
        rm  zusergroups.enabler   Nr,   rn  r   r   r   usergroups_enableH  r2   z AsyncWebClient.usergroups_enablec                    r   )zList all User Groups for a teamzusergroups.listr   r   Nr    r!   r   r   r   usergroups_listT  rR   zAsyncWebClient.usergroups_listc                   r/   )zUpdate an existing User Group

        Args:
            usergroup (str): The encoded ID of the User Group to update.
                e.g. 'S0604QSJC'
        rm  zusergroups.updater   Nr,   rn  r   r   r   usergroups_updateX  r2   z AsyncWebClient.usergroups_updatec                   rK   )zList all users in a User Group

        Args:
            usergroup (str): The encoded ID of the User Group to update.
                e.g. 'S0604QSJC'
        rm  zusergroups.users.listr   r   Nr,   rn  r   r   r   usergroups_users_listd  s
   	z$AsyncWebClient.usergroups_users_listc                   r4   )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']
        rm  r   r5   zusergroups.users.updater   Nr7   )r   rm  r   r   r   r   r   usergroups_users_updater  r{   z&AsyncWebClient.usergroups_users_updatec                    r   )z/List conversations the calling user may access.zusers.conversationsr   r   Nr    r!   r   r   r   users_conversations  r#   z"AsyncWebClient.users_conversationsc                    r   )zDelete the user profile photozusers.deletePhotor   r   Nr    r!   r   r   r   users_deletePhoto  rR   z AsyncWebClient.users_deletePhotoc                   rK   )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   Nr,   r7  r   r   r   users_getPresence  r`  z AsyncWebClient.users_getPresencec                    r   )zGet a user's identity.zusers.identityr   r   Nr    r!   r   r   r   users_identity  rR   zAsyncWebClient.users_identityc                   rK   )zGets information about a user.

        Args:
            user (str): User to get info on.
                e.g. 'W1234567890'
        r   z
users.infor   r   Nr,   r7  r   r   r   
users_info  r`  zAsyncWebClient.users_infoc                    r   )z Lists all users in a Slack team.z
users.listr   r   Nr    r!   r   r   r   
users_list  rR   zAsyncWebClient.users_listc                   rK   )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   Nr,   )r   r   r   r   r   r   users_lookupByEmail  s
   z"AsyncWebClient.users_lookupByEmailimagec                   s   | j dd|i|dI dH 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  Nr    )r   r|  r   r   r   r   users_setPhoto  s   	
zAsyncWebClient.users_setPhotopresencec                   r/   )ziManually sets user presence.

        Args:
            presence (str): Either 'auto' or 'away'.
        r~  zusers.setPresencer   Nr,   )r   r~  r   r   r   r   users_setPresence  r   z AsyncWebClient.users_setPresencec                    r   )z'Retrieves a user's profile information.zusers.profile.getr   r   Nr    r!   r   r   r   users_profile_get  rR   z AsyncWebClient.users_profile_getc                    r%   )z'Set the profile information for a user.zusers.profile.setr   Nr    r!   r   r   r   users_profile_set  r'   z AsyncWebClient.users_profile_setviewc                   P   | d|i t|tr| d| i n| d|i | jd|dI dH 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   Nr   r8   r	   to_dictr   r   r   r  r   r   r   r   
views_open  s   
zAsyncWebClient.views_openc                   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   Nr  r  r   r   r   
views_push  s   
zAsyncWebClient.views_push)r	  view_idr  c                   st   |r| d|i n|r| d|i ntdt|tr)| d| i n| d|i | jd|dI dH 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   N)r   r   r   r8   r	   r  r   )r   r  r	  r  r   r   r   r   views_update  s   

zAsyncWebClient.views_updatec                   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   Nr  )r   rW   r  r   r   r   r   views_publish%	  s   
zAsyncWebClient.views_publish)outputsworkflow_step_execute_idr  c                   s6   | d|i |r| d|i | jd|dI dH 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   Nr,   )r   r  r  r   r   r   r   workflows_stepCompleted8	  s
   
z&AsyncWebClient.workflows_stepCompletederrorc                   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   Nr,   )r   r  r  r   r   r   r   workflows_stepFailedH	  s
   
z#AsyncWebClient.workflows_stepFailed)inputsr  workflow_step_edit_idr  c                   sH   | d|i |r| d|i |r| d|i | jd|dI dH 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   Nr,   )r   r  r  r  r   r   r   r   workflows_updateStepW	  s   z#AsyncWebClient.workflows_updateStep)__name__
__module____qualname____doc__r  r   r   r"   r$   r&   r(   boolr-   r1   r   r   r;   r<   r>   r?   rA   rB   dictrD   rE   rF   rG   rJ   rL   rN   rO   rP   rQ   rS   rT   rU   rV   rX   rZ   r]   r^   r_   r`   ra   rd   rh   ri   rj   rk   rm   ro   rq   rs   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/  r0  r1  r2  r3  r4  r5  r6  r8  r9  r:  r;  r<  r=  r>  r?  r@  r   rH  rJ  rK  rL  rM  rN  rO  rP  rQ  rS  rV  rW  rX  rY  r[  r\  r_  ra  rb  rc  re  rf  rg  rh  ri  rj  rk  rl  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r}  r  r  r  r	   r  r  r  r  r  r  r9   r  r   r   r   r   r      s   8




































	












				
	
	




	









	
	
	



				


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

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