# Inputs

The keys of an input definition.

`inputs` maps a name to a type (`"string"`, `"number"`, `"boolean"`, `"secret"`, `"enum"`) or to a definition with these keys. A job supplies the values; templates read them as `{{inputs.<name>}}`.

| Key | Type | Description |
|---|---|---|
| `default` | `string or number or boolean` | The value used when a job does not supply one: a string, number or boolean. An input with a `default` is not required unless `required` says so. |
| `description` | `string` | A human-readable explanation of the input, shown to whoever fills it in. |
| `max` | `number` | The largest value a `number` input accepts. Only valid when `type` is `number` (lint `E001` otherwise). |
| `min` | `number` | The smallest value a `number` input accepts. Only valid when `type` is `number` (lint `E001` otherwise). |
| `pattern` | `string` | A regular expression the value must match. Only valid for `string` and `secret` inputs; an invalid regex is lint `E009`. |
| `required` | `boolean` | Whether a job must supply the value. Defaults to `true`, or to `false` when the input has a `default`. |
| `store` | `boolean` | Secret inputs only: allows the value to be saved on a session as a refresh input, so the session can sign in again unattended. Defaults to `false`, and takes effect only when your organisation has enabled secret storage. |
| `type` | `"string" \| "number" \| "boolean" \| "secret" \| "enum"` | The value's type: `string`, `number`, `boolean`, `secret` or `enum`. Defaults to `string`; a `secret` value never appears in results, logs, snapshots, screenshots or webhooks. |
| `values` | `string[]` | The allowed values of an `enum` input, at least one. Required when `type` is `enum` and rejected for any other type (lint `E001`). |
