Skip to content
Console
Menu

Queues

Workflows

Getting Started

Authentication

KV Store

Update a distributed job

Updates a distributed job.

This method is not served on the public API. api.sylphx.com does not route this call: its backend is not deployed behind the public API, or does not implement the call. This page documents the contract. It is kept out of the sidebar and of search engines.

Updates a distributed job. Runs already started keep the generation they pinned.

  • Path PATCH https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/distributed_jobs/distributed-job
  • Scope workflows:write
  • Effect write — a successful call changes state.
  • Collection distributed_jobs
  • Query update_mask, allow_missing, validate_only
  • Operation answers with an Operation; the result is DistributedJob

#Request

FieldTypeWhat it is
distributed_jobDistributedJobThe distributed job to update; name identifies it. Required.
update_maskfield_maskThe fields to write; unset writes every populated field.
allow_missingboolCreate the distributed job when it does not exist (declarative upsert).
validate_onlyboolValidate and return the result without writing anything.

#DistributedJob

FieldTypeWhat it is
namestringorgs/{org}/projects/{project}/envs/{env}/distributed_jobs/{distributed_job}.
metaResourceMetaResource metadata.
specDistributedJobSpecDesired state. Required.

#ResourceMeta

FieldTypeWhat it is
labelsmap<string, string>Caller-writable, indexed labels (AIP-122 label rules).
annotationsmap<string, string>Caller-writable, unindexed annotations.
display_namestringCaller-writable human-readable name.

#DistributedJobSpec

FieldTypeWhat it is
workerJobSpecThe worker container: its image, command, env and instance type. timeout is the longest one worker lives, so the pool turns over; max_retries and concurrency do not apply. Required.
worker_classWorkerClassPrice and preemption class; default scavenger. One of scavenger, standard.
scaleWorkerScaleElastic bounds of the worker pool.
scratch_gibint32Local scratch disk at /scratch per worker, GiB; 0 is none.
shard_countint64A run that brings no shards of its own gets this many index-only shards.
shard_timeoutdurationThe longest one lease may live without the shard ending; default 30m.
shard_retriesint32Attempts a shard gets after a failure; a preemption is not one. Default 3.
max_failed_shardsint64Failed shards the run tolerates before it fails; default 0.
run_timeoutdurationThe whole run's deadline; default 48h.
checkpoint_uristringdata://<bucket>/<prefix>/: checkpoints go under <run>/<shard>/.
output_uristringdata://<bucket>/<prefix>/: outputs go under <run>/<shard>/.

#JobSpec

FieldTypeWhat it is
servicestringThe Hosting Service whose env and Secret bindings every run takes, and whose live Release image it runs unless image or build names another, so a Job never runs code the environment does not serve. Required.
imagestringA digest-pinned image from this org's Artifacts, in place of the service's image. Exclusive with build.
commandstring[]The entrypoint; empty keeps the image's.
argsstring[]Arguments; a run may replace them.
envmap<string, string>Environment overrides on top of the service's env and Secret bindings.
instance_typestringA Hosting instance type; default standard.
timeoutdurationOne attempt's deadline, 10s to 24h; default 1h.
max_retriesint32Re-runs after a non-zero exit, 0 to 10; backoff 30s doubling.
concurrencyJobConcurrencyWhat a start does while a run is active; default forbid. One of forbid, queue, allow.
buildstringA build the project declares: its latest built image, in place of the service's; the image needs no running service of its own. Exclusive with image.

#WorkerScale

FieldTypeWhat it is
min_workersint32Workers kept while shards remain; default 1.
max_workersint32The most workers at once; the Cell and the org quota cap it too. Default 1.

#Response

FieldTypeWhat it is
namestring{parent-of-target}/operations/{operation}.
targetstringThe name of the Resource being changed.
target_generationint64The generation this Operation waits for.
verbOperationVerbWhat the Operation does. One of create, update, delete, custom.
custom_verbstringThe custom method verb when verb is CUSTOM, for example revoke.
doneboolWhether the Operation has finished.
create_timetimestampWhen the Operation started.
end_timetimestampWhen the Operation finished.
responseanyThe settled Resource (or Empty for a delete). One of the result group.
errorProblemDetailsThe failure, as the one error body. One of the result group.
progressOperationProgressProgress while not done.

#ProblemDetails

FieldTypeWhat it is
typestringhttps://sylphx.com/docs/errors/<code in kebab-case>.
titlestringA short customer-safe summary of the problem class.
statusint32The HTTP status, fixed by grpc_status.
detailstringA customer-safe explanation of this occurrence. Never contains SQL, stack traces, internal hostnames, or another tenant's data.
instancestringThe request id (Sylphx-Request-Id).
codestringThe stable UPPER_SNAKE code, one of ErrorCode without its prefix.
grpc_statusstringOne of the 16 canonical gRPC status names, for example ABORTED.
retryableboolWhether the same request may be retried.
effectErrorEffectWhat the failed call committed. One of none, applied, unknown.
retry_after_msint64How long to wait before retrying, when the server knows.
detailsany[]Typed details such as PreconditionFailure or EntitlementDenial.

#OperationProgress

FieldTypeWhat it is
percentint32Percent complete, when the controller can tell.
messagestringA customer-safe progress message.
conditionsCondition[]The target's conditions when this progress was read.

#Condition

FieldTypeWhat it is
typestringThe condition type, for example Ready.
statusConditionStatusWhether the condition holds. One of true, false, unknown.
observed_generationint64The generation this observation was made against.
reasonstringA machine-readable UpperCamelCase reason.
messagestringA customer-safe human-readable message.
severitySeverityHow severe a FALSE condition is. One of info, warning, error.
transition_timetimestampWhen status last changed.

#Errors

Every error arrives in the body Errors describes.

#Examples

curl -X PATCH "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/distributed_jobs/distributed-job" \
  -H "Authorization: Bearer $SYLPHX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"orgs/acme/projects/shop/envs/production/distributed_jobs/distributed-job","spec":{"worker":{"service":"…"}}}'