Packages
claude_code
0.36.4
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/permission_denial.ex
defmodule ClaudeCode.Session.PermissionDenial do
@moduledoc """
Represents a permission denial from the Claude CLI.
Permission denials occur when a tool use is denied by the user or
permission system during a session.
Used by `ClaudeCode.Message.ResultMessage` to report which tool uses
were denied during the conversation.
"""
@enforce_keys [:tool_name, :tool_use_id]
defstruct [
:tool_name,
:tool_use_id,
tool_input: %{}
]
@type t :: %__MODULE__{
tool_name: String.t(),
tool_use_id: String.t(),
tool_input: map()
}
@doc """
Parses a permission denial from CLI JSON data.
## Examples
iex> ClaudeCode.Session.PermissionDenial.parse(%{"tool_name" => "Bash", "tool_use_id" => "tu_1", "tool_input" => %{"command" => "rm -rf /"}})
%ClaudeCode.Session.PermissionDenial{tool_name: "Bash", tool_use_id: "tu_1", tool_input: %{"command" => "rm -rf /"}}
"""
@spec parse(map()) :: t()
def parse(denial) when is_map(denial) do
%__MODULE__{
tool_name: denial["tool_name"],
tool_use_id: denial["tool_use_id"],
tool_input: denial["tool_input"] || %{}
}
end
end