# `ADK.Types.Part`
[🔗](https://github.com/JohnSmall/adk_ex/blob/v0.2.0/lib/adk/types.ex#L36)

A single part of a Content message.

Parts use a tagged-union style: exactly one of `text`, `function_call`,
`function_response`, or `inline_data` should be set.

# `t`

```elixir
@type t() :: %ADK.Types.Part{
  function_call: ADK.Types.FunctionCall.t() | nil,
  function_response: ADK.Types.FunctionResponse.t() | nil,
  inline_data: ADK.Types.Blob.t() | nil,
  text: String.t() | nil,
  thought: boolean()
}
```

# `function_call?`

```elixir
@spec function_call?(t()) :: boolean()
```

# `function_response?`

```elixir
@spec function_response?(t()) :: boolean()
```

# `new_function_call`

```elixir
@spec new_function_call(ADK.Types.FunctionCall.t()) :: t()
```

# `new_function_response`

```elixir
@spec new_function_response(ADK.Types.FunctionResponse.t()) :: t()
```

# `new_inline_data`

```elixir
@spec new_inline_data(binary(), String.t()) :: t()
```

# `new_text`

```elixir
@spec new_text(String.t()) :: t()
```

---

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