Concurrency control

SIA provides support for optimistic concurrency control on its resources.
High-level objects such as sites, policies, and custom lists use a timestamp for revision control. With each create, update, or delete, the object's timestamp must be up to date. Requests fail with a 412 error response if an older timestamp is provided in the request.

GET and POST operations pass the timestamp value in an If-Match HTTP header, with the correct ETag value.
Subsequent UPDATE and DELETE operations pass the timestamp in either of these headers.

The request succeeds if the digest matches the current state of the resource's data, otherwise it produces a 412 error. This prevents outdated representations from being used as the basis for updates when more than one client accesses the same resource. It keeps you from overwriting other users' data, regardless of whether they access it with PAPI or the Property Manager interface.


Header formats

Within the ETag or If-Match HTTP headers, the data digest must be double-quoted, or the request fails even if the digest otherwise appears to match.

The Network Lists API uses the term Sync Point to refer to the same concurrency control feature.