# `Gemini.Types.Live.ToolCall`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/types/live/tool_call.ex#L1)

Tool call request from the server in Live API sessions.

Request for the client to execute the function calls and return
the responses with matching IDs.

## Fields

- `function_calls` - List of function calls to be executed

## Example

    %ToolCall{
      function_calls: [
        %{
          "id" => "call_123",
          "name" => "get_weather",
          "args" => %{"location" => "Seattle"}
        }
      ]
    }

# `function_call`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/types/live/tool_call.ex#L25)

```elixir
@type function_call() :: %{
  optional(:id) =&gt; String.t(),
  optional(:name) =&gt; String.t(),
  optional(:args) =&gt; map()
}
```

# `t`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/types/live/tool_call.ex#L31)

```elixir
@type t() :: %Gemini.Types.Live.ToolCall{function_calls: [function_call()] | nil}
```

# `from_api`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/types/live/tool_call.ex#L62)

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

Parses from API response.

# `new`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/types/live/tool_call.ex#L41)

```elixir
@spec new(keyword()) :: t()
```

Creates a new ToolCall.

# `to_api`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/types/live/tool_call.ex#L51)

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

Converts to API format (camelCase).

---

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