# `Gemini.Types.Interactions.Tool`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.15.0/lib/gemini/types/interactions/tool.ex#L288)

Union type for Interactions tools.

# `t`

```elixir
@type t() ::
  Gemini.Types.Interactions.Function.t()
  | Gemini.Types.Interactions.GoogleSearch.t()
  | Gemini.Types.Interactions.CodeExecution.t()
  | Gemini.Types.Interactions.URLContext.t()
  | Gemini.Types.Interactions.ComputerUse.t()
  | Gemini.Types.Interactions.MCPServer.t()
  | Gemini.Types.Interactions.FileSearch.t()
  | map()
```

# `from_api`

```elixir
@spec from_api(map() | t() | nil) :: t() | nil
```

# `to_api`

```elixir
@spec to_api(t() | nil) :: map() | nil
```

---

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