From b05513834a0381971e61a0ee014bd83039642d8c Mon Sep 17 00:00:00 2001 From: Yusuke Tsutsumi Date: Tue, 5 Nov 2024 10:00:10 -0800 Subject: [PATCH] feat(134): make etag not required making etag a require field will force the user to perform a Get of the resource first to retrieve the etag - this can cause friction for simple clients like command-line interfaces or curl-ing a resource, and makes the behavior of the standard method inconsistent across resources. --- aep/general/0134/aep.md.j2 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/aep/general/0134/aep.md.j2 b/aep/general/0134/aep.md.j2 index 327ce791..438171f4 100644 --- a/aep/general/0134/aep.md.j2 +++ b/aep/general/0134/aep.md.j2 @@ -310,17 +310,19 @@ message Book { } ``` +- The `update_mask` field in the request does not affect the behavior of the + `etag` field, as it is not a field _being_ updated. + {% tab oas %} **Note:** OAS example not yet written. {% endtabs %} -The `etag` field **may** be either [required][] or [optional][]. If it is set, -then the request **must** succeed if and only if the provided etag matches the -server-computed value, and **must** fail with an `ABORTED` error otherwise. The -`update_mask` field in the request does not affect the behavior of the `etag` -field, as it is not a field _being_ updated. +- The `etag` field **must** be [optional][]. +- If `etag` is set, then the request **must** succeed if and only if the +provided etag matches the server-computed value, and **must** fail with an +`ABORTED` / `409 Conflict` error otherwise. ### Expensive fields