Packages
claude_code
0.36.2
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/session/account_info.ex
defmodule ClaudeCode.Session.AccountInfo do
@moduledoc """
Information about the authenticated user's account.
Returned as part of the initialization response from the CLI.
## Fields
* `:email` - Account email address
* `:organization` - Organization name
* `:subscription_type` - Subscription type (e.g., "pro", "team")
* `:token_source` - Source of the authentication token
* `:api_key_source` - Source of the API key (e.g., "user", "project", "org")
"""
use ClaudeCode.JSONEncoder
defstruct [
:email,
:organization,
:subscription_type,
:token_source,
:api_key_source
]
@type t :: %__MODULE__{
email: String.t() | nil,
organization: String.t() | nil,
subscription_type: String.t() | nil,
token_source: String.t() | nil,
api_key_source: String.t() | nil
}
@doc """
Creates an AccountInfo from a JSON map.
## Examples
iex> ClaudeCode.Session.AccountInfo.new(%{"email" => "user@example.com", "subscriptionType" => "pro"})
%ClaudeCode.Session.AccountInfo{email: "user@example.com", subscription_type: "pro"}
"""
@spec new(map()) :: t()
def new(data) when is_map(data) do
%__MODULE__{
email: data["email"],
organization: data["organization"],
subscription_type: data["subscription_type"],
token_source: data["token_source"],
api_key_source: data["api_key_source"]
}
end
end