# Summary

The Storage API manages **storage items** (preservations)—physical or logical storage devices (e.g. drives, media) that can be assigned to cases, located in offices, and audited.

**Base path:** `/storage` (relative to the Monolith API root; exact base URL depends on deployment).

All endpoints require API key authentication via the Monolith API middleware.

## Summary

| Method | Path                            | Description                                 |
| ------ | ------------------------------- | ------------------------------------------- |
| GET    | `/storage`                      | List storage (optional filters, pagination) |
| GET    | `/storage/:uuid`                | Get one storage item by UUID                |
| POST   | `/storage`                      | Create a storage item                       |
| POST   | `/storage/:uuid/assign-to-case` | Assign storage to a case                    |
| PATCH  | `/storage/:uuid`                | Update a storage item                       |
| DELETE | `/storage/:uuid`                | Delete a storage item                       |

***

## Error responses

* 400 Bad Request — Validation failed. Response includes `message` and `errors` (e.g. Zod validation details).
* 500 Internal Server Error — Server or database error. Response includes `message`.

***

## Authentication

All `/storage` routes are behind the Monolith API’s API key middleware. Include the required API key (e.g. header or query, as configured) on every request.
