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

Represents a photo to be sent.

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

- `type`: Type of the result, must be photo
- `media`: File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass "attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
- `caption (optional)`: Optional. Caption of the photo to be sent, 0-1024 characters after entities parsing
- `parse_mode (optional)`: Optional. Mode for parsing entities in the photo 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
- `show_caption_above_media (optional)`: Optional. Pass True, if the caption must be shown above the message media
- `has_spoiler (optional)`: Optional. Pass True if the photo needs to be covered with a spoiler animation

# `t`

```elixir
@type t() :: %ExGram.Model.InputMediaPhoto{
  caption: String.t() | nil,
  caption_entities: [ExGram.Model.MessageEntity.t()] | nil,
  has_spoiler: boolean() | nil,
  media:
    String.t()
    | {:file, String.t()}
    | {:file_content, iodata() | Enum.t(), String.t()},
  parse_mode: String.t() | nil,
  show_caption_above_media: boolean() | nil,
  type: String.t()
}
```

# `decode_as`

---

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