code: async def send_chat_action(self, chat_id: typing.Union[base.Integer, base.String],
                                 action: base.String) -> base.Boolean:
          
          payload = generate_payload(**locals())
  
          result = await self.request(api.Methods.SEND_CHAT_ACTION, payload)
          return result
docs: Use this method when you need to tell the user that something is happening on the bot's side.
          The status is set for 5 seconds or less
          (when a message arrives from your bot, Telegram clients clear its typing status).
  
          We only recommend using this method when a response from the bot will take
          a noticeable amount of time to arrive.
  
          Source: https://core.telegram.org/bots/api#sendchataction
  
          :param chat_id: Unique identifier for the target chat or username of the target channel
          :type chat_id: :obj:`typing.Union[base.Integer, base.String]`
          :param action: Type of action to broadcast
          :type action: :obj:`base.String`
          :return: Returns True on success
          :rtype: :obj:`base.Boolean`