Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "scenario.get" and "simulation.create"
⟨134 unchanged words⟩ :"object"},"type":"array"},"autoscalingConfig":{"additionalProperties":{},"description":"Scenario-level autoscaling thresholds and cooldown; pass this with resources and connections when copying the graph.","type":"object"},"category":{"type":"string"},"connections" ⟨185 unchanged words⟩
⟨101 unchanged words⟩ do not send `scenarioId` with `resources` or `connections`. When copying a scenario graph that returns `autoscalingConfig`, pass that config to `simulation.create` too so its thresholds and cooldown are preserved. For the catalog EKS Spot Interruption Migration scenario, ⟨908 unchanged words⟩ than your intended fleet size. The response includeseffectiveMaxInstances / effectiveMinInstances so you can confirm the bounds that will be enforced. For a targeted CPU HPA scale-out threshold, send the canonical autosceffectiveMaxIn
⟨68 unchanged words⟩ "minimum":0,"type":"number"},"autoscalingConfig":{"additionalProperties":false,"description":"Simulation autoscaling thresholds and cooldown. Pass the value from scenario.get when creating from a copied scenario graph.","properties":{"cooldownSeconds":{"type":"number"},"ecsCpuTargetTracking":{"type":"boolean"},"maxInstances":{"type":"number"},"minInstances":{"type":"number"},"scaleInCooldownSeconds":{"maximum":86400,"minimum":0,"type":"integer"},"scaleInCpuThreshold":{"type":"number"},"scaleInThroughputThreshold":{"type":"number"},"scaleOutCooldownSeconds":{"maximum":86400,"minimum":0,"type":"integer"},"scaleOutCpuThreshold":{"type":"number"},"scaleOutLatencyThreshold":{"type":"number"},"scaleOutThroughputThreshold":{"type":"number"},"simulationSecondsPerStep":{"exclusiveMinimum":0,"maximum":60,"type":"number"}},"required":["scaleOutCpuThreshold","scaleInCpuThreshold","scaleOutThroughputThreshold","scaleInThroughputThreshold","scaleOutLatencyThreshold","cooldownSeconds","minInstances","maxInstances"],"type":"object"},"autoscalingTargetCpu":{"description":"Canonical CPU HPA scale-out ⟨2493 unchanged words⟩
Changed the definition of "simulation.create", "simulation.metrics" and "simulation.step"
⟨1478 unchanged words⟩ (Utilization requires an explicit CPU request). A reviewed cpuDemandCalibration may include 2–100 offered-RPS/aggregate-mCPU points and must match the explicit demand value; cite its source and reference in cpuDemandEvidence. Unannotated request/demand inputs are ASSUMED; no HPA controller parity is claimed.","properties":{"cpuDemandCalibration":{"additionalProperties":false,"properties":{"measurements":{"items":{"additionalProperties":false,"properties":{"cpuMilliCores":{"maximum":1000000000,"minimum":0,"type":"number"},"rps":{"exclusiveMinimum":0,"maximum":1000000,"type":"number"}},"required":["rps","cpuMilliCores"],"type":"object"},"maxItems":100,"minItems":2,"type":"array"},"method":{"const":"least-squares-through-origin","type":"string"},"reviewed":{"const":true,"type":"boolean"}},"required":["method","reviewed","measurements"],"type":"object"},"cpuDemandEvidence":{"$ref":"#/properties/resources/items/properties/characteristics/properties/kubernetesCpuHpa/properties/cpuRequestEvidence"},"cpuDemandMilliCoresPerRps ⟨998 unchanged words⟩
Changed the definition of "simulation.create", "simulation.metrics" and "simulation.step"
⟨1454 unchanged words⟩ "minimum":1,"type":"integer"},"kubernetesCpuHpa":{"additionalProperties":false,"description":"Opt-in bounded workload-pod replica model, separate from node-pool scaling. Declare CPU demand in millicores/RPS and targets (Utilization requires an explicit CPU request). Unannotated request/demand inputs are ASSUMED; no HPA controller parity is claimed.","properties":{"cpuDemandEvidence":{"$ref":"#/properties/resources/items/properties/characteristics/properties/kubernetesCpuHpa/properties/cpuRequestEvidence"},"cpuDemandMilliCoresPerRps":{"exclusiveMinimum":0,"maximum":1000000,"type":"number"},"cpuRequestEvidence":{"additionalProperties":false,"properties":{"reference":{"maxLength":512,"minLength":1,"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["source","reference"],"type":"object"},"cpuRequestMilliCores":{"exclusiveMinimum":0,"maximum":100000,"type":"number"},"maxReplicas":{"maximum":10000,"minimum":1,"type":"integer"},"minReplicas":{"maximum":10000,"minimum":1,"type":"integer"},"replicas":{"maximum":10000,"minimum":1,"type":"integer"},"scaleDownStabilizationSteps":{"maximum":10000,"minimum":1,"type":"integer"},"targets":{"items":{"anyOf":[{"additionalProperties":false,"properties":{"targetPercent":{"exclusiveMinimum":0,"maximum":1000,"type":"number"},"type":{"const":"Utilization","type":"string"}},"required":["type","targetPercent"],"type":"object"},{"additionalProperties":false,"properties":{"targetMilliCores":{"exclusiveMinimum":0,"maximum":100000,"type":"number"},"type":{"const":"AverageValue","type":"string"}},"required":["type","targetMilliCores"],"type":"object"}]},"maxItems":2,"minItems":1,"type":"array"}},"required":["cpuDemandMilliCoresPerRps","targets","replicas","minReplicas","maxReplicas"],"type":"object"},"
Changed the definition of "simulation.create", "simulation.metrics" and "simulation.step"
⟨244 unchanged words⟩ and failure presets are not applied automatically. Use resilienceConfig.externalMetrics for deterministic sampled recommendations: no_ready_endpoints is successful zero only when its trigger sets noReadyEndpointsAsZero:true; discovery_error and fetch_error always remain errors. This is not a KEDA/provider actuator and does not change resource counts. Use it to start any simulation workflow — either ⟨754 unchanged words⟩ CPU HPA scale-out threshold, send the canonicalautoscalingTargetCpu field in this create call (for example, autoscalingTargetCpu: 70 for GKE). The compatible aliases scaleOutCpuThreshold, scaleOutCpuPercent, and autoscaleTargetCpuPercent are also accepted; if more than one is sent, their values must agree. Every create response includes hpaAudit with thautosc
⟨257 unchanged words⟩ description":"Optional retry/cascade resilience model returned byscenario.get
Changed the definition of "simulation.create", "simulation.metrics" and "simulation.step"
⟨96 unchanged words⟩ :"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"}, ⟨2833 unchanged words⟩
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact metrics summary by default (principal current metrics, per-resource status, bounded history tail). With responseMode 'full', the complete simulation object and full metrics history are passed through instead.","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Latest compact per-writer Aurora failover state, with failed and standby IDs and phase.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; modeled when the gate fails or another generic model applies.","enum":["owned","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Latest estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Latest self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"Current simulation time step","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Latest seeded EKS interruption telemetry, including additive migrationEvaluation/provenance when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors from the latest metrics entry, in percentage-point units; distinguishes database connection pressure below the usable limit from pool saturation after exhaustion","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Latest client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"Latest GPU utilization (%) — present only on GPU inference simulations","type":"number"},"idleGpuCostPerHour":{"description":"Latest USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Latest share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"Latest general modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Latest 50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"Latest 95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Latest modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Latest percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned ID of the latest persisted metric","type":"string"},"metrics":{"description":"Metrics history — bounded to the last 10 entries in compact mode, full history in full mode","items":{"additionalProperties":true,"properties":{"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens for this step — present only on GPU inference simulations","type":["number","null"]},"cpuUsage":{"description":"CPU utilization (%)","type":"number"},"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors for this history entry","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details. Modeled demand is not observed live sessions.","items":{"$ref":"#/properties/errorBreakdown/properties/poolSaturationDetails/items"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; standalone targets count once.","type":"number"},"gpuUtilization":{"description":"GPU utilization (%) for this step — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Median latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this history record.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID, when this history entry was stored","type":"string"},"retryAmplificationFactor":{"description":"Per-step (original offered RPS + generated retry RPS) / original offered RPS — present only when resilience is enabled; an amplification measure, not capacity or goodput.","type":["number","null"]},"throughput":{"description":"Effective RPS","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second for this step — present only on GPU inference simulations","type":"number"}},"type":"object"},"type":"array"},"metricsHistoryLength":{"description":"Total number of metrics-history entries (compact mode returns only the last 10)","type":"number"},"modeledShedRps":{"description":"Latest aggregate modeled shed requests per second","type":"number"},"offeredRps":{"description":"Latest aggregate offered requests per second","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics from the latest step (compact mode). Absent when the resilience model did not run.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources in the latest step; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Latest incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated in the latest step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"Latest (original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical replay scenario graph hash.","maxLength":64,"minLength":64,"type":"string"},"simulation":{"additionalProperties":true,"description":"Complete simulation state (full mode only; absent in compact mode and when status is not_found/access_denied)","properties":{"currentTime":{"description":"Current time step","type":"number"},"id":{"description":"Simulation ID","type":"string"},"name":{"description":"Simulation name","type":"string"},"resources":{"description":"Resource states with health and status","items":{"additionalProperties":{},"type":"object"},"type":"array"},"traffic":{"description":"Current RPS","type":"number"}},"type":"object"},"simulationId":{"description":"ID of the queried simulation","type":"string"},"throughput":{"description":"Latest effective requests per second","type":"number"},"tokensPerSecond":{"description":"Latest inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}Changed the definition of "simulation.metrics" and "simulation.step"
⟨831 unchanged words⟩ pool saturation after exhaustion","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure" ⟨17 unchanged words⟩ ,"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory" ⟨632 unchanged words⟩ for this history entry","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure" ⟨16 unchanged words⟩ "number"},"poolSaturation":{"type":"number
Changed the definition of "simulation.metrics" and "simulation.step"
⟨814 unchanged words⟩ from the latest metrics entry, in percentage-pointunitsunits; distinguishes database connection pressure below the usable limit from pool saturation after exhaustion","properties":{"capacityOverload":{"type": ⟨4 unchanged words⟩ ,"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure" ⟨652 unchanged words⟩ "computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"dbFailure": ⟨1521 unchanged words⟩
Changed the definition of "simulation.create"
⟨936 unchanged words⟩ ,"deleted"],"type":"string"},"cacheHitRate":{"maximum":1,"minimum":0,"type":"number"},"capacityGB":{"description":"Storage capacity in GB ⟨34 unchanged words⟩ ceiling.","exclusiveMinimum":0,"type":"number"},"cdnTraffic":{"additionalProperties":false,"description":"Assumed CDN cacheable/dynamic request mix and DB-query fractions. cacheHitRate applies only to the cacheable share. Read simulation.step metrics.cdnFlow for the modeled edge, origin and database flow.","properties":{"cacheableFraction":{"maximum":1,"minimum":0,"type":"number"},"cacheableMissDatabaseFraction":{"maximum":1,"minimum":0,"type":"number"},"dynamicDatabaseFraction":{"maximum":1,"minimum":0,"type":"number"}},"required":["cacheableFraction","cacheableMissDatabaseFraction","dynamicDatabaseFraction"],"type":"object"},"config":{"additionalProperties":true,"description ⟨1077 unchanged words⟩
Changed the definition of "simulation.create"
⟨146 unchanged words⟩ and is mutually exclusive with resources and connections. For the Web App Autoscaling scenario, create with `scenarioId: "web-autoscaling"` and `scenarioOverrides: { webAutoscaling: { includeTrafficRecovery: true } }` to activate the optional Traffic Recovery ramp and observe scale-in. `includeTrafficRecovery` is optional and defaults to false, leaving the phase inactive. Opt in before the first simulation.step because replay identity is finalized when stepping starts. This override also requires scenarioId and is mutually exclusive with resources and connections. `scenario.list` returns graph-free cards with bounded active/optional traffic-phase ⟨825 unchanged words⟩ must agree. Every create response includes hpaAudit withthe supplied field, persisted thresholds, and any provider default. For ECS Fargate CPU-only target tracking, set ecsCpuTargetTracking: true, autoscalingTargetCpu, minInstances/maxInstances, and optional scaleOutCooldownSeconds/scaleInCooldownSeconds with simulationSecondsPerStep (default 1). Inspect autoscalingConfig in the compact response or applicationAutoscalingPolicy in the full response. Latency and throughput do not trigger ECS scaling in this mode. These four TOP-LEVEL fields are simulation-wide — theth
Changed the definition of "simulation.create", "simulation.delete", "simulation.inject_failure" and 1 more
⟨1458 unchanged words⟩ idle rate","type":"string"},"sessionAffinity":{"additionalProperties":false,"description":"Opt-in modeled sticky owners for generic compute; Kubernetes requires explicit workload replicas independent of nodes. Use identical fleetId/config on compute peers. Existing sessions do not migrate on scale-out; owner loss disconnects them. reconnect:'next-step' explicitly enables rebinding; default none. Session arrivals/lifetime are assumptions, not measured OpenShell data. Read full step metrics.sessionAffinity for per-owner load, rejects and disconnects.","properties":{"arrivalsPerStep":{"default":0,"minimum":0,"type":"number"},"fleetId":{"maxLength":128,"minLength":1,"type":"string"},"initialSessions":{"default":100,"minimum":0,"type":"number"},"maxSessionsPerOwner":{"default":1000,"exclusiveMinimum":0,"type":"number"},"meanLifetimeSteps":{"default":300,"minimum":1,"type":"number"},"mode":{"const":"sticky","type":"string"},"reconnect":{"default":"none","enum":["none","next-step"],"type":"string"},"requestsPerSessionPerSecond":{"default":1,"exclusiveMinimum":0,"type":"number"},"workload":{"additionalProperties":false,"properties":{"autoscaling":{"default":true,"type":"boolean"},"capacityRpsPerReplica":{"exclusiveMinimum":0,"type":"number"},"maxReplicas":{"maximum":10000,"minimum":1,"type":"integer"},"minReplicas":{"maximum":10000,"minimum":1,"type":"integer"},"replicas":{"maximum":10000,"minimum":1,"type":"integer"},"targetCpuPercent":{"default":70,"maximum":100,"minimum":1,"type":"number"}},"required":["replicas","minReplicas","maxReplicas","capacityRpsPerReplica"],"type":"object"}},"required":["mode","fleetId"],"type":"object"},"size":{"description":"Instance or SKU size
Changed the definition of "simulation.metrics" and "simulation.step"
⟨2380 unchanged words⟩ model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources in the latest step; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Latest incident outcome:
Changed the definition of "simulation.create", "simulation.metrics" and "simulation.step"
⟨723 unchanged words⟩ modeled failover; no AWS timing guarantee is implied. For database connection budgets, set characteristics.connectionDemand on a database: {mode:'declared',declaredConnections:240} uses that plan-time demand without RPS; {mode:'max',declaredConnections:240,idlePoolFloor:200} takes the maximum of load-derived demand and the declared/floor values; omitted configuration preserves load-derived behavior. declaredConnections and idlePoolFloor are ASSUMPTIONS / plan-time budgets (for example, replicas × per-pod pool size), not observed live DB connections. Set maxConnections to the usable limit you intend to test. Per-database metrics report connectionDemandMode, loadDerivedConnections, declaredConnections/idlePoolFloor, and modeledConnections; cost and DB CPU/latency remain based on existing load-driven behavior. Demand above the usable limit adds a bounded, rule-based pool-saturation error signal; it is not a provider-calibrated rate. Capacity, node-bound, SKU, and autoscaling values supplied ⟨202 unchanged words⟩ These four TOP-LEVEL fields are simulation-wide — theengine applies one CPU threshold identically to every resource's scale decision by default. To make ONE resource scale at a different CPU target than the rest of the simulation (e.g. a GKE cluster scaling out at 60% while an EC2 fleet in the same simulation scales out at 80%), set characteristics.scaleOutCpuThreshold and/or characteristics.scaleInCpuThreshold on that specific resource instead — the per-resource value wins over the simulation-wide default for that resource only. A misnamed near-miss field nested under characteristics (e.g. targetCPUUtilizationPercentage) is rejected with a 400 explaining the correct field name — it is never silently dropped and defaulted. Responses are compact by default: id, name, status, traffic, and a per-resource summary (id, name, status, cpuPercent, routedRps, availabilityState, isRoutable, and recoveryBlockedReason when provided). Pass r
Certificate recorded, valid to 2026-11-30
Authorization not required
Unknown → Live
First tool surface recorded: 9 tools (server version 1.1.0)
https://www.cloudworldmodel.ai/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 17 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨2911 unchanged words⟩ ,"effectiveConfigHash"],"type":"object"},"residualCostDefinition":{"description":"Definition of residual cost; total cost remains the complete billed total.","type":"string"},"residualCostPerHour":{"description":"Subtotal of unavailable, parked, or stopped resource costs; healthy/degraded idle resources, including ALBs, are excluded.","type":"number"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded ⟨672 unchanged words⟩
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"$ref":"#/properties/metrics/properties/errorBreakdown","description":"Validated additive error contributors in percentage-point units; separates database connection pressure below the usable pool limit from pool saturation after exhaustion, plus DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"events":{"description":"Events generated during this step","items":{"additionalProperties":{},"type":"object"},"type":"array"},"externalMetrics":{"additionalProperties":false,"description":"Latest deterministic external-metric recommendation telemetry, including each trigger's sample status/outcome/value/desired capacity and the combined capacity decision. It never actuates simulated or provider resources.","properties":{"currentCapacity":{"minimum":0,"type":"integer"},"decision":{"enum":["scale_out","scale_in","no_scale","no_recommendation","frozen","frozen_without_prior"],"type":"string"},"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"errorMode":{"enum":["drop_failed_trigger","freeze_combined_decision"],"type":"string"},"lastSuccessfulRecommendation":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"scaleInBlocked":{"type":"boolean"},"step":{"minimum":0,"type":"integer"},"triggers":{"items":{"additionalProperties":false,"properties":{"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"outcome":{"enum":["success","error"],"type":"string"},"sampleStatus":{"enum":["value","no_ready_endpoints","discovery_error","fetch_error"],"type":"string"},"value":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]}},"required":["id","sampleStatus","outcome","value","desiredCapacity"],"type":"object"},"type":"array"}},"required":["step","errorMode","currentCapacity","desiredCapacity","lastSuccessfulRecommendation","decision","scaleInBlocked","triggers"],"type":"object"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"kubernetesCpuHpa":{"description":"Per-workload CPU request, observed millicores per pod, target calculations, bounded replica recommendation, scale-down stabilization, and provenance/errors. Utilization without a CPU request has no recommendation; this is not Kubernetes controller parity.","items":{"additionalProperties":false,"properties":{"appliedReplicas":{"exclusiveMinimum":0,"type":"integer"},"cpuDemandMilliCoresPerRps":{"exclusiveMinimum":0,"type":"number"},"cpuDemandProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"cpuRequestMilliCores":{"exclusiveMinimum":0,"type":"number"},"cpuRequestProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE","UNDECLARED"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"currentReplicas":{"exclusiveMinimum":0,"type":"integer"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"maxReplicas":{"exclusiveMinimum":0,"type":"integer"},"minReplicas":{"exclusiveMinimum":0,"type":"integer"},"modelScope":{"const":"workload-replicas-only; no Kubernetes controller parity claim","type":"string"},"name":{"type":"string"},"observedCpuMilliCoresPerPod":{"minimum":0,"type":"number"},"offeredRps":{"minimum":0,"type":"number"},"resourceId":{"type":"string"},"scaleDownStabilizationHeld":{"type":"boolean"},"scaleDownStabilizationReason":{"type":"string"},"scaleDownStabilizationSteps":{"exclusiveMinimum":0,"type":"integer"},"targets":{"items":{"additionalProperties":false,"properties":{"currentMetric":{"minimum":0,"type":"number"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"error":{"additionalProperties":false,"properties":{"code":{"const":"MISSING_CPU_REQUEST","type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"targetValue":{"exclusiveMinimum":0,"type":"number"},"type":{"enum":["Utilization","AverageValue"],"type":"string"}},"required":["type","targetValue","desiredReplicas"],"type":"object"},"type":"array"}},"required":["resourceId","name","cpuRequestProvenance","cpuDemandMilliCoresPerRps","cpuDemandProvenance","offeredRps","observedCpuMilliCoresPerPod","currentReplicas","minReplicas","maxReplicas","targets","desiredReplicas","appliedReplicas","scaleDownStabilizationHeld","modelScope"],"type":"object"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"loadBalancers":{"description":"Per-load-balancer routed traffic, including CDN-origin-matched ALB RPS for comparison with cdnFlow.originRps","items":{"additionalProperties":true,"properties":{"resourceId":{"description":"ID of the load balancer","type":"string"},"routedRps":{"description":"Requests per second routed through this load balancer this step","type":"number"}},"type":"object"},"type":"array"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Full-mode error contributors, including cause-attributed pool-saturation details.","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from lifecycle and routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = failed/parked, scaled_to_zero and cold_start = Fargate no-task states","enum":["available","degraded","unavailable","scaled_to_zero","cold_start"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"(Original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"$ref":"#/properties/metrics/properties/errorBreakdown","description":"Validated additive error contributors in percentage-point units; separates database connection pressure below the usable pool limit from pool saturation after exhaustion, plus DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"events":{"description":"Events generated during this step; every event has a non-empty canonical type","items":{"additionalProperties":true,"properties":{"type":{"description":"Canonical event type","minLength":1,"type":"string"}},"required":["type"],"type":"object"},"type":"array"},"externalMetrics":{"additionalProperties":false,"description":"Latest deterministic external-metric recommendation telemetry, including each trigger's sample status/outcome/value/desired capacity and the combined capacity decision. It never actuates simulated or provider resources.","properties":{"currentCapacity":{"minimum":0,"type":"integer"},"decision":{"enum":["scale_out","scale_in","no_scale","no_recommendation","frozen","frozen_without_prior"],"type":"string"},"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"errorMode":{"enum":["drop_failed_trigger","freeze_combined_decision"],"type":"string"},"lastSuccessfulRecommendation":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"scaleInBlocked":{"type":"boolean"},"step":{"minimum":0,"type":"integer"},"triggers":{"items":{"additionalProperties":false,"properties":{"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"outcome":{"enum":["success","error"],"type":"string"},"sampleStatus":{"enum":["value","no_ready_endpoints","discovery_error","fetch_error"],"type":"string"},"value":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]}},"required":["id","sampleStatus","outcome","value","desiredCapacity"],"type":"object"},"type":"array"}},"required":["step","errorMode","currentCapacity","desiredCapacity","lastSuccessfulRecommendation","decision","scaleInBlocked","triggers"],"type":"object"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"kubernetesCpuHpa":{"description":"Per-workload CPU request, observed millicores per pod, target calculations, bounded replica recommendation, scale-down stabilization, and provenance/errors. Utilization without a CPU request has no recommendation; this is not Kubernetes controller parity.","items":{"additionalProperties":false,"properties":{"appliedReplicas":{"exclusiveMinimum":0,"type":"integer"},"cpuDemandMilliCoresPerRps":{"exclusiveMinimum":0,"type":"number"},"cpuDemandProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"cpuRequestMilliCores":{"exclusiveMinimum":0,"type":"number"},"cpuRequestProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE","UNDECLARED"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"currentReplicas":{"exclusiveMinimum":0,"type":"integer"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"maxReplicas":{"exclusiveMinimum":0,"type":"integer"},"minReplicas":{"exclusiveMinimum":0,"type":"integer"},"modelScope":{"const":"workload-replicas-only; no Kubernetes controller parity claim","type":"string"},"name":{"type":"string"},"observedCpuMilliCoresPerPod":{"minimum":0,"type":"number"},"offeredRps":{"minimum":0,"type":"number"},"resourceId":{"type":"string"},"scaleDownStabilizationHeld":{"type":"boolean"},"scaleDownStabilizationReason":{"type":"string"},"scaleDownStabilizationSteps":{"exclusiveMinimum":0,"type":"integer"},"targets":{"items":{"additionalProperties":false,"properties":{"currentMetric":{"minimum":0,"type":"number"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"error":{"additionalProperties":false,"properties":{"code":{"const":"MISSING_CPU_REQUEST","type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"targetValue":{"exclusiveMinimum":0,"type":"number"},"type":{"enum":["Utilization","AverageValue"],"type":"string"}},"required":["type","targetValue","desiredReplicas"],"type":"object"},"type":"array"}},"required":["resourceId","name","cpuRequestProvenance","cpuDemandMilliCoresPerRps","cpuDemandProvenance","offeredRps","observedCpuMilliCoresPerPod","currentReplicas","minReplicas","maxReplicas","targets","desiredReplicas","appliedReplicas","scaleDownStabilizationHeld","modelScope"],"type":"object"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"loadBalancers":{"description":"Per-load-balancer routed traffic, including CDN-origin-matched ALB RPS for comparison with cdnFlow.originRps","items":{"additionalProperties":true,"properties":{"resourceId":{"description":"ID of the load balancer","type":"string"},"routedRps":{"description":"Requests per second routed through this load balancer this step","type":"number"}},"type":"object"},"type":"array"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Full-mode error contributors, including cause-attributed pool-saturation details.","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"requestServing":{"items":{"additionalProperties":true,"properties":{"activeInstances":{"minimum":0,"type":"integer"},"aggregateCapacityRps":{"description":"Capacity includes active tasks, including tasks draining during scale-down.","minimum":0,"type":"number"},"desiredTaskCount":{"minimum":0,"type":"integer"},"drainingTasks":{"description":"Excess running Fargate tasks still serving and billing during scale-down.","minimum":0,"type":"integer"},"provisionedInstances":{"minimum":0,"type":"integer"},"resourceId":{"type":"string"},"scalingState":{"type":"string"}},"required":["resourceId","activeInstances","scalingState"],"type":"object"},"type":"array"},"residualCostDefinition":{"description":"Definition of residual cost; total cost remains the complete billed total.","type":"string"},"residualCostPerHour":{"description":"Subtotal of unavailable, parked, or stopped resource costs; healthy/degraded idle resources, including ALBs, are excluded.","type":"number"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from lifecycle and routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = failed/parked, scaled_to_zero and cold_start = Fargate no-task states","enum":["available","degraded","unavailable","scaled_to_zero","cold_start"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"(Original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}⟨1665 unchanged words⟩ inference simulations","type":"number"},"kubernetesCpuHpa":{"description":"Latest per-workload bounded CPU HPA telemetry, including input provenance and missing-request errors; no Kubernetes controller parity is claimed.","items":{"additionalProperties":false,"properties":{"appliedReplicas":{"exclusiveMinimum":0,"type":"integer"},"cpuDemandMilliCoresPerRps":{"exclusiveMinimum":0,"type":"number"},"cpuDemandProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"cpuRequestMilliCores":{"exclusiveMinimum":0,"type":"number"},"cpuRequestProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE","UNDECLARED"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"currentReplicas":{"exclusiveMinimum":0,"type":"integer"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"maxReplicas":{"exclusiveMinimum":0,"type":"integer"},"minReplicas":{"exclusiveMinimum":0,"type":"integer"},"modelScope":{"const":"workload-replicas-only; no Kubernetes controller parity claim","type":"string"},"name":{"type":"string"},"observedCpuMilliCoresPerPod":{"minimum":0,"type":"number"},"offeredRps":{"minimum":0,"type":"number"},"resourceId":{"type":"string"},"scaleDownStabilizationHeld":{"type":"boolean"},"scaleDownStabilizationReason":{"type":"string"},"scaleDownStabilizationSteps":{"exclusiveMinimum":0,"type":"integer"},"targets":{"items":{"additionalProperties":false,"properties":{"currentMetric":{"minimum":0,"type":"number"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"error":{"additionalProperties":false,"properties":{"code":{"const":"MISSING_CPU_REQUEST","type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"targetValue":{"exclusiveMinimum":0,"type":"number"},"type":{"enum":["Utilization","AverageValue"],"type":"string"}},"required":["type","targetValue","desiredReplicas"],"type":"object"},"type":"array"}},"required":["resourceId","name","cpuRequestProvenance","cpuDemandMilliCoresPerRps","cpuDemandProvenance","offeredRps","observedCpuMilliCoresPerPod","currentReplicas","minReplicas","maxReplicas","targets","desiredReplicas","appliedReplicas","scaleDownStabilizationHeld","modelScope"],"type":"object"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis" ⟨1698 unchanged words⟩
⟨1463 unchanged words⟩ HA overhead","type":"number"},"kubernetesCpuHpa":{"description":"Per-workload CPU request, observed millicores per pod, target calculations, bounded replica recommendation, scale-down stabilization, and provenance/errors. Utilization without a CPU request has no recommendation; this is not Kubernetes controller parity.","items":{"additionalProperties":false,"properties":{"appliedReplicas":{"exclusiveMinimum":0,"type":"integer"},"cpuDemandMilliCoresPerRps":{"exclusiveMinimum":0,"type":"number"},"cpuDemandProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"cpuRequestMilliCores":{"exclusiveMinimum":0,"type":"number"},"cpuRequestProvenance":{"additionalProperties":false,"properties":{"basis":{"enum":["ASSUMED","EVIDENCE","UNDECLARED"],"type":"string"},"reference":{"type":"string"},"source":{"enum":["calibrated","external"],"type":"string"}},"required":["basis"],"type":"object"},"currentReplicas":{"exclusiveMinimum":0,"type":"integer"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"maxReplicas":{"exclusiveMinimum":0,"type":"integer"},"minReplicas":{"exclusiveMinimum":0,"type":"integer"},"modelScope":{"const":"workload-replicas-only; no Kubernetes controller parity claim","type":"string"},"name":{"type":"string"},"observedCpuMilliCoresPerPod":{"minimum":0,"type":"number"},"offeredRps":{"minimum":0,"type":"number"},"resourceId":{"type":"string"},"scaleDownStabilizationHeld":{"type":"boolean"},"scaleDownStabilizationReason":{"type":"string"},"scaleDownStabilizationSteps":{"exclusiveMinimum":0,"type":"integer"},"targets":{"items":{"additionalProperties":false,"properties":{"currentMetric":{"minimum":0,"type":"number"},"desiredReplicas":{"anyOf":[{"exclusiveMinimum":0,"type":"integer"},{"type":"null"}]},"error":{"additionalProperties":false,"properties":{"code":{"const":"MISSING_CPU_REQUEST","type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"targetValue":{"exclusiveMinimum":0,"type":"number"},"type":{"enum":["Utilization","AverageValue"],"type":"string"}},"required":["type","targetValue","desiredReplicas"],"type":"object"},"type":"array"}},"required":["resourceId","name","cpuRequestProvenance","cpuDemandMilliCoresPerRps","cpuDemandProvenance","offeredRps","observedCpuMilliCoresPerPod","currentReplicas","minReplicas","maxReplicas","targets","desiredReplicas","appliedReplicas","scaleDownStabilizationHeld","modelScope"],"type":"object"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis" ⟨1737 unchanged words⟩
⟨2545 unchanged words⟩ retry/cascade modeling","type":"boolean"},"externalMetrics":{"additionalProperties":false,"description":"Deterministic per-trigger recommendation inputs. A no_ready_endpoints sample is a successful zero only when that trigger sets noReadyEndpointsAsZero:true; discovery_error and fetch_error always remain errors. This is not a KEDA/provider actuator and does not change resource counts.","properties":{"errorMode":{"enum":["drop_failed_trigger","freeze_combined_decision"],"type":"string"},"initialCapacity":{"maximum":10000,"minimum":0,"type":"integer"},"maxCapacity":{"default":100,"maximum":10000,"minimum":1,"type":"integer"},"minCapacity":{"default":0,"maximum":10000,"minimum":0,"type":"integer"},"triggers":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"minLength":1,"type":"string"},"noReadyEndpointsAsZero":{"default":false,"type":"boolean"},"samples":{"items":{"anyOf":[{"additionalProperties":false,"properties":{"status":{"const":"value","type":"string"},"step":{"maximum":100000,"minimum":0,"type":"integer"},"value":{"maximum":1000000000,"minimum":0,"type":"number"}},"required":["step","status","value"],"type":"object"},{"additionalProperties":false,"properties":{"status":{"enum":["no_ready_endpoints","discovery_error","fetch_error"],"type":"string"},"step":{"maximum":100000,"minimum":0,"type":"integer"}},"required":["step","status"],"type":"object"}]},"maxItems":120,"minItems":1,"type":"array"},"targetValue":{"exclusiveMinimum":0,"maximum":1000000000,"minimum":0.000001,"type":"number"}},"required":["id","targetValue","samples"],"type":"object"},"maxItems":16,"minItems":1,"type":"array"}},"required":["errorMode","initialCapacity","triggers"],"type":"object"},"maxCascadeDepth":{"maximum":8,"minimum":1, ⟨219 unchanged words⟩ "availabilityState":{"description":"Availability derived from lifecycle and routed traffic; degraded can still serve, unavailablecannotis failed/parked, scaled_to_zero and cold_start are Fargate no-task states","enum":["available","degraded","unavailable","scaled_to_zero","cold_start"],"type":"string"},"cpuPercent": ⟨170 unchanged words⟩
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact metrics summary by default (principal current metrics, per-resource status, bounded history tail). With responseMode 'full', the complete simulation object and full metrics history are passed through instead.","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Latest compact per-writer Aurora failover state, with failed and standby IDs and phase.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Latest estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Latest self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"Current simulation time step","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Latest seeded EKS interruption telemetry, including additive migrationEvaluation/provenance when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors from the latest metrics entry, in percentage-point units; distinguishes database connection pressure below the usable limit from pool saturation after exhaustion","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Latest client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"Latest GPU utilization (%) — present only on GPU inference simulations","type":"number"},"idleGpuCostPerHour":{"description":"Latest USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Latest share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"Latest general modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Latest 50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"Latest 95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Latest modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Latest percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned ID of the latest persisted metric","type":"string"},"metrics":{"description":"Metrics history — bounded to the last 10 entries in compact mode, full history in full mode","items":{"additionalProperties":true,"properties":{"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens for this step — present only on GPU inference simulations","type":["number","null"]},"cpuUsage":{"description":"CPU utilization (%)","type":"number"},"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"$ref":"#/properties/errorBreakdown","description":"Validated additive error contributors for this history entry"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; standalone targets count once.","type":"number"},"gpuUtilization":{"description":"GPU utilization (%) for this step — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Median latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this history record.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID, when this history entry was stored","type":"string"},"retryAmplificationFactor":{"description":"Per-step (original offered RPS + generated retry RPS) / original offered RPS — present only when resilience is enabled; an amplification measure, not capacity or goodput.","type":["number","null"]},"throughput":{"description":"Effective RPS","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second for this step — present only on GPU inference simulations","type":"number"}},"type":"object"},"type":"array"},"metricsHistoryLength":{"description":"Total number of metrics-history entries (compact mode returns only the last 10)","type":"number"},"modeledShedRps":{"description":"Latest aggregate modeled shed requests per second","type":"number"},"offeredRps":{"description":"Latest aggregate offered requests per second","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics from the latest step (compact mode). Absent when the resilience model did not run.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources in the latest step; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Latest incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated in the latest step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"Latest (original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical replay scenario graph hash.","maxLength":64,"minLength":64,"type":"string"},"simulation":{"additionalProperties":true,"description":"Complete simulation state (full mode only; absent in compact mode and when status is not_found/access_denied)","properties":{"currentTime":{"description":"Current time step","type":"number"},"id":{"description":"Simulation ID","type":"string"},"name":{"description":"Simulation name","type":"string"},"resources":{"description":"Resource states with health and status","items":{"additionalProperties":{},"type":"object"},"type":"array"},"traffic":{"description":"Current RPS","type":"number"}},"type":"object"},"simulationId":{"description":"ID of the queried simulation","type":"string"},"throughput":{"description":"Latest effective requests per second","type":"number"},"tokensPerSecond":{"description":"Latest inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact metrics summary by default (principal current metrics, per-resource status, bounded history tail). With responseMode 'full', the complete simulation object and full metrics history are passed through instead.","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Latest compact per-writer Aurora failover state, with failed and standby IDs and phase.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Latest estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Latest self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"Current simulation time step","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Latest seeded EKS interruption telemetry, including additive migrationEvaluation/provenance when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors from the latest metrics entry, in percentage-point units; distinguishes database connection pressure below the usable limit from pool saturation after exhaustion","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Latest client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"externalMetrics":{"additionalProperties":false,"description":"Latest deterministic external-metric recommendation telemetry, including each trigger's sample status/outcome/value/desired capacity and the combined capacity decision. It never actuates simulated or provider resources.","properties":{"currentCapacity":{"minimum":0,"type":"integer"},"decision":{"enum":["scale_out","scale_in","no_scale","no_recommendation","frozen","frozen_without_prior"],"type":"string"},"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"errorMode":{"enum":["drop_failed_trigger","freeze_combined_decision"],"type":"string"},"lastSuccessfulRecommendation":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"scaleInBlocked":{"type":"boolean"},"step":{"minimum":0,"type":"integer"},"triggers":{"items":{"additionalProperties":false,"properties":{"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"outcome":{"enum":["success","error"],"type":"string"},"sampleStatus":{"enum":["value","no_ready_endpoints","discovery_error","fetch_error"],"type":"string"},"value":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]}},"required":["id","sampleStatus","outcome","value","desiredCapacity"],"type":"object"},"type":"array"}},"required":["step","errorMode","currentCapacity","desiredCapacity","lastSuccessfulRecommendation","decision","scaleInBlocked","triggers"],"type":"object"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"Latest GPU utilization (%) — present only on GPU inference simulations","type":"number"},"idleGpuCostPerHour":{"description":"Latest USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Latest share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"Latest general modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Latest 50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"Latest 95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Latest modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Latest percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned ID of the latest persisted metric","type":"string"},"metrics":{"description":"Metrics history — bounded to the last 10 entries in compact mode, full history in full mode","items":{"additionalProperties":true,"properties":{"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens for this step — present only on GPU inference simulations","type":["number","null"]},"cpuUsage":{"description":"CPU utilization (%)","type":"number"},"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"$ref":"#/properties/errorBreakdown","description":"Validated additive error contributors for this history entry"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; standalone targets count once.","type":"number"},"gpuUtilization":{"description":"GPU utilization (%) for this step — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Median latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this history record.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID, when this history entry was stored","type":"string"},"resilience":{"additionalProperties":true,"description":"Per-step resilience telemetry, including external-metric trigger outcomes when configured.","properties":{"externalMetrics":{"$ref":"#/properties/externalMetrics"}},"type":"object"},"retryAmplificationFactor":{"description":"Per-step (original offered RPS + generated retry RPS) / original offered RPS — present only when resilience is enabled; an amplification measure, not capacity or goodput.","type":["number","null"]},"throughput":{"description":"Effective RPS","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second for this step — present only on GPU inference simulations","type":"number"}},"type":"object"},"type":"array"},"metricsHistoryLength":{"description":"Total number of metrics-history entries (compact mode returns only the last 10)","type":"number"},"modeledShedRps":{"description":"Latest aggregate modeled shed requests per second","type":"number"},"offeredRps":{"description":"Latest aggregate offered requests per second","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics from the latest step (compact mode). Absent when the resilience model did not run.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources in the latest step; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Latest incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated in the latest step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from lifecycle and routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = failed/parked, scaled_to_zero and cold_start = Fargate no-task states","enum":["available","degraded","unavailable","scaled_to_zero","cold_start"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"Latest (original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical replay scenario graph hash.","maxLength":64,"minLength":64,"type":"string"},"simulation":{"additionalProperties":true,"description":"Complete simulation state (full mode only; absent in compact mode and when status is not_found/access_denied)","properties":{"currentTime":{"description":"Current time step","type":"number"},"id":{"description":"Simulation ID","type":"string"},"name":{"description":"Simulation name","type":"string"},"resources":{"description":"Resource states with health and status","items":{"additionalProperties":{},"type":"object"},"type":"array"},"traffic":{"description":"Current RPS","type":"number"}},"type":"object"},"simulationId":{"description":"ID of the queried simulation","type":"string"},"throughput":{"description":"Latest effective requests per second","type":"number"},"tokensPerSecond":{"description":"Latest inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}⟨229 unchanged words⟩ isRoutable: true is degraded but still serving;availabilityState:unavailableand isRoutable: false identifyidentifies a failed or parkednode.node, while scaled_to_zero and cold_start identify Fargate no-task states. Pass responseMode: 'full' to get the complete ⟨99 unchanged words⟩
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"$ref":"#/properties/metrics/properties/errorBreakdown","description":"Validated additive error contributors in percentage-point units; separates database connection pressure below the usable pool limit from pool saturation after exhaustion, plus DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"events":{"description":"Events generated during this step","items":{"additionalProperties":{},"type":"object"},"type":"array"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"loadBalancers":{"description":"Per-load-balancer routed traffic, including CDN-origin-matched ALB RPS for comparison with cdnFlow.originRps","items":{"additionalProperties":true,"properties":{"resourceId":{"description":"ID of the load balancer","type":"string"},"routedRps":{"description":"Requests per second routed through this load balancer this step","type":"number"}},"type":"object"},"type":"array"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Full-mode error contributors, including cause-attributed pool-saturation details.","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"(Original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"$ref":"#/properties/metrics/properties/errorBreakdown","description":"Validated additive error contributors in percentage-point units; separates database connection pressure below the usable pool limit from pool saturation after exhaustion, plus DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"events":{"description":"Events generated during this step","items":{"additionalProperties":{},"type":"object"},"type":"array"},"externalMetrics":{"additionalProperties":false,"description":"Latest deterministic external-metric recommendation telemetry, including each trigger's sample status/outcome/value/desired capacity and the combined capacity decision. It never actuates simulated or provider resources.","properties":{"currentCapacity":{"minimum":0,"type":"integer"},"decision":{"enum":["scale_out","scale_in","no_scale","no_recommendation","frozen","frozen_without_prior"],"type":"string"},"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"errorMode":{"enum":["drop_failed_trigger","freeze_combined_decision"],"type":"string"},"lastSuccessfulRecommendation":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"scaleInBlocked":{"type":"boolean"},"step":{"minimum":0,"type":"integer"},"triggers":{"items":{"additionalProperties":false,"properties":{"desiredCapacity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"outcome":{"enum":["success","error"],"type":"string"},"sampleStatus":{"enum":["value","no_ready_endpoints","discovery_error","fetch_error"],"type":"string"},"value":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]}},"required":["id","sampleStatus","outcome","value","desiredCapacity"],"type":"object"},"type":"array"}},"required":["step","errorMode","currentCapacity","desiredCapacity","lastSuccessfulRecommendation","decision","scaleInBlocked","triggers"],"type":"object"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"loadBalancers":{"description":"Per-load-balancer routed traffic, including CDN-origin-matched ALB RPS for comparison with cdnFlow.originRps","items":{"additionalProperties":true,"properties":{"resourceId":{"description":"ID of the load balancer","type":"string"},"routedRps":{"description":"Requests per second routed through this load balancer this step","type":"number"}},"type":"object"},"type":"array"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Full-mode error contributors, including cause-attributed pool-saturation details.","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from lifecycle and routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = failed/parked, scaled_to_zero and cold_start = Fargate no-task states","enum":["available","degraded","unavailable","scaled_to_zero","cold_start"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"(Original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact metrics summary by default (principal current metrics, per-resource status, bounded history tail). With responseMode 'full', the complete simulation object and full metrics history are passed through instead.","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Latest compact per-writer Aurora failover state, with failed and standby IDs and phase.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Latest estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Latest self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"Current simulation time step","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Latest seeded EKS interruption telemetry, including additive migrationEvaluation/provenance when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors from the latest metrics entry, in percentage-point units; distinguishes database connection pressure below the usable limit from pool saturation after exhaustion","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Latest client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"Latest GPU utilization (%) — present only on GPU inference simulations","type":"number"},"idleGpuCostPerHour":{"description":"Latest USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Latest share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"Latest general modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Latest 50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"Latest 95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Latest modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Latest percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned ID of the latest persisted metric","type":"string"},"metrics":{"description":"Metrics history — bounded to the last 10 entries in compact mode, full history in full mode","items":{"additionalProperties":true,"properties":{"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens for this step — present only on GPU inference simulations","type":["number","null"]},"cpuUsage":{"description":"CPU utilization (%)","type":"number"},"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"$ref":"#/properties/errorBreakdown","description":"Validated additive error contributors for this history entry"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; standalone targets count once.","type":"number"},"gpuUtilization":{"description":"GPU utilization (%) for this step — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Median latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this history record.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID, when this history entry was stored","type":"string"},"retryAmplificationFactor":{"description":"Per-step (original offered RPS + generated retry RPS) / original offered RPS — present only when resilience is enabled; an amplification measure, not capacity or goodput.","type":["number","null"]},"throughput":{"description":"Effective RPS","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second for this step — present only on GPU inference simulations","type":"number"}},"type":"object"},"type":"array"},"metricsHistoryLength":{"description":"Total number of metrics-history entries (compact mode returns only the last 10)","type":"number"},"modeledShedRps":{"description":"Latest aggregate modeled shed requests per second","type":"number"},"offeredRps":{"description":"Latest aggregate offered requests per second","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics from the latest step (compact mode). Absent when the resilience model did not run.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources in the latest step; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Latest incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated in the latest step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"Latest (original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical replay scenario graph hash.","maxLength":64,"minLength":64,"type":"string"},"simulation":{"additionalProperties":true,"description":"Complete simulation state (full mode only; absent in compact mode and when status is not_found/access_denied)","properties":{"currentTime":{"description":"Current time step","type":"number"},"id":{"description":"Simulation ID","type":"string"},"name":{"description":"Simulation name","type":"string"},"resources":{"description":"Resource states with health and status","items":{"additionalProperties":{},"type":"object"},"type":"array"},"traffic":{"description":"Current RPS","type":"number"}},"type":"object"},"simulationId":{"description":"ID of the queried simulation","type":"string"},"throughput":{"description":"Latest effective requests per second","type":"number"},"tokensPerSecond":{"description":"Latest inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; modeled when the gate fails or another generic model applies.","enum":["owned","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors in percentage-point units; separates database connection pressure below the usable pool limit from pool saturation after exhaustion, plus DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"events":{"description":"Events generated during this step","items":{"additionalProperties":{},"type":"object"},"type":"array"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"loadBalancers":{"description":"Per-load-balancer routed traffic, including CDN-origin-matched ALB RPS for comparison with cdnFlow.originRps","items":{"additionalProperties":true,"properties":{"resourceId":{"description":"ID of the load balancer","type":"string"},"routedRps":{"description":"Requests per second routed through this load balancer this step","type":"number"}},"type":"object"},"type":"array"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"(Original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; owned-scaled when derived from that fit outside its exact fleet size; modeled when the gate fails or another generic model applies.","enum":["owned","owned-scaled","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"$ref":"#/properties/metrics/properties/errorBreakdown","description":"Validated additive error contributors in percentage-point units; separates database connection pressure below the usable pool limit from pool saturation after exhaustion, plus DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"events":{"description":"Events generated during this step","items":{"additionalProperties":{},"type":"object"},"type":"array"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"loadBalancers":{"description":"Per-load-balancer routed traffic, including CDN-origin-matched ALB RPS for comparison with cdnFlow.originRps","items":{"additionalProperties":true,"properties":{"resourceId":{"description":"ID of the load balancer","type":"string"},"routedRps":{"description":"Requests per second routed through this load balancer this step","type":"number"}},"type":"object"},"type":"array"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Full-mode error contributors, including cause-attributed pool-saturation details.","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"databasePressure":{"type":"number"},"databasePressureDetails":{"description":"Per-database causes contributing to pressure below the usable connection limit.","items":{"additionalProperties":false,"properties":{"cause":{"description":"Modeled source of this database's under-limit pressure contribution.","enum":["connection_pressure","cpu_pressure","connection_and_cpu_pressure","provider_reference_fit"],"type":"string"},"connectionUtilization":{"minimum":0,"type":"number"},"contributionPct":{"minimum":0,"type":"number"},"cpuUtilization":{"minimum":0,"type":"number"},"modeledConnections":{"minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID contributing to modeled under-limit connection pressure.","type":"string"},"usableConnectionLimit":{"minimum":0,"type":"number"}},"required":["resourceId","name","cause","modeledConnections","usableConnectionLimit","connectionUtilization","cpuUtilization","contributionPct"],"type":"object"},"type":"array"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details, including the cause when available. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"cause":{"const":"connection_limit_exceeded","description":"Why this database's modeled connection demand exceeded its usable pool limit.","type":"string"},"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"},"sessionAffinity":{"type":"number"},"startupBackpressure":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"(Original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}⟨852 unchanged words⟩ and queue absorption effects","properties":{"benchmarkReferenceFit":{"type":"number"},"capacityOverload":{"type":"number"},"computeFailure" ⟨16 unchanged words⟩ "number"},"poolSaturation":{"type":"number"},"poolSaturationDetails":{"description":"Per-database pool exhaustion details. Modeled demand is not observed live sessions.","items":{"additionalProperties":false,"properties":{"demandBasis":{"const":"modeled connection demand; not observed live sessions","type":"string"},"modeledConnections":{"description":"Modeled demand/assumption, not observed live sessions.","minimum":0,"type":"number"},"name":{"description":"Human-readable database resource name.","type":"string"},"resourceId":{"description":"Database resource ID whose modeled demand exceeds its usable limit.","type":"string"},"usableConnectionLimit":{"description":"This database's effective usable connection limit.","minimum":0,"type":"number"}},"required":["resourceId","name","modeledConnections","usableConnectionLimit","demandBasis"],"type":"object"},"type":"array"},"queueAbsorption":{"type":"number"} ⟨1955 unchanged words⟩
⟨1296 unchanged words⟩ path resolved the rate","enum":["exact-catalog","large-sku","entry-level-fallback","base-rate-multiplier","fargate-task-vcpu-memorycloud-run-request-based","aurora-acu-hourrequest-serving-usage-based","cloud-run-request-basedfargate-task-vcpu-memory","request-serving-usage-basedaurora-acu-hour"],"type":"string"},"sku": ⟨1639 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨82 unchanged words⟩ Authenticate with an API key to unlock all6263 tools and persistent simulation management.
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨432 unchanged words⟩ Authenticate with an API key to unlock all6263 tools including typed durational failures and chaos engineering.
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨105 unchanged words⟩ Authenticate with an API key to unlock all6263 tools and unlimited simulations.
⟨2205 unchanged words⟩ model work","type":"boolean"},"capacityByResource":{"description":"Unique logical dependency resources; each appears once even when several paths reference it. When values are finite, nominalCapacityRps minus warmupCapacityLossRps (members still warming) and healthCapacityLossRps (unavailable or degraded members) equals routableCapacityRps, within rounding.","items":{"additionalProperties":false,"properties":{"healthCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because members are unavailable or degraded; zero means no modeled member-health loss"},"nominalCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity before warm-up and member-health reductions; null means no finite capacity ceiling is known"},"resourceId":{"description":"Logical resource ID used by one or more resilience dependency paths","type":"string"},"role":{"description":"Whether this resource is a dependency source, target, or both","enum":["source","target","source_and_target"],"type":"string"},"routableCapacityRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity available to this logical resource after modeled warm-up and member health; null means no finite capacity ceiling is known"},"warmupCapacityLossRps":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Aggregate capacity lost because fleet members are still warming up; zero means no modeled warm-up loss"}},"required":["resourceId","role","routableCapacityRps"],"type":"object"},"type":"array"},"incidentOutcome":{"description":"Incident outcome: stable ⟨381 unchanged words⟩
⟨1021 unchanged words⟩ "number"}},"type":"object"},"connectionDemand":{"additionalProperties":false,"description":"Database only. Omit to preserve legacy load-derived connection use. `declared` and `max` require declaredConnections and/or idlePoolFloor. Demand above usable maxConnections adds a bounded rule-based pool-saturation error signal, not a provider-calibrated rate.","properties":{"declaredConnections":{"description":"ASSUMPTION / plan-time peak pool budget (for example, replicas × per-pod pool size), not an observed live connection count.","maximum":1000000,"minimum":0,"type":"integer"},"idlePoolFloor":{"description":"ASSUMPTION / plan-time minimum idle pool footprint, not an observed live connection count.","maximum":1000000,"minimum":0,"type":"integer"},"mode":{"description":"load-derived keeps the legacy traffic estimate; declared uses only the plan-time declaredConnections/idlePoolFloor; max uses the greatest of load-derived and declared/floor demand.","enum":["load-derived","declared","max"],"type":"string"}},"required":["mode"],"type":"object"},"instanceCount":{"description":"Generic fixed compute: ⟨746 unchanged words⟩
⟨1784 unchanged words⟩ ,"beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{ ⟨297 unchanged words⟩ ","beyond measured load","below measured load","not calibrated"],"type":"string"},"note": ⟨847 unchanged words⟩
⟨246 unchanged words⟩ least one simulation.step is needed for meaningful metrics.Read-onlyRead-only;andrepeatedfreecalls may be subject torepeat.demo usage limits. The likely next tool is simulation.step or simulation.inject_traffic.
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact metrics summary by default (principal current metrics, per-resource status, bounded history tail). With responseMode 'full', the complete simulation object and full metrics history are passed through instead.","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Latest compact per-writer Aurora failover state, with failed and standby IDs and phase.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; modeled when the gate fails or another generic model applies.","enum":["owned","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Latest estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Latest self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"Current simulation time step","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Latest seeded EKS interruption telemetry, including additive migrationEvaluation/provenance when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors from the latest metrics entry, in percentage-point units","properties":{"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Latest error rate (%)","type":"number"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled successful requests per second; a post-step point rate sourced from metrics.throughput","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"Latest GPU utilization (%) — present only on GPU inference simulations","type":"number"},"idleGpuCostPerHour":{"description":"Latest USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Latest share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"Latest general modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Latest 50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"Latest 95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Latest modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Latest percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned ID of the latest persisted metric","type":"string"},"metrics":{"description":"Metrics history — bounded to the last 10 entries in compact mode, full history in full mode","items":{"additionalProperties":true,"properties":{"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens for this step — present only on GPU inference simulations","type":["number","null"]},"cpuUsage":{"description":"CPU utilization (%)","type":"number"},"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors for this history entry","properties":{"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Error rate (%)","type":"number"},"gpuUtilization":{"description":"GPU utilization (%) for this step — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Median latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this history record.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID, when this history entry was stored","type":"string"},"retryAmplificationFactor":{"description":"Per-step retry amplification factor — present only on resilience-enabled simulations","type":["number","null"]},"throughput":{"description":"Effective RPS","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second for this step — present only on GPU inference simulations","type":"number"}},"type":"object"},"type":"array"},"metricsHistoryLength":{"description":"Total number of metrics-history entries (compact mode returns only the last 10)","type":"number"},"modeledShedRps":{"description":"Latest aggregate modeled shed requests per second","type":"number"},"offeredRps":{"description":"Latest aggregate offered requests per second","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics from the latest step (compact mode). Absent when the resilience model did not run.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"incidentOutcome":{"description":"Latest incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated in the latest step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"Latest retry amplification factor (attemptedRps / originalRps). Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical replay scenario graph hash.","maxLength":64,"minLength":64,"type":"string"},"simulation":{"additionalProperties":true,"description":"Complete simulation state (full mode only; absent in compact mode and when status is not_found/access_denied)","properties":{"currentTime":{"description":"Current time step","type":"number"},"id":{"description":"Simulation ID","type":"string"},"name":{"description":"Simulation name","type":"string"},"resources":{"description":"Resource states with health and status","items":{"additionalProperties":{},"type":"object"},"type":"array"},"traffic":{"description":"Current RPS","type":"number"}},"type":"object"},"simulationId":{"description":"ID of the queried simulation","type":"string"},"throughput":{"description":"Latest effective requests per second","type":"number"},"tokensPerSecond":{"description":"Latest inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact metrics summary by default (principal current metrics, per-resource status, bounded history tail). With responseMode 'full', the complete simulation object and full metrics history are passed through instead.","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Latest compact per-writer Aurora failover state, with failed and standby IDs and phase.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; modeled when the gate fails or another generic model applies.","enum":["owned","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Latest estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Latest self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"Current simulation time step","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Latest seeded EKS interruption telemetry, including additive migrationEvaluation/provenance when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors from the latest metrics entry, in percentage-point units","properties":{"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Latest client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"Latest GPU utilization (%) — present only on GPU inference simulations","type":"number"},"idleGpuCostPerHour":{"description":"Latest USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Latest share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"Latest general modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Latest 50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"Latest 95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Latest modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Latest percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned ID of the latest persisted metric","type":"string"},"metrics":{"description":"Metrics history — bounded to the last 10 entries in compact mode, full history in full mode","items":{"additionalProperties":true,"properties":{"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens for this step — present only on GPU inference simulations","type":["number","null"]},"cpuUsage":{"description":"CPU utilization (%)","type":"number"},"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors for this history entry","properties":{"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; standalone targets count once.","type":"number"},"gpuUtilization":{"description":"GPU utilization (%) for this step — present only on GPU inference simulations","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"Median latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this history record.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID, when this history entry was stored","type":"string"},"retryAmplificationFactor":{"description":"Per-step (original offered RPS + generated retry RPS) / original offered RPS — present only when resilience is enabled; an amplification measure, not capacity or goodput.","type":["number","null"]},"throughput":{"description":"Effective RPS","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second for this step — present only on GPU inference simulations","type":"number"}},"type":"object"},"type":"array"},"metricsHistoryLength":{"description":"Total number of metrics-history entries (compact mode returns only the last 10)","type":"number"},"modeledShedRps":{"description":"Latest aggregate modeled shed requests per second","type":"number"},"offeredRps":{"description":"Latest aggregate offered requests per second","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics from the latest step (compact mode). Absent when the resilience model did not run.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"incidentOutcome":{"description":"Latest incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated in the latest step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"Latest (original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical replay scenario graph hash.","maxLength":64,"minLength":64,"type":"string"},"simulation":{"additionalProperties":true,"description":"Complete simulation state (full mode only; absent in compact mode and when status is not_found/access_denied)","properties":{"currentTime":{"description":"Current time step","type":"number"},"id":{"description":"Simulation ID","type":"string"},"name":{"description":"Simulation name","type":"string"},"resources":{"description":"Resource states with health and status","items":{"additionalProperties":{},"type":"object"},"type":"array"},"traffic":{"description":"Current RPS","type":"number"}},"type":"object"},"simulationId":{"description":"ID of the queried simulation","type":"string"},"throughput":{"description":"Latest effective requests per second","type":"number"},"tokensPerSecond":{"description":"Latest inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; modeled when the gate fails or another generic model applies.","enum":["owned","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors in percentage-point units; separates pool/DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects","properties":{"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Error rate (%)","type":"number"},"events":{"description":"Events generated during this step","items":{"additionalProperties":{},"type":"object"},"type":"array"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled successful requests per second; a post-step point rate sourced from metrics.throughput","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"Retry amplification factor for this step (attemptedRps / originalRps). Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Compact step summary by default (principal metrics + per-resource status), the complete backend step response with responseMode 'full', or a structured limit response (status: limit_reached) when the step cap is reached","properties":{"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"auroraFailovers":{"description":"Compact per-writer Aurora failover state; promoting has no serving writer, serving means the explicitly related standby took over.","items":{"additionalProperties":false,"properties":{"failedResourceId":{"type":"string"},"phase":{"enum":["promoting","serving","unavailable"],"type":"string"},"standbyResourceId":{"type":"string"},"succeeded":{"type":"boolean"}},"required":["failedResourceId","standbyResourceId","succeeded","phase"],"type":"object"},"type":"array"},"calibrationEvidence":{"additionalProperties":false,"description":"Owned-versus-modeled evidence and latency boundary.","properties":{"calibrationId":{"description":"Versioned owned calibration identifier; present only when that calibration applies.","type":"string"},"kind":{"description":"owned for the exact AWS CRUD fit; modeled when the gate fails or another generic model applies.","enum":["owned","modeled"],"type":"string"},"latencyBasis":{"description":"General modeled latency path, such as in-VPC ALB rather than end-to-end; see latencyP99Basis for percentile-specific P99 provenance.","type":"string"},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned in-VPC internal-ALB fit, scaled from that fit (not directly measured), or uncalibrated generic model.","type":"string"},"note":{"description":"Names the fit scope and limitations. For canonical workload inference, states it is a modeling assumption. For modeled fallback, names all actual failed checks in stable order with resource IDs and safe expected/actual values; never only a generic 'not applied'.","type":"string"}},"required":["kind","latencyBasis","note"],"type":"object"},"costPerHour":{"description":"Estimated cost in USD/hr","type":"number"},"costPerMillionTokens":{"description":"Self-hosted inference cost in USD per million tokens (null when no tokens are being processed) — present only on GPU inference simulations","type":["number","null"]},"currentStep":{"description":"New simulation time step index","type":"number"},"effectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity; see replayIdentity.effectiveConfigHash for the original replay-only hash.","maxLength":64,"minLength":64,"type":"string"},"eksSpotInterruptions":{"description":"Seeded EKS interruption telemetry, including the authoritative additive migrationEvaluation when recorded.","items":{"additionalProperties":true,"properties":{"checkpointEvidence":{"additionalProperties":false,"description":"Persisted seeded-EKS checkpoint captured with its interruption JSONB record. engineInputStepIndex is an engine input-step index, simulationSeconds is derived from that index and the recorded tick, and traffic provenance points to outer metric fields rather than duplicating float values.","properties":{"engineInputStepIndex":{"minimum":0,"type":"integer"},"fieldProvenance":{"additionalProperties":false,"properties":{"engineInputStepIndex":{"$ref":"#/properties/goodputProvenance"},"intervalAttribution":{"$ref":"#/properties/goodputProvenance"},"pointRateSemantics":{"$ref":"#/properties/goodputProvenance"},"simulationSeconds":{"$ref":"#/properties/goodputProvenance"},"tickDurationSeconds":{"$ref":"#/properties/goodputProvenance"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution"],"type":"object"},"intervalAttribution":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["status","window","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"}]},{"type":"null"}]},"pointRateSemantics":{"const":"post_step_point_rate","type":"string"},"simulationSeconds":{"minimum":0,"type":"number"},"tickDurationSeconds":{"exclusiveMinimum":0,"type":"number"},"trafficFieldProvenance":{"additionalProperties":false,"properties":{"errorRatePercent":{"$ref":"#/properties/goodputProvenance"},"latencyP50Ms":{"$ref":"#/properties/goodputProvenance"},"offeredRps":{"$ref":"#/properties/goodputProvenance"},"throughputRps":{"$ref":"#/properties/goodputProvenance"}},"required":["throughputRps","offeredRps","errorRatePercent","latencyP50Ms"],"type":"object"}},"required":["engineInputStepIndex","simulationSeconds","tickDurationSeconds","pointRateSemantics","intervalAttribution","fieldProvenance","trafficFieldProvenance"],"type":"object"},"migrationEvaluation":{"additionalProperties":false,"description":"Authoritative additive seeded EKS interruption evaluation. Field values carry recorded/derived/unavailable provenance; deadline verdict/counts/reasons are frozen once status is completed and do not describe later service health.","properties":{"affectedWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"allAffectedWorkloadsReadyAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"deadlineMet":{"type":["boolean","null"]},"deadlineSeconds":{"const":120,"type":"number"},"evaluatedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"fieldProvenance":{"additionalProperties":false,"properties":{"affectedWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"allAffectedWorkloadsReadyAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"deadlineMet":{"$ref":"#/properties/goodputProvenance"},"deadlineSeconds":{"$ref":"#/properties/goodputProvenance"},"evaluatedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"interruptionNoticeAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"limitingReasons":{"$ref":"#/properties/goodputProvenance"},"migrationDurationSeconds":{"$ref":"#/properties/goodputProvenance"},"migrationStartedAtSimulationSeconds":{"$ref":"#/properties/goodputProvenance"},"missedDeadlineWorkloadCount":{"$ref":"#/properties/goodputProvenance"},"readyWorkloadCountAtDeadline":{"$ref":"#/properties/goodputProvenance"},"status":{"$ref":"#/properties/goodputProvenance"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons"],"type":"object"},"interruptionNoticeAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"limitingReasons":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["no_reschedule","scheduling_capacity_exhausted","image_pull_incomplete","startup_incomplete","unclassified_runtime_work_remaining"],"type":"string"},"interruptionHandling":{"enum":["reschedule","drain-only","fail-fast"],"type":"string"},"pendingWorkloadCount":{"minimum":0,"type":"integer"},"provenance":{"const":"recorded","type":"string"},"pullingWorkloadCount":{"minimum":0,"type":"integer"},"residualPullSeconds":{"minimum":0,"type":"number"},"residualStartupSeconds":{"minimum":0,"type":"number"},"schedulingCapacity":{"minimum":0,"type":"integer"},"startingWorkloadCount":{"minimum":0,"type":"integer"},"workloadCount":{"minimum":0,"type":"integer"}},"required":["code","workloadCount","pendingWorkloadCount","pullingWorkloadCount","startingWorkloadCount","residualPullSeconds","residualStartupSeconds","schedulingCapacity","interruptionHandling","provenance"],"type":"object"},"maxItems":5,"type":"array"},"migrationDurationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"migrationStartedAtSimulationSeconds":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}]},"missedDeadlineWorkloadCount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"readyWorkloadCountAtDeadline":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["not_started","in_progress","completed"],"type":"string"}},"required":["status","interruptionNoticeAtSimulationSeconds","deadlineAtSimulationSeconds","migrationStartedAtSimulationSeconds","allAffectedWorkloadsReadyAtSimulationSeconds","migrationDurationSeconds","deadlineSeconds","deadlineMet","affectedWorkloadCount","readyWorkloadCountAtDeadline","missedDeadlineWorkloadCount","evaluatedAtSimulationSeconds","limitingReasons","fieldProvenance"],"type":"object"},"name":{"type":"string"},"resourceId":{"type":"string"}},"type":"object"},"type":"array"},"engineVersion":{"description":"Simulation engine version used for this prediction.","type":"string"},"errorBreakdown":{"additionalProperties":false,"description":"Validated additive error contributors in percentage-point units; separates pool/DB, compute, capacity, CPU, storage, runtime-memory, and queue absorption effects","properties":{"capacityOverload":{"type":"number"},"computeFailure":{"type":"number"},"cpuOverload":{"type":"number"},"dbFailure":{"type":"number"},"dependencyFailure":{"type":"number"},"ociStorage":{"type":"number"},"poolSaturation":{"type":"number"},"queueAbsorption":{"type":"number"},"runtimeMemory":{"type":"number"}},"required":["poolSaturation","dbFailure","computeFailure","capacityOverload","cpuOverload","ociStorage","queueAbsorption"],"type":"object"},"errorRate":{"description":"Client-level error rate (%) against original offered RPS. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"events":{"description":"Events generated during this step","items":{"additionalProperties":{},"type":"object"},"type":"array"},"goodputProvenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}],"description":"Provenance for the modeled goodput field"},"goodputRps":{"description":"Modeled client-level successful requests per second; a post-step point rate sourced from metrics.throughput. Resilience dependency targets in autoscaled compute fleets use aggregate routable-fleet capacity and health; non-autoscaled targets use their resolved resource capacity, including any declared fixed-instance count.","type":"number"},"goodputSemantics":{"const":"post_step_point_rate","description":"Goodput is a point rate, not an interval total","type":"string"},"goodputWindow":{"anyOf":[{"additionalProperties":false,"properties":{"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"},"status":{"const":"unavailable","type":"string"}},"required":["status","provenance"],"type":"object"},{"additionalProperties":false,"properties":{"aggregate":{"additionalProperties":false,"properties":{"coveredDurationSeconds":{"minimum":0,"type":"number"},"goodputRequestTotal":{"minimum":0,"type":"number"},"goodputRps":{"minimum":0,"type":"number"},"provenance":{"anyOf":[{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"derived","type":"string"},"sourceFields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":256,"minItems":1,"type":"array"}},"required":["kind","sourceFields"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"unavailable","type":"string"},"reason":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","reason"],"type":"object"}]},"sampleIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"window":{"$ref":"#/properties/goodputWindow/anyOf/1/properties/window"}},"required":["window","coveredDurationSeconds","goodputRps","goodputRequestTotal","sampleIds","provenance"],"type":"object"},"provenance":{"additionalProperties":false,"properties":{"kind":{"const":"recorded","type":"string"},"source":{"maxLength":256,"minLength":1,"type":"string"}},"required":["kind","source"],"type":"object"},"status":{"const":"recorded","type":"string"},"window":{"additionalProperties":false,"properties":{"inclusion":{"const":"[start,end)","type":"string"},"windowEndSeconds":{"minimum":0,"type":"number"},"windowStartSeconds":{"minimum":0,"type":"number"}},"required":["windowStartSeconds","windowEndSeconds","inclusion"],"type":"object"}},"required":["status","window","aggregate","provenance"],"type":"object"}],"description":"Interval goodput aggregate when every point has persisted simulation-clock bounds; otherwise status=unavailable. Never derive this from retrieval time or currentStep."},"gpuUtilization":{"description":"GPU utilization (%) — present only on simulations with a GPU inference kubernetes resource","type":"number"},"idleGpuCostPerHour":{"description":"USD/hr of GPU spend funding idle/standby capacity (HA overhead) — present only on GPU inference simulations","type":"number"},"idleGpuFraction":{"description":"Share (0-1) of the GPU bill that is idle/standby capacity — present only on GPU inference simulations; values above 0.5 mean over half the GPU spend is HA overhead","type":"number"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis: owned fit, scaled-from-fit (not directly measured), or uncalibrated generic model.","type":"string"},"metricId":{"description":"Storage-assigned persisted metric ID when available","type":"string"},"metrics":{"additionalProperties":true,"description":"Full-mode backend metric record; migrationEvaluation is exact-typed when a seeded interruption is present.","properties":{"eksSpotInterruptions":{"items":{"$ref":"#/properties/eksSpotInterruptions/items"},"type":"array"},"latencyBasis":{"description":"General modeled latency path/boundary; see latencyP99Basis for P99-specific provenance.","type":"string"},"latencyP50":{"description":"50th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP95":{"description":"95th-percentile latency in ms; null when workload-specific latency evidence is unavailable.","type":["number","null"]},"latencyP99":{"description":"Modeled 99th-percentile latency in ms; null when workload-specific latency evidence is unavailable. Interpret with this metric's latencyP99Basis and predictionEvidence.latencyP99.","type":["number","null"]},"latencyP99Basis":{"description":"Percentile-specific P99 basis for this metric checkpoint.","type":"string"}},"type":"object"},"modeledShedRps":{"description":"Aggregate modeled requests per second shed by bounded capacity","type":"number"},"offeredRps":{"description":"Aggregate offered requests per second represented by metrics.offeredRps provenance","type":"number"},"predictionEffectiveConfigHash":{"description":"Versioned prediction hash over replay startup inputs, engine version, and calibration identity.","maxLength":64,"minLength":64,"type":"string"},"predictionEvidence":{"anyOf":[{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"minimum":0,"type":"number"},"high":{"minimum":0,"type":"number"},"low":{"minimum":0,"type":"number"}},"required":["low","central","high"],"type":"object"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId","legacyGeneric"],"type":"object"},"type":"array"},"appWeight":{"enum":["lean","typical","heavy"],"type":"string"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"enum":["measured","scaled from measured","reference estimate"],"type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"resourceIds":{"items":{"minLength":1,"type":"string"},"type":"array"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason","resourceIds"],"type":"object"},"latencyP50":{"anyOf":[{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"}},"required":["low","central","high","evidenceLevel"],"type":"object"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"requestServingCapacity":{"items":{"additionalProperties":false,"properties":{"aggregateCapacityRps":{"minimum":0,"type":"number"},"capacityEvidence":{"additionalProperties":false,"properties":{"basis":{"enum":["assumption","documented","measured","catalog"],"type":"string"},"origin":{"enum":["caller-provided","fargate-size-heuristic","policy-default","provider-catalog"],"type":"string"},"source":{"type":"string"}},"required":["basis","origin"],"type":"object"},"maxAggregateCapacityRps":{"minimum":0,"type":"number"},"maxTaskCount":{"exclusiveMinimum":0,"type":"integer"},"perTaskCapacityRps":{"exclusiveMinimum":0,"type":"number"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"taskCount":{"minimum":0,"type":"integer"}},"required":["resourceId","resourceName","taskCount","perTaskCapacityRps","aggregateCapacityRps","maxTaskCount","maxAggregateCapacityRps","capacityEvidence"],"type":"object"},"type":"array"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","legacyGeneric","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"type":"null"},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"maxItems":0,"type":"array"},"appWeight":{"type":"null"},"appWeightDefaulted":{"type":"null"},"evidenceLevel":{"const":"unavailable/legacy","type":"string"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyP50":{"type":"null"},"latencyP95":{"type":"null"},"latencyP99":{"type":"null"},"legacyGeneric":{"type":"null"},"loadScope":{"type":"null"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"},{"additionalProperties":false,"properties":{"appCpu":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0"},{"type":"null"}]},"appCpuByResource":{"items":{"additionalProperties":false,"properties":{"central":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/central"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"high":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/high"},"legacyGeneric":{"type":"boolean"},"low":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appCpu/anyOf/0/properties/low"},"resourceId":{"type":"string"}},"required":["low","central","high","evidenceLevel","resourceId"],"type":"object"},"type":"array"},"appWeight":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/appWeight"},"appWeightDefaulted":{"type":"boolean"},"evidenceLevel":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/evidenceLevel"},"formulaIds":{"items":{"type":"string"},"type":"array"},"latencyAvailability":{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyAvailability"},"latencyP50":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP95":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyP99":{"anyOf":[{"$ref":"#/properties/predictionEvidence/anyOf/0/properties/latencyP50/anyOf/0"},{"type":"null"}]},"latencyPercentileStatus":{"enum":["modeled","unavailable"],"type":"string"},"legacyGeneric":{"type":"boolean"},"loadScope":{"enum":["within measured load","beyond measured load","below measured load","not calibrated"],"type":"string"},"note":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"version":{"const":1,"type":"number"}},"required":["version","evidenceLevel","appWeight","appWeightDefaulted","loadScope","sourceIds","formulaIds","appCpu","appCpuByResource","latencyP50","latencyP95","note"],"type":"object"}]},"replayIdentity":{"additionalProperties":false,"properties":{"effectiveConfigHash":{"description":"Original replay-only SHA-256 of the effective six-control startup configuration; top-level effectiveConfigHash is the versioned prediction identity.","maxLength":64,"minLength":64,"type":"string"},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"}},"required":["scenarioHash","effectiveConfigHash"],"type":"object"},"resilienceDiagnostics":{"additionalProperties":true,"description":"Bounded resilience diagnostics summary (compact mode). Absent when the resilience model did not run. Use simulation.compare_resilience for full per-path detail.","properties":{"bounded":{"description":"True when a generated-traffic, traversal-work, or cascade-depth bound truncated model work","type":"boolean"},"incidentOutcome":{"description":"Incident outcome: stable | degraded | cascading | protected | recovered","type":"string"},"pathCount":{"description":"Number of dependency paths evaluated this step","type":"number"}},"type":"object"},"resources":{"description":"Per-resource status summary (compact mode)","items":{"additionalProperties":true,"properties":{"availabilityState":{"description":"Availability derived from routed traffic: available = serving normally, degraded = critical/warning but still serving, unavailable = no traffic and not routable","enum":["available","degraded","unavailable"],"type":"string"},"cpuPercent":{"description":"CPU utilization (%)","type":"number"},"failureLifecycle":{"description":"Read-only failure lifecycle marker when the backend identifies a quick injection or typed instance failure","enum":["quick_injection_parked","quick_injection_rejoined","instance_down","instance_kill"],"type":"string"},"id":{"description":"Resource ID","type":"string"},"isRoutable":{"description":"Whether this compute/Kubernetes resource can receive traffic in this step; false distinguishes a failed/parked node from a critical node still serving","type":"boolean"},"name":{"description":"Resource display name","type":"string"},"recoveryBlockedReason":{"description":"Engine recovery guard currently preventing cooldown progress, when present (for example failure_park_window or idle_cpu_floor)","type":"string"},"recoveryProgress":{"additionalProperties":false,"description":"Read-only recovery progress; poll simulation.step until state is healthy, then use simulation.metrics to inspect the result","properties":{"cooldown":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"requiredSteps":{"type":"number"},"target":{"anyOf":[{"enum":["warning","healthy"],"type":"string"},{"type":"null"}]}},"required":["target","completedSteps","requiredSteps","remainingSteps"],"type":"object"},"parkWindow":{"additionalProperties":false,"properties":{"completedSteps":{"type":"number"},"remainingSteps":{"type":"number"},"totalSteps":{"type":"number"}},"required":["totalSteps","completedSteps","remainingSteps"],"type":"object"},"state":{"enum":["parked","blocked","cooling_down","healthy"],"type":"string"}},"required":["state","parkWindow","cooldown"],"type":"object"},"routedRps":{"description":"Requests per second routed to this resource this step (compute/kubernetes only)","type":"number"},"routingState":{"description":"Read-only current routing state for a resource with failure lifecycle telemetry","enum":["unavailable","serving"],"type":"string"},"status":{"description":"Health status (healthy/warning/critical/failed)","type":"string"}},"type":"object"},"type":"array"},"retryAmplificationFactor":{"description":"(Original offered RPS + generated retry RPS) / original offered RPS; an amplification measure, not capacity or goodput. Values > 1.0 = amplification risk. null = model ran but no traffic. Absent = resilience model disabled.","type":["number","null"]},"scenarioHash":{"description":"Canonical SHA-256 of the persisted scenario graph and attached traffic-pattern order","maxLength":64,"minLength":64,"type":"string"},"simulationId":{"description":"ID of the stepped simulation","type":"string"},"throughput":{"description":"Effective requests per second","type":"number"},"tokensPerSecond":{"description":"Inference throughput in tokens/second — present only on GPU inference simulations","type":"number"},"traffic":{"description":"Current traffic level in RPS","type":"number"}},"type":"object"}