#
tokens: 63042/50000 1/34 files (page 6/10)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 6 of 10. Use http://codebase.md/m-gonzalo/cosa-sai?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .gitignore
├── bun.lock
├── Dockerfile
├── package.json
├── prompts
│   └── default.txt
├── README.md
├── smithery.yaml
├── src
│   ├── db.ts
│   ├── gemini.ts
│   ├── index.ts
│   ├── logger.ts
│   └── types.ts
├── test
│   ├── docs
│   │   ├── ash-docs
│   │   │   ├── ash_admin.md
│   │   │   ├── ash_appsignal.md
│   │   │   ├── ash_archival.md
│   │   │   ├── ash_authentication_phoenix.md
│   │   │   ├── ash_authentication.md
│   │   │   ├── ash_cloak.md
│   │   │   ├── ash_csv.md
│   │   │   ├── ash_cubdb.md
│   │   │   ├── ash_double_entry.md
│   │   │   ├── ash_graphql.md
│   │   │   ├── ash_json_api.md
│   │   │   ├── ash_money.md
│   │   │   ├── ash_oban.md
│   │   │   ├── ash_phoenix.md
│   │   │   ├── ash_postgres.md
│   │   │   ├── ash_rbac.md
│   │   │   ├── ash_sqlite.md
│   │   │   ├── ash_state_machine.md
│   │   │   └── ash.md
│   │   ├── bun-elysia-docs
│   │   │   ├── bun.sh.md
│   │   │   └── elysiajs.com.md
│   │   ├── javascript-docs
│   │   │   └── sample.md
│   │   └── phoenix-docs
│   │       └── phx-docs.md
│   └── prompts
│       ├── ash-framework.txt
│       ├── bun-elysia.txt
│       ├── javascript.txt
│       └── phoenix.txt
└── tsconfig.json
```

# Files

--------------------------------------------------------------------------------
/test/docs/ash-docs/ash_admin.md:
--------------------------------------------------------------------------------

```markdown
   1 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
   2 | 
   3 | [ash\_admin](https://github.com/ash-project/ash_admin)
   4 | 
   5 | v0.12.6
   6 | 
   7 | - Pages
   8 | - Modules
   9 | - Mix Tasks
  10 | 
  11 | <!--THE END-->
  12 | 
  13 | <!--THE END-->
  14 | 
  15 | <!--THE END-->
  16 | 
  17 | Search documentation of ash\_admin
  18 | 
  19 | Settings
  20 | 
  21 | # [View Source](https://github.com/ash-project/ash_admin "View Source") API Reference ash\_admin v0.12.6
  22 | 
  23 | ## [](api-reference.html#modules)Modules
  24 | 
  25 | [AshAdmin.CoreComponents](AshAdmin.CoreComponents.html)
  26 | 
  27 | Provides core UI components.
  28 | 
  29 | [AshAdmin.Domain](AshAdmin.Domain.html)
  30 | 
  31 | A domain extension to alter the behavior of a domain in the admin UI.
  32 | 
  33 | [AshAdmin.Errors.NotFound](AshAdmin.Errors.NotFound.html)
  34 | 
  35 | [AshAdmin.Gettext](AshAdmin.Gettext.html)
  36 | 
  37 | A module providing Internationalization with a gettext-based API.
  38 | 
  39 | [AshAdmin.Resource](AshAdmin.Resource.html)
  40 | 
  41 | A resource extension to alter the behaviour of a resource in the admin UI.
  42 | 
  43 | [AshAdmin.Resource.Field](AshAdmin.Resource.Field.html)
  44 | 
  45 | The representation of a configured field in the admin UI.
  46 | 
  47 | [AshAdmin.Resource.Transformers.ValidateTableColumns](AshAdmin.Resource.Transformers.ValidateTableColumns.html)
  48 | 
  49 | Validates that table columns are all either attributes, or `:one` cardinality relationships.
  50 | 
  51 | [AshAdmin.Router](AshAdmin.Router.html)
  52 | 
  53 | Provides LiveView routing for AshAdmin.
  54 | 
  55 | [Demo.Accounts.NestedEmbed](Demo.Accounts.NestedEmbed.html)
  56 | 
  57 | [Demo.Accounts.NewUser](Demo.Accounts.NewUser.html)
  58 | 
  59 | TODO
  60 | 
  61 | [Demo.Accounts.Profile](Demo.Accounts.Profile.html)
  62 | 
  63 | [Demo.Accounts.User](Demo.Accounts.User.html)
  64 | 
  65 | [Demo.Calculations.Concat](Demo.Calculations.Concat.html)
  66 | 
  67 | [Demo.Repo](Demo.Repo.html)
  68 | 
  69 | [Demo.Tickets.Comment](Demo.Tickets.Comment.html)
  70 | 
  71 | [Demo.Tickets.Customer](Demo.Tickets.Customer.html)
  72 | 
  73 | [Demo.Tickets.Organization](Demo.Tickets.Organization.html)
  74 | 
  75 | [Demo.Tickets.Representative](Demo.Tickets.Representative.html)
  76 | 
  77 | [Demo.Tickets.Ticket](Demo.Tickets.Ticket.html)
  78 | 
  79 | [Demo.Tickets.Ticket.Types.BarMetadata](Demo.Tickets.Ticket.Types.BarMetadata.html)
  80 | 
  81 | [Demo.Tickets.Ticket.Types.FooMetadata](Demo.Tickets.Ticket.Types.FooMetadata.html)
  82 | 
  83 | [Demo.Tickets.Ticket.Types.Metadata](Demo.Tickets.Ticket.Types.Metadata.html)
  84 | 
  85 | [Demo.Tickets.TicketLink](Demo.Tickets.TicketLink.html)
  86 | 
  87 | ## [](api-reference.html#mix-tasks)Mix Tasks
  88 | 
  89 | [mix ash\_admin.install](Mix.Tasks.AshAdmin.Install.html)
  90 | 
  91 | Installs AshAdmin
  92 | 
  93 | [Next Page → README](readme.html)
  94 | 
  95 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
  96 | 
  97 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
  98 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
  99 | 
 100 | [ash\_admin](https://github.com/ash-project/ash_admin)
 101 | 
 102 | v0.12.6
 103 | 
 104 | - Pages
 105 | - Modules
 106 | - Mix Tasks
 107 | 
 108 | <!--THE END-->
 109 | 
 110 | <!--THE END-->
 111 | 
 112 | <!--THE END-->
 113 | 
 114 | Search documentation of ash\_admin
 115 | 
 116 | Settings
 117 | 
 118 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L1 "View Source") AshAdmin.CoreComponents (ash\_admin v0.12.6)
 119 | 
 120 | Provides core UI components.
 121 | 
 122 | At the first glance, this module may seem daunting, but its goal is to provide some core building blocks in your application, such as modals, tables, and forms. The components are mostly markup and well documented with doc strings and declarative assigns. You may customize and style them in any way you want, based on your application growth and needs.
 123 | 
 124 | The default components use Tailwind CSS, a utility-first CSS framework. See the [Tailwind CSS documentation](https://tailwindcss.com) to learn how to customize them or feel free to swap in another framework altogether.
 125 | 
 126 | Icons are provided by [heroicons](https://heroicons.com). See [`icon/1`](AshAdmin.CoreComponents.html#icon/1) for usage.
 127 | 
 128 | # [](AshAdmin.CoreComponents.html#summary)Summary
 129 | 
 130 | ## [Functions](AshAdmin.CoreComponents.html#functions)
 131 | 
 132 | [back(assigns)](AshAdmin.CoreComponents.html#back/1)
 133 | 
 134 | Renders a back navigation link.
 135 | 
 136 | [button(assigns)](AshAdmin.CoreComponents.html#button/1)
 137 | 
 138 | Renders a button.
 139 | 
 140 | [error(assigns)](AshAdmin.CoreComponents.html#error/1)
 141 | 
 142 | Generates a generic error message.
 143 | 
 144 | [flash(assigns)](AshAdmin.CoreComponents.html#flash/1)
 145 | 
 146 | Renders flash notices.
 147 | 
 148 | [flash\_group(assigns)](AshAdmin.CoreComponents.html#flash_group/1)
 149 | 
 150 | Shows the flash group with standard titles and content.
 151 | 
 152 | [header(assigns)](AshAdmin.CoreComponents.html#header/1)
 153 | 
 154 | Renders a header with title.
 155 | 
 156 | [hide(js \\\\ %JS{}, selector)](AshAdmin.CoreComponents.html#hide/2)
 157 | 
 158 | [hide\_modal(js \\\\ %JS{}, id)](AshAdmin.CoreComponents.html#hide_modal/2)
 159 | 
 160 | [icon(assigns)](AshAdmin.CoreComponents.html#icon/1)
 161 | 
 162 | Renders a [Heroicon](https://heroicons.com).
 163 | 
 164 | [input(assigns)](AshAdmin.CoreComponents.html#input/1)
 165 | 
 166 | Renders an input with label and error messages.
 167 | 
 168 | [label(assigns)](AshAdmin.CoreComponents.html#label/1)
 169 | 
 170 | Renders a label.
 171 | 
 172 | [list(assigns)](AshAdmin.CoreComponents.html#list/1)
 173 | 
 174 | Renders a data list.
 175 | 
 176 | [modal(assigns)](AshAdmin.CoreComponents.html#modal/1)
 177 | 
 178 | Renders a modal.
 179 | 
 180 | [show(js \\\\ %JS{}, selector)](AshAdmin.CoreComponents.html#show/2)
 181 | 
 182 | [show\_modal(js \\\\ %JS{}, id)](AshAdmin.CoreComponents.html#show_modal/2)
 183 | 
 184 | [simple\_form(assigns)](AshAdmin.CoreComponents.html#simple_form/1)
 185 | 
 186 | Renders a simple form.
 187 | 
 188 | [table(assigns)](AshAdmin.CoreComponents.html#table/1)
 189 | 
 190 | Renders a table with generic styling.
 191 | 
 192 | [translate\_error(arg)](AshAdmin.CoreComponents.html#translate_error/1)
 193 | 
 194 | Translates an error message using gettext.
 195 | 
 196 | [translate\_errors(errors, field)](AshAdmin.CoreComponents.html#translate_errors/2)
 197 | 
 198 | Translates the errors for a field from a keyword list of errors.
 199 | 
 200 | # [](AshAdmin.CoreComponents.html#functions)Functions
 201 | 
 202 | [](AshAdmin.CoreComponents.html#back/1)
 203 | 
 204 | # back(assigns)
 205 | 
 206 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L550)
 207 | 
 208 | Renders a back navigation link.
 209 | 
 210 | ## [](AshAdmin.CoreComponents.html#back/1-examples)Examples
 211 | 
 212 | ```
 213 | <.back navigate={~p"/posts"}>Back to posts</.back>
 214 | ```
 215 | 
 216 | ## [](AshAdmin.CoreComponents.html#back/1-attributes)Attributes
 217 | 
 218 | - `navigate` (`:any`) (required)
 219 | 
 220 | ## [](AshAdmin.CoreComponents.html#back/1-slots)Slots
 221 | 
 222 | - `inner_block` (required)
 223 | 
 224 | [](AshAdmin.CoreComponents.html#button/1)
 225 | 
 226 | # button(assigns)
 227 | 
 228 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L223)
 229 | 
 230 | Renders a button.
 231 | 
 232 | ## [](AshAdmin.CoreComponents.html#button/1-examples)Examples
 233 | 
 234 | ```
 235 | <.button>Send!</.button>
 236 | <.button phx-click="go" class="ml-2">Send!</.button>
 237 | ```
 238 | 
 239 | ## [](AshAdmin.CoreComponents.html#button/1-attributes)Attributes
 240 | 
 241 | - `type` (`:string`) - Defaults to `nil`.
 242 | - `class` (`:string`) - Defaults to `nil`.
 243 | - Global attributes are accepted. Supports all globals plus: `["disabled", "form", "name", "value"]`.
 244 | 
 245 | ## [](AshAdmin.CoreComponents.html#button/1-slots)Slots
 246 | 
 247 | - `inner_block` (required)
 248 | 
 249 | [](AshAdmin.CoreComponents.html#error/1)
 250 | 
 251 | # error(assigns)
 252 | 
 253 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L403)
 254 | 
 255 | Generates a generic error message.
 256 | 
 257 | ## [](AshAdmin.CoreComponents.html#error/1-slots)Slots
 258 | 
 259 | - `inner_block` (required)
 260 | 
 261 | [](AshAdmin.CoreComponents.html#flash/1)
 262 | 
 263 | # flash(assigns)
 264 | 
 265 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L108)
 266 | 
 267 | Renders flash notices.
 268 | 
 269 | ## [](AshAdmin.CoreComponents.html#flash/1-examples)Examples
 270 | 
 271 | ```
 272 | <.flash kind={:info} flash={@flash} />
 273 | <.flash kind={:info} phx-mounted={show("#flash")}>Welcome Back!</.flash>
 274 | ```
 275 | 
 276 | ## [](AshAdmin.CoreComponents.html#flash/1-attributes)Attributes
 277 | 
 278 | - `id` (`:string`) - the optional id of flash container. Defaults to `"flash"`.
 279 | - `flash` (`:map`) - the map of flash messages to display. Defaults to `%{}`.
 280 | - `title` (`:string`) - Defaults to `nil`.
 281 | - `kind` (`:atom`) - used for styling and flash lookup.Must be one of `:info`, or `:error`.
 282 | - Global attributes are accepted. the arbitrary HTML attributes to add to the flash container.
 283 | 
 284 | ## [](AshAdmin.CoreComponents.html#flash/1-slots)Slots
 285 | 
 286 | - `inner_block` - the optional inner block that renders the flash message.
 287 | 
 288 | [](AshAdmin.CoreComponents.html#flash_group/1)
 289 | 
 290 | # flash\_group(assigns)
 291 | 
 292 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L144)
 293 | 
 294 | Shows the flash group with standard titles and content.
 295 | 
 296 | ## [](AshAdmin.CoreComponents.html#flash_group/1-examples)Examples
 297 | 
 298 | ```
 299 | <.flash_group flash={@flash} />
 300 | ```
 301 | 
 302 | ## [](AshAdmin.CoreComponents.html#flash_group/1-attributes)Attributes
 303 | 
 304 | - `flash` (`:map`) (required) - the map of flash messages.
 305 | 
 306 | [](AshAdmin.CoreComponents.html#header/1)
 307 | 
 308 | # header(assigns)
 309 | 
 310 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L421)
 311 | 
 312 | Renders a header with title.
 313 | 
 314 | ## [](AshAdmin.CoreComponents.html#header/1-attributes)Attributes
 315 | 
 316 | - `class` (`:string`) - Defaults to `nil`.
 317 | 
 318 | ## [](AshAdmin.CoreComponents.html#header/1-slots)Slots
 319 | 
 320 | - `inner_block` (required)
 321 | - `subtitle`
 322 | - `actions`
 323 | 
 324 | [](AshAdmin.CoreComponents.html#hide/2)
 325 | 
 326 | # hide(js \\\\ %JS{}, selector)
 327 | 
 328 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L603)
 329 | 
 330 | [](AshAdmin.CoreComponents.html#hide_modal/2)
 331 | 
 332 | # hide\_modal(js \\\\ %JS{}, id)
 333 | 
 334 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L626)
 335 | 
 336 | [](AshAdmin.CoreComponents.html#icon/1)
 337 | 
 338 | # icon(assigns)
 339 | 
 340 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L585)
 341 | 
 342 | Renders a [Heroicon](https://heroicons.com).
 343 | 
 344 | Heroicons come in three styles – outline, solid, and mini. By default, the outline style is used, but solid and mini may be applied by using the `-solid` and `-mini` suffix.
 345 | 
 346 | You can customize the size and colors of the icons by setting width, height, and background color classes.
 347 | 
 348 | Icons are extracted from your `assets/vendor/heroicons` directory and bundled within your compiled app.css by the plugin in your `assets/tailwind.config.js`.
 349 | 
 350 | ## [](AshAdmin.CoreComponents.html#icon/1-examples)Examples
 351 | 
 352 | ```
 353 | <.icon name="hero-x-mark-solid" />
 354 | <.icon name="hero-arrow-path" class="ml-1 w-3 h-3 animate-spin" />
 355 | ```
 356 | 
 357 | ## [](AshAdmin.CoreComponents.html#icon/1-attributes)Attributes
 358 | 
 359 | - `name` (`:string`) (required)
 360 | - `class` (`:string`) - Defaults to `nil`.
 361 | 
 362 | [](AshAdmin.CoreComponents.html#input/1)
 363 | 
 364 | # input(assigns)
 365 | 
 366 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L289)
 367 | 
 368 | Renders an input with label and error messages.
 369 | 
 370 | A [`Phoenix.HTML.FormField`](../phoenix_html/4.2.0/Phoenix.HTML.FormField.html) may be passed as argument, which is used to retrieve the input name, id, and values. Otherwise all attributes may be passed explicitly.
 371 | 
 372 | ## [](AshAdmin.CoreComponents.html#input/1-types)Types
 373 | 
 374 | This function accepts all HTML input types, considering that:
 375 | 
 376 | - You may also set `type="select"` to render a `<select>` tag
 377 | - `type="checkbox"` is used exclusively to render boolean values
 378 | - For live file uploads, see [`Phoenix.Component.live_file_input/1`](../phoenix_live_view/1.0.1/Phoenix.Component.html#live_file_input/1)
 379 | 
 380 | See [https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input) for more information.
 381 | 
 382 | ## [](AshAdmin.CoreComponents.html#input/1-examples)Examples
 383 | 
 384 | ```
 385 | <.input field={@form[:email]} type="email" />
 386 | <.input name="my-input" errors={["oh no!"]} />
 387 | ```
 388 | 
 389 | ## [](AshAdmin.CoreComponents.html#input/1-attributes)Attributes
 390 | 
 391 | - `id` (`:any`) - Defaults to `nil`.
 392 | - `name` (`:any`)
 393 | - `label` (`:string`) - Defaults to `nil`.
 394 | - `value` (`:any`)
 395 | - `type` (`:string`) - Defaults to `"text"`.
 396 | - `field` ([`Phoenix.HTML.FormField`](../phoenix_html/4.2.0/Phoenix.HTML.FormField.html)) - a form field struct retrieved from the form, for example: @form\[:email].
 397 | - `errors` (`:list`) - Defaults to `[]`.
 398 | - `checked` (`:boolean`) - the checked flag for checkbox inputs.
 399 | - `prompt` (`:string`) - the prompt for select inputs. Defaults to `nil`.
 400 | - `options` (`:list`) - the options to pass to Phoenix.HTML.Form.options\_for\_select/2.
 401 | - `multiple` (`:boolean`) - the multiple flag for select inputs. Defaults to `false`.
 402 | - Global attributes are accepted. Supports all globals plus: `["accept", "autocomplete", "capture", "cols", "disabled", "form", "list", "max", "maxlength", "min", "minlength", "multiple", "pattern", "placeholder", "readonly", "required", "rows", "size", "step"]`.
 403 | 
 404 | ## [](AshAdmin.CoreComponents.html#input/1-slots)Slots
 405 | 
 406 | - `inner_block`
 407 | 
 408 | [](AshAdmin.CoreComponents.html#label/1)
 409 | 
 410 | # label(assigns)
 411 | 
 412 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L390)
 413 | 
 414 | Renders a label.
 415 | 
 416 | ## [](AshAdmin.CoreComponents.html#label/1-attributes)Attributes
 417 | 
 418 | - `for` (`:string`) - Defaults to `nil`.
 419 | 
 420 | ## [](AshAdmin.CoreComponents.html#label/1-slots)Slots
 421 | 
 422 | - `inner_block` (required)
 423 | 
 424 | [](AshAdmin.CoreComponents.html#list/1)
 425 | 
 426 | # list(assigns)
 427 | 
 428 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L527)
 429 | 
 430 | Renders a data list.
 431 | 
 432 | ## [](AshAdmin.CoreComponents.html#list/1-examples)Examples
 433 | 
 434 | ```
 435 | <.list>
 436 |   <:item title="Title"><%= @post.title %></:item>
 437 |   <:item title="Views"><%= @post.views %></:item>
 438 | </.list>
 439 | ```
 440 | 
 441 | ## [](AshAdmin.CoreComponents.html#list/1-slots)Slots
 442 | 
 443 | - `item` (required) - Accepts attributes:
 444 |   
 445 |   - `title` (`:string`) (required)
 446 | 
 447 | [](AshAdmin.CoreComponents.html#modal/1)
 448 | 
 449 | # modal(assigns)
 450 | 
 451 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L44)
 452 | 
 453 | Renders a modal.
 454 | 
 455 | ## [](AshAdmin.CoreComponents.html#modal/1-examples)Examples
 456 | 
 457 | ```
 458 | <.modal id="confirm-modal">
 459 |   This is a modal.
 460 | </.modal>
 461 | ```
 462 | 
 463 | JS commands may be passed to the `:on_cancel` to configure the closing/cancel event, for example:
 464 | 
 465 | ```
 466 | <.modal id="confirm" on_cancel={JS.navigate(~p"/posts")}>
 467 |   This is another modal.
 468 | </.modal>
 469 | ```
 470 | 
 471 | ## [](AshAdmin.CoreComponents.html#modal/1-attributes)Attributes
 472 | 
 473 | - `id` (`:string`) (required)
 474 | - `show` (`:boolean`) - Defaults to `false`.
 475 | - `on_cancel` ([`Phoenix.LiveView.JS`](../phoenix_live_view/1.0.1/Phoenix.LiveView.JS.html)) - Defaults to `%Phoenix.LiveView.JS{ops: []}`.
 476 | 
 477 | ## [](AshAdmin.CoreComponents.html#modal/1-slots)Slots
 478 | 
 479 | - `inner_block` (required)
 480 | 
 481 | [](AshAdmin.CoreComponents.html#show/2)
 482 | 
 483 | # show(js \\\\ %JS{}, selector)
 484 | 
 485 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L593)
 486 | 
 487 | [](AshAdmin.CoreComponents.html#show_modal/2)
 488 | 
 489 | # show\_modal(js \\\\ %JS{}, id)
 490 | 
 491 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L614)
 492 | 
 493 | [](AshAdmin.CoreComponents.html#simple_form/1)
 494 | 
 495 | # simple\_form(assigns)
 496 | 
 497 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L196)
 498 | 
 499 | Renders a simple form.
 500 | 
 501 | ## [](AshAdmin.CoreComponents.html#simple_form/1-examples)Examples
 502 | 
 503 | ```
 504 | <.simple_form for={@form} phx-change="validate" phx-submit="save">
 505 |   <.input field={@form[:email]} label="Email"/>
 506 |   <.input field={@form[:username]} label="Username" />
 507 |   <:actions>
 508 |     <.button>Save</.button>
 509 |   </:actions>
 510 | </.simple_form>
 511 | ```
 512 | 
 513 | ## [](AshAdmin.CoreComponents.html#simple_form/1-attributes)Attributes
 514 | 
 515 | - `for` (`:any`) (required) - the datastructure for the form.
 516 | - `as` (`:any`) - the server side parameter to collect all input under. Defaults to `nil`.
 517 | - Global attributes are accepted. the arbitrary HTML attributes to apply to the form tag. Supports all globals plus: `["autocomplete", "name", "rel", "action", "enctype", "method", "novalidate", "target", "multipart"]`.
 518 | 
 519 | ## [](AshAdmin.CoreComponents.html#simple_form/1-slots)Slots
 520 | 
 521 | - `inner_block` (required)
 522 | - `actions` - the slot for form actions, such as a submit button.
 523 | 
 524 | [](AshAdmin.CoreComponents.html#table/1)
 525 | 
 526 | # table(assigns)
 527 | 
 528 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L462)
 529 | 
 530 | Renders a table with generic styling.
 531 | 
 532 | ## [](AshAdmin.CoreComponents.html#table/1-examples)Examples
 533 | 
 534 | ```
 535 | <.table id="users" rows={@users}>
 536 |   <:col :let={user} label="id"><%= user.id %></:col>
 537 |   <:col :let={user} label="username"><%= user.username %></:col>
 538 | </.table>
 539 | ```
 540 | 
 541 | ## [](AshAdmin.CoreComponents.html#table/1-attributes)Attributes
 542 | 
 543 | - `id` (`:string`) (required)
 544 | - `rows` (`:list`) (required)
 545 | - `row_id` (`:any`) - the function for generating the row id. Defaults to `nil`.
 546 | - `row_click` (`:any`) - the function for handling phx-click on each row. Defaults to `nil`.
 547 | - `row_item` (`:any`) - the function for mapping each row before calling the :col and :action slots. Defaults to `&Function.identity/1`.
 548 | 
 549 | ## [](AshAdmin.CoreComponents.html#table/1-slots)Slots
 550 | 
 551 | - `col` (required) - Accepts attributes:
 552 |   
 553 |   - `label` (`:string`)
 554 | - `action` - the slot for showing user actions in the last table column.
 555 | 
 556 | [](AshAdmin.CoreComponents.html#translate_error/1)
 557 | 
 558 | # translate\_error(arg)
 559 | 
 560 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L641)
 561 | 
 562 | Translates an error message using gettext.
 563 | 
 564 | [](AshAdmin.CoreComponents.html#translate_errors/2)
 565 | 
 566 | # translate\_errors(errors, field)
 567 | 
 568 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/components/core_components.ex#L662)
 569 | 
 570 | Translates the errors for a field from a keyword list of errors.
 571 | 
 572 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
 573 | 
 574 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
 575 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
 576 | 
 577 | [ash\_admin](https://github.com/ash-project/ash_admin)
 578 | 
 579 | v0.12.6
 580 | 
 581 | - Pages
 582 | - Modules
 583 | - Mix Tasks
 584 | 
 585 | <!--THE END-->
 586 | 
 587 | <!--THE END-->
 588 | 
 589 | <!--THE END-->
 590 | 
 591 | Search documentation of ash\_admin
 592 | 
 593 | Settings
 594 | 
 595 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/domain.ex#L1 "View Source") AshAdmin.Domain (ash\_admin v0.12.6)
 596 | 
 597 | A domain extension to alter the behavior of a domain in the admin UI.
 598 | 
 599 | # [](AshAdmin.Domain.html#summary)Summary
 600 | 
 601 | ## [Functions](AshAdmin.Domain.html#functions)
 602 | 
 603 | [admin(body)](AshAdmin.Domain.html#admin/1)
 604 | 
 605 | [default\_resource\_page(domain)](AshAdmin.Domain.html#default_resource_page/1)
 606 | 
 607 | [name(domain)](AshAdmin.Domain.html#name/1)
 608 | 
 609 | [resource\_group\_labels(domain)](AshAdmin.Domain.html#resource_group_labels/1)
 610 | 
 611 | [show?(domain)](AshAdmin.Domain.html#show?/1)
 612 | 
 613 | [show\_resources(domain)](AshAdmin.Domain.html#show_resources/1)
 614 | 
 615 | # [](AshAdmin.Domain.html#functions)Functions
 616 | 
 617 | [](AshAdmin.Domain.html#admin/1)
 618 | 
 619 | # admin(body)
 620 | 
 621 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/domain.ex#L36)(macro)
 622 | 
 623 | [](AshAdmin.Domain.html#default_resource_page/1)
 624 | 
 625 | # default\_resource\_page(domain)
 626 | 
 627 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/domain.ex#L56)
 628 | 
 629 | [](AshAdmin.Domain.html#name/1)
 630 | 
 631 | # name(domain)
 632 | 
 633 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/domain.ex#L44)
 634 | 
 635 | [](AshAdmin.Domain.html#resource_group_labels/1)
 636 | 
 637 | # resource\_group\_labels(domain)
 638 | 
 639 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/domain.ex#L60)
 640 | 
 641 | [](AshAdmin.Domain.html#show?/1)
 642 | 
 643 | # show?(domain)
 644 | 
 645 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/domain.ex#L48)
 646 | 
 647 | [](AshAdmin.Domain.html#show_resources/1)
 648 | 
 649 | # show\_resources(domain)
 650 | 
 651 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/domain.ex#L52)
 652 | 
 653 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
 654 | 
 655 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
 656 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
 657 | 
 658 | [ash\_admin](https://github.com/ash-project/ash_admin)
 659 | 
 660 | v0.12.6
 661 | 
 662 | - Pages
 663 | - Modules
 664 | - Mix Tasks
 665 | 
 666 | <!--THE END-->
 667 | 
 668 | <!--THE END-->
 669 | 
 670 | <!--THE END-->
 671 | 
 672 | Search documentation of ash\_admin
 673 | 
 674 | Settings
 675 | 
 676 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/errors/not_found.ex#L1 "View Source") AshAdmin.Errors.NotFound exception (ash\_admin v0.12.6)
 677 | 
 678 | # [](AshAdmin.Errors.NotFound.html#summary)Summary
 679 | 
 680 | ## [Functions](AshAdmin.Errors.NotFound.html#functions)
 681 | 
 682 | [message(error)](AshAdmin.Errors.NotFound.html#message/1)
 683 | 
 684 | Callback implementation for [`Exception.message/1`](../elixir/Exception.html#c:message/1).
 685 | 
 686 | # [](AshAdmin.Errors.NotFound.html#functions)Functions
 687 | 
 688 | [](AshAdmin.Errors.NotFound.html#message/1)
 689 | 
 690 | # message(error)
 691 | 
 692 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/errors/not_found.ex#L4)
 693 | 
 694 | Callback implementation for [`Exception.message/1`](../elixir/Exception.html#c:message/1).
 695 | 
 696 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
 697 | 
 698 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
 699 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
 700 | 
 701 | [ash\_admin](https://github.com/ash-project/ash_admin)
 702 | 
 703 | v0.12.6
 704 | 
 705 | - Pages
 706 | - Modules
 707 | - Mix Tasks
 708 | 
 709 | <!--THE END-->
 710 | 
 711 | <!--THE END-->
 712 | 
 713 | <!--THE END-->
 714 | 
 715 | Search documentation of ash\_admin
 716 | 
 717 | Settings
 718 | 
 719 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/gettext.ex#L1 "View Source") AshAdmin.Gettext (ash\_admin v0.12.6)
 720 | 
 721 | A module providing Internationalization with a gettext-based API.
 722 | 
 723 | By using [Gettext](../gettext.html), your module gains a set of macros for translations, for example:
 724 | 
 725 | ```
 726 | use Gettext, backend: AshAdmin.Gettext
 727 | 
 728 | # Simple translation
 729 | gettext("Here is the string to translate")
 730 | 
 731 | # Plural translation
 732 | ngettext("Here is the string to translate",
 733 |          "Here are the strings to translate",
 734 |          3)
 735 | 
 736 | # Domain-based translation
 737 | dgettext("errors", "Here is the error message to translate")
 738 | ```
 739 | 
 740 | See the [Gettext Docs](../gettext.html) for detailed usage.
 741 | 
 742 | # [](AshAdmin.Gettext.html#summary)Summary
 743 | 
 744 | ## [Functions](AshAdmin.Gettext.html#functions)
 745 | 
 746 | [handle\_missing\_bindings(exception, incomplete)](AshAdmin.Gettext.html#handle_missing_bindings/2)
 747 | 
 748 | Callback implementation for [`Gettext.Backend.handle_missing_bindings/2`](../gettext/0.26.2/Gettext.Backend.html#c:handle_missing_bindings/2).
 749 | 
 750 | [handle\_missing\_plural\_translation(locale, domain, msgctxt, msgid, msgid\_plural, n, bindings)](AshAdmin.Gettext.html#handle_missing_plural_translation/7)
 751 | 
 752 | Callback implementation for [`Gettext.Backend.handle_missing_plural_translation/7`](../gettext/0.26.2/Gettext.Backend.html#c:handle_missing_plural_translation/7).
 753 | 
 754 | [handle\_missing\_translation(locale, domain, msgctxt, msgid, bindings)](AshAdmin.Gettext.html#handle_missing_translation/5)
 755 | 
 756 | Callback implementation for [`Gettext.Backend.handle_missing_translation/5`](../gettext/0.26.2/Gettext.Backend.html#c:handle_missing_translation/5).
 757 | 
 758 | # [](AshAdmin.Gettext.html#functions)Functions
 759 | 
 760 | [](AshAdmin.Gettext.html#handle_missing_bindings/2)
 761 | 
 762 | # handle\_missing\_bindings(exception, incomplete)
 763 | 
 764 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/gettext.ex#L23)
 765 | 
 766 | Callback implementation for [`Gettext.Backend.handle_missing_bindings/2`](../gettext/0.26.2/Gettext.Backend.html#c:handle_missing_bindings/2).
 767 | 
 768 | [](AshAdmin.Gettext.html#handle_missing_plural_translation/7)
 769 | 
 770 | # handle\_missing\_plural\_translation(locale, domain, msgctxt, msgid, msgid\_plural, n, bindings)
 771 | 
 772 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/gettext.ex#L23)
 773 | 
 774 | Callback implementation for [`Gettext.Backend.handle_missing_plural_translation/7`](../gettext/0.26.2/Gettext.Backend.html#c:handle_missing_plural_translation/7).
 775 | 
 776 | [](AshAdmin.Gettext.html#handle_missing_translation/5)
 777 | 
 778 | # handle\_missing\_translation(locale, domain, msgctxt, msgid, bindings)
 779 | 
 780 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/gettext.ex#L23)
 781 | 
 782 | Callback implementation for [`Gettext.Backend.handle_missing_translation/5`](../gettext/0.26.2/Gettext.Backend.html#c:handle_missing_translation/5).
 783 | 
 784 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
 785 | 
 786 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
 787 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
 788 | 
 789 | [ash\_admin](https://github.com/ash-project/ash_admin)
 790 | 
 791 | v0.12.6
 792 | 
 793 | - Pages
 794 | - Modules
 795 | - Mix Tasks
 796 | 
 797 | <!--THE END-->
 798 | 
 799 | <!--THE END-->
 800 | 
 801 | <!--THE END-->
 802 | 
 803 | Search documentation of ash\_admin
 804 | 
 805 | Settings
 806 | 
 807 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/field.ex#L1 "View Source") AshAdmin.Resource.Field (ash\_admin v0.12.6)
 808 | 
 809 | The representation of a configured field in the admin UI.
 810 | 
 811 | # [](AshAdmin.Resource.Field.html#summary)Summary
 812 | 
 813 | ## [Functions](AshAdmin.Resource.Field.html#functions)
 814 | 
 815 | [schema()](AshAdmin.Resource.Field.html#schema/0)
 816 | 
 817 | # [](AshAdmin.Resource.Field.html#functions)Functions
 818 | 
 819 | [](AshAdmin.Resource.Field.html#schema/0)
 820 | 
 821 | # schema()
 822 | 
 823 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/field.ex#L21)
 824 | 
 825 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
 826 | 
 827 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
 828 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
 829 | 
 830 | [ash\_admin](https://github.com/ash-project/ash_admin)
 831 | 
 832 | v0.12.6
 833 | 
 834 | - Pages
 835 | - Modules
 836 | - Mix Tasks
 837 | 
 838 | <!--THE END-->
 839 | 
 840 | <!--THE END-->
 841 | 
 842 | <!--THE END-->
 843 | 
 844 | Search documentation of ash\_admin
 845 | 
 846 | Settings
 847 | 
 848 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L1 "View Source") AshAdmin.Resource (ash\_admin v0.12.6)
 849 | 
 850 | A resource extension to alter the behaviour of a resource in the admin UI.
 851 | 
 852 | # [](AshAdmin.Resource.html#summary)Summary
 853 | 
 854 | ## [Functions](AshAdmin.Resource.html#functions)
 855 | 
 856 | [actor?(resource)](AshAdmin.Resource.html#actor?/1)
 857 | 
 858 | [admin(body)](AshAdmin.Resource.html#admin/1)
 859 | 
 860 | [create\_actions(resource)](AshAdmin.Resource.html#create_actions/1)
 861 | 
 862 | [destroy\_actions(resource)](AshAdmin.Resource.html#destroy_actions/1)
 863 | 
 864 | [field(resource, name)](AshAdmin.Resource.html#field/2)
 865 | 
 866 | [fields(resource)](AshAdmin.Resource.html#fields/1)
 867 | 
 868 | [format\_fields(resource)](AshAdmin.Resource.html#format_fields/1)
 869 | 
 870 | [generic\_actions(resource)](AshAdmin.Resource.html#generic_actions/1)
 871 | 
 872 | [name(resource)](AshAdmin.Resource.html#name/1)
 873 | 
 874 | [polymorphic?(resource, domains)](AshAdmin.Resource.html#polymorphic?/2)
 875 | 
 876 | [polymorphic\_actions(resource)](AshAdmin.Resource.html#polymorphic_actions/1)
 877 | 
 878 | [polymorphic\_tables(resource, domains)](AshAdmin.Resource.html#polymorphic_tables/2)
 879 | 
 880 | [read\_actions(resource)](AshAdmin.Resource.html#read_actions/1)
 881 | 
 882 | [relationship\_display\_fields(resource)](AshAdmin.Resource.html#relationship_display_fields/1)
 883 | 
 884 | [resource\_group(resource)](AshAdmin.Resource.html#resource_group/1)
 885 | 
 886 | [show\_action(resource)](AshAdmin.Resource.html#show_action/1)
 887 | 
 888 | [show\_calculations(resource)](AshAdmin.Resource.html#show_calculations/1)
 889 | 
 890 | [show\_sensitive\_fields(resource)](AshAdmin.Resource.html#show_sensitive_fields/1)
 891 | 
 892 | [table\_columns(resource)](AshAdmin.Resource.html#table_columns/1)
 893 | 
 894 | [update\_actions(resource)](AshAdmin.Resource.html#update_actions/1)
 895 | 
 896 | # [](AshAdmin.Resource.html#functions)Functions
 897 | 
 898 | [](AshAdmin.Resource.html#actor?/1)
 899 | 
 900 | # actor?(resource)
 901 | 
 902 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L158)
 903 | 
 904 | [](AshAdmin.Resource.html#admin/1)
 905 | 
 906 | # admin(body)
 907 | 
 908 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L107)(macro)
 909 | 
 910 | [](AshAdmin.Resource.html#create_actions/1)
 911 | 
 912 | # create\_actions(resource)
 913 | 
 914 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L172)
 915 | 
 916 | [](AshAdmin.Resource.html#destroy_actions/1)
 917 | 
 918 | # destroy\_actions(resource)
 919 | 
 920 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L182)
 921 | 
 922 | [](AshAdmin.Resource.html#field/2)
 923 | 
 924 | # field(resource, name)
 925 | 
 926 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L206)
 927 | 
 928 | [](AshAdmin.Resource.html#fields/1)
 929 | 
 930 | # fields(resource)
 931 | 
 932 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L202)
 933 | 
 934 | [](AshAdmin.Resource.html#format_fields/1)
 935 | 
 936 | # format\_fields(resource)
 937 | 
 938 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L139)
 939 | 
 940 | [](AshAdmin.Resource.html#generic_actions/1)
 941 | 
 942 | # generic\_actions(resource)
 943 | 
 944 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L167)
 945 | 
 946 | [](AshAdmin.Resource.html#name/1)
 947 | 
 948 | # name(resource)
 949 | 
 950 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L143)
 951 | 
 952 | [](AshAdmin.Resource.html#polymorphic?/2)
 953 | 
 954 | # polymorphic?(resource, domains)
 955 | 
 956 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L115)
 957 | 
 958 | [](AshAdmin.Resource.html#polymorphic_actions/1)
 959 | 
 960 | # polymorphic\_actions(resource)
 961 | 
 962 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L126)
 963 | 
 964 | [](AshAdmin.Resource.html#polymorphic_tables/2)
 965 | 
 966 | # polymorphic\_tables(resource, domains)
 967 | 
 968 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L119)
 969 | 
 970 | [](AshAdmin.Resource.html#read_actions/1)
 971 | 
 972 | # read\_actions(resource)
 973 | 
 974 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L162)
 975 | 
 976 | [](AshAdmin.Resource.html#relationship_display_fields/1)
 977 | 
 978 | # relationship\_display\_fields(resource)
 979 | 
 980 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L130)
 981 | 
 982 | [](AshAdmin.Resource.html#resource_group/1)
 983 | 
 984 | # resource\_group(resource)
 985 | 
 986 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L150)
 987 | 
 988 | [](AshAdmin.Resource.html#show_action/1)
 989 | 
 990 | # show\_action(resource)
 991 | 
 992 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L187)
 993 | 
 994 | [](AshAdmin.Resource.html#show_calculations/1)
 995 | 
 996 | # show\_calculations(resource)
 997 | 
 998 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L198)
 999 | 
1000 | [](AshAdmin.Resource.html#show_sensitive_fields/1)
1001 | 
1002 | # show\_sensitive\_fields(resource)
1003 | 
1004 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L154)
1005 | 
1006 | [](AshAdmin.Resource.html#table_columns/1)
1007 | 
1008 | # table\_columns(resource)
1009 | 
1010 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L134)
1011 | 
1012 | [](AshAdmin.Resource.html#update_actions/1)
1013 | 
1014 | # update\_actions(resource)
1015 | 
1016 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/resource.ex#L177)
1017 | 
1018 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
1019 | 
1020 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
1021 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
1022 | 
1023 | [ash\_admin](https://github.com/ash-project/ash_admin)
1024 | 
1025 | v0.12.6
1026 | 
1027 | - Pages
1028 | - Modules
1029 | - Mix Tasks
1030 | 
1031 | <!--THE END-->
1032 | 
1033 | <!--THE END-->
1034 | 
1035 | <!--THE END-->
1036 | 
1037 | Search documentation of ash\_admin
1038 | 
1039 | Settings
1040 | 
1041 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/transformers/validate_table_columns.ex#L1 "View Source") AshAdmin.Resource.Transformers.ValidateTableColumns (ash\_admin v0.12.6)
1042 | 
1043 | Validates that table columns are all either attributes, or `:one` cardinality relationships.
1044 | 
1045 | # [](AshAdmin.Resource.Transformers.ValidateTableColumns.html#summary)Summary
1046 | 
1047 | ## [Functions](AshAdmin.Resource.Transformers.ValidateTableColumns.html#functions)
1048 | 
1049 | [after?(arg1)](AshAdmin.Resource.Transformers.ValidateTableColumns.html#after?/1)
1050 | 
1051 | Callback implementation for [`Spark.Dsl.Transformer.after?/1`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:after?/1).
1052 | 
1053 | [after\_compile?()](AshAdmin.Resource.Transformers.ValidateTableColumns.html#after_compile?/0)
1054 | 
1055 | Callback implementation for [`Spark.Dsl.Transformer.after_compile?/0`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:after_compile?/0).
1056 | 
1057 | [before?(\_)](AshAdmin.Resource.Transformers.ValidateTableColumns.html#before?/1)
1058 | 
1059 | Callback implementation for [`Spark.Dsl.Transformer.before?/1`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:before?/1).
1060 | 
1061 | [transform(dsl\_state)](AshAdmin.Resource.Transformers.ValidateTableColumns.html#transform/1)
1062 | 
1063 | Callback implementation for [`Spark.Dsl.Transformer.transform/1`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:transform/1).
1064 | 
1065 | # [](AshAdmin.Resource.Transformers.ValidateTableColumns.html#functions)Functions
1066 | 
1067 | [](AshAdmin.Resource.Transformers.ValidateTableColumns.html#after?/1)
1068 | 
1069 | # after?(arg1)
1070 | 
1071 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/transformers/validate_table_columns.ex#L37)
1072 | 
1073 | Callback implementation for [`Spark.Dsl.Transformer.after?/1`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:after?/1).
1074 | 
1075 | [](AshAdmin.Resource.Transformers.ValidateTableColumns.html#after_compile?/0)
1076 | 
1077 | # after\_compile?()
1078 | 
1079 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/transformers/validate_table_columns.ex#L3)
1080 | 
1081 | Callback implementation for [`Spark.Dsl.Transformer.after_compile?/0`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:after_compile?/0).
1082 | 
1083 | [](AshAdmin.Resource.Transformers.ValidateTableColumns.html#before?/1)
1084 | 
1085 | # before?(\_)
1086 | 
1087 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/transformers/validate_table_columns.ex#L3)
1088 | 
1089 | Callback implementation for [`Spark.Dsl.Transformer.before?/1`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:before?/1).
1090 | 
1091 | [](AshAdmin.Resource.Transformers.ValidateTableColumns.html#transform/1)
1092 | 
1093 | # transform(dsl\_state)
1094 | 
1095 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/resource/transformers/validate_table_columns.ex#L6)
1096 | 
1097 | Callback implementation for [`Spark.Dsl.Transformer.transform/1`](../spark/2.2.36/Spark.Dsl.Transformer.html#c:transform/1).
1098 | 
1099 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
1100 | 
1101 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
1102 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
1103 | 
1104 | [ash\_admin](https://github.com/ash-project/ash_admin)
1105 | 
1106 | v0.12.6
1107 | 
1108 | - Pages
1109 | - Modules
1110 | - Mix Tasks
1111 | 
1112 | <!--THE END-->
1113 | 
1114 | <!--THE END-->
1115 | 
1116 | <!--THE END-->
1117 | 
1118 | Search documentation of ash\_admin
1119 | 
1120 | Settings
1121 | 
1122 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/router.ex#L1 "View Source") AshAdmin.Router (ash\_admin v0.12.6)
1123 | 
1124 | Provides LiveView routing for AshAdmin.
1125 | 
1126 | # [](AshAdmin.Router.html#summary)Summary
1127 | 
1128 | ## [Functions](AshAdmin.Router.html#functions)
1129 | 
1130 | [admin\_browser\_pipeline(name \\\\ :browser)](AshAdmin.Router.html#admin_browser_pipeline/1)
1131 | 
1132 | Can be used to create a `:browser` pipeline easily if you don't have one.
1133 | 
1134 | [ash\_admin(path, opts \\\\ \[\])](AshAdmin.Router.html#ash_admin/2)
1135 | 
1136 | Defines an AshAdmin route. It expects the `path` the admin dashboard will be mounted at and a set of options.
1137 | 
1138 | # [](AshAdmin.Router.html#functions)Functions
1139 | 
1140 | [](AshAdmin.Router.html#admin_browser_pipeline/1)
1141 | 
1142 | # admin\_browser\_pipeline(name \\\\ :browser)
1143 | 
1144 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/router.ex#L27)(macro)
1145 | 
1146 | Can be used to create a `:browser` pipeline easily if you don't have one.
1147 | 
1148 | By default it is called `:browser`, but you can rename it by supplying an argument, for example:
1149 | 
1150 | ```
1151 | defmodule MyAppWeb.Router do
1152 |   use Phoenix.Router
1153 | 
1154 |   import AshAdmin.Router
1155 |   admin_browser_pipeline :something
1156 | 
1157 |   scope "/" do
1158 | 
1159 |     pipe_through [:something]
1160 |     ash_admin "/admin"
1161 |   end
1162 | end
1163 | ```
1164 | 
1165 | [](AshAdmin.Router.html#ash_admin/2)
1166 | 
1167 | # ash\_admin(path, opts \\\\ \[])
1168 | 
1169 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/ash_admin/router.ex#L79)(macro)
1170 | 
1171 | Defines an AshAdmin route. It expects the `path` the admin dashboard will be mounted at and a set of options.
1172 | 
1173 | ## [](AshAdmin.Router.html#ash_admin/2-options)Options
1174 | 
1175 | - `:live_socket_path` - Optional override for the socket path. it must match the `socket "/live", Phoenix.LiveView.Socket` in your endpoint. Defaults to `/live`.
1176 | - `:on_mount` - Optional list of hooks to attach to the mount lifecycle.
1177 | - `:session` - Optional extra session map or MFA tuple to be merged with the session.
1178 | - `:csp_nonce_assign_key` - Optional assign key to find the CSP nonce value used for assets Supports either `atom()` or `%{optional(:img) => atom(), optional(:script) => atom(), optional(:style) => atom()}`  
1179 |   Defaults to `ash_admin-Ed55GFnX` for backwards compatibility.
1180 | - `:live_session_name` - Optional atom to name the `live_session`. Defaults to `:ash_admin`.
1181 | 
1182 | ## [](AshAdmin.Router.html#ash_admin/2-examples)Examples
1183 | 
1184 | ```
1185 | defmodule MyAppWeb.Router do
1186 |   use Phoenix.Router
1187 | 
1188 |   scope "/" do
1189 |     import AshAdmin.Router
1190 | 
1191 |     # Make sure you are piping through the browser pipeline
1192 |     # If you don't have one, see `admin_browser_pipeline/1`
1193 |     pipe_through [:browser]
1194 | 
1195 |     ash_admin "/admin"
1196 |     ash_admin "/csp/admin", live_session_name: :ash_admin_csp, csp_nonce_assign_key: :csp_nonce_value
1197 |   end
1198 | end
1199 | ```
1200 | 
1201 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
1202 | 
1203 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
1204 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
1205 | 
1206 | [ash\_admin](https://github.com/ash-project/ash_admin)
1207 | 
1208 | v0.12.6
1209 | 
1210 | - Pages
1211 | - Modules
1212 | - Mix Tasks
1213 | 
1214 | <!--THE END-->
1215 | 
1216 | <!--THE END-->
1217 | 
1218 | <!--THE END-->
1219 | 
1220 | Search documentation of ash\_admin
1221 | 
1222 | Settings
1223 | 
1224 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L1 "View Source") Demo.Accounts.NestedEmbed (ash\_admin v0.12.6)
1225 | 
1226 | # [](Demo.Accounts.NestedEmbed.html#summary)Summary
1227 | 
1228 | ## [Types](Demo.Accounts.NestedEmbed.html#types)
1229 | 
1230 | [t()](Demo.Accounts.NestedEmbed.html#t:t/0)
1231 | 
1232 | ## [Functions](Demo.Accounts.NestedEmbed.html#functions)
1233 | 
1234 | [apply\_constraints\_array(term, constraints)](Demo.Accounts.NestedEmbed.html#apply_constraints_array/2)
1235 | 
1236 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
1237 | 
1238 | [cast\_input(input, constraints)](Demo.Accounts.NestedEmbed.html#cast_input/2)
1239 | 
1240 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
1241 | 
1242 | [cast\_stored(value, constraints)](Demo.Accounts.NestedEmbed.html#cast_stored/2)
1243 | 
1244 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
1245 | 
1246 | [check\_atomic(value, constraints)](Demo.Accounts.NestedEmbed.html#check_atomic/2)
1247 | 
1248 | [default\_short\_name()](Demo.Accounts.NestedEmbed.html#default_short_name/0)
1249 | 
1250 | [dump\_to\_native(value, \_)](Demo.Accounts.NestedEmbed.html#dump_to_native/2)
1251 | 
1252 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
1253 | 
1254 | [fetch\_key(map, atom)](Demo.Accounts.NestedEmbed.html#fetch_key/2)
1255 | 
1256 | [get\_rewrites(merged\_load, calculation, path, \_)](Demo.Accounts.NestedEmbed.html#get_rewrites/4)
1257 | 
1258 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
1259 | 
1260 | [handle\_change(old\_value, new\_value, constraints)](Demo.Accounts.NestedEmbed.html#handle_change/3)
1261 | 
1262 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
1263 | 
1264 | [handle\_change?()](Demo.Accounts.NestedEmbed.html#handle_change?/0)
1265 | 
1266 | [handle\_change\_array(old\_values, new\_values, constraints)](Demo.Accounts.NestedEmbed.html#handle_change_array/3)
1267 | 
1268 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
1269 | 
1270 | [input(opts)](Demo.Accounts.NestedEmbed.html#input/1)
1271 | 
1272 | Validates that the keys in the provided input are valid for at least one action on the resource.
1273 | 
1274 | [input(opts, action)](Demo.Accounts.NestedEmbed.html#input/2)
1275 | 
1276 | Same as [`input/1`](Demo.Accounts.NestedEmbed.html#input/1), except restricts the keys to values accepted by the action provided.
1277 | 
1278 | [load(record, load, constraints, context)](Demo.Accounts.NestedEmbed.html#load/4)
1279 | 
1280 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
1281 | 
1282 | [prepare\_change(old\_value, new\_value, constraints)](Demo.Accounts.NestedEmbed.html#prepare_change/3)
1283 | 
1284 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
1285 | 
1286 | [prepare\_change?()](Demo.Accounts.NestedEmbed.html#prepare_change?/0)
1287 | 
1288 | [prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)](Demo.Accounts.NestedEmbed.html#prepare_change_array/3)
1289 | 
1290 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
1291 | 
1292 | [rewrite(value, rewrites, constraints)](Demo.Accounts.NestedEmbed.html#rewrite/3)
1293 | 
1294 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
1295 | 
1296 | [storage\_type(\_)](Demo.Accounts.NestedEmbed.html#storage_type/1)
1297 | 
1298 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
1299 | 
1300 | # [](Demo.Accounts.NestedEmbed.html#types)Types
1301 | 
1302 | [](Demo.Accounts.NestedEmbed.html#t:t/0)
1303 | 
1304 | # t()
1305 | 
1306 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L1)
1307 | 
1308 | ```
1309 | @type t() :: %Demo.Accounts.NestedEmbed{
1310 |   __lateral_join_source__: term(),
1311 |   __meta__: term(),
1312 |   __metadata__: term(),
1313 |   __order__: term(),
1314 |   aggregates: term(),
1315 |   calculations: term(),
1316 |   tags: term()
1317 | }
1318 | ```
1319 | 
1320 | # [](Demo.Accounts.NestedEmbed.html#functions)Functions
1321 | 
1322 | [](Demo.Accounts.NestedEmbed.html#apply_constraints_array/2)
1323 | 
1324 | # apply\_constraints\_array(term, constraints)
1325 | 
1326 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1327 | 
1328 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
1329 | 
1330 | [](Demo.Accounts.NestedEmbed.html#cast_input/2)
1331 | 
1332 | # cast\_input(input, constraints)
1333 | 
1334 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1335 | 
1336 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
1337 | 
1338 | [](Demo.Accounts.NestedEmbed.html#cast_stored/2)
1339 | 
1340 | # cast\_stored(value, constraints)
1341 | 
1342 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1343 | 
1344 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
1345 | 
1346 | [](Demo.Accounts.NestedEmbed.html#check_atomic/2)
1347 | 
1348 | # check\_atomic(value, constraints)
1349 | 
1350 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1351 | 
1352 | [](Demo.Accounts.NestedEmbed.html#default_short_name/0)
1353 | 
1354 | # default\_short\_name()
1355 | 
1356 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L1)
1357 | 
1358 | [](Demo.Accounts.NestedEmbed.html#dump_to_native/2)
1359 | 
1360 | # dump\_to\_native(value, \_)
1361 | 
1362 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1363 | 
1364 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
1365 | 
1366 | [](Demo.Accounts.NestedEmbed.html#fetch_key/2)
1367 | 
1368 | # fetch\_key(map, atom)
1369 | 
1370 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1371 | 
1372 | [](Demo.Accounts.NestedEmbed.html#get_rewrites/4)
1373 | 
1374 | # get\_rewrites(merged\_load, calculation, path, \_)
1375 | 
1376 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1377 | 
1378 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
1379 | 
1380 | [](Demo.Accounts.NestedEmbed.html#handle_change/3)
1381 | 
1382 | # handle\_change(old\_value, new\_value, constraints)
1383 | 
1384 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1385 | 
1386 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
1387 | 
1388 | [](Demo.Accounts.NestedEmbed.html#handle_change?/0)
1389 | 
1390 | # handle\_change?()
1391 | 
1392 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L1)
1393 | 
1394 | [](Demo.Accounts.NestedEmbed.html#handle_change_array/3)
1395 | 
1396 | # handle\_change\_array(old\_values, new\_values, constraints)
1397 | 
1398 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1399 | 
1400 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
1401 | 
1402 | [](Demo.Accounts.NestedEmbed.html#input/1)
1403 | 
1404 | # input(opts)
1405 | 
1406 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L1)
1407 | 
1408 | ```
1409 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
1410 | ```
1411 | 
1412 | Validates that the keys in the provided input are valid for at least one action on the resource.
1413 | 
1414 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
1415 | 
1416 | ```
1417 | Resource
1418 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
1419 | |> Ash.create()
1420 | ```
1421 | 
1422 | [](Demo.Accounts.NestedEmbed.html#input/2)
1423 | 
1424 | # input(opts, action)
1425 | 
1426 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L1)
1427 | 
1428 | ```
1429 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
1430 | ```
1431 | 
1432 | Same as [`input/1`](Demo.Accounts.NestedEmbed.html#input/1), except restricts the keys to values accepted by the action provided.
1433 | 
1434 | [](Demo.Accounts.NestedEmbed.html#load/4)
1435 | 
1436 | # load(record, load, constraints, context)
1437 | 
1438 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1439 | 
1440 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
1441 | 
1442 | [](Demo.Accounts.NestedEmbed.html#prepare_change/3)
1443 | 
1444 | # prepare\_change(old\_value, new\_value, constraints)
1445 | 
1446 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1447 | 
1448 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
1449 | 
1450 | [](Demo.Accounts.NestedEmbed.html#prepare_change?/0)
1451 | 
1452 | # prepare\_change?()
1453 | 
1454 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L1)
1455 | 
1456 | [](Demo.Accounts.NestedEmbed.html#prepare_change_array/3)
1457 | 
1458 | # prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)
1459 | 
1460 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1461 | 
1462 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
1463 | 
1464 | [](Demo.Accounts.NestedEmbed.html#rewrite/3)
1465 | 
1466 | # rewrite(value, rewrites, constraints)
1467 | 
1468 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1469 | 
1470 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
1471 | 
1472 | [](Demo.Accounts.NestedEmbed.html#storage_type/1)
1473 | 
1474 | # storage\_type(\_)
1475 | 
1476 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/nested_embed.ex#L2)
1477 | 
1478 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
1479 | 
1480 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
1481 | 
1482 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
1483 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
1484 | 
1485 | [ash\_admin](https://github.com/ash-project/ash_admin)
1486 | 
1487 | v0.12.6
1488 | 
1489 | - Pages
1490 | - Modules
1491 | - Mix Tasks
1492 | 
1493 | <!--THE END-->
1494 | 
1495 | <!--THE END-->
1496 | 
1497 | <!--THE END-->
1498 | 
1499 | Search documentation of ash\_admin
1500 | 
1501 | Settings
1502 | 
1503 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1 "View Source") Demo.Accounts.NewUser (ash\_admin v0.12.6)
1504 | 
1505 | TODO
1506 | 
1507 | # [](Demo.Accounts.NewUser.html#summary)Summary
1508 | 
1509 | ## [Types](Demo.Accounts.NewUser.html#types)
1510 | 
1511 | [t()](Demo.Accounts.NewUser.html#t:t/0)
1512 | 
1513 | ## [Functions](Demo.Accounts.NewUser.html#functions)
1514 | 
1515 | [apply\_constraints\_array(term, constraints)](Demo.Accounts.NewUser.html#apply_constraints_array/2)
1516 | 
1517 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
1518 | 
1519 | [cast\_input(input, constraints)](Demo.Accounts.NewUser.html#cast_input/2)
1520 | 
1521 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
1522 | 
1523 | [cast\_stored(value, constraints)](Demo.Accounts.NewUser.html#cast_stored/2)
1524 | 
1525 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
1526 | 
1527 | [check\_atomic(value, constraints)](Demo.Accounts.NewUser.html#check_atomic/2)
1528 | 
1529 | [default\_short\_name()](Demo.Accounts.NewUser.html#default_short_name/0)
1530 | 
1531 | [dump\_to\_native(value, \_)](Demo.Accounts.NewUser.html#dump_to_native/2)
1532 | 
1533 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
1534 | 
1535 | [fetch\_key(map, atom)](Demo.Accounts.NewUser.html#fetch_key/2)
1536 | 
1537 | [get\_rewrites(merged\_load, calculation, path, \_)](Demo.Accounts.NewUser.html#get_rewrites/4)
1538 | 
1539 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
1540 | 
1541 | [handle\_change(old\_value, new\_value, constraints)](Demo.Accounts.NewUser.html#handle_change/3)
1542 | 
1543 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
1544 | 
1545 | [handle\_change?()](Demo.Accounts.NewUser.html#handle_change?/0)
1546 | 
1547 | [handle\_change\_array(old\_values, new\_values, constraints)](Demo.Accounts.NewUser.html#handle_change_array/3)
1548 | 
1549 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
1550 | 
1551 | [input(opts)](Demo.Accounts.NewUser.html#input/1)
1552 | 
1553 | Validates that the keys in the provided input are valid for at least one action on the resource.
1554 | 
1555 | [input(opts, action)](Demo.Accounts.NewUser.html#input/2)
1556 | 
1557 | Same as [`input/1`](Demo.Accounts.NewUser.html#input/1), except restricts the keys to values accepted by the action provided.
1558 | 
1559 | [load(record, load, constraints, context)](Demo.Accounts.NewUser.html#load/4)
1560 | 
1561 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
1562 | 
1563 | [prepare\_change(old\_value, new\_value, constraints)](Demo.Accounts.NewUser.html#prepare_change/3)
1564 | 
1565 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
1566 | 
1567 | [prepare\_change?()](Demo.Accounts.NewUser.html#prepare_change?/0)
1568 | 
1569 | [prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)](Demo.Accounts.NewUser.html#prepare_change_array/3)
1570 | 
1571 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
1572 | 
1573 | [primary\_key\_matches?(left, right)](Demo.Accounts.NewUser.html#primary_key_matches?/2)
1574 | 
1575 | [rewrite(value, rewrites, constraints)](Demo.Accounts.NewUser.html#rewrite/3)
1576 | 
1577 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
1578 | 
1579 | [storage\_type(\_)](Demo.Accounts.NewUser.html#storage_type/1)
1580 | 
1581 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
1582 | 
1583 | # [](Demo.Accounts.NewUser.html#types)Types
1584 | 
1585 | [](Demo.Accounts.NewUser.html#t:t/0)
1586 | 
1587 | # t()
1588 | 
1589 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1)
1590 | 
1591 | ```
1592 | @type t() :: %Demo.Accounts.NewUser{
1593 |   __lateral_join_source__: term(),
1594 |   __meta__: term(),
1595 |   __metadata__: term(),
1596 |   __order__: term(),
1597 |   address: term(),
1598 |   aggregates: term(),
1599 |   calculations: term(),
1600 |   email: term(),
1601 |   first_name: term(),
1602 |   id: term(),
1603 |   last_name: term(),
1604 |   mobile: term()
1605 | }
1606 | ```
1607 | 
1608 | # [](Demo.Accounts.NewUser.html#functions)Functions
1609 | 
1610 | [](Demo.Accounts.NewUser.html#apply_constraints_array/2)
1611 | 
1612 | # apply\_constraints\_array(term, constraints)
1613 | 
1614 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1615 | 
1616 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
1617 | 
1618 | [](Demo.Accounts.NewUser.html#cast_input/2)
1619 | 
1620 | # cast\_input(input, constraints)
1621 | 
1622 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1623 | 
1624 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
1625 | 
1626 | [](Demo.Accounts.NewUser.html#cast_stored/2)
1627 | 
1628 | # cast\_stored(value, constraints)
1629 | 
1630 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1631 | 
1632 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
1633 | 
1634 | [](Demo.Accounts.NewUser.html#check_atomic/2)
1635 | 
1636 | # check\_atomic(value, constraints)
1637 | 
1638 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1639 | 
1640 | [](Demo.Accounts.NewUser.html#default_short_name/0)
1641 | 
1642 | # default\_short\_name()
1643 | 
1644 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1)
1645 | 
1646 | [](Demo.Accounts.NewUser.html#dump_to_native/2)
1647 | 
1648 | # dump\_to\_native(value, \_)
1649 | 
1650 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1651 | 
1652 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
1653 | 
1654 | [](Demo.Accounts.NewUser.html#fetch_key/2)
1655 | 
1656 | # fetch\_key(map, atom)
1657 | 
1658 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1659 | 
1660 | [](Demo.Accounts.NewUser.html#get_rewrites/4)
1661 | 
1662 | # get\_rewrites(merged\_load, calculation, path, \_)
1663 | 
1664 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1665 | 
1666 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
1667 | 
1668 | [](Demo.Accounts.NewUser.html#handle_change/3)
1669 | 
1670 | # handle\_change(old\_value, new\_value, constraints)
1671 | 
1672 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1673 | 
1674 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
1675 | 
1676 | [](Demo.Accounts.NewUser.html#handle_change?/0)
1677 | 
1678 | # handle\_change?()
1679 | 
1680 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1)
1681 | 
1682 | [](Demo.Accounts.NewUser.html#handle_change_array/3)
1683 | 
1684 | # handle\_change\_array(old\_values, new\_values, constraints)
1685 | 
1686 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1687 | 
1688 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
1689 | 
1690 | [](Demo.Accounts.NewUser.html#input/1)
1691 | 
1692 | # input(opts)
1693 | 
1694 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1)
1695 | 
1696 | ```
1697 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
1698 | ```
1699 | 
1700 | Validates that the keys in the provided input are valid for at least one action on the resource.
1701 | 
1702 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
1703 | 
1704 | ```
1705 | Resource
1706 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
1707 | |> Ash.create()
1708 | ```
1709 | 
1710 | [](Demo.Accounts.NewUser.html#input/2)
1711 | 
1712 | # input(opts, action)
1713 | 
1714 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1)
1715 | 
1716 | ```
1717 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
1718 | ```
1719 | 
1720 | Same as [`input/1`](Demo.Accounts.NewUser.html#input/1), except restricts the keys to values accepted by the action provided.
1721 | 
1722 | [](Demo.Accounts.NewUser.html#load/4)
1723 | 
1724 | # load(record, load, constraints, context)
1725 | 
1726 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1727 | 
1728 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
1729 | 
1730 | [](Demo.Accounts.NewUser.html#prepare_change/3)
1731 | 
1732 | # prepare\_change(old\_value, new\_value, constraints)
1733 | 
1734 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1735 | 
1736 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
1737 | 
1738 | [](Demo.Accounts.NewUser.html#prepare_change?/0)
1739 | 
1740 | # prepare\_change?()
1741 | 
1742 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1)
1743 | 
1744 | [](Demo.Accounts.NewUser.html#prepare_change_array/3)
1745 | 
1746 | # prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)
1747 | 
1748 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1749 | 
1750 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
1751 | 
1752 | [](Demo.Accounts.NewUser.html#primary_key_matches?/2)
1753 | 
1754 | # primary\_key\_matches?(left, right)
1755 | 
1756 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L1)
1757 | 
1758 | [](Demo.Accounts.NewUser.html#rewrite/3)
1759 | 
1760 | # rewrite(value, rewrites, constraints)
1761 | 
1762 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1763 | 
1764 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
1765 | 
1766 | [](Demo.Accounts.NewUser.html#storage_type/1)
1767 | 
1768 | # storage\_type(\_)
1769 | 
1770 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/new_user.ex#L5)
1771 | 
1772 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
1773 | 
1774 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
1775 | 
1776 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
1777 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
1778 | 
1779 | [ash\_admin](https://github.com/ash-project/ash_admin)
1780 | 
1781 | v0.12.6
1782 | 
1783 | - Pages
1784 | - Modules
1785 | - Mix Tasks
1786 | 
1787 | <!--THE END-->
1788 | 
1789 | <!--THE END-->
1790 | 
1791 | <!--THE END-->
1792 | 
1793 | Search documentation of ash\_admin
1794 | 
1795 | Settings
1796 | 
1797 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L1 "View Source") Demo.Accounts.Profile (ash\_admin v0.12.6)
1798 | 
1799 | # [](Demo.Accounts.Profile.html#summary)Summary
1800 | 
1801 | ## [Types](Demo.Accounts.Profile.html#types)
1802 | 
1803 | [t()](Demo.Accounts.Profile.html#t:t/0)
1804 | 
1805 | ## [Functions](Demo.Accounts.Profile.html#functions)
1806 | 
1807 | [apply\_constraints\_array(term, constraints)](Demo.Accounts.Profile.html#apply_constraints_array/2)
1808 | 
1809 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
1810 | 
1811 | [cast\_input(input, constraints)](Demo.Accounts.Profile.html#cast_input/2)
1812 | 
1813 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
1814 | 
1815 | [cast\_stored(value, constraints)](Demo.Accounts.Profile.html#cast_stored/2)
1816 | 
1817 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
1818 | 
1819 | [check\_atomic(value, constraints)](Demo.Accounts.Profile.html#check_atomic/2)
1820 | 
1821 | [default\_short\_name()](Demo.Accounts.Profile.html#default_short_name/0)
1822 | 
1823 | [dump\_to\_native(value, \_)](Demo.Accounts.Profile.html#dump_to_native/2)
1824 | 
1825 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
1826 | 
1827 | [fetch\_key(map, atom)](Demo.Accounts.Profile.html#fetch_key/2)
1828 | 
1829 | [get\_rewrites(merged\_load, calculation, path, \_)](Demo.Accounts.Profile.html#get_rewrites/4)
1830 | 
1831 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
1832 | 
1833 | [handle\_change(old\_value, new\_value, constraints)](Demo.Accounts.Profile.html#handle_change/3)
1834 | 
1835 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
1836 | 
1837 | [handle\_change?()](Demo.Accounts.Profile.html#handle_change?/0)
1838 | 
1839 | [handle\_change\_array(old\_values, new\_values, constraints)](Demo.Accounts.Profile.html#handle_change_array/3)
1840 | 
1841 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
1842 | 
1843 | [input(opts)](Demo.Accounts.Profile.html#input/1)
1844 | 
1845 | Validates that the keys in the provided input are valid for at least one action on the resource.
1846 | 
1847 | [input(opts, action)](Demo.Accounts.Profile.html#input/2)
1848 | 
1849 | Same as [`input/1`](Demo.Accounts.Profile.html#input/1), except restricts the keys to values accepted by the action provided.
1850 | 
1851 | [load(record, load, constraints, context)](Demo.Accounts.Profile.html#load/4)
1852 | 
1853 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
1854 | 
1855 | [prepare\_change(old\_value, new\_value, constraints)](Demo.Accounts.Profile.html#prepare_change/3)
1856 | 
1857 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
1858 | 
1859 | [prepare\_change?()](Demo.Accounts.Profile.html#prepare_change?/0)
1860 | 
1861 | [prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)](Demo.Accounts.Profile.html#prepare_change_array/3)
1862 | 
1863 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
1864 | 
1865 | [rewrite(value, rewrites, constraints)](Demo.Accounts.Profile.html#rewrite/3)
1866 | 
1867 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
1868 | 
1869 | [storage\_type(\_)](Demo.Accounts.Profile.html#storage_type/1)
1870 | 
1871 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
1872 | 
1873 | # [](Demo.Accounts.Profile.html#types)Types
1874 | 
1875 | [](Demo.Accounts.Profile.html#t:t/0)
1876 | 
1877 | # t()
1878 | 
1879 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L1)
1880 | 
1881 | ```
1882 | @type t() :: %Demo.Accounts.Profile{
1883 |   __lateral_join_source__: term(),
1884 |   __meta__: term(),
1885 |   __metadata__: term(),
1886 |   __order__: term(),
1887 |   aggregates: term(),
1888 |   bio: term(),
1889 |   calculations: term(),
1890 |   history: term(),
1891 |   metadata: term(),
1892 |   nested_embed: term(),
1893 |   tags: term()
1894 | }
1895 | ```
1896 | 
1897 | # [](Demo.Accounts.Profile.html#functions)Functions
1898 | 
1899 | [](Demo.Accounts.Profile.html#apply_constraints_array/2)
1900 | 
1901 | # apply\_constraints\_array(term, constraints)
1902 | 
1903 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1904 | 
1905 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
1906 | 
1907 | [](Demo.Accounts.Profile.html#cast_input/2)
1908 | 
1909 | # cast\_input(input, constraints)
1910 | 
1911 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1912 | 
1913 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
1914 | 
1915 | [](Demo.Accounts.Profile.html#cast_stored/2)
1916 | 
1917 | # cast\_stored(value, constraints)
1918 | 
1919 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1920 | 
1921 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
1922 | 
1923 | [](Demo.Accounts.Profile.html#check_atomic/2)
1924 | 
1925 | # check\_atomic(value, constraints)
1926 | 
1927 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1928 | 
1929 | [](Demo.Accounts.Profile.html#default_short_name/0)
1930 | 
1931 | # default\_short\_name()
1932 | 
1933 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L1)
1934 | 
1935 | [](Demo.Accounts.Profile.html#dump_to_native/2)
1936 | 
1937 | # dump\_to\_native(value, \_)
1938 | 
1939 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1940 | 
1941 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
1942 | 
1943 | [](Demo.Accounts.Profile.html#fetch_key/2)
1944 | 
1945 | # fetch\_key(map, atom)
1946 | 
1947 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1948 | 
1949 | [](Demo.Accounts.Profile.html#get_rewrites/4)
1950 | 
1951 | # get\_rewrites(merged\_load, calculation, path, \_)
1952 | 
1953 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1954 | 
1955 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
1956 | 
1957 | [](Demo.Accounts.Profile.html#handle_change/3)
1958 | 
1959 | # handle\_change(old\_value, new\_value, constraints)
1960 | 
1961 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1962 | 
1963 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
1964 | 
1965 | [](Demo.Accounts.Profile.html#handle_change?/0)
1966 | 
1967 | # handle\_change?()
1968 | 
1969 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L1)
1970 | 
1971 | [](Demo.Accounts.Profile.html#handle_change_array/3)
1972 | 
1973 | # handle\_change\_array(old\_values, new\_values, constraints)
1974 | 
1975 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
1976 | 
1977 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
1978 | 
1979 | [](Demo.Accounts.Profile.html#input/1)
1980 | 
1981 | # input(opts)
1982 | 
1983 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L1)
1984 | 
1985 | ```
1986 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
1987 | ```
1988 | 
1989 | Validates that the keys in the provided input are valid for at least one action on the resource.
1990 | 
1991 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
1992 | 
1993 | ```
1994 | Resource
1995 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
1996 | |> Ash.create()
1997 | ```
1998 | 
1999 | [](Demo.Accounts.Profile.html#input/2)
2000 | 
2001 | # input(opts, action)
2002 | 
2003 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L1)
2004 | 
2005 | ```
2006 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
2007 | ```
2008 | 
2009 | Same as [`input/1`](Demo.Accounts.Profile.html#input/1), except restricts the keys to values accepted by the action provided.
2010 | 
2011 | [](Demo.Accounts.Profile.html#load/4)
2012 | 
2013 | # load(record, load, constraints, context)
2014 | 
2015 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
2016 | 
2017 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
2018 | 
2019 | [](Demo.Accounts.Profile.html#prepare_change/3)
2020 | 
2021 | # prepare\_change(old\_value, new\_value, constraints)
2022 | 
2023 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
2024 | 
2025 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
2026 | 
2027 | [](Demo.Accounts.Profile.html#prepare_change?/0)
2028 | 
2029 | # prepare\_change?()
2030 | 
2031 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L1)
2032 | 
2033 | [](Demo.Accounts.Profile.html#prepare_change_array/3)
2034 | 
2035 | # prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)
2036 | 
2037 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
2038 | 
2039 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
2040 | 
2041 | [](Demo.Accounts.Profile.html#rewrite/3)
2042 | 
2043 | # rewrite(value, rewrites, constraints)
2044 | 
2045 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
2046 | 
2047 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
2048 | 
2049 | [](Demo.Accounts.Profile.html#storage_type/1)
2050 | 
2051 | # storage\_type(\_)
2052 | 
2053 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/profile.ex#L2)
2054 | 
2055 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
2056 | 
2057 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
2058 | 
2059 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
2060 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
2061 | 
2062 | [ash\_admin](https://github.com/ash-project/ash_admin)
2063 | 
2064 | v0.12.6
2065 | 
2066 | - Pages
2067 | - Modules
2068 | - Mix Tasks
2069 | 
2070 | <!--THE END-->
2071 | 
2072 | <!--THE END-->
2073 | 
2074 | <!--THE END-->
2075 | 
2076 | Search documentation of ash\_admin
2077 | 
2078 | Settings
2079 | 
2080 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/user.ex#L1 "View Source") Demo.Accounts.User (ash\_admin v0.12.6)
2081 | 
2082 | # [](Demo.Accounts.User.html#summary)Summary
2083 | 
2084 | ## [Types](Demo.Accounts.User.html#types)
2085 | 
2086 | [t()](Demo.Accounts.User.html#t:t/0)
2087 | 
2088 | ## [Functions](Demo.Accounts.User.html#functions)
2089 | 
2090 | [default\_short\_name()](Demo.Accounts.User.html#default_short_name/0)
2091 | 
2092 | [input(opts)](Demo.Accounts.User.html#input/1)
2093 | 
2094 | Validates that the keys in the provided input are valid for at least one action on the resource.
2095 | 
2096 | [input(opts, action)](Demo.Accounts.User.html#input/2)
2097 | 
2098 | Same as [`input/1`](Demo.Accounts.User.html#input/1), except restricts the keys to values accepted by the action provided.
2099 | 
2100 | [primary\_key\_matches?(left, right)](Demo.Accounts.User.html#primary_key_matches?/2)
2101 | 
2102 | # [](Demo.Accounts.User.html#types)Types
2103 | 
2104 | [](Demo.Accounts.User.html#t:t/0)
2105 | 
2106 | # t()
2107 | 
2108 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/user.ex#L1)
2109 | 
2110 | ```
2111 | @type t() :: %Demo.Accounts.User{
2112 |   __lateral_join_source__: term(),
2113 |   __meta__: term(),
2114 |   __metadata__: term(),
2115 |   __order__: term(),
2116 |   admin: term(),
2117 |   aggregates: term(),
2118 |   alternate_profiles: term(),
2119 |   api_key: term(),
2120 |   calculations: term(),
2121 |   date_of_birth: term(),
2122 |   first_name: term(),
2123 |   full_name: term(),
2124 |   id: term(),
2125 |   inserted_at: term(),
2126 |   is_super_admin?: term(),
2127 |   last_name: term(),
2128 |   metadata: term(),
2129 |   multi_arguments: term(),
2130 |   nested_embed: term(),
2131 |   org: term(),
2132 |   profile: term(),
2133 |   representative: term(),
2134 |   tags: term(),
2135 |   type: term(),
2136 |   types: term(),
2137 |   updated_at: term()
2138 | }
2139 | ```
2140 | 
2141 | # [](Demo.Accounts.User.html#functions)Functions
2142 | 
2143 | [](Demo.Accounts.User.html#default_short_name/0)
2144 | 
2145 | # default\_short\_name()
2146 | 
2147 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/user.ex#L1)
2148 | 
2149 | [](Demo.Accounts.User.html#input/1)
2150 | 
2151 | # input(opts)
2152 | 
2153 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/user.ex#L1)
2154 | 
2155 | ```
2156 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
2157 | ```
2158 | 
2159 | Validates that the keys in the provided input are valid for at least one action on the resource.
2160 | 
2161 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
2162 | 
2163 | ```
2164 | Resource
2165 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
2166 | |> Ash.create()
2167 | ```
2168 | 
2169 | [](Demo.Accounts.User.html#input/2)
2170 | 
2171 | # input(opts, action)
2172 | 
2173 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/user.ex#L1)
2174 | 
2175 | ```
2176 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
2177 | ```
2178 | 
2179 | Same as [`input/1`](Demo.Accounts.User.html#input/1), except restricts the keys to values accepted by the action provided.
2180 | 
2181 | [](Demo.Accounts.User.html#primary_key_matches?/2)
2182 | 
2183 | # primary\_key\_matches?(left, right)
2184 | 
2185 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/resources/user.ex#L1)
2186 | 
2187 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
2188 | 
2189 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
2190 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
2191 | 
2192 | [ash\_admin](https://github.com/ash-project/ash_admin)
2193 | 
2194 | v0.12.6
2195 | 
2196 | - Pages
2197 | - Modules
2198 | - Mix Tasks
2199 | 
2200 | <!--THE END-->
2201 | 
2202 | <!--THE END-->
2203 | 
2204 | <!--THE END-->
2205 | 
2206 | Search documentation of ash\_admin
2207 | 
2208 | Settings
2209 | 
2210 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/calculations/concat.ex#L1 "View Source") Demo.Calculations.Concat (ash\_admin v0.12.6)
2211 | 
2212 | # [](Demo.Calculations.Concat.html#summary)Summary
2213 | 
2214 | ## [Functions](Demo.Calculations.Concat.html#functions)
2215 | 
2216 | [describe(opts)](Demo.Calculations.Concat.html#describe/1)
2217 | 
2218 | Callback implementation for [`Ash.Resource.Calculation.describe/1`](../ash/3.4.54/Ash.Resource.Calculation.html#c:describe/1).
2219 | 
2220 | [has\_calculate?()](Demo.Calculations.Concat.html#has_calculate?/0)
2221 | 
2222 | [has\_expression?()](Demo.Calculations.Concat.html#has_expression?/0)
2223 | 
2224 | Callback implementation for [`Ash.Resource.Calculation.has_expression?/0`](../ash/3.4.54/Ash.Resource.Calculation.html#c:has_expression?/0).
2225 | 
2226 | [strict\_loads?()](Demo.Calculations.Concat.html#strict_loads?/0)
2227 | 
2228 | Callback implementation for [`Ash.Resource.Calculation.strict_loads?/0`](../ash/3.4.54/Ash.Resource.Calculation.html#c:strict_loads?/0).
2229 | 
2230 | # [](Demo.Calculations.Concat.html#functions)Functions
2231 | 
2232 | [](Demo.Calculations.Concat.html#describe/1)
2233 | 
2234 | # describe(opts)
2235 | 
2236 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/calculations/concat.ex#L2)
2237 | 
2238 | Callback implementation for [`Ash.Resource.Calculation.describe/1`](../ash/3.4.54/Ash.Resource.Calculation.html#c:describe/1).
2239 | 
2240 | [](Demo.Calculations.Concat.html#has_calculate?/0)
2241 | 
2242 | # has\_calculate?()
2243 | 
2244 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/calculations/concat.ex#L1)
2245 | 
2246 | [](Demo.Calculations.Concat.html#has_expression?/0)
2247 | 
2248 | # has\_expression?()
2249 | 
2250 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/calculations/concat.ex#L1)
2251 | 
2252 | Callback implementation for [`Ash.Resource.Calculation.has_expression?/0`](../ash/3.4.54/Ash.Resource.Calculation.html#c:has_expression?/0).
2253 | 
2254 | [](Demo.Calculations.Concat.html#strict_loads?/0)
2255 | 
2256 | # strict\_loads?()
2257 | 
2258 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/accounts/calculations/concat.ex#L1)
2259 | 
2260 | Callback implementation for [`Ash.Resource.Calculation.strict_loads?/0`](../ash/3.4.54/Ash.Resource.Calculation.html#c:strict_loads?/0).
2261 | 
2262 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
2263 | 
2264 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
2265 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
2266 | 
2267 | [ash\_admin](https://github.com/ash-project/ash_admin)
2268 | 
2269 | v0.12.6
2270 | 
2271 | - Pages
2272 | - Modules
2273 | - Mix Tasks
2274 | 
2275 | <!--THE END-->
2276 | 
2277 | <!--THE END-->
2278 | 
2279 | <!--THE END-->
2280 | 
2281 | Search documentation of ash\_admin
2282 | 
2283 | Settings
2284 | 
2285 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1 "View Source") Demo.Repo (ash\_admin v0.12.6)
2286 | 
2287 | # [](Demo.Repo.html#summary)Summary
2288 | 
2289 | ## [Functions](Demo.Repo.html#functions)
2290 | 
2291 | [aggregate(queryable, aggregate, opts \\\\ \[\])](Demo.Repo.html#aggregate/3)
2292 | 
2293 | Callback implementation for [`Ecto.Repo.aggregate/3`](../ecto/3.12.5/Ecto.Repo.html#c:aggregate/3).
2294 | 
2295 | [aggregate(queryable, aggregate, field, opts)](Demo.Repo.html#aggregate/4)
2296 | 
2297 | Callback implementation for [`Ecto.Repo.aggregate/4`](../ecto/3.12.5/Ecto.Repo.html#c:aggregate/4).
2298 | 
2299 | [all(queryable, opts \\\\ \[\])](Demo.Repo.html#all/2)
2300 | 
2301 | Callback implementation for [`Ecto.Repo.all/2`](../ecto/3.12.5/Ecto.Repo.html#c:all/2).
2302 | 
2303 | [all\_tenants()](Demo.Repo.html#all_tenants/0)
2304 | 
2305 | Callback implementation for [`AshPostgres.Repo.all_tenants/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:all_tenants/0).
2306 | 
2307 | [checked\_out?()](Demo.Repo.html#checked_out?/0)
2308 | 
2309 | Callback implementation for [`Ecto.Repo.checked_out?/0`](../ecto/3.12.5/Ecto.Repo.html#c:checked_out?/0).
2310 | 
2311 | [checkout(fun, opts \\\\ \[\])](Demo.Repo.html#checkout/2)
2312 | 
2313 | Callback implementation for [`Ecto.Repo.checkout/2`](../ecto/3.12.5/Ecto.Repo.html#c:checkout/2).
2314 | 
2315 | [child\_spec(opts)](Demo.Repo.html#child_spec/1)
2316 | 
2317 | [config()](Demo.Repo.html#config/0)
2318 | 
2319 | Callback implementation for [`Ecto.Repo.config/0`](../ecto/3.12.5/Ecto.Repo.html#c:config/0).
2320 | 
2321 | [create?()](Demo.Repo.html#create?/0)
2322 | 
2323 | Callback implementation for [`AshPostgres.Repo.create?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:create?/0).
2324 | 
2325 | [default\_options(operation)](Demo.Repo.html#default_options/1)
2326 | 
2327 | Callback implementation for [`Ecto.Repo.default_options/1`](../ecto/3.12.5/Ecto.Repo.html#c:default_options/1).
2328 | 
2329 | [default\_prefix()](Demo.Repo.html#default_prefix/0)
2330 | 
2331 | Callback implementation for [`AshPostgres.Repo.default_prefix/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:default_prefix/0).
2332 | 
2333 | [delete(struct, opts \\\\ \[\])](Demo.Repo.html#delete/2)
2334 | 
2335 | Callback implementation for [`Ecto.Repo.delete/2`](../ecto/3.12.5/Ecto.Repo.html#c:delete/2).
2336 | 
2337 | [delete!(struct, opts \\\\ \[\])](Demo.Repo.html#delete!/2)
2338 | 
2339 | Callback implementation for [`Ecto.Repo.delete!/2`](../ecto/3.12.5/Ecto.Repo.html#c:delete!/2).
2340 | 
2341 | [delete\_all(queryable, opts \\\\ \[\])](Demo.Repo.html#delete_all/2)
2342 | 
2343 | Callback implementation for [`Ecto.Repo.delete_all/2`](../ecto/3.12.5/Ecto.Repo.html#c:delete_all/2).
2344 | 
2345 | [disconnect\_all(interval, opts \\\\ \[\])](Demo.Repo.html#disconnect_all/2)
2346 | 
2347 | A convenience function for SQL-based repositories that forces all connections in the pool to disconnect within the given interval.
2348 | 
2349 | [drop?()](Demo.Repo.html#drop?/0)
2350 | 
2351 | Callback implementation for [`AshPostgres.Repo.drop?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:drop?/0).
2352 | 
2353 | [exists?(queryable, opts \\\\ \[\])](Demo.Repo.html#exists?/2)
2354 | 
2355 | Callback implementation for [`Ecto.Repo.exists?/2`](../ecto/3.12.5/Ecto.Repo.html#c:exists?/2).
2356 | 
2357 | [explain(operation, queryable, opts \\\\ \[\])](Demo.Repo.html#explain/3)
2358 | 
2359 | A convenience function for SQL-based repositories that executes an EXPLAIN statement or similar depending on the adapter to obtain statistics for the given query.
2360 | 
2361 | [from\_ecto(other)](Demo.Repo.html#from_ecto/1)
2362 | 
2363 | [get(queryable, id, opts \\\\ \[\])](Demo.Repo.html#get/3)
2364 | 
2365 | Callback implementation for [`Ecto.Repo.get/3`](../ecto/3.12.5/Ecto.Repo.html#c:get/3).
2366 | 
2367 | [get!(queryable, id, opts \\\\ \[\])](Demo.Repo.html#get!/3)
2368 | 
2369 | Callback implementation for [`Ecto.Repo.get!/3`](../ecto/3.12.5/Ecto.Repo.html#c:get!/3).
2370 | 
2371 | [get\_by(queryable, clauses, opts \\\\ \[\])](Demo.Repo.html#get_by/3)
2372 | 
2373 | Callback implementation for [`Ecto.Repo.get_by/3`](../ecto/3.12.5/Ecto.Repo.html#c:get_by/3).
2374 | 
2375 | [get\_by!(queryable, clauses, opts \\\\ \[\])](Demo.Repo.html#get_by!/3)
2376 | 
2377 | Callback implementation for [`Ecto.Repo.get_by!/3`](../ecto/3.12.5/Ecto.Repo.html#c:get_by!/3).
2378 | 
2379 | [get\_dynamic\_repo()](Demo.Repo.html#get_dynamic_repo/0)
2380 | 
2381 | Callback implementation for [`Ecto.Repo.get_dynamic_repo/0`](../ecto/3.12.5/Ecto.Repo.html#c:get_dynamic_repo/0).
2382 | 
2383 | [in\_transaction?()](Demo.Repo.html#in_transaction?/0)
2384 | 
2385 | Callback implementation for [`Ecto.Repo.in_transaction?/0`](../ecto/3.12.5/Ecto.Repo.html#c:in_transaction?/0).
2386 | 
2387 | [init(type, config)](Demo.Repo.html#init/2)
2388 | 
2389 | Callback implementation for [`Ecto.Repo.init/2`](../ecto/3.12.5/Ecto.Repo.html#c:init/2).
2390 | 
2391 | [insert(struct, opts \\\\ \[\])](Demo.Repo.html#insert/2)
2392 | 
2393 | Callback implementation for [`Ecto.Repo.insert/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert/2).
2394 | 
2395 | [insert!(struct, opts \\\\ \[\])](Demo.Repo.html#insert!/2)
2396 | 
2397 | Callback implementation for [`Ecto.Repo.insert!/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert!/2).
2398 | 
2399 | [insert\_all(schema\_or\_source, entries, opts \\\\ \[\])](Demo.Repo.html#insert_all/3)
2400 | 
2401 | Callback implementation for [`Ecto.Repo.insert_all/3`](../ecto/3.12.5/Ecto.Repo.html#c:insert_all/3).
2402 | 
2403 | [insert\_or\_update(changeset, opts \\\\ \[\])](Demo.Repo.html#insert_or_update/2)
2404 | 
2405 | Callback implementation for [`Ecto.Repo.insert_or_update/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert_or_update/2).
2406 | 
2407 | [insert\_or\_update!(changeset, opts \\\\ \[\])](Demo.Repo.html#insert_or_update!/2)
2408 | 
2409 | Callback implementation for [`Ecto.Repo.insert_or_update!/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert_or_update!/2).
2410 | 
2411 | [installed\_extensions()](Demo.Repo.html#installed_extensions/0)
2412 | 
2413 | Callback implementation for [`AshPostgres.Repo.installed_extensions/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:installed_extensions/0).
2414 | 
2415 | [load(schema\_or\_types, data)](Demo.Repo.html#load/2)
2416 | 
2417 | Callback implementation for [`Ecto.Repo.load/2`](../ecto/3.12.5/Ecto.Repo.html#c:load/2).
2418 | 
2419 | [migrations\_path()](Demo.Repo.html#migrations_path/0)
2420 | 
2421 | Callback implementation for [`AshPostgres.Repo.migrations_path/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:migrations_path/0).
2422 | 
2423 | [min\_pg\_version()](Demo.Repo.html#min_pg_version/0)
2424 | 
2425 | Callback implementation for [`AshPostgres.Repo.min_pg_version/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:min_pg_version/0).
2426 | 
2427 | [on\_transaction\_begin(reason)](Demo.Repo.html#on_transaction_begin/1)
2428 | 
2429 | Callback implementation for [`AshPostgres.Repo.on_transaction_begin/1`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:on_transaction_begin/1).
2430 | 
2431 | [one(queryable, opts \\\\ \[\])](Demo.Repo.html#one/2)
2432 | 
2433 | Callback implementation for [`Ecto.Repo.one/2`](../ecto/3.12.5/Ecto.Repo.html#c:one/2).
2434 | 
2435 | [one!(queryable, opts \\\\ \[\])](Demo.Repo.html#one!/2)
2436 | 
2437 | Callback implementation for [`Ecto.Repo.one!/2`](../ecto/3.12.5/Ecto.Repo.html#c:one!/2).
2438 | 
2439 | [override\_migration\_type(type)](Demo.Repo.html#override_migration_type/1)
2440 | 
2441 | Callback implementation for [`AshPostgres.Repo.override_migration_type/1`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:override_migration_type/1).
2442 | 
2443 | [prefer\_transaction?()](Demo.Repo.html#prefer_transaction?/0)
2444 | 
2445 | Callback implementation for [`AshPostgres.Repo.prefer_transaction?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:prefer_transaction?/0).
2446 | 
2447 | [prefer\_transaction\_for\_atomic\_updates?()](Demo.Repo.html#prefer_transaction_for_atomic_updates?/0)
2448 | 
2449 | Callback implementation for [`AshPostgres.Repo.prefer_transaction_for_atomic_updates?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:prefer_transaction_for_atomic_updates?/0).
2450 | 
2451 | [preload(struct\_or\_structs\_or\_nil, preloads, opts \\\\ \[\])](Demo.Repo.html#preload/3)
2452 | 
2453 | Callback implementation for [`Ecto.Repo.preload/3`](../ecto/3.12.5/Ecto.Repo.html#c:preload/3).
2454 | 
2455 | [prepare\_query(operation, query, opts)](Demo.Repo.html#prepare_query/3)
2456 | 
2457 | Callback implementation for [`Ecto.Repo.prepare_query/3`](../ecto/3.12.5/Ecto.Repo.html#c:prepare_query/3).
2458 | 
2459 | [put\_dynamic\_repo(dynamic)](Demo.Repo.html#put_dynamic_repo/1)
2460 | 
2461 | Callback implementation for [`Ecto.Repo.put_dynamic_repo/1`](../ecto/3.12.5/Ecto.Repo.html#c:put_dynamic_repo/1).
2462 | 
2463 | [query(sql, params \\\\ \[\], opts \\\\ \[\])](Demo.Repo.html#query/3)
2464 | 
2465 | A convenience function for SQL-based repositories that executes the given query.
2466 | 
2467 | [query!(sql, params \\\\ \[\], opts \\\\ \[\])](Demo.Repo.html#query!/3)
2468 | 
2469 | A convenience function for SQL-based repositories that executes the given query.
2470 | 
2471 | [query\_many(sql, params \\\\ \[\], opts \\\\ \[\])](Demo.Repo.html#query_many/3)
2472 | 
2473 | A convenience function for SQL-based repositories that executes the given multi-result query.
2474 | 
2475 | [query\_many!(sql, params \\\\ \[\], opts \\\\ \[\])](Demo.Repo.html#query_many!/3)
2476 | 
2477 | A convenience function for SQL-based repositories that executes the given multi-result query.
2478 | 
2479 | [reload(queryable, opts \\\\ \[\])](Demo.Repo.html#reload/2)
2480 | 
2481 | Callback implementation for [`Ecto.Repo.reload/2`](../ecto/3.12.5/Ecto.Repo.html#c:reload/2).
2482 | 
2483 | [reload!(queryable, opts \\\\ \[\])](Demo.Repo.html#reload!/2)
2484 | 
2485 | Callback implementation for [`Ecto.Repo.reload!/2`](../ecto/3.12.5/Ecto.Repo.html#c:reload!/2).
2486 | 
2487 | [rollback(value)](Demo.Repo.html#rollback/1)
2488 | 
2489 | Callback implementation for [`Ecto.Repo.rollback/1`](../ecto/3.12.5/Ecto.Repo.html#c:rollback/1).
2490 | 
2491 | [start\_link(opts \\\\ \[\])](Demo.Repo.html#start_link/1)
2492 | 
2493 | Callback implementation for [`Ecto.Repo.start_link/1`](../ecto/3.12.5/Ecto.Repo.html#c:start_link/1).
2494 | 
2495 | [stop(timeout \\\\ 5000)](Demo.Repo.html#stop/1)
2496 | 
2497 | Callback implementation for [`Ecto.Repo.stop/1`](../ecto/3.12.5/Ecto.Repo.html#c:stop/1).
2498 | 
2499 | [stream(queryable, opts \\\\ \[\])](Demo.Repo.html#stream/2)
2500 | 
2501 | Callback implementation for [`Ecto.Repo.stream/2`](../ecto/3.12.5/Ecto.Repo.html#c:stream/2).
2502 | 
2503 | [tenant\_migrations\_path()](Demo.Repo.html#tenant_migrations_path/0)
2504 | 
2505 | Callback implementation for [`AshPostgres.Repo.tenant_migrations_path/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:tenant_migrations_path/0).
2506 | 
2507 | [to\_ecto(value)](Demo.Repo.html#to_ecto/1)
2508 | 
2509 | [to\_sql(operation, queryable)](Demo.Repo.html#to_sql/2)
2510 | 
2511 | A convenience function for SQL-based repositories that translates the given query to SQL.
2512 | 
2513 | [transaction(fun\_or\_multi, opts \\\\ \[\])](Demo.Repo.html#transaction/2)
2514 | 
2515 | Callback implementation for [`Ecto.Repo.transaction/2`](../ecto/3.12.5/Ecto.Repo.html#c:transaction/2).
2516 | 
2517 | [transaction!(fun)](Demo.Repo.html#transaction!/1)
2518 | 
2519 | [update(struct, opts \\\\ \[\])](Demo.Repo.html#update/2)
2520 | 
2521 | Callback implementation for [`Ecto.Repo.update/2`](../ecto/3.12.5/Ecto.Repo.html#c:update/2).
2522 | 
2523 | [update!(struct, opts \\\\ \[\])](Demo.Repo.html#update!/2)
2524 | 
2525 | Callback implementation for [`Ecto.Repo.update!/2`](../ecto/3.12.5/Ecto.Repo.html#c:update!/2).
2526 | 
2527 | [update\_all(queryable, updates, opts \\\\ \[\])](Demo.Repo.html#update_all/3)
2528 | 
2529 | Callback implementation for [`Ecto.Repo.update_all/3`](../ecto/3.12.5/Ecto.Repo.html#c:update_all/3).
2530 | 
2531 | # [](Demo.Repo.html#functions)Functions
2532 | 
2533 | [](Demo.Repo.html#aggregate/3)
2534 | 
2535 | # aggregate(queryable, aggregate, opts \\\\ \[])
2536 | 
2537 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2538 | 
2539 | Callback implementation for [`Ecto.Repo.aggregate/3`](../ecto/3.12.5/Ecto.Repo.html#c:aggregate/3).
2540 | 
2541 | [](Demo.Repo.html#aggregate/4)
2542 | 
2543 | # aggregate(queryable, aggregate, field, opts)
2544 | 
2545 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2546 | 
2547 | Callback implementation for [`Ecto.Repo.aggregate/4`](../ecto/3.12.5/Ecto.Repo.html#c:aggregate/4).
2548 | 
2549 | [](Demo.Repo.html#all/2)
2550 | 
2551 | # all(queryable, opts \\\\ \[])
2552 | 
2553 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2554 | 
2555 | Callback implementation for [`Ecto.Repo.all/2`](../ecto/3.12.5/Ecto.Repo.html#c:all/2).
2556 | 
2557 | [](Demo.Repo.html#all_tenants/0)
2558 | 
2559 | # all\_tenants()
2560 | 
2561 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2562 | 
2563 | Callback implementation for [`AshPostgres.Repo.all_tenants/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:all_tenants/0).
2564 | 
2565 | [](Demo.Repo.html#checked_out?/0)
2566 | 
2567 | # checked\_out?()
2568 | 
2569 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2570 | 
2571 | Callback implementation for [`Ecto.Repo.checked_out?/0`](../ecto/3.12.5/Ecto.Repo.html#c:checked_out?/0).
2572 | 
2573 | [](Demo.Repo.html#checkout/2)
2574 | 
2575 | # checkout(fun, opts \\\\ \[])
2576 | 
2577 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2578 | 
2579 | Callback implementation for [`Ecto.Repo.checkout/2`](../ecto/3.12.5/Ecto.Repo.html#c:checkout/2).
2580 | 
2581 | [](Demo.Repo.html#child_spec/1)
2582 | 
2583 | # child\_spec(opts)
2584 | 
2585 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2586 | 
2587 | [](Demo.Repo.html#config/0)
2588 | 
2589 | # config()
2590 | 
2591 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2592 | 
2593 | Callback implementation for [`Ecto.Repo.config/0`](../ecto/3.12.5/Ecto.Repo.html#c:config/0).
2594 | 
2595 | [](Demo.Repo.html#create?/0)
2596 | 
2597 | # create?()
2598 | 
2599 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2600 | 
2601 | Callback implementation for [`AshPostgres.Repo.create?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:create?/0).
2602 | 
2603 | [](Demo.Repo.html#default_options/1)
2604 | 
2605 | # default\_options(operation)
2606 | 
2607 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2608 | 
2609 | Callback implementation for [`Ecto.Repo.default_options/1`](../ecto/3.12.5/Ecto.Repo.html#c:default_options/1).
2610 | 
2611 | [](Demo.Repo.html#default_prefix/0)
2612 | 
2613 | # default\_prefix()
2614 | 
2615 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2616 | 
2617 | Callback implementation for [`AshPostgres.Repo.default_prefix/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:default_prefix/0).
2618 | 
2619 | [](Demo.Repo.html#delete/2)
2620 | 
2621 | # delete(struct, opts \\\\ \[])
2622 | 
2623 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2624 | 
2625 | Callback implementation for [`Ecto.Repo.delete/2`](../ecto/3.12.5/Ecto.Repo.html#c:delete/2).
2626 | 
2627 | [](Demo.Repo.html#delete!/2)
2628 | 
2629 | # delete!(struct, opts \\\\ \[])
2630 | 
2631 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2632 | 
2633 | Callback implementation for [`Ecto.Repo.delete!/2`](../ecto/3.12.5/Ecto.Repo.html#c:delete!/2).
2634 | 
2635 | [](Demo.Repo.html#delete_all/2)
2636 | 
2637 | # delete\_all(queryable, opts \\\\ \[])
2638 | 
2639 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2640 | 
2641 | Callback implementation for [`Ecto.Repo.delete_all/2`](../ecto/3.12.5/Ecto.Repo.html#c:delete_all/2).
2642 | 
2643 | [](Demo.Repo.html#disconnect_all/2)
2644 | 
2645 | # disconnect\_all(interval, opts \\\\ \[])
2646 | 
2647 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1)
2648 | 
2649 | A convenience function for SQL-based repositories that forces all connections in the pool to disconnect within the given interval.
2650 | 
2651 | See [`Ecto.Adapters.SQL.disconnect_all/3`](../ecto_sql/3.12.1/Ecto.Adapters.SQL.html#disconnect_all/3) for more information.
2652 | 
2653 | [](Demo.Repo.html#drop?/0)
2654 | 
2655 | # drop?()
2656 | 
2657 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2658 | 
2659 | Callback implementation for [`AshPostgres.Repo.drop?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:drop?/0).
2660 | 
2661 | [](Demo.Repo.html#exists?/2)
2662 | 
2663 | # exists?(queryable, opts \\\\ \[])
2664 | 
2665 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2666 | 
2667 | Callback implementation for [`Ecto.Repo.exists?/2`](../ecto/3.12.5/Ecto.Repo.html#c:exists?/2).
2668 | 
2669 | [](Demo.Repo.html#explain/3)
2670 | 
2671 | # explain(operation, queryable, opts \\\\ \[])
2672 | 
2673 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1)
2674 | 
2675 | A convenience function for SQL-based repositories that executes an EXPLAIN statement or similar depending on the adapter to obtain statistics for the given query.
2676 | 
2677 | See [`Ecto.Adapters.SQL.explain/4`](../ecto_sql/3.12.1/Ecto.Adapters.SQL.html#explain/4) for more information.
2678 | 
2679 | [](Demo.Repo.html#from_ecto/1)
2680 | 
2681 | # from\_ecto(other)
2682 | 
2683 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2684 | 
2685 | [](Demo.Repo.html#get/3)
2686 | 
2687 | # get(queryable, id, opts \\\\ \[])
2688 | 
2689 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2690 | 
2691 | Callback implementation for [`Ecto.Repo.get/3`](../ecto/3.12.5/Ecto.Repo.html#c:get/3).
2692 | 
2693 | [](Demo.Repo.html#get!/3)
2694 | 
2695 | # get!(queryable, id, opts \\\\ \[])
2696 | 
2697 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2698 | 
2699 | Callback implementation for [`Ecto.Repo.get!/3`](../ecto/3.12.5/Ecto.Repo.html#c:get!/3).
2700 | 
2701 | [](Demo.Repo.html#get_by/3)
2702 | 
2703 | # get\_by(queryable, clauses, opts \\\\ \[])
2704 | 
2705 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2706 | 
2707 | Callback implementation for [`Ecto.Repo.get_by/3`](../ecto/3.12.5/Ecto.Repo.html#c:get_by/3).
2708 | 
2709 | [](Demo.Repo.html#get_by!/3)
2710 | 
2711 | # get\_by!(queryable, clauses, opts \\\\ \[])
2712 | 
2713 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2714 | 
2715 | Callback implementation for [`Ecto.Repo.get_by!/3`](../ecto/3.12.5/Ecto.Repo.html#c:get_by!/3).
2716 | 
2717 | [](Demo.Repo.html#get_dynamic_repo/0)
2718 | 
2719 | # get\_dynamic\_repo()
2720 | 
2721 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2722 | 
2723 | Callback implementation for [`Ecto.Repo.get_dynamic_repo/0`](../ecto/3.12.5/Ecto.Repo.html#c:get_dynamic_repo/0).
2724 | 
2725 | [](Demo.Repo.html#in_transaction?/0)
2726 | 
2727 | # in\_transaction?()
2728 | 
2729 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2730 | 
2731 | Callback implementation for [`Ecto.Repo.in_transaction?/0`](../ecto/3.12.5/Ecto.Repo.html#c:in_transaction?/0).
2732 | 
2733 | [](Demo.Repo.html#init/2)
2734 | 
2735 | # init(type, config)
2736 | 
2737 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2738 | 
2739 | Callback implementation for [`Ecto.Repo.init/2`](../ecto/3.12.5/Ecto.Repo.html#c:init/2).
2740 | 
2741 | [](Demo.Repo.html#insert/2)
2742 | 
2743 | # insert(struct, opts \\\\ \[])
2744 | 
2745 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2746 | 
2747 | Callback implementation for [`Ecto.Repo.insert/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert/2).
2748 | 
2749 | [](Demo.Repo.html#insert!/2)
2750 | 
2751 | # insert!(struct, opts \\\\ \[])
2752 | 
2753 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2754 | 
2755 | Callback implementation for [`Ecto.Repo.insert!/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert!/2).
2756 | 
2757 | [](Demo.Repo.html#insert_all/3)
2758 | 
2759 | # insert\_all(schema\_or\_source, entries, opts \\\\ \[])
2760 | 
2761 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2762 | 
2763 | Callback implementation for [`Ecto.Repo.insert_all/3`](../ecto/3.12.5/Ecto.Repo.html#c:insert_all/3).
2764 | 
2765 | [](Demo.Repo.html#insert_or_update/2)
2766 | 
2767 | # insert\_or\_update(changeset, opts \\\\ \[])
2768 | 
2769 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2770 | 
2771 | Callback implementation for [`Ecto.Repo.insert_or_update/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert_or_update/2).
2772 | 
2773 | [](Demo.Repo.html#insert_or_update!/2)
2774 | 
2775 | # insert\_or\_update!(changeset, opts \\\\ \[])
2776 | 
2777 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2778 | 
2779 | Callback implementation for [`Ecto.Repo.insert_or_update!/2`](../ecto/3.12.5/Ecto.Repo.html#c:insert_or_update!/2).
2780 | 
2781 | [](Demo.Repo.html#installed_extensions/0)
2782 | 
2783 | # installed\_extensions()
2784 | 
2785 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L8)
2786 | 
2787 | Callback implementation for [`AshPostgres.Repo.installed_extensions/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:installed_extensions/0).
2788 | 
2789 | [](Demo.Repo.html#load/2)
2790 | 
2791 | # load(schema\_or\_types, data)
2792 | 
2793 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2794 | 
2795 | Callback implementation for [`Ecto.Repo.load/2`](../ecto/3.12.5/Ecto.Repo.html#c:load/2).
2796 | 
2797 | [](Demo.Repo.html#migrations_path/0)
2798 | 
2799 | # migrations\_path()
2800 | 
2801 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2802 | 
2803 | Callback implementation for [`AshPostgres.Repo.migrations_path/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:migrations_path/0).
2804 | 
2805 | [](Demo.Repo.html#min_pg_version/0)
2806 | 
2807 | # min\_pg\_version()
2808 | 
2809 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L4)
2810 | 
2811 | Callback implementation for [`AshPostgres.Repo.min_pg_version/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:min_pg_version/0).
2812 | 
2813 | [](Demo.Repo.html#on_transaction_begin/1)
2814 | 
2815 | # on\_transaction\_begin(reason)
2816 | 
2817 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2818 | 
2819 | Callback implementation for [`AshPostgres.Repo.on_transaction_begin/1`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:on_transaction_begin/1).
2820 | 
2821 | [](Demo.Repo.html#one/2)
2822 | 
2823 | # one(queryable, opts \\\\ \[])
2824 | 
2825 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2826 | 
2827 | Callback implementation for [`Ecto.Repo.one/2`](../ecto/3.12.5/Ecto.Repo.html#c:one/2).
2828 | 
2829 | [](Demo.Repo.html#one!/2)
2830 | 
2831 | # one!(queryable, opts \\\\ \[])
2832 | 
2833 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2834 | 
2835 | Callback implementation for [`Ecto.Repo.one!/2`](../ecto/3.12.5/Ecto.Repo.html#c:one!/2).
2836 | 
2837 | [](Demo.Repo.html#override_migration_type/1)
2838 | 
2839 | # override\_migration\_type(type)
2840 | 
2841 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2842 | 
2843 | Callback implementation for [`AshPostgres.Repo.override_migration_type/1`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:override_migration_type/1).
2844 | 
2845 | [](Demo.Repo.html#prefer_transaction?/0)
2846 | 
2847 | # prefer\_transaction?()
2848 | 
2849 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2850 | 
2851 | Callback implementation for [`AshPostgres.Repo.prefer_transaction?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:prefer_transaction?/0).
2852 | 
2853 | [](Demo.Repo.html#prefer_transaction_for_atomic_updates?/0)
2854 | 
2855 | # prefer\_transaction\_for\_atomic\_updates?()
2856 | 
2857 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2858 | 
2859 | Callback implementation for [`AshPostgres.Repo.prefer_transaction_for_atomic_updates?/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:prefer_transaction_for_atomic_updates?/0).
2860 | 
2861 | [](Demo.Repo.html#preload/3)
2862 | 
2863 | # preload(struct\_or\_structs\_or\_nil, preloads, opts \\\\ \[])
2864 | 
2865 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2866 | 
2867 | Callback implementation for [`Ecto.Repo.preload/3`](../ecto/3.12.5/Ecto.Repo.html#c:preload/3).
2868 | 
2869 | [](Demo.Repo.html#prepare_query/3)
2870 | 
2871 | # prepare\_query(operation, query, opts)
2872 | 
2873 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2874 | 
2875 | Callback implementation for [`Ecto.Repo.prepare_query/3`](../ecto/3.12.5/Ecto.Repo.html#c:prepare_query/3).
2876 | 
2877 | [](Demo.Repo.html#put_dynamic_repo/1)
2878 | 
2879 | # put\_dynamic\_repo(dynamic)
2880 | 
2881 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2882 | 
2883 | Callback implementation for [`Ecto.Repo.put_dynamic_repo/1`](../ecto/3.12.5/Ecto.Repo.html#c:put_dynamic_repo/1).
2884 | 
2885 | [](Demo.Repo.html#query/3)
2886 | 
2887 | # query(sql, params \\\\ \[], opts \\\\ \[])
2888 | 
2889 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1)
2890 | 
2891 | A convenience function for SQL-based repositories that executes the given query.
2892 | 
2893 | See [`Ecto.Adapters.SQL.query/4`](../ecto_sql/3.12.1/Ecto.Adapters.SQL.html#query/4) for more information.
2894 | 
2895 | [](Demo.Repo.html#query!/3)
2896 | 
2897 | # query!(sql, params \\\\ \[], opts \\\\ \[])
2898 | 
2899 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1)
2900 | 
2901 | A convenience function for SQL-based repositories that executes the given query.
2902 | 
2903 | See [`Ecto.Adapters.SQL.query!/4`](../ecto_sql/3.12.1/Ecto.Adapters.SQL.html#query!/4) for more information.
2904 | 
2905 | [](Demo.Repo.html#query_many/3)
2906 | 
2907 | # query\_many(sql, params \\\\ \[], opts \\\\ \[])
2908 | 
2909 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1)
2910 | 
2911 | A convenience function for SQL-based repositories that executes the given multi-result query.
2912 | 
2913 | See [`Ecto.Adapters.SQL.query_many/4`](../ecto_sql/3.12.1/Ecto.Adapters.SQL.html#query_many/4) for more information.
2914 | 
2915 | [](Demo.Repo.html#query_many!/3)
2916 | 
2917 | # query\_many!(sql, params \\\\ \[], opts \\\\ \[])
2918 | 
2919 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1)
2920 | 
2921 | A convenience function for SQL-based repositories that executes the given multi-result query.
2922 | 
2923 | See [`Ecto.Adapters.SQL.query_many!/4`](../ecto_sql/3.12.1/Ecto.Adapters.SQL.html#query_many!/4) for more information.
2924 | 
2925 | [](Demo.Repo.html#reload/2)
2926 | 
2927 | # reload(queryable, opts \\\\ \[])
2928 | 
2929 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2930 | 
2931 | Callback implementation for [`Ecto.Repo.reload/2`](../ecto/3.12.5/Ecto.Repo.html#c:reload/2).
2932 | 
2933 | [](Demo.Repo.html#reload!/2)
2934 | 
2935 | # reload!(queryable, opts \\\\ \[])
2936 | 
2937 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2938 | 
2939 | Callback implementation for [`Ecto.Repo.reload!/2`](../ecto/3.12.5/Ecto.Repo.html#c:reload!/2).
2940 | 
2941 | [](Demo.Repo.html#rollback/1)
2942 | 
2943 | # rollback(value)
2944 | 
2945 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2946 | 
2947 | ```
2948 | @spec rollback(term()) :: no_return()
2949 | ```
2950 | 
2951 | Callback implementation for [`Ecto.Repo.rollback/1`](../ecto/3.12.5/Ecto.Repo.html#c:rollback/1).
2952 | 
2953 | [](Demo.Repo.html#start_link/1)
2954 | 
2955 | # start\_link(opts \\\\ \[])
2956 | 
2957 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2958 | 
2959 | Callback implementation for [`Ecto.Repo.start_link/1`](../ecto/3.12.5/Ecto.Repo.html#c:start_link/1).
2960 | 
2961 | [](Demo.Repo.html#stop/1)
2962 | 
2963 | # stop(timeout \\\\ 5000)
2964 | 
2965 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2966 | 
2967 | Callback implementation for [`Ecto.Repo.stop/1`](../ecto/3.12.5/Ecto.Repo.html#c:stop/1).
2968 | 
2969 | [](Demo.Repo.html#stream/2)
2970 | 
2971 | # stream(queryable, opts \\\\ \[])
2972 | 
2973 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2974 | 
2975 | Callback implementation for [`Ecto.Repo.stream/2`](../ecto/3.12.5/Ecto.Repo.html#c:stream/2).
2976 | 
2977 | [](Demo.Repo.html#tenant_migrations_path/0)
2978 | 
2979 | # tenant\_migrations\_path()
2980 | 
2981 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2982 | 
2983 | Callback implementation for [`AshPostgres.Repo.tenant_migrations_path/0`](../ash_postgres/2.4.21/AshPostgres.Repo.html#c:tenant_migrations_path/0).
2984 | 
2985 | [](Demo.Repo.html#to_ecto/1)
2986 | 
2987 | # to\_ecto(value)
2988 | 
2989 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
2990 | 
2991 | [](Demo.Repo.html#to_sql/2)
2992 | 
2993 | # to\_sql(operation, queryable)
2994 | 
2995 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L1)
2996 | 
2997 | A convenience function for SQL-based repositories that translates the given query to SQL.
2998 | 
2999 | See [`Ecto.Adapters.SQL.to_sql/3`](../ecto_sql/3.12.1/Ecto.Adapters.SQL.html#to_sql/3) for more information.
3000 | 
3001 | [](Demo.Repo.html#transaction/2)
3002 | 
3003 | # transaction(fun\_or\_multi, opts \\\\ \[])
3004 | 
3005 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
3006 | 
3007 | Callback implementation for [`Ecto.Repo.transaction/2`](../ecto/3.12.5/Ecto.Repo.html#c:transaction/2).
3008 | 
3009 | [](Demo.Repo.html#transaction!/1)
3010 | 
3011 | # transaction!(fun)
3012 | 
3013 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
3014 | 
3015 | [](Demo.Repo.html#update/2)
3016 | 
3017 | # update(struct, opts \\\\ \[])
3018 | 
3019 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
3020 | 
3021 | Callback implementation for [`Ecto.Repo.update/2`](../ecto/3.12.5/Ecto.Repo.html#c:update/2).
3022 | 
3023 | [](Demo.Repo.html#update!/2)
3024 | 
3025 | # update!(struct, opts \\\\ \[])
3026 | 
3027 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
3028 | 
3029 | Callback implementation for [`Ecto.Repo.update!/2`](../ecto/3.12.5/Ecto.Repo.html#c:update!/2).
3030 | 
3031 | [](Demo.Repo.html#update_all/3)
3032 | 
3033 | # update\_all(queryable, updates, opts \\\\ \[])
3034 | 
3035 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/repo.ex#L2)
3036 | 
3037 | Callback implementation for [`Ecto.Repo.update_all/3`](../ecto/3.12.5/Ecto.Repo.html#c:update_all/3).
3038 | 
3039 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
3040 | 
3041 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
3042 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
3043 | 
3044 | [ash\_admin](https://github.com/ash-project/ash_admin)
3045 | 
3046 | v0.12.6
3047 | 
3048 | - Pages
3049 | - Modules
3050 | - Mix Tasks
3051 | 
3052 | <!--THE END-->
3053 | 
3054 | <!--THE END-->
3055 | 
3056 | <!--THE END-->
3057 | 
3058 | Search documentation of ash\_admin
3059 | 
3060 | Settings
3061 | 
3062 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/comment.ex#L1 "View Source") Demo.Tickets.Comment (ash\_admin v0.12.6)
3063 | 
3064 | # [](Demo.Tickets.Comment.html#summary)Summary
3065 | 
3066 | ## [Types](Demo.Tickets.Comment.html#types)
3067 | 
3068 | [t()](Demo.Tickets.Comment.html#t:t/0)
3069 | 
3070 | ## [Functions](Demo.Tickets.Comment.html#functions)
3071 | 
3072 | [default\_short\_name()](Demo.Tickets.Comment.html#default_short_name/0)
3073 | 
3074 | [input(opts)](Demo.Tickets.Comment.html#input/1)
3075 | 
3076 | Validates that the keys in the provided input are valid for at least one action on the resource.
3077 | 
3078 | [input(opts, action)](Demo.Tickets.Comment.html#input/2)
3079 | 
3080 | Same as [`input/1`](Demo.Tickets.Comment.html#input/1), except restricts the keys to values accepted by the action provided.
3081 | 
3082 | [primary\_key\_matches?(left, right)](Demo.Tickets.Comment.html#primary_key_matches?/2)
3083 | 
3084 | # [](Demo.Tickets.Comment.html#types)Types
3085 | 
3086 | [](Demo.Tickets.Comment.html#t:t/0)
3087 | 
3088 | # t()
3089 | 
3090 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/comment.ex#L1)
3091 | 
3092 | ```
3093 | @type t() :: %Demo.Tickets.Comment{
3094 |   __lateral_join_source__: term(),
3095 |   __meta__: term(),
3096 |   __metadata__: term(),
3097 |   __order__: term(),
3098 |   aggregates: term(),
3099 |   calculations: term(),
3100 |   comment: term(),
3101 |   commenting_customer: term(),
3102 |   commenting_customer_id: term(),
3103 |   commenting_representative: term(),
3104 |   commenting_representative_id: term(),
3105 |   id: term(),
3106 |   resource_id: term()
3107 | }
3108 | ```
3109 | 
3110 | # [](Demo.Tickets.Comment.html#functions)Functions
3111 | 
3112 | [](Demo.Tickets.Comment.html#default_short_name/0)
3113 | 
3114 | # default\_short\_name()
3115 | 
3116 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/comment.ex#L1)
3117 | 
3118 | [](Demo.Tickets.Comment.html#input/1)
3119 | 
3120 | # input(opts)
3121 | 
3122 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/comment.ex#L1)
3123 | 
3124 | ```
3125 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
3126 | ```
3127 | 
3128 | Validates that the keys in the provided input are valid for at least one action on the resource.
3129 | 
3130 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
3131 | 
3132 | ```
3133 | Resource
3134 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
3135 | |> Ash.create()
3136 | ```
3137 | 
3138 | [](Demo.Tickets.Comment.html#input/2)
3139 | 
3140 | # input(opts, action)
3141 | 
3142 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/comment.ex#L1)
3143 | 
3144 | ```
3145 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
3146 | ```
3147 | 
3148 | Same as [`input/1`](Demo.Tickets.Comment.html#input/1), except restricts the keys to values accepted by the action provided.
3149 | 
3150 | [](Demo.Tickets.Comment.html#primary_key_matches?/2)
3151 | 
3152 | # primary\_key\_matches?(left, right)
3153 | 
3154 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/comment.ex#L1)
3155 | 
3156 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
3157 | 
3158 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
3159 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
3160 | 
3161 | [ash\_admin](https://github.com/ash-project/ash_admin)
3162 | 
3163 | v0.12.6
3164 | 
3165 | - Pages
3166 | - Modules
3167 | - Mix Tasks
3168 | 
3169 | <!--THE END-->
3170 | 
3171 | <!--THE END-->
3172 | 
3173 | <!--THE END-->
3174 | 
3175 | Search documentation of ash\_admin
3176 | 
3177 | Settings
3178 | 
3179 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/customer.ex#L1 "View Source") Demo.Tickets.Customer (ash\_admin v0.12.6)
3180 | 
3181 | # [](Demo.Tickets.Customer.html#summary)Summary
3182 | 
3183 | ## [Types](Demo.Tickets.Customer.html#types)
3184 | 
3185 | [t()](Demo.Tickets.Customer.html#t:t/0)
3186 | 
3187 | ## [Functions](Demo.Tickets.Customer.html#functions)
3188 | 
3189 | [default\_short\_name()](Demo.Tickets.Customer.html#default_short_name/0)
3190 | 
3191 | [input(opts)](Demo.Tickets.Customer.html#input/1)
3192 | 
3193 | Validates that the keys in the provided input are valid for at least one action on the resource.
3194 | 
3195 | [input(opts, action)](Demo.Tickets.Customer.html#input/2)
3196 | 
3197 | Same as [`input/1`](Demo.Tickets.Customer.html#input/1), except restricts the keys to values accepted by the action provided.
3198 | 
3199 | [primary\_key\_matches?(left, right)](Demo.Tickets.Customer.html#primary_key_matches?/2)
3200 | 
3201 | # [](Demo.Tickets.Customer.html#types)Types
3202 | 
3203 | [](Demo.Tickets.Customer.html#t:t/0)
3204 | 
3205 | # t()
3206 | 
3207 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/customer.ex#L1)
3208 | 
3209 | ```
3210 | @type t() :: %Demo.Tickets.Customer{
3211 |   __lateral_join_source__: term(),
3212 |   __meta__: term(),
3213 |   __metadata__: term(),
3214 |   __order__: term(),
3215 |   aggregates: term(),
3216 |   calculations: term(),
3217 |   first_name: term(),
3218 |   id: term(),
3219 |   last_name: term(),
3220 |   reported_tickets: term(),
3221 |   representative: term()
3222 | }
3223 | ```
3224 | 
3225 | # [](Demo.Tickets.Customer.html#functions)Functions
3226 | 
3227 | [](Demo.Tickets.Customer.html#default_short_name/0)
3228 | 
3229 | # default\_short\_name()
3230 | 
3231 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/customer.ex#L1)
3232 | 
3233 | [](Demo.Tickets.Customer.html#input/1)
3234 | 
3235 | # input(opts)
3236 | 
3237 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/customer.ex#L1)
3238 | 
3239 | ```
3240 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
3241 | ```
3242 | 
3243 | Validates that the keys in the provided input are valid for at least one action on the resource.
3244 | 
3245 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
3246 | 
3247 | ```
3248 | Resource
3249 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
3250 | |> Ash.create()
3251 | ```
3252 | 
3253 | [](Demo.Tickets.Customer.html#input/2)
3254 | 
3255 | # input(opts, action)
3256 | 
3257 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/customer.ex#L1)
3258 | 
3259 | ```
3260 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
3261 | ```
3262 | 
3263 | Same as [`input/1`](Demo.Tickets.Customer.html#input/1), except restricts the keys to values accepted by the action provided.
3264 | 
3265 | [](Demo.Tickets.Customer.html#primary_key_matches?/2)
3266 | 
3267 | # primary\_key\_matches?(left, right)
3268 | 
3269 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/customer.ex#L1)
3270 | 
3271 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
3272 | 
3273 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
3274 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
3275 | 
3276 | [ash\_admin](https://github.com/ash-project/ash_admin)
3277 | 
3278 | v0.12.6
3279 | 
3280 | - Pages
3281 | - Modules
3282 | - Mix Tasks
3283 | 
3284 | <!--THE END-->
3285 | 
3286 | <!--THE END-->
3287 | 
3288 | <!--THE END-->
3289 | 
3290 | Search documentation of ash\_admin
3291 | 
3292 | Settings
3293 | 
3294 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/organization.ex#L1 "View Source") Demo.Tickets.Organization (ash\_admin v0.12.6)
3295 | 
3296 | # [](Demo.Tickets.Organization.html#summary)Summary
3297 | 
3298 | ## [Types](Demo.Tickets.Organization.html#types)
3299 | 
3300 | [t()](Demo.Tickets.Organization.html#t:t/0)
3301 | 
3302 | ## [Functions](Demo.Tickets.Organization.html#functions)
3303 | 
3304 | [default\_short\_name()](Demo.Tickets.Organization.html#default_short_name/0)
3305 | 
3306 | [input(opts)](Demo.Tickets.Organization.html#input/1)
3307 | 
3308 | Validates that the keys in the provided input are valid for at least one action on the resource.
3309 | 
3310 | [input(opts, action)](Demo.Tickets.Organization.html#input/2)
3311 | 
3312 | Same as [`input/1`](Demo.Tickets.Organization.html#input/1), except restricts the keys to values accepted by the action provided.
3313 | 
3314 | [primary\_key\_matches?(left, right)](Demo.Tickets.Organization.html#primary_key_matches?/2)
3315 | 
3316 | # [](Demo.Tickets.Organization.html#types)Types
3317 | 
3318 | [](Demo.Tickets.Organization.html#t:t/0)
3319 | 
3320 | # t()
3321 | 
3322 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/organization.ex#L1)
3323 | 
3324 | ```
3325 | @type t() :: %Demo.Tickets.Organization{
3326 |   __lateral_join_source__: term(),
3327 |   __meta__: term(),
3328 |   __metadata__: term(),
3329 |   __order__: term(),
3330 |   aggregates: term(),
3331 |   calculations: term(),
3332 |   id: term(),
3333 |   name: term(),
3334 |   tickets: term()
3335 | }
3336 | ```
3337 | 
3338 | # [](Demo.Tickets.Organization.html#functions)Functions
3339 | 
3340 | [](Demo.Tickets.Organization.html#default_short_name/0)
3341 | 
3342 | # default\_short\_name()
3343 | 
3344 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/organization.ex#L1)
3345 | 
3346 | [](Demo.Tickets.Organization.html#input/1)
3347 | 
3348 | # input(opts)
3349 | 
3350 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/organization.ex#L1)
3351 | 
3352 | ```
3353 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
3354 | ```
3355 | 
3356 | Validates that the keys in the provided input are valid for at least one action on the resource.
3357 | 
3358 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
3359 | 
3360 | ```
3361 | Resource
3362 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
3363 | |> Ash.create()
3364 | ```
3365 | 
3366 | [](Demo.Tickets.Organization.html#input/2)
3367 | 
3368 | # input(opts, action)
3369 | 
3370 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/organization.ex#L1)
3371 | 
3372 | ```
3373 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
3374 | ```
3375 | 
3376 | Same as [`input/1`](Demo.Tickets.Organization.html#input/1), except restricts the keys to values accepted by the action provided.
3377 | 
3378 | [](Demo.Tickets.Organization.html#primary_key_matches?/2)
3379 | 
3380 | # primary\_key\_matches?(left, right)
3381 | 
3382 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/organization.ex#L1)
3383 | 
3384 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
3385 | 
3386 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
3387 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
3388 | 
3389 | [ash\_admin](https://github.com/ash-project/ash_admin)
3390 | 
3391 | v0.12.6
3392 | 
3393 | - Pages
3394 | - Modules
3395 | - Mix Tasks
3396 | 
3397 | <!--THE END-->
3398 | 
3399 | <!--THE END-->
3400 | 
3401 | <!--THE END-->
3402 | 
3403 | Search documentation of ash\_admin
3404 | 
3405 | Settings
3406 | 
3407 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/representative.ex#L1 "View Source") Demo.Tickets.Representative (ash\_admin v0.12.6)
3408 | 
3409 | # [](Demo.Tickets.Representative.html#summary)Summary
3410 | 
3411 | ## [Types](Demo.Tickets.Representative.html#types)
3412 | 
3413 | [t()](Demo.Tickets.Representative.html#t:t/0)
3414 | 
3415 | ## [Functions](Demo.Tickets.Representative.html#functions)
3416 | 
3417 | [default\_short\_name()](Demo.Tickets.Representative.html#default_short_name/0)
3418 | 
3419 | [input(opts)](Demo.Tickets.Representative.html#input/1)
3420 | 
3421 | Validates that the keys in the provided input are valid for at least one action on the resource.
3422 | 
3423 | [input(opts, action)](Demo.Tickets.Representative.html#input/2)
3424 | 
3425 | Same as [`input/1`](Demo.Tickets.Representative.html#input/1), except restricts the keys to values accepted by the action provided.
3426 | 
3427 | [primary\_key\_matches?(left, right)](Demo.Tickets.Representative.html#primary_key_matches?/2)
3428 | 
3429 | # [](Demo.Tickets.Representative.html#types)Types
3430 | 
3431 | [](Demo.Tickets.Representative.html#t:t/0)
3432 | 
3433 | # t()
3434 | 
3435 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/representative.ex#L1)
3436 | 
3437 | ```
3438 | @type t() :: %Demo.Tickets.Representative{
3439 |   __lateral_join_source__: term(),
3440 |   __meta__: term(),
3441 |   __metadata__: term(),
3442 |   __order__: term(),
3443 |   aggregates: term(),
3444 |   assigned_tickets: term(),
3445 |   calculations: term(),
3446 |   comments: term(),
3447 |   first_name: term(),
3448 |   full_name: term(),
3449 |   id: term(),
3450 |   last_name: term(),
3451 |   open_ticket_count: term(),
3452 |   representative: term()
3453 | }
3454 | ```
3455 | 
3456 | # [](Demo.Tickets.Representative.html#functions)Functions
3457 | 
3458 | [](Demo.Tickets.Representative.html#default_short_name/0)
3459 | 
3460 | # default\_short\_name()
3461 | 
3462 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/representative.ex#L1)
3463 | 
3464 | [](Demo.Tickets.Representative.html#input/1)
3465 | 
3466 | # input(opts)
3467 | 
3468 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/representative.ex#L1)
3469 | 
3470 | ```
3471 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
3472 | ```
3473 | 
3474 | Validates that the keys in the provided input are valid for at least one action on the resource.
3475 | 
3476 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
3477 | 
3478 | ```
3479 | Resource
3480 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
3481 | |> Ash.create()
3482 | ```
3483 | 
3484 | [](Demo.Tickets.Representative.html#input/2)
3485 | 
3486 | # input(opts, action)
3487 | 
3488 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/representative.ex#L1)
3489 | 
3490 | ```
3491 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
3492 | ```
3493 | 
3494 | Same as [`input/1`](Demo.Tickets.Representative.html#input/1), except restricts the keys to values accepted by the action provided.
3495 | 
3496 | [](Demo.Tickets.Representative.html#primary_key_matches?/2)
3497 | 
3498 | # primary\_key\_matches?(left, right)
3499 | 
3500 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/representative.ex#L1)
3501 | 
3502 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
3503 | 
3504 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
3505 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
3506 | 
3507 | [ash\_admin](https://github.com/ash-project/ash_admin)
3508 | 
3509 | v0.12.6
3510 | 
3511 | - Pages
3512 | - Modules
3513 | - Mix Tasks
3514 | 
3515 | <!--THE END-->
3516 | 
3517 | <!--THE END-->
3518 | 
3519 | <!--THE END-->
3520 | 
3521 | Search documentation of ash\_admin
3522 | 
3523 | Settings
3524 | 
3525 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/ticket.ex#L1 "View Source") Demo.Tickets.Ticket (ash\_admin v0.12.6)
3526 | 
3527 | # [](Demo.Tickets.Ticket.html#summary)Summary
3528 | 
3529 | ## [Types](Demo.Tickets.Ticket.html#types)
3530 | 
3531 | [t()](Demo.Tickets.Ticket.html#t:t/0)
3532 | 
3533 | ## [Functions](Demo.Tickets.Ticket.html#functions)
3534 | 
3535 | [default\_short\_name()](Demo.Tickets.Ticket.html#default_short_name/0)
3536 | 
3537 | [input(opts)](Demo.Tickets.Ticket.html#input/1)
3538 | 
3539 | Validates that the keys in the provided input are valid for at least one action on the resource.
3540 | 
3541 | [input(opts, action)](Demo.Tickets.Ticket.html#input/2)
3542 | 
3543 | Same as [`input/1`](Demo.Tickets.Ticket.html#input/1), except restricts the keys to values accepted by the action provided.
3544 | 
3545 | [primary\_key\_matches?(left, right)](Demo.Tickets.Ticket.html#primary_key_matches?/2)
3546 | 
3547 | # [](Demo.Tickets.Ticket.html#types)Types
3548 | 
3549 | [](Demo.Tickets.Ticket.html#t:t/0)
3550 | 
3551 | # t()
3552 | 
3553 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/ticket.ex#L1)
3554 | 
3555 | ```
3556 | @type t() :: %Demo.Tickets.Ticket{
3557 |   __lateral_join_source__: term(),
3558 |   __meta__: term(),
3559 |   __metadata__: term(),
3560 |   __order__: term(),
3561 |   aggregates: term(),
3562 |   calculations: term(),
3563 |   comments: term(),
3564 |   description: term(),
3565 |   destination_links: term(),
3566 |   destination_links_join_assoc: term(),
3567 |   id: term(),
3568 |   inserted_at: term(),
3569 |   metadata: term(),
3570 |   metadatas: term(),
3571 |   organization: term(),
3572 |   organization_id: term(),
3573 |   reporter: term(),
3574 |   reporter_id: term(),
3575 |   reporter_name: term(),
3576 |   representative: term(),
3577 |   representative_id: term(),
3578 |   response: term(),
3579 |   source_links: term(),
3580 |   source_links_join_assoc: term(),
3581 |   status: term(),
3582 |   subject: term(),
3583 |   updated_at: term()
3584 | }
3585 | ```
3586 | 
3587 | # [](Demo.Tickets.Ticket.html#functions)Functions
3588 | 
3589 | [](Demo.Tickets.Ticket.html#default_short_name/0)
3590 | 
3591 | # default\_short\_name()
3592 | 
3593 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/ticket.ex#L1)
3594 | 
3595 | [](Demo.Tickets.Ticket.html#input/1)
3596 | 
3597 | # input(opts)
3598 | 
3599 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/ticket.ex#L1)
3600 | 
3601 | ```
3602 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
3603 | ```
3604 | 
3605 | Validates that the keys in the provided input are valid for at least one action on the resource.
3606 | 
3607 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
3608 | 
3609 | ```
3610 | Resource
3611 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
3612 | |> Ash.create()
3613 | ```
3614 | 
3615 | [](Demo.Tickets.Ticket.html#input/2)
3616 | 
3617 | # input(opts, action)
3618 | 
3619 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/ticket.ex#L1)
3620 | 
3621 | ```
3622 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
3623 | ```
3624 | 
3625 | Same as [`input/1`](Demo.Tickets.Ticket.html#input/1), except restricts the keys to values accepted by the action provided.
3626 | 
3627 | [](Demo.Tickets.Ticket.html#primary_key_matches?/2)
3628 | 
3629 | # primary\_key\_matches?(left, right)
3630 | 
3631 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/ticket.ex#L1)
3632 | 
3633 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
3634 | 
3635 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
3636 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
3637 | 
3638 | [ash\_admin](https://github.com/ash-project/ash_admin)
3639 | 
3640 | v0.12.6
3641 | 
3642 | - Pages
3643 | - Modules
3644 | - Mix Tasks
3645 | 
3646 | <!--THE END-->
3647 | 
3648 | <!--THE END-->
3649 | 
3650 | <!--THE END-->
3651 | 
3652 | Search documentation of ash\_admin
3653 | 
3654 | Settings
3655 | 
3656 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket_link.ex#L1 "View Source") Demo.Tickets.TicketLink (ash\_admin v0.12.6)
3657 | 
3658 | # [](Demo.Tickets.TicketLink.html#summary)Summary
3659 | 
3660 | ## [Types](Demo.Tickets.TicketLink.html#types)
3661 | 
3662 | [t()](Demo.Tickets.TicketLink.html#t:t/0)
3663 | 
3664 | ## [Functions](Demo.Tickets.TicketLink.html#functions)
3665 | 
3666 | [default\_short\_name()](Demo.Tickets.TicketLink.html#default_short_name/0)
3667 | 
3668 | [input(opts)](Demo.Tickets.TicketLink.html#input/1)
3669 | 
3670 | Validates that the keys in the provided input are valid for at least one action on the resource.
3671 | 
3672 | [input(opts, action)](Demo.Tickets.TicketLink.html#input/2)
3673 | 
3674 | Same as [`input/1`](Demo.Tickets.TicketLink.html#input/1), except restricts the keys to values accepted by the action provided.
3675 | 
3676 | [primary\_key\_matches?(left, right)](Demo.Tickets.TicketLink.html#primary_key_matches?/2)
3677 | 
3678 | # [](Demo.Tickets.TicketLink.html#types)Types
3679 | 
3680 | [](Demo.Tickets.TicketLink.html#t:t/0)
3681 | 
3682 | # t()
3683 | 
3684 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket_link.ex#L1)
3685 | 
3686 | ```
3687 | @type t() :: %Demo.Tickets.TicketLink{
3688 |   __lateral_join_source__: term(),
3689 |   __meta__: term(),
3690 |   __metadata__: term(),
3691 |   __order__: term(),
3692 |   aggregates: term(),
3693 |   calculations: term(),
3694 |   destination: term(),
3695 |   destination_id: term(),
3696 |   source: term(),
3697 |   source_id: term(),
3698 |   type: term()
3699 | }
3700 | ```
3701 | 
3702 | # [](Demo.Tickets.TicketLink.html#functions)Functions
3703 | 
3704 | [](Demo.Tickets.TicketLink.html#default_short_name/0)
3705 | 
3706 | # default\_short\_name()
3707 | 
3708 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket_link.ex#L1)
3709 | 
3710 | [](Demo.Tickets.TicketLink.html#input/1)
3711 | 
3712 | # input(opts)
3713 | 
3714 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket_link.ex#L1)
3715 | 
3716 | ```
3717 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
3718 | ```
3719 | 
3720 | Validates that the keys in the provided input are valid for at least one action on the resource.
3721 | 
3722 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
3723 | 
3724 | ```
3725 | Resource
3726 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
3727 | |> Ash.create()
3728 | ```
3729 | 
3730 | [](Demo.Tickets.TicketLink.html#input/2)
3731 | 
3732 | # input(opts, action)
3733 | 
3734 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket_link.ex#L1)
3735 | 
3736 | ```
3737 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
3738 | ```
3739 | 
3740 | Same as [`input/1`](Demo.Tickets.TicketLink.html#input/1), except restricts the keys to values accepted by the action provided.
3741 | 
3742 | [](Demo.Tickets.TicketLink.html#primary_key_matches?/2)
3743 | 
3744 | # primary\_key\_matches?(left, right)
3745 | 
3746 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket_link.ex#L1)
3747 | 
3748 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
3749 | 
3750 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
3751 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
3752 | 
3753 | [ash\_admin](https://github.com/ash-project/ash_admin)
3754 | 
3755 | v0.12.6
3756 | 
3757 | - Pages
3758 | - Modules
3759 | - Mix Tasks
3760 | 
3761 | <!--THE END-->
3762 | 
3763 | <!--THE END-->
3764 | 
3765 | <!--THE END-->
3766 | 
3767 | Search documentation of ash\_admin
3768 | 
3769 | Settings
3770 | 
3771 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L1 "View Source") Demo.Tickets.Ticket.Types.BarMetadata (ash\_admin v0.12.6)
3772 | 
3773 | # [](Demo.Tickets.Ticket.Types.BarMetadata.html#summary)Summary
3774 | 
3775 | ## [Types](Demo.Tickets.Ticket.Types.BarMetadata.html#types)
3776 | 
3777 | [t()](Demo.Tickets.Ticket.Types.BarMetadata.html#t:t/0)
3778 | 
3779 | ## [Functions](Demo.Tickets.Ticket.Types.BarMetadata.html#functions)
3780 | 
3781 | [apply\_constraints\_array(term, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#apply_constraints_array/2)
3782 | 
3783 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
3784 | 
3785 | [cast\_input(input, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#cast_input/2)
3786 | 
3787 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
3788 | 
3789 | [cast\_stored(value, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#cast_stored/2)
3790 | 
3791 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
3792 | 
3793 | [check\_atomic(value, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#check_atomic/2)
3794 | 
3795 | [default\_short\_name()](Demo.Tickets.Ticket.Types.BarMetadata.html#default_short_name/0)
3796 | 
3797 | [dump\_to\_native(value, \_)](Demo.Tickets.Ticket.Types.BarMetadata.html#dump_to_native/2)
3798 | 
3799 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
3800 | 
3801 | [fetch\_key(map, atom)](Demo.Tickets.Ticket.Types.BarMetadata.html#fetch_key/2)
3802 | 
3803 | [get\_rewrites(merged\_load, calculation, path, \_)](Demo.Tickets.Ticket.Types.BarMetadata.html#get_rewrites/4)
3804 | 
3805 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
3806 | 
3807 | [handle\_change(old\_value, new\_value, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#handle_change/3)
3808 | 
3809 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
3810 | 
3811 | [handle\_change?()](Demo.Tickets.Ticket.Types.BarMetadata.html#handle_change?/0)
3812 | 
3813 | [handle\_change\_array(old\_values, new\_values, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#handle_change_array/3)
3814 | 
3815 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
3816 | 
3817 | [input(opts)](Demo.Tickets.Ticket.Types.BarMetadata.html#input/1)
3818 | 
3819 | Validates that the keys in the provided input are valid for at least one action on the resource.
3820 | 
3821 | [input(opts, action)](Demo.Tickets.Ticket.Types.BarMetadata.html#input/2)
3822 | 
3823 | Same as [`input/1`](Demo.Tickets.Ticket.Types.BarMetadata.html#input/1), except restricts the keys to values accepted by the action provided.
3824 | 
3825 | [load(record, load, constraints, context)](Demo.Tickets.Ticket.Types.BarMetadata.html#load/4)
3826 | 
3827 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
3828 | 
3829 | [prepare\_change(old\_value, new\_value, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#prepare_change/3)
3830 | 
3831 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
3832 | 
3833 | [prepare\_change?()](Demo.Tickets.Ticket.Types.BarMetadata.html#prepare_change?/0)
3834 | 
3835 | [prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#prepare_change_array/3)
3836 | 
3837 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
3838 | 
3839 | [rewrite(value, rewrites, constraints)](Demo.Tickets.Ticket.Types.BarMetadata.html#rewrite/3)
3840 | 
3841 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
3842 | 
3843 | [storage\_type(\_)](Demo.Tickets.Ticket.Types.BarMetadata.html#storage_type/1)
3844 | 
3845 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
3846 | 
3847 | # [](Demo.Tickets.Ticket.Types.BarMetadata.html#types)Types
3848 | 
3849 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#t:t/0)
3850 | 
3851 | # t()
3852 | 
3853 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L1)
3854 | 
3855 | ```
3856 | @type t() :: %Demo.Tickets.Ticket.Types.BarMetadata{
3857 |   __lateral_join_source__: term(),
3858 |   __meta__: term(),
3859 |   __metadata__: term(),
3860 |   __order__: term(),
3861 |   aggregates: term(),
3862 |   bar: term(),
3863 |   calculations: term()
3864 | }
3865 | ```
3866 | 
3867 | # [](Demo.Tickets.Ticket.Types.BarMetadata.html#functions)Functions
3868 | 
3869 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#apply_constraints_array/2)
3870 | 
3871 | # apply\_constraints\_array(term, constraints)
3872 | 
3873 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3874 | 
3875 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
3876 | 
3877 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#cast_input/2)
3878 | 
3879 | # cast\_input(input, constraints)
3880 | 
3881 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3882 | 
3883 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
3884 | 
3885 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#cast_stored/2)
3886 | 
3887 | # cast\_stored(value, constraints)
3888 | 
3889 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3890 | 
3891 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
3892 | 
3893 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#check_atomic/2)
3894 | 
3895 | # check\_atomic(value, constraints)
3896 | 
3897 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3898 | 
3899 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#default_short_name/0)
3900 | 
3901 | # default\_short\_name()
3902 | 
3903 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L1)
3904 | 
3905 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#dump_to_native/2)
3906 | 
3907 | # dump\_to\_native(value, \_)
3908 | 
3909 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3910 | 
3911 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
3912 | 
3913 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#fetch_key/2)
3914 | 
3915 | # fetch\_key(map, atom)
3916 | 
3917 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3918 | 
3919 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#get_rewrites/4)
3920 | 
3921 | # get\_rewrites(merged\_load, calculation, path, \_)
3922 | 
3923 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3924 | 
3925 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
3926 | 
3927 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#handle_change/3)
3928 | 
3929 | # handle\_change(old\_value, new\_value, constraints)
3930 | 
3931 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3932 | 
3933 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
3934 | 
3935 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#handle_change?/0)
3936 | 
3937 | # handle\_change?()
3938 | 
3939 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L1)
3940 | 
3941 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#handle_change_array/3)
3942 | 
3943 | # handle\_change\_array(old\_values, new\_values, constraints)
3944 | 
3945 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3946 | 
3947 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
3948 | 
3949 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#input/1)
3950 | 
3951 | # input(opts)
3952 | 
3953 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L1)
3954 | 
3955 | ```
3956 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
3957 | ```
3958 | 
3959 | Validates that the keys in the provided input are valid for at least one action on the resource.
3960 | 
3961 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
3962 | 
3963 | ```
3964 | Resource
3965 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
3966 | |> Ash.create()
3967 | ```
3968 | 
3969 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#input/2)
3970 | 
3971 | # input(opts, action)
3972 | 
3973 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L1)
3974 | 
3975 | ```
3976 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
3977 | ```
3978 | 
3979 | Same as [`input/1`](Demo.Tickets.Ticket.Types.BarMetadata.html#input/1), except restricts the keys to values accepted by the action provided.
3980 | 
3981 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#load/4)
3982 | 
3983 | # load(record, load, constraints, context)
3984 | 
3985 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3986 | 
3987 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
3988 | 
3989 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#prepare_change/3)
3990 | 
3991 | # prepare\_change(old\_value, new\_value, constraints)
3992 | 
3993 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
3994 | 
3995 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
3996 | 
3997 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#prepare_change?/0)
3998 | 
3999 | # prepare\_change?()
4000 | 
4001 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L1)
4002 | 
4003 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#prepare_change_array/3)
4004 | 
4005 | # prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)
4006 | 
4007 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
4008 | 
4009 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
4010 | 
4011 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#rewrite/3)
4012 | 
4013 | # rewrite(value, rewrites, constraints)
4014 | 
4015 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
4016 | 
4017 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
4018 | 
4019 | [](Demo.Tickets.Ticket.Types.BarMetadata.html#storage_type/1)
4020 | 
4021 | # storage\_type(\_)
4022 | 
4023 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/bar_metadata.ex#L2)
4024 | 
4025 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
4026 | 
4027 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4028 | 
4029 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4030 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
4031 | 
4032 | [ash\_admin](https://github.com/ash-project/ash_admin)
4033 | 
4034 | v0.12.6
4035 | 
4036 | - Pages
4037 | - Modules
4038 | - Mix Tasks
4039 | 
4040 | <!--THE END-->
4041 | 
4042 | <!--THE END-->
4043 | 
4044 | <!--THE END-->
4045 | 
4046 | Search documentation of ash\_admin
4047 | 
4048 | Settings
4049 | 
4050 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L1 "View Source") Demo.Tickets.Ticket.Types.FooMetadata (ash\_admin v0.12.6)
4051 | 
4052 | # [](Demo.Tickets.Ticket.Types.FooMetadata.html#summary)Summary
4053 | 
4054 | ## [Types](Demo.Tickets.Ticket.Types.FooMetadata.html#types)
4055 | 
4056 | [t()](Demo.Tickets.Ticket.Types.FooMetadata.html#t:t/0)
4057 | 
4058 | ## [Functions](Demo.Tickets.Ticket.Types.FooMetadata.html#functions)
4059 | 
4060 | [apply\_constraints\_array(term, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#apply_constraints_array/2)
4061 | 
4062 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
4063 | 
4064 | [cast\_input(input, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#cast_input/2)
4065 | 
4066 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
4067 | 
4068 | [cast\_stored(value, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#cast_stored/2)
4069 | 
4070 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
4071 | 
4072 | [check\_atomic(value, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#check_atomic/2)
4073 | 
4074 | [default\_short\_name()](Demo.Tickets.Ticket.Types.FooMetadata.html#default_short_name/0)
4075 | 
4076 | [dump\_to\_native(value, \_)](Demo.Tickets.Ticket.Types.FooMetadata.html#dump_to_native/2)
4077 | 
4078 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
4079 | 
4080 | [fetch\_key(map, atom)](Demo.Tickets.Ticket.Types.FooMetadata.html#fetch_key/2)
4081 | 
4082 | [get\_rewrites(merged\_load, calculation, path, \_)](Demo.Tickets.Ticket.Types.FooMetadata.html#get_rewrites/4)
4083 | 
4084 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
4085 | 
4086 | [handle\_change(old\_value, new\_value, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#handle_change/3)
4087 | 
4088 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
4089 | 
4090 | [handle\_change?()](Demo.Tickets.Ticket.Types.FooMetadata.html#handle_change?/0)
4091 | 
4092 | [handle\_change\_array(old\_values, new\_values, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#handle_change_array/3)
4093 | 
4094 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
4095 | 
4096 | [input(opts)](Demo.Tickets.Ticket.Types.FooMetadata.html#input/1)
4097 | 
4098 | Validates that the keys in the provided input are valid for at least one action on the resource.
4099 | 
4100 | [input(opts, action)](Demo.Tickets.Ticket.Types.FooMetadata.html#input/2)
4101 | 
4102 | Same as [`input/1`](Demo.Tickets.Ticket.Types.FooMetadata.html#input/1), except restricts the keys to values accepted by the action provided.
4103 | 
4104 | [load(record, load, constraints, context)](Demo.Tickets.Ticket.Types.FooMetadata.html#load/4)
4105 | 
4106 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
4107 | 
4108 | [prepare\_change(old\_value, new\_value, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#prepare_change/3)
4109 | 
4110 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
4111 | 
4112 | [prepare\_change?()](Demo.Tickets.Ticket.Types.FooMetadata.html#prepare_change?/0)
4113 | 
4114 | [prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#prepare_change_array/3)
4115 | 
4116 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
4117 | 
4118 | [rewrite(value, rewrites, constraints)](Demo.Tickets.Ticket.Types.FooMetadata.html#rewrite/3)
4119 | 
4120 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
4121 | 
4122 | [storage\_type(\_)](Demo.Tickets.Ticket.Types.FooMetadata.html#storage_type/1)
4123 | 
4124 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
4125 | 
4126 | # [](Demo.Tickets.Ticket.Types.FooMetadata.html#types)Types
4127 | 
4128 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#t:t/0)
4129 | 
4130 | # t()
4131 | 
4132 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L1)
4133 | 
4134 | ```
4135 | @type t() :: %Demo.Tickets.Ticket.Types.FooMetadata{
4136 |   __lateral_join_source__: term(),
4137 |   __meta__: term(),
4138 |   __metadata__: term(),
4139 |   __order__: term(),
4140 |   aggregates: term(),
4141 |   calculations: term(),
4142 |   foo: term()
4143 | }
4144 | ```
4145 | 
4146 | # [](Demo.Tickets.Ticket.Types.FooMetadata.html#functions)Functions
4147 | 
4148 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#apply_constraints_array/2)
4149 | 
4150 | # apply\_constraints\_array(term, constraints)
4151 | 
4152 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4153 | 
4154 | Callback implementation for [`Ash.Type.apply_constraints_array/2`](../ash/3.4.54/Ash.Type.html#c:apply_constraints_array/2).
4155 | 
4156 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#cast_input/2)
4157 | 
4158 | # cast\_input(input, constraints)
4159 | 
4160 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4161 | 
4162 | Callback implementation for [`Ash.Type.cast_input/2`](../ash/3.4.54/Ash.Type.html#c:cast_input/2).
4163 | 
4164 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#cast_stored/2)
4165 | 
4166 | # cast\_stored(value, constraints)
4167 | 
4168 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4169 | 
4170 | Callback implementation for [`Ash.Type.cast_stored/2`](../ash/3.4.54/Ash.Type.html#c:cast_stored/2).
4171 | 
4172 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#check_atomic/2)
4173 | 
4174 | # check\_atomic(value, constraints)
4175 | 
4176 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4177 | 
4178 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#default_short_name/0)
4179 | 
4180 | # default\_short\_name()
4181 | 
4182 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L1)
4183 | 
4184 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#dump_to_native/2)
4185 | 
4186 | # dump\_to\_native(value, \_)
4187 | 
4188 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4189 | 
4190 | Callback implementation for [`Ash.Type.dump_to_native/2`](../ash/3.4.54/Ash.Type.html#c:dump_to_native/2).
4191 | 
4192 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#fetch_key/2)
4193 | 
4194 | # fetch\_key(map, atom)
4195 | 
4196 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4197 | 
4198 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#get_rewrites/4)
4199 | 
4200 | # get\_rewrites(merged\_load, calculation, path, \_)
4201 | 
4202 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4203 | 
4204 | Callback implementation for [`Ash.Type.get_rewrites/4`](../ash/3.4.54/Ash.Type.html#c:get_rewrites/4).
4205 | 
4206 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#handle_change/3)
4207 | 
4208 | # handle\_change(old\_value, new\_value, constraints)
4209 | 
4210 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4211 | 
4212 | Callback implementation for [`Ash.Type.handle_change/3`](../ash/3.4.54/Ash.Type.html#c:handle_change/3).
4213 | 
4214 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#handle_change?/0)
4215 | 
4216 | # handle\_change?()
4217 | 
4218 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L1)
4219 | 
4220 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#handle_change_array/3)
4221 | 
4222 | # handle\_change\_array(old\_values, new\_values, constraints)
4223 | 
4224 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4225 | 
4226 | Callback implementation for [`Ash.Type.handle_change_array/3`](../ash/3.4.54/Ash.Type.html#c:handle_change_array/3).
4227 | 
4228 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#input/1)
4229 | 
4230 | # input(opts)
4231 | 
4232 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L1)
4233 | 
4234 | ```
4235 | @spec input(values :: map() | Keyword.t()) :: map() | no_return()
4236 | ```
4237 | 
4238 | Validates that the keys in the provided input are valid for at least one action on the resource.
4239 | 
4240 | Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g `%MyResource{value: 1, value: 2}`. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g
4241 | 
4242 | ```
4243 | Resource
4244 | |> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
4245 | |> Ash.create()
4246 | ```
4247 | 
4248 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#input/2)
4249 | 
4250 | # input(opts, action)
4251 | 
4252 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L1)
4253 | 
4254 | ```
4255 | @spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()
4256 | ```
4257 | 
4258 | Same as [`input/1`](Demo.Tickets.Ticket.Types.FooMetadata.html#input/1), except restricts the keys to values accepted by the action provided.
4259 | 
4260 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#load/4)
4261 | 
4262 | # load(record, load, constraints, context)
4263 | 
4264 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4265 | 
4266 | Callback implementation for [`Ash.Type.load/4`](../ash/3.4.54/Ash.Type.html#c:load/4).
4267 | 
4268 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#prepare_change/3)
4269 | 
4270 | # prepare\_change(old\_value, new\_value, constraints)
4271 | 
4272 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4273 | 
4274 | Callback implementation for [`Ash.Type.prepare_change/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change/3).
4275 | 
4276 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#prepare_change?/0)
4277 | 
4278 | # prepare\_change?()
4279 | 
4280 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L1)
4281 | 
4282 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#prepare_change_array/3)
4283 | 
4284 | # prepare\_change\_array(old\_values, new\_uncasted\_values, constraints)
4285 | 
4286 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4287 | 
4288 | Callback implementation for [`Ash.Type.prepare_change_array/3`](../ash/3.4.54/Ash.Type.html#c:prepare_change_array/3).
4289 | 
4290 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#rewrite/3)
4291 | 
4292 | # rewrite(value, rewrites, constraints)
4293 | 
4294 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4295 | 
4296 | Callback implementation for [`Ash.Type.rewrite/3`](../ash/3.4.54/Ash.Type.html#c:rewrite/3).
4297 | 
4298 | [](Demo.Tickets.Ticket.Types.FooMetadata.html#storage_type/1)
4299 | 
4300 | # storage\_type(\_)
4301 | 
4302 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/foo_metadata.ex#L2)
4303 | 
4304 | Callback implementation for [`Ash.Type.storage_type/1`](../ash/3.4.54/Ash.Type.html#c:storage_type/1).
4305 | 
4306 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4307 | 
4308 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4309 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
4310 | 
4311 | [ash\_admin](https://github.com/ash-project/ash_admin)
4312 | 
4313 | v0.12.6
4314 | 
4315 | - Pages
4316 | - Modules
4317 | - Mix Tasks
4318 | 
4319 | <!--THE END-->
4320 | 
4321 | <!--THE END-->
4322 | 
4323 | <!--THE END-->
4324 | 
4325 | Search documentation of ash\_admin
4326 | 
4327 | Settings
4328 | 
4329 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/metadata.ex#L1 "View Source") Demo.Tickets.Ticket.Types.Metadata (ash\_admin v0.12.6)
4330 | 
4331 | # [](Demo.Tickets.Ticket.Types.Metadata.html#summary)Summary
4332 | 
4333 | ## [Functions](Demo.Tickets.Ticket.Types.Metadata.html#functions)
4334 | 
4335 | [handle\_change?()](Demo.Tickets.Ticket.Types.Metadata.html#handle_change?/0)
4336 | 
4337 | [prepare\_change?()](Demo.Tickets.Ticket.Types.Metadata.html#prepare_change?/0)
4338 | 
4339 | # [](Demo.Tickets.Ticket.Types.Metadata.html#functions)Functions
4340 | 
4341 | [](Demo.Tickets.Ticket.Types.Metadata.html#handle_change?/0)
4342 | 
4343 | # handle\_change?()
4344 | 
4345 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/metadata.ex#L1)
4346 | 
4347 | [](Demo.Tickets.Ticket.Types.Metadata.html#prepare_change?/0)
4348 | 
4349 | # prepare\_change?()
4350 | 
4351 | [](https://github.com/ash-project/ash_admin/blob/v0.12.6/dev/resources/tickets/resources/ticket/types/metadata.ex#L1)
4352 | 
4353 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4354 | 
4355 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4356 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
4357 | 
4358 | [ash\_admin](https://github.com/ash-project/ash_admin)
4359 | 
4360 | v0.12.6
4361 | 
4362 | - Pages
4363 | - Modules
4364 | - Mix Tasks
4365 | 
4366 | <!--THE END-->
4367 | 
4368 | <!--THE END-->
4369 | 
4370 | <!--THE END-->
4371 | 
4372 | Search documentation of ash\_admin
4373 | 
4374 | Settings
4375 | 
4376 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/documentation/dsls/DSL-AshAdmin.Domain.md#L1 "View Source") DSL: AshAdmin.Domain
4377 | 
4378 | A domain extension to alter the behavior of a domain in the admin UI.
4379 | 
4380 | ## [](dsl-ashadmin-domain.html#admin)admin
4381 | 
4382 | Configure the admin dashboard for a given domain.
4383 | 
4384 | ### [](dsl-ashadmin-domain.html#options)Options
4385 | 
4386 | NameTypeDefaultDocs[`name`](dsl-ashadmin-domain.html#admin-name)`String.t`The name of the domain in the dashboard. Will be derived if not set.[`show?`](dsl-ashadmin-domain.html#admin-show?)`boolean``false`Whether or not this domain and its resources should be included in the admin dashboard.[`show_resources`](dsl-ashadmin-domain.html#admin-show_resources)`atom | list(atom)``:*`List of resources that should be included in the admin dashboard[`default_resource_page`](dsl-ashadmin-domain.html#admin-default_resource_page)`:schema | :primary_read``:schema`Set the default page for the resource to be the primary read action or the resource schema. Schema is the default for backwards compatibility, if a resource doesn't have a primary read action it will fallback to the schema view.[`resource_group_labels`](dsl-ashadmin-domain.html#admin-resource_group_labels)`keyword``[]`Humanized names for each resource group to appear in the admin area. These will be used as labels in the top navigation dropdown and will be shown sorted as given. If a key for a group does not appear in this mapping, the label will not be rendered.
4387 | 
4388 | [← Previous Page Contributing to AshAdmin](contributing-to-ash-admin.html)
4389 | 
4390 | [Next Page → DSL: AshAdmin.Resource](dsl-ashadmin-resource.html)
4391 | 
4392 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) ([current file](https://preview.hex.pm/preview/ash_admin/0.12.6/show/documentation/dsls/DSL-AshAdmin.Domain.md)) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4393 | 
4394 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4395 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
4396 | 
4397 | [ash\_admin](https://github.com/ash-project/ash_admin)
4398 | 
4399 | v0.12.6
4400 | 
4401 | - Pages
4402 | - Modules
4403 | - Mix Tasks
4404 | 
4405 | <!--THE END-->
4406 | 
4407 | <!--THE END-->
4408 | 
4409 | <!--THE END-->
4410 | 
4411 | Search documentation of ash\_admin
4412 | 
4413 | Settings
4414 | 
4415 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/documentation/dsls/DSL-AshAdmin.Resource.md#L1 "View Source") DSL: AshAdmin.Resource
4416 | 
4417 | A resource extension to alter the behaviour of a resource in the admin UI.
4418 | 
4419 | ## [](dsl-ashadmin-resource.html#admin)admin
4420 | 
4421 | Configure the admin dashboard for a given resource.
4422 | 
4423 | ### [](dsl-ashadmin-resource.html#nested-dsls)Nested DSLs
4424 | 
4425 | - [form](dsl-ashadmin-resource.html#admin-form)
4426 |   
4427 |   - field
4428 | 
4429 | ### [](dsl-ashadmin-resource.html#options)Options
4430 | 
4431 | NameTypeDefaultDocs[`name`](dsl-ashadmin-resource.html#admin-name)`String.t`The proper name to use when this resource appears in the admin interface.[`actor?`](dsl-ashadmin-resource.html#admin-actor?)`boolean`Whether or not this resource can be used as the actor for requests.[`show_action`](dsl-ashadmin-resource.html#admin-show_action)`atom`The action to use when linking to the resource/viewing a single record. Defaults to the primary read action.[`read_actions`](dsl-ashadmin-resource.html#admin-read_actions)`list(atom)`A list of read actions that can be used to show resource details. By default, all actions are included.[`generic_actions`](dsl-ashadmin-resource.html#admin-generic_actions)`list(atom)`A list of generic actions that can be used to show resource details. By default, all actions are included.[`create_actions`](dsl-ashadmin-resource.html#admin-create_actions)`list(atom)`A list of create actions that can create records. By default, all actions are included.[`update_actions`](dsl-ashadmin-resource.html#admin-update_actions)`list(atom)`A list of update actions that can be used to update records. By default, all actions are included.[`destroy_actions`](dsl-ashadmin-resource.html#admin-destroy_actions)`list(atom)`A list of destroy actions that can be used to destroy records. By default, all actions are included.[`polymorphic_tables`](dsl-ashadmin-resource.html#admin-polymorphic_tables)`list(String.t)`For resources that use ash\_postgres' polymorphism capabilities, you can provide a list of tables that should be available to select. These will be added to the list of derivable tables based on scanning all domains and resources provided to ash\_admin.[`polymorphic_actions`](dsl-ashadmin-resource.html#admin-polymorphic_actions)`list(atom)`For resources that use ash\_postgres' polymorphism capabilities, you can provide a list of actions that should require a table to be set. If this is not set, then *all* actions will require tables.[`table_columns`](dsl-ashadmin-resource.html#admin-table_columns)`list(atom)`The list of attributes to render on the table view.[`format_fields`](dsl-ashadmin-resource.html#admin-format_fields)`list(any)`The list of fields and their formats represented as a MFA. For example: `updated_at: {Timex, :format!, ["{0D}-{0M}-{YYYY} {h12}:{m} {AM}"]}`. Datatable pages format all given fields. Show and Update pages format given read-only fields of types [`Ash.Type.Date`](../ash/3.4.54/Ash.Type.Date.html), [`Ash.Type.DateTime`](../ash/3.4.54/Ash.Type.DateTime.html), [`Ash.Type.Time`](../ash/3.4.54/Ash.Type.Time.html), [`Ash.Type.NaiveDatetime`](../ash/3.4.54/Ash.Type.NaiveDatetime.html), [`Ash.Type.UtcDatetime`](../ash/3.4.54/Ash.Type.UtcDatetime.html) and [`Ash.Type.UtcDatetimeUsec`](../ash/3.4.54/Ash.Type.UtcDatetimeUsec.html).[`relationship_display_fields`](dsl-ashadmin-resource.html#admin-relationship_display_fields)`list(atom)`The list of attributes to render when this resource is shown as a relationship on another resource's datatable.[`resource_group`](dsl-ashadmin-resource.html#admin-resource_group)`atom`The group in the top resource dropdown that the resource appears in.[`show_sensitive_fields`](dsl-ashadmin-resource.html#admin-show_sensitive_fields)`list(atom)`The list of fields that should not be redacted in the admin UI even if they are marked as sensitive.[`show_calculations`](dsl-ashadmin-resource.html#admin-show_calculations)`list(atom)`A list of calculation that can be calculate when this resource is shown. By default, all calculations are included.
4432 | 
4433 | ## [](dsl-ashadmin-resource.html#admin-form)admin.form
4434 | 
4435 | Configure the appearance of fields in admin forms.
4436 | 
4437 | ### [](dsl-ashadmin-resource.html#nested-dsls-1)Nested DSLs
4438 | 
4439 | - [field](dsl-ashadmin-resource.html#admin-form-field)
4440 | 
4441 | ## [](dsl-ashadmin-resource.html#admin-form-field)admin.form.field
4442 | 
4443 | ```
4444 | field name
4445 | ```
4446 | 
4447 | Declare non-default behavior for a specific attribute.
4448 | 
4449 | ### [](dsl-ashadmin-resource.html#arguments)Arguments
4450 | 
4451 | NameTypeDefaultDocs[`name`](dsl-ashadmin-resource.html#admin-form-field-name)`atom`The name of the field to be modified
4452 | 
4453 | ### [](dsl-ashadmin-resource.html#options-1)Options
4454 | 
4455 | NameTypeDefaultDocs[`type`](dsl-ashadmin-resource.html#admin-form-field-type)`:default | :long_text | :short_text | :markdown`The type of the value in the form. Use `default` if you are just specifying field order
4456 | 
4457 | ### [](dsl-ashadmin-resource.html#introspection)Introspection
4458 | 
4459 | Target: [`AshAdmin.Resource.Field`](AshAdmin.Resource.Field.html)
4460 | 
4461 | [← Previous Page DSL: AshAdmin.Domain](dsl-ashadmin-domain.html)
4462 | 
4463 | [Next Page → Change Log](changelog.html)
4464 | 
4465 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) ([current file](https://preview.hex.pm/preview/ash_admin/0.12.6/show/documentation/dsls/DSL-AshAdmin.Resource.md)) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4466 | 
4467 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4468 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
4469 | 
4470 | [ash\_admin](https://github.com/ash-project/ash_admin)
4471 | 
4472 | v0.12.6
4473 | 
4474 | - Pages
4475 | - Modules
4476 | - Mix Tasks
4477 | 
4478 | <!--THE END-->
4479 | 
4480 | <!--THE END-->
4481 | 
4482 | <!--THE END-->
4483 | 
4484 | Search documentation of ash\_admin
4485 | 
4486 | Settings
4487 | 
4488 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/documentation/tutorials/getting-started-with-ash-admin.md#L1 "View Source") Getting Started with AshAdmin
4489 | 
4490 | ## [](getting-started-with-ash-admin.html#demo)Demo
4491 | 
4492 | [https://www.youtube.com/watch?v=aFMLz3cpQ8c](https://www.youtube.com/watch?v=aFMLz3cpQ8c)
4493 | 
4494 | ## [](getting-started-with-ash-admin.html#installation)Installation
4495 | 
4496 | Add the `ash_admin` dependency to your `mix.exs` file:
4497 | 
4498 | ```
4499 | {:ash_admin, "~> 0.11.4"}
4500 | ```
4501 | 
4502 | ## [](getting-started-with-ash-admin.html#setup)Setup
4503 | 
4504 | ### [](getting-started-with-ash-admin.html#with-igniter-recommended)With Igniter (Recommended)
4505 | 
4506 | ```
4507 | mix igniter.install ash_admin
4508 | ```
4509 | 
4510 | ### [](getting-started-with-ash-admin.html#manual)Manual
4511 | 
4512 | Modify your router to add AshAdmin at whatever path you'd like to serve it at.
4513 | 
4514 | ```
4515 | defmodule MyAppWeb.Router do
4516 |   use Phoenix.Router
4517 | 
4518 |   import AshAdmin.Router
4519 | 
4520 |   # AshAdmin requires a Phoenix LiveView `:browser` pipeline
4521 |   # If you DO NOT have a `:browser` pipeline already, then AshAdmin has a `:browser` pipeline
4522 |   # Most applications will not need this:
4523 |   admin_browser_pipeline :browser
4524 | 
4525 |   # NOTE: `scope/2` here does not have a second argument.
4526 |   # If it looks like `scope "/", MyAppWeb`, create a *new* scope, don't copy the contents into your scope
4527 |   scope "/" do
4528 |     # Pipe it through your browser pipeline
4529 |     pipe_through [:browser]
4530 | 
4531 |     ash_admin "/admin"
4532 |   end
4533 | end
4534 | ```
4535 | 
4536 | Add the [`AshAdmin.Domain`](AshAdmin.Domain.html) extension to each domain you want to show in the AshAdmin dashboard, and configure it to show. See [DSL: AshAdmin.Domain](dsl-ashadmin-domain.html) for more configuration options.
4537 | 
4538 | ```
4539 | # In your Domain(s)
4540 | use Ash.Domain,
4541 |   extensions: [AshAdmin.Domain]
4542 | 
4543 | admin do
4544 |   show? true
4545 | end
4546 | ```
4547 | 
4548 | All resources in each Domain will automatically be included in AshAdmin. To configure a resource, use the [`AshAdmin.Resource`](AshAdmin.Resource.html) extension, and then use the [DSL: AshAdmin.Resource](dsl-ashadmin-resource.html) configuration options. Specifically, if your app has an actor you will want to configure that.
4549 | 
4550 | ```
4551 | # In your resource that acts as an actor (e.g. User)
4552 | use Ash.Resource,
4553 |   domain: YourDomain,
4554 |   extensions: [AshAdmin.Resource]
4555 | 
4556 | admin do
4557 |   actor? true
4558 | end
4559 | ```
4560 | 
4561 | #### Warning
4562 | 
4563 | There is no builtin security for your AshAdmin (except your app's normal policies). In most cases you will want to secure your AshAdmin routes in some way to prevent them from being publicly accessible.
4564 | 
4565 | Start your project (usually by running [`mix phx.server`](../phoenix/1.7.18/Mix.Tasks.Phx.Server.html) in a terminal) and visit `/admin` in your browser (or the path you configured `ash_admin` with in your router).
4566 | 
4567 | ### [](getting-started-with-ash-admin.html#content-security-policy)Content Security Policy
4568 | 
4569 | If your app specifies a content security policy header, eg. via
4570 | 
4571 | ```
4572 | plug :put_secure_browser_headers, %{"content-security-policy" => "default-src 'self'"}
4573 | ```
4574 | 
4575 | in your router, then the stylesheets and JavaScript used to power AshAdmin will be blocked by your browser.
4576 | 
4577 | To avoid this, you can add the default AshAdmin nonces to the `default-src` allowlist, ie.
4578 | 
4579 | ```
4580 | plug :put_secure_browser_headers, %{"content-security-policy" => "default-src 'nonce-ash_admin-Ed55GFnX' 'self'"}
4581 | ```
4582 | 
4583 | Alternatively you can supply your own nonces to the `ash_admin` route, by setting a `:csp_nonce_assign_key` in the options list, ie.
4584 | 
4585 | ```
4586 | ash_admin "/admin", csp_nonce_assign_key: :csp_nonce_value
4587 | ```
4588 | 
4589 | This will allow AshAdmin-generated inline CSS and JS blocks to execute normally.
4590 | 
4591 | ## [](getting-started-with-ash-admin.html#troubleshooting)Troubleshooting
4592 | 
4593 | #### UI issues
4594 | 
4595 | If your admin UI is not responding as expected, check your browser's developer console for content-security-policy violations (see above).
4596 | 
4597 | #### Router issues
4598 | 
4599 | If you are seeing the following error `(UndefinedFunctionError) function YourAppWeb.AshAdmin.PageLive.__live__/0 is undefined (module YourAppWeb.AshAdmin.PageLive is not available)` it likely means that you added the ash admin route macro under a scope with a prefix. Make sure that you add it under a scope without any prefixes.
4600 | 
4601 | ```
4602 |   # Incorrect (with YourAppWeb prefix)
4603 |   scope "/", YourAppWeb do
4604 |     pipe_through [:browser]
4605 | 
4606 |     ash_admin "/admin"
4607 |   end
4608 | 
4609 |   # Correct (without prefix)
4610 |   scope "/" do
4611 |     pipe_through [:browser]
4612 | 
4613 |     ash_admin "/admin"
4614 |   end
4615 | ```
4616 | 
4617 | [← Previous Page README](readme.html)
4618 | 
4619 | [Next Page → Contributing to AshAdmin](contributing-to-ash-admin.html)
4620 | 
4621 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) ([current file](https://preview.hex.pm/preview/ash_admin/0.12.6/show/documentation/tutorials/getting-started-with-ash-admin.md)) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4622 | 
4623 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4624 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
4625 | 
4626 | [ash\_admin](https://github.com/ash-project/ash_admin)
4627 | 
4628 | v0.12.6
4629 | 
4630 | - Pages
4631 | - Modules
4632 | - Mix Tasks
4633 | 
4634 | <!--THE END-->
4635 | 
4636 | <!--THE END-->
4637 | 
4638 | <!--THE END-->
4639 | 
4640 | Search documentation of ash\_admin
4641 | 
4642 | Settings
4643 | 
4644 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/lib/mix/tasks/ash_admin.install.ex#L26 "View Source") mix ash\_admin.install (ash\_admin v0.12.6)
4645 | 
4646 | Installs AshAdmin
4647 | 
4648 | ## [](Mix.Tasks.AshAdmin.Install.html#module-example)Example
4649 | 
4650 | ```
4651 | mix ash_admin.install --example arg
4652 | ```
4653 | 
4654 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4655 | 
4656 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4657 | [![ash_admin](assets/logo.png)](https://github.com/ash-project/ash_admin)
4658 | 
4659 | [ash\_admin](https://github.com/ash-project/ash_admin)
4660 | 
4661 | v0.12.6
4662 | 
4663 | - Pages
4664 | - Modules
4665 | - Mix Tasks
4666 | 
4667 | <!--THE END-->
4668 | 
4669 | <!--THE END-->
4670 | 
4671 | <!--THE END-->
4672 | 
4673 | Search documentation of ash\_admin
4674 | 
4675 | Settings
4676 | 
4677 | # [View Source](https://github.com/ash-project/ash_admin/blob/v0.12.6/README.md#L1 "View Source") README
4678 | 
4679 | ![Logo](https://github.com/ash-project/ash/blob/main/logos/cropped-for-header-black-text.png?raw=true#gh-light-mode-only) ![Logo](https://github.com/ash-project/ash/blob/main/logos/cropped-for-header-white-text.png?raw=true#gh-dark-mode-only)
4680 | 
4681 | ![Elixir CI](https://github.com/ash-project/ash_admin/workflows/CI/badge.svg) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Hex version badge](https://img.shields.io/hexpm/v/ash_admin.svg)](https://hex.pm/packages/ash_admin) [![Hexdocs badge](https://img.shields.io/badge/docs-hexdocs-purple)](../ash_admin.html)
4682 | 
4683 | # AshAdmin
4684 | 
4685 | Welcome! This is a super-admin UI dashboard for [Ash Framework](../ash.html) applications, built with Phoenix LiveView.
4686 | 
4687 | If you are using Phoenix LiveView 1.0.0 release candidate, you will need to use the live\_view\_1.0 branch of this repo.
4688 | 
4689 | ## [](readme.html#tutorials)Tutorials
4690 | 
4691 | - [Getting Started with AshAdmin](getting-started-with-ash-admin.html)
4692 | 
4693 | ## [](readme.html#reference)Reference
4694 | 
4695 | - [AshAdmin.Domain DSL](dsl-ashadmin-domain.html)
4696 | - [AshAdmin.Resource DSL](dsl-ashadmin-resource.html)
4697 | 
4698 | [← Previous Page API Reference](api-reference.html)
4699 | 
4700 | [Next Page → Getting Started with AshAdmin](getting-started-with-ash-admin.html)
4701 | 
4702 | [Hex Package](https://hex.pm/packages/ash_admin/0.12.6) [Hex Preview](https://preview.hex.pm/preview/ash_admin/0.12.6) ([current file](https://preview.hex.pm/preview/ash_admin/0.12.6/show/README.md)) Search HexDocs [Download ePub version](ash_admin.epub "ePub version")
4703 | 
4704 | Built using [ExDoc](https://github.com/elixir-lang/ex_doc "ExDoc") (v0.36.1) for the [Elixir programming language](https://elixir-lang.org "Elixir")
4705 | 
```
Page 6/10FirstPrevNextLast