Save draft settings for an existing policy

Validates settings against the vendor schema and updates the draft settings onthe policy. Does NOT create a published version. Call POST /policies/{policyId}/publishto snapshot the draft into an immutable version.Supports optimistic concurrency control for concurrent draft edits. Supply theETag returned by GET in an If-Match header; if the policy's version has sinceadvanced, the write is rejected with 409 (POLICY_VERSION_CONFLICT) and no changesare made. Omit If-Match (or send *) for an unconditional update.Required Permissions: ai-policies:update

Preview: This endpoint is currently in a preview state and is subject to breaking changes without warning.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required

Policy ID

Body Params

Saves draft settings on the policy. Does NOT create a published version. Call
POST /policies/{policyId}/publish to create an immutable version. toolId is
immutable after creation. name and description are optional — omit them to
leave the existing values unchanged.

string
required
length ≥ 1
settings
object
required

Vendor tool settings payload. Shape is tool-specific and defined by the vendor's
JSON Schema, which is served by GET /v1/tools/{toolId}/schemas/{schemaVersion}
(see the ToolSchemaResponse schema). Only keys the admin explicitly set are
present. Validated at write time against the vendor schema for the request's
schemaVersion.

string
length between 1 and 200

New display name for the policy. Omit to leave unchanged.

string
length ≤ 2000

New description for the policy. Omit to leave unchanged.

Headers
uuid
required
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

The environment UUID identifier.

string

Optimistic-lock precondition. Supply the ETag from a prior GET (e.g. "7") to
make the update conditional on the policy still being at that version; a mismatch
yields 409 (POLICY_VERSION_CONFLICT). A weak validator (W/"7") is also accepted.
Omit the header or send * for an unconditional update.

Responses

Language
Credentials
OAuth2
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
*/*
application/json