Packages
claude_code
0.36.1
0.36.5
0.36.4
0.36.3
0.36.2
0.36.1
0.36.0
0.35.0
0.34.0
0.33.1
0.32.2
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Claude Agent SDK for Elixir – Build AI agents with Claude Code
Current section
Files
Jump to
Current section
Files
lib/claude_code/content/container_upload_block.ex
defmodule ClaudeCode.Content.ContainerUploadBlock do
@moduledoc """
Represents a container upload content block within a Claude message.
Container upload blocks reference a file to be uploaded to or from a container.
The file is identified by its `file_id`.
"""
use ClaudeCode.JSONEncoder
@enforce_keys [:type, :file_id]
defstruct [:type, :file_id]
@type t :: %__MODULE__{
type: :container_upload,
file_id: String.t()
}
@spec new(map()) :: {:ok, t()} | {:error, atom()}
def new(%{"type" => "container_upload", "file_id" => file_id}) do
{:ok, %__MODULE__{type: :container_upload, file_id: file_id}}
end
def new(%{"type" => "container_upload"}), do: {:error, {:missing_fields, [:file_id]}}
def new(_), do: {:error, :invalid_content_type}
end
defimpl String.Chars, for: ClaudeCode.Content.ContainerUploadBlock do
def to_string(%{file_id: file_id}), do: "[container upload: #{file_id}]"
end