Upload a file (manifest step)
uploadinitiate {filename, bytes, sha256} → HTTP PUT the bytes to put.url with put.headers (required even when deduplicated: it proves possession) → complete {upload_id} → status until available. Then cite {upload_id} in an asset record's body.files. Private until referenced.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | No | ||
| action | Yes | ||
| sha256 | No | ||
| filename | No | ||
| upload_id | No | ||
| declared_mime | No | ||
| idempotency_key | No | Retry the exact mapped REST request with this key for 24 hours. A committed outcome is never executed again. |