# `ExGram.Model.InlineQueryResultCachedVoice`
[🔗](https://github.com/rockneurotiko/ex_gram/blob/0.64.0/lib/ex_gram.ex#L6715)

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.

Check the [documentation of this model on Telegram Bot API](https://core.telegram.org/bots/api#inlinequeryresultcachedvoice)

- `type`: Type of the result, must be voice
- `id`: Unique identifier for this result, 1-64 bytes
- `voice_file_id`: A valid file identifier for the voice message
- `title`: Voice message title
- `caption (optional)`: Optional. Caption, 0-1024 characters after entities parsing
- `parse_mode (optional)`: Optional. Mode for parsing entities in the voice message caption. See formatting options for more details.
- `caption_entities (optional)`: Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode
- `reply_markup (optional)`: Optional. Inline keyboard attached to the message
- `input_message_content (optional)`: Optional. Content of the message to be sent instead of the voice message

# `t`

```elixir
@type t() :: %ExGram.Model.InlineQueryResultCachedVoice{
  caption: String.t() | nil,
  caption_entities: [ExGram.Model.MessageEntity.t()] | nil,
  id: String.t(),
  input_message_content: ExGram.Model.InputMessageContent.t() | nil,
  parse_mode: String.t() | nil,
  reply_markup: ExGram.Model.InlineKeyboardMarkup.t() | nil,
  title: String.t(),
  type: String.t(),
  voice_file_id: String.t()
}
```

# `decode_as`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
