code: def send_sticker(chat_id, sticker,
                   reply_to_message_id=None, reply_markup=None,
                   **kwargs):
      
      files = None
      if isinstance(sticker, InputFile):
          files = [sticker]
          sticker = None
      elif not isinstance(sticker, str):
          raise Exception('sticker must be instance of InputFile or str')
  
      # required args
      params = dict(
          chat_id=chat_id,
          sticker=sticker
      )
  
      # optional args
      params.update(
          _clean_params(
              reply_to_message_id=reply_to_message_id,
              reply_markup=reply_markup
          )
      )
  
      return TelegramBotRPCRequest('sendSticker', params=params, files=files, on_result=Message.from_result, **kwargs)
docs: :param chat_id: Unique identifier for the message recipient — User or GroupChat id
      :param sticker: Sticker to send. You can either pass a file_id as String to resend a sticker
                      that is already on the Telegram servers, or upload a new sticker using multipart/form-data.
      :param reply_to_message_id: If the message is a reply, ID of the original message
      :param reply_markup: Additional interface options. A JSON-serialized object for a custom reply keyboard,
                           instructions to hide keyboard or to force a reply from the user.
      :param \*\*kwargs: Args that get passed down to :class:`TelegramBotRPCRequest`
  
      :type chat_id: int
      :type sticker: InputFile or str
      :type reply_to_message_id: int
      :type reply_markup: ReplyKeyboardMarkup or ReplyKeyboardHide or ForceReply
  
      :returns: On success, the sent Message is returned.
      :rtype: TelegramBotRPCRequest