Mutable fields on a single ToolRevision.
input_defaults is the operator-set input-arg config for input variables ({variable_name: {"value": ..., "type": "default"|"pinned"}} — ENG-590): a default the agent may override, or a pinned value it cannot; neither is injected at runtime in this scope. It is validated at the service layer against the revision's effective variables (the row + any configuration in the same request), so a wrong-type value or unknown variable is rejected there with a 422.
Unlike the sibling fields (which use is not None gating), input_defaults is written via model_fields_set so an explicit null clears all config while omitting the field is a no-op.
Configuration for an API_CALL tool, stored in Tool.configuration.
Supports {{variable}} placeholders in url, headers, and body that are resolved at execution time from the tool's input variables and runtime metadata (via {{metadata.key}}).
Operator-supplied config for a shared call_transfer target (ENG, voice).
The reusable cold-transfer destination. Mirrors the storage-facing fields of :class:~src.shared.transfer_contracts.TransferTargetConfig; the request layer only checks shape/mode here, while destination validity (E.164 or sip: URI) is enforced at the service layer via :func:~src.custom_tools.api._shared.transfer_target.validate_transfer_target_config so a bad destination surfaces as a clean 422. The label / when-to-use are carried on the Tool's name / description, not here.
Defines which fields to extract from a tool response.
Successful Response
A call_transfer revision's stored target, surfaced on reads.
ToolRevisionResponse.configuration is api_call-typed and parses to None for a transfer config (it has no url), so this field carries the destination/mode back for the transfer-target picker. label / when_to_use come from the parent Tool's name / description.
How many input variables carry an operator default (ENG-590).
How many input variables are operator-pinned (ENG-590).
Configured variables removed/renamed/retyped by an operator edit.
The input schema with each operator value injected as default.