# ProtectedExecutionPlan

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

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>planId</code> | Yes | <code>string</code> | — |
| <code>quoteRequestId</code> | Yes | <code>string</code> | — |
| <code>quoteSetResourceVersion</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>quoteSetArtifactHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>autonomyPolicyId</code> | Yes | <code>string</code> | — |
| <code>autonomyPolicyResourceVersion</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>autonomyPolicyArtifactHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>controlEpoch</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>publicMempoolFallbackAllowed</code> | Yes | <code>boolean</code> | — |
| <code>executionClass</code> | Yes | <code>string</code> | Allowed: <code>PREVIEW&#95;ONLY</code>, <code>CONTROLLER&#95;TYPED&#95;EXECUTABLE</code> |
| <code>executionUnavailableReasons</code> | Yes | Array of <code>string</code> | — |
| <code>status</code> | Yes | <code>string</code> | Allowed: <code>PREPARED</code>, <code>IN&#95;PROGRESS</code>, <code>COMPLETED</code>, <code>PAUSED</code>, <code>FAILED&#95;CLOSED</code> |
| <code>selectedQuote</code> | No | [ProtectedExecutionQuote](/api-reference/schemas/protected-execution-quote/) | — |
| <code>netAmountOutQuote</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>childLegs</code> | Yes | Array of <code>object</code> | — |
| <code>childLegs&#91;&#93;.childLegId</code> | Yes | <code>string</code> | — |
| <code>childLegs&#91;&#93;.index</code> | Yes | <code>integer</code> | Minimum: <code>0</code> |
| <code>childLegs&#91;&#93;.amountIn</code> | Yes | [PositiveAtomicAmount](/api-reference/schemas/positive-atomic-amount/) | — |
| <code>childLegs&#91;&#93;.minimumAmountOut</code> | Yes | [PositiveAtomicAmount](/api-reference/schemas/positive-atomic-amount/) | — |
| <code>childLegs&#91;&#93;.expiresAt</code> | Yes | <code>string</code> | Format: <code>date-time</code> |
| <code>childLegs&#91;&#93;.state</code> | Yes | <code>string</code> | Allowed: <code>PREPARED</code>, <code>SUBMITTED</code>, <code>FINALIZED&#95;RECONCILED</code>, <code>PAUSED</code>, <code>FAILED</code> |
| <code>childLegs&#91;&#93;.typedAction</code> | Yes | [ProtectedExecutionTypedAction](/api-reference/schemas/protected-execution-typed-action/) | — |
| <code>childLegs&#91;&#93;.typedActionHash</code> | No | [Hash](/api-reference/schemas/hash/) | — |
| <code>childLegs&#91;&#93;.submissionEvidenceHash</code> | No | [Hash](/api-reference/schemas/hash/) | — |
| <code>childLegs&#91;&#93;.transactionHash</code> | No | [Hash](/api-reference/schemas/hash/) | — |
| <code>childLegs&#91;&#93;.finalityEvidenceHash</code> | No | [Hash](/api-reference/schemas/hash/) | — |
| <code>childLegs&#91;&#93;.reconciliationEvidenceHash</code> | No | [Hash](/api-reference/schemas/hash/) | — |
| <code>childLegs&#91;&#93;.failureEvidenceHash</code> | No | [Hash](/api-reference/schemas/hash/) | — |
| <code>childLegs&#91;&#93;.executionReceipt</code> | No | [ProtectedExecutionTransactionReceiptV2](/api-reference/schemas/protected-execution-transaction-receipt-v2/) | — |
| <code>childLegs&#91;&#93;.consumedAmountIn</code> | No | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>childLegs&#91;&#93;.residualAmountIn</code> | No | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>childLegs&#91;&#93;.amountOutReceived</code> | No | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>transitions</code> | Yes | Array of [ProtectedExecutionLegTransition](/api-reference/schemas/protected-execution-leg-transition/) | — |
| <code>totalInputAmount</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>totalConsumedAmount</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>totalResidualAmount</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>totalUnresolvedAmount</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>totalAmountOutReceived</code> | Yes | [AtomicAmount](/api-reference/schemas/atomic-amount/) | — |
| <code>fallbackQuoteId</code> | No | <code>string</code> | — |
| <code>requiresSafeApproval</code> | Yes | <code>boolean</code> | — |
| <code>pauseReason</code> | No | <code>string</code> | Allowed: <code>PRIVATE&#95;EXECUTION&#95;UNAVAILABLE</code>, <code>QUOTE&#95;EXPIRED</code>, <code>POLICY&#95;CHANGED</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/ProtectedExecutionPlan</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).