# UpdatePersonRequest

Model ID: `UpdatePersonRequest`

Documentation-only request schema for PATCH /persons/{person_id}. This
resolver runs with enable_validation=False, so this model is never used to
parse a request — the handler still reads app.current_event.json_body
directly. Its field list is exactly the set of Person attributes that
hc.services.person.person_service.PersonService.update() genuinely merges
in (any other key is silently ignored because hasattr(current, key) is
False for it); the identity fields person_id/fhir_id/cognito_sub/tenant_id/
person_type are established at registration and are excluded here because
patching them has no effect (person_id/fhir_id) or would corrupt identity
and tenant scoping (cognito_sub/tenant_id/person_type).

All fields are optional; only the supplied ones are patched.

Type: `object`

## Fields

| Field | Type | Required | Format | Allowed values | Default | Nullable | Description |
|---|---|---:|---|---|---|---:|---|
| `active` | `boolean|null` | No |  |  |  | Yes | False marks the record inactive without deleting it. |
| `address` | [`Address`](./Address.md) | No |  |  |  | Yes | Replaces the person's stored address. |
| `birth_date` | `string|null` | No |  |  |  | Yes | ISO 8601 date of birth (YYYY-MM-DD). |
| `email` | `string|null` | No |  |  |  | Yes | Email address. |
| `first_name` | `string|null` | No |  |  |  | Yes | Given name. |
| `gender` | [`PersonGender`](./PersonGender.md) | No |  |  |  | Yes | Administrative gender. |
| `last_name` | `string|null` | No |  |  |  | Yes | Family name. |
| `linked_patient_ids` | `array|null` | No |  |  |  | Yes | FHIR Patient IDs this identity is linked to. Replaces the existing list. |
| `linked_practitioner_ids` | `array|null` | No |  |  |  | Yes | FHIR Practitioner IDs this identity is linked to. Replaces the existing list. |
| `middle_name` | `string|null` | No |  |  |  | Yes | Middle name. |
| `notes` | `string|null` | No |  |  |  | Yes | Free-text internal notes. |
| `phone` | `string|null` | No |  |  |  | Yes | Phone number. Does not send an OTP — use person.updatePhone for a verified phone change. |
| `prefix` | `string|null` | No |  |  |  | Yes | Name prefix, e.g. 'Dr.'. |
| `race` | `array|null` | No |  |  |  | Yes | One or more race values. |
| `relationship` | [`PersonRelationship`](./PersonRelationship.md) | No |  |  |  | Yes | This identity's relationship to the linked patient(s). |
| `suffix` | `string|null` | No |  |  |  | Yes | Name suffix, e.g. 'Jr.'. |

## Example

None declared in canonical OpenAPI.
