object_delta
An object_delta
is a type of delta that
assigns all fields to the target object, ignoring any control fields (any field with a name prefixed with $
).
Name | Type | Description |
---|---|---|
$collection | string | Optional. Must be "object" for an object delta. Defaults to object . |
$create | boolean | Optional. Defaults to true . If the delta is attempting to modify a non-existent object , create it first. |
$path | string | Required on top-level deltas. The JSON path to modify. See Paths for a list of valid paths. |
Any field that does not start with a $
character is assigned to the target object.
If the field value is a JSON object, the field is applied as a subdelta. This subdelta may be a different type of delta. This allows an object_delta
to represent a recursive tree of deltas to apply to an object tree.
Otherwise, the field value is copied to the target object.
Examples
A revision modifying the settings on a problem file using an object_delta
:
{
"deltas": [{
"$path": [],
"settings": {
time_windows_as_hard_constraint: false,
},
}]
}
A revision modifying two routes using an object_delta
:
{
"deltas": [{
"$path": ["route"],
"$collection": "keyed_array",
"ids": ["route0", "route1"],
"assign": {
"vehicle_type": "truck",
"driving_speed_percentage": null, // unset this field
"start_location": {
// Implicit "$collection": "object" means this will perform an assignment,
// and any existing fields on this object will be preserved
"location": "43.21,-172.34",
},
},
}]
}