# LoginRequest

Model ID: `patient.LoginRequest`

Request body for POST /auth/login.

All fields are read via ``body.get(...)`` and validated manually in the
handler (400 when any are missing), so the canonical model marks them
optional to stay semantically equivalent to the inferred schema; the
handler's manual 400 guard is the real required-ness enforcement.

Type: `object`

## Fields

| Field | Type | Required | Format | Allowed values | Default | Nullable | Description |
|---|---|---:|---|---|---|---:|---|
| `email` | `string|null` | No |  |  | `null` | Yes | Patient's email address (Cognito username). |
| `password` | `string|null` | No |  |  | `null` | Yes | Patient's password. |
| `tenant_id` | `string|null` | No |  |  | `null` | Yes | Tenant whose patient Cognito pool to authenticate against. |

## Example

None declared in canonical OpenAPI.
