# `Codex.Realtime.Items`
[🔗](https://github.com/nshkrdotcom/codex_sdk/blob/v0.18.0/lib/codex/realtime/items.ex#L1)

Conversation item types for realtime sessions.

Items represent messages, tool calls, and their content in a realtime conversation.

# `assistant_content`

```elixir
@type assistant_content() ::
  Codex.Realtime.Items.AssistantText.t()
  | Codex.Realtime.Items.AssistantAudio.t()
```

# `input_content`

```elixir
@type input_content() ::
  Codex.Realtime.Items.InputText.t()
  | Codex.Realtime.Items.InputAudio.t()
  | Codex.Realtime.Items.InputImage.t()
```

# `item`

```elixir
@type item() :: message_item() | Codex.Realtime.Items.RealtimeToolCallItem.t()
```

# `message_item`

```elixir
@type message_item() ::
  Codex.Realtime.Items.SystemMessageItem.t()
  | Codex.Realtime.Items.UserMessageItem.t()
  | Codex.Realtime.Items.AssistantMessageItem.t()
```

# `assistant_audio`

```elixir
@spec assistant_audio(String.t() | nil, String.t() | nil) ::
  Codex.Realtime.Items.AssistantAudio.t()
```

Create assistant audio content.

# `assistant_message`

```elixir
@spec assistant_message(String.t(), [assistant_content()], keyword()) ::
  Codex.Realtime.Items.AssistantMessageItem.t()
```

Create an assistant message item.

# `assistant_text`

```elixir
@spec assistant_text(String.t() | nil) :: Codex.Realtime.Items.AssistantText.t()
```

Create assistant text content.

# `from_json`

```elixir
@spec from_json(map()) :: {:ok, item()} | {:error, term()}
```

Parse an item from JSON.

# `input_audio`

```elixir
@spec input_audio(String.t() | nil, String.t() | nil) ::
  Codex.Realtime.Items.InputAudio.t()
```

Create input audio content.

# `input_image`

```elixir
@spec input_image(String.t(), String.t() | nil) :: Codex.Realtime.Items.InputImage.t()
```

Create input image content.

# `input_text`

```elixir
@spec input_text(String.t()) :: Codex.Realtime.Items.InputText.t()
```

Create input text content.

# `system_message`

```elixir
@spec system_message(String.t(), [Codex.Realtime.Items.InputText.t()], keyword()) ::
  Codex.Realtime.Items.SystemMessageItem.t()
```

Create a system message item.

# `to_json`

```elixir
@spec to_json(item() | input_content() | assistant_content()) :: map()
```

Convert an item or content to JSON-compatible map.

# `tool_call_item`

```elixir
@spec tool_call_item(keyword()) :: Codex.Realtime.Items.RealtimeToolCallItem.t()
```

Create a tool call item.

# `user_message`

```elixir
@spec user_message(String.t(), [input_content()], keyword()) ::
  Codex.Realtime.Items.UserMessageItem.t()
```

Create a user message item.

---

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