From b38349679e706e28fbcb2c58c704583d61a4d7e7 Mon Sep 17 00:00:00 2001 From: noahdietz Date: Tue, 18 Nov 2025 09:56:55 -0800 Subject: [PATCH] fix(AIP-164): mutations return failed_precondition --- aip/general/0164.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/aip/general/0164.md b/aip/general/0164.md index b19793b1ef..b003e33b25 100644 --- a/aip/general/0164.md +++ b/aip/general/0164.md @@ -111,6 +111,12 @@ purging those resources, including automatic purging after a reasonable time the resources indefinitely. Regardless of what strategy is selected, the API **should** document when soft deleted resources will be completely removed. +### Mutations + +Soft-deleted resources **should not** be mutable and mutating methods **should** +return a `FAILED_PRECONDITION` error. This applies to Standard Update +(AIP-134) and mutating custom methods (AIP-136). + ### Declarative-friendly resources Soft-deletable resources have a poorer experience than hard-deleted resources in @@ -148,6 +154,7 @@ resource is not deleted, the service **must** respond with `ALREADY_EXISTS` ## Changelog +- **2025-11-18**: Include expected behavior of mutating soft-deleted resource. - **2024-09-24**: Included missing requirement for `delete_time`. - **2023-07-13**: Renamed overloaded `expire_time` to `purge_time`. - **2021-07-12**: Added error behavior when soft deleting a deleted resource.