def send_document(params)
      extra_params_validation = {
        document: { required: true, class: [File, String] }
      }

      send_something(:document, params, extra_params_validation)
    end
def send_document(params)
      extra_params_validation = {
        document: { required: true, class: [File, String] }
      }

      send_something(:document, params, extra_params_validation)
    end
Sends a document to a user or group chat.

 @param [Hash] params hash of paramers to send to the sendDocument API operation.
 @option params [Integer,String] :chat_id Required. Unique identifier for the target chat or username of the target channel (in the format @channelusername).
 @option params [File,String] :document Required. File to send. You can either pass a file_id as String to resend a file that is already on the Telegram servers, or upload a new file using multipart/form-data.
 @option params [Integer] :reply_to_message_id Optional. If the message is a reply, ID of the original message
 @option params [Telegrammer::DataTypes::ReplyKeyboardMarkup,Telegrammer::DataTypes::ReplyKeyboardHide,Telegrammer::DataTypes::ForceReply] :reply_markup Optional. Additional interface options. A JSON-serialized object for a custom reply keyboard, instructions to hide keyboard or to force a reply from the user.

 @example
     bot = Telegrammer::Bot.new('[YOUR TELEGRAM TOKEN]')
     my_secret_file = File.open("secrets.doc")
     bot.send_document(chat_id: 123456789, document: my_secret_file)

 @raise [Telegrammer::Errors::BadRequestError] if something goes wrong in the Telegram API servers with the params received by the operation
 @raise [Telegrammer::Errors::ServiceUnavailableError] if Telegram servers are down

 @return [Telegrammer::DataTypes::Message] Message object sent to the user or group chat