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

Tool response from the client in Live API sessions.

Client-generated response to a ToolCall received from the server.
Individual FunctionResponse objects are matched to their respective
FunctionCall objects by the ID field.

## Fields

- `function_responses` - List of function responses

## Example

    %ToolResponse{
      function_responses: [
        %{
          id: "call_123",
          name: "get_weather",
          response: %{content: %{temperature: 72, conditions: "sunny"}}
        }
      ]
    }

# `function_response`

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

# `t`

```elixir
@type t() :: %Gemini.Types.Live.ToolResponse{
  function_responses: [function_response()] | nil
}
```

# `from_api`

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

Parses from API response.

# `new`

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

Creates a new ToolResponse.

# `to_api`

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

Converts to API format (camelCase).

---

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