latestOpenAPI 3.1.02026-08-17151182241.7 KB

7e2fe85577f4

Internal

Set a serving deployment's desired replica count (platform admin)

Sets replicasDesired. The value must lie within the deployment's replicasMin..replicasMax band; out-of-range values are rejected rather than silently clamped. The reconcile loop converges the fleet.

post/v1/admin/inference/deployments/{id}/scale

Path parameters

idstring required

Request body

desiredinteger required

Target replica count; must lie within replicasMin..replicasMax (as adjusted by this request)

replicasMaxinteger

Optional new upper bound for the replica band. Omitted = keep the current value. desired is validated against the adjusted band.

replicasMininteger

Optional new lower bound for the replica band. Omitted = keep the current value. desired is validated against the adjusted band.

Response

Updated

backendCatalogWeightinteger

Live catalog routing weight of this deployment's backend. Only present when backendRegistered is true. May differ from backendWeight (the row mirror) while a rollout ramp is in flight.

backendHealthyboolean

Live catalog health of this deployment's backend (the kill switch). Only present when backendRegistered is true.

backendRegisteredboolean

Whether this deployment's pool:// backend is currently present on the catalog model row. Absent when the live catalog state could not be read; false until the first replica passes readiness.

backendVersionstring

The rollout tag this deployment's backend reports to the gateway as the version metric label on ig_model_requests_total and ig_stream_ttft_seconds. Use it to separate the two sides of a rollout in a dashboard query. Only present when backendRegistered is true.

backendWeightinteger required

Routing weight of the catalog backend. 0 = standby (blue/green starts here)

changeCausestring

Operator-supplied reason for the revision that created this deployment

createdAtstring required
dtypestring
enginestring required

Inference engine, e.g. vllm or sglang

engineImagestring

Engine container image override; absent = the engine's default

envobject
extraArgsstring[]
generationinteger

1 for a hand-created deployment, parent+1 for each revision. History ordering only: the controller never reads it, because rollout adoption is the explicit rolloutRole opt-in and nothing else.

gpuCountPerReplicainteger required
gpuModelIdstring required
idstring required
isolatedboolean required

True when replicas and their private endpoint pool are for direct operator testing only. Isolated deployments never register a catalog backend, never participate in blue/green rollout, and cannot receive gateway traffic.

maxConcurrencyPerReplicainteger
maxModelLeninteger
maxPromptBytesinteger

Exclusive text-request byte ceiling for routing eligibility; 0 or absent = unbounded. Routing hint only, not a context limit.

minPromptBytesinteger

Inclusive text-request byte floor for routing eligibility; 0 or absent = unbounded. Routing hint only, not a context limit.

nativeFamiliesstring[]
nodePoolstring

Stable logical capacity lane within the public model. Blue/green only replaces versions in the same node pool; empty preserves legacy model-wide grouping.

organizationIdstring required

Org that owns the managed replicas (and their metering)

parentDeploymentIdstring

The deployment this one was revised from. Set only by /revise, so an absent value means this deployment was created by hand.

poolIdstring

Endpoint pool the deployment's replicas register in

publicModelIdstring required

Catalog model this deployment serves capacity for

quantizationstring
readyReplicasinteger required
replicaRuntime'' | 'vm' | 'pod'

How each replica is placed. Absent or "" or "vm" = a QEMU/VFIO VM on the baremetal fleet (the legacy shape; every pre-existing deployment reads as this). "pod" = a hardened GPU pod on a provider-onboarded runc node. One deployment is one runtime; a public model mixes runtimes through lanes.

replicaVmIdsstring[]
replicasDesiredinteger required
replicasMaxinteger required
replicasMininteger required
rolloutPausedboolean

True while an operator has paused the ramp. Traffic is untouched: the deployment keeps the weight it holds and keeps serving, and the controller takes no rollout action until resume. The pause is also on rollout.paused; this raw column is what a surface falls back to when the lane could not be read at all.

rolloutRole'' | 'green'

Opt-in blue/green role. Empty (default) = an INDEPENDENT weighted capacity member of its lane, never blue or green. "green" = the lane's successor generation: the controller ramps it against the older members under a capacity guard and cuts them over once it reaches capacity parity. Rollouts are never implicit.

servedModelIdstring required

Model id the engine serves; must equal the catalog backend ref

status'pending' | 'deploying' | 'ready' | 'degraded' | 'scaling' | 'draining' | 'stopped' | 'failed' required
statusReasonstring

Human-readable cause for degraded/failed states

updatedAtstring required
versionstring

Generation marker for blue/green within one public model and node pool

weightsRefstring

Staged-checkpoint reference; absent = the engine loads from its own source