# v1 · DataRoomUploadRequest

[All API schemas](/api-reference/v1/schemas/)

Exactly one of: <code>object</code>; <code>object</code> — Discriminator: <code>action</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>oneOf&#91;1&#93;.action</code> | Yes | Constant <code>PREPARE</code> | — |
| <code>oneOf&#91;1&#93;.artifactKind</code> | Yes | <code>string</code> | Min length: <code>2</code>; Max length: <code>120</code> |
| <code>oneOf&#91;1&#93;.fileName</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>240</code> |
| <code>oneOf&#91;1&#93;.mediaType</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>oneOf&#91;1&#93;.sizeBytes</code> | Yes | <code>string</code> | 1 byte to 50 MiB Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;&#42;$</code> |
| <code>oneOf&#91;1&#93;.expectedArtifactHash</code> | No | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</code> |
| <code>oneOf&#91;1&#93;.reason</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>500</code> |
| <code>oneOf&#91;2&#93;.action</code> | Yes | Constant <code>FINALIZE</code> | — |
| <code>oneOf&#91;2&#93;.uploadId</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>512</code> |
| <code>oneOf&#91;2&#93;.expectedArtifactHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</code> |
| <code>oneOf&#91;2&#93;.reason</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>500</code> |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

Exact definition: <code>#/components/schemas/DataRoomUploadRequest</code> in the [OpenAPI contract](/openapi/liquidity-studio.openapi.json).