# `PromptRunner.Control.Entry`
[🔗](https://github.com/nshkrdotcom/prompt_runner_sdk/blob/v0.12.1/lib/prompt_runner/control/entry.ex#L1)

One line of the control log: a command, who issued it, when, and what
happened to it.

Every command that reaches the plane gets an entry, including the ones that
are refused. A refusal that leaves no trace is indistinguishable from a
command that was never sent.

# `outcome`

```elixir
@type outcome() :: :applied | :rejected | :received
```

# `t`

```elixir
@type t() :: %PromptRunner.Control.Entry{
  at: DateTime.t() | nil,
  attempt: pos_integer() | nil,
  author: String.t() | nil,
  command: String.t() | nil,
  outcome: outcome() | nil,
  params: map(),
  prompt_id: String.t() | nil,
  reason: String.t() | nil,
  run_id: String.t() | nil
}
```

# `from_map`

```elixir
@spec from_map(map()) :: t()
```

# `to_map`

```elixir
@spec to_map(t()) :: map()
```

---

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