# `Ash.Resource.Actions.Action`
[🔗](https://github.com/ash-project/ash/blob/v3.23.1/lib/ash/resource/actions/action/action.ex#L5)

Represents a custom action on a resource.

# `t`

```elixir
@type t() :: %Ash.Resource.Actions.Action{
  __spark_metadata__: Spark.Dsl.Entity.spark_meta(),
  allow_nil?: boolean(),
  arguments: [Ash.Resource.Actions.Argument.t()],
  constraints: Keyword.t(),
  description: String.t() | nil,
  name: atom(),
  preparations: [Ash.Resource.Preparation.t()],
  primary?: boolean(),
  public?: boolean(),
  returns: Ash.Type.t() | nil,
  run: {module(), Keyword.t()},
  skip_global_validations?: boolean(),
  skip_unknown_inputs: [atom() | String.t()],
  touches_resources: [Ash.Resource.t()],
  transaction?: boolean(),
  type: :action
}
```

# `transform`

---

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