// Telegrammer - Telegram Bot Swift SDK.
// This file is autogenerated by API/generate_wrappers.rb script.

/**
 Represents a link to a voice message stored on the Telegram servers. By default, this voice message will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the voice message.

 SeeAlso Telegram Bot API Reference:
 [InlineQueryResultCachedVoice](https://core.telegram.org/bots/api#inlinequeryresultcachedvoice)
 */
public final class InlineQueryResultCachedVoice: Codable {

    /// Custom keys for coding/decoding `InlineQueryResultCachedVoice` struct
    enum CodingKeys: String, CodingKey {
        case type = "type"
        case id = "id"
        case voiceFileId = "voice_file_id"
        case title = "title"
        case caption = "caption"
        case parseMode = "parse_mode"
        case replyMarkup = "reply_markup"
        case inputMessageContent = "input_message_content"
    }

    /// Type of the result, must be voice
    public var type: String

    /// Unique identifier for this result, 1-64 bytes
    public var id: String

    /// A valid file identifier for the voice message
    public var voiceFileId: String

    /// Voice message title
    public var title: String

    /// Optional. Caption, 0-200 characters
    public var caption: String?

    /// Optional. Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption.
    public var parseMode: String?

    /// Optional. Inline keyboard attached to the message
    public var replyMarkup: InlineKeyboardMarkup?

    /// Optional. Content of the message to be sent instead of the voice message
    public var inputMessageContent: InputMessageContent?


    public init (type: String, id: String, voiceFileId: String, title: String, caption: String? = nil, parseMode: String? = nil, replyMarkup: InlineKeyboardMarkup? = nil, inputMessageContent: InputMessageContent? = nil) {
        self.type = type
        self.id = id
        self.voiceFileId = voiceFileId
        self.title = title
        self.caption = caption
        self.parseMode = parseMode
        self.replyMarkup = replyMarkup
        self.inputMessageContent = inputMessageContent
    }
}
