Skip to content

Commit cd0620b

Browse files
authored
fix(AIP-135): add parent deletion precondition behavior (#1370)
* fix(AIP-135): add parent deletion precondition behavior * clarify multiple singleton case
1 parent 45955be commit cd0620b

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

aip/general/0135.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,13 @@ rpc DeleteBook(DeleteBookRequest) returns (google.protobuf.Empty) {
5757
[strong consistency][]: the completion of a delete operation **must** mean
5858
that the existence of the resource has reached a steady-state and reading
5959
resource state returns a consistent response.
60-
60+
- The API **must** fail with a `FAILED_PRECONDITION` error if child resources
61+
are present. See guidance on [Cascading Delete](#cascading-delete) if forcing
62+
deletion of parent and child resources is necessary.
63+
- If the only child resource type is a [Singleton][aip-156], deletion **must**
64+
be allowed, because the lifecycle of a Singleton is tied to that of its
65+
parent resource. This applies even if there are multiple different Singleton
66+
resource types for the same parent resource.
6167

6268

6369
The Delete method **should** succeed if and only if a resource was present and
@@ -225,6 +231,7 @@ exist, the service **must** error with `NOT_FOUND` (HTTP 404) unless
225231
[aip-132]: ./0132.md
226232
[aip-136]: ./0136.md
227233
[aip-154]: ./0154.md
234+
[aip-156]: ./0156.md
228235
[aip-203]: ./0203.md
229236
[aip-214]: ./0214.md
230237
[aip-216]: ./0216.md
@@ -239,6 +246,7 @@ exist, the service **must** error with `NOT_FOUND` (HTTP 404) unless
239246

240247
## Changelog
241248

249+
- **2024-06-11**: Add deletion behavior for parent resource deletion requests without a `force` field.
242250
- **2023-08-24**: Adding consistency requirement.
243251
- **2022-06-02:** Changed suffix descriptions to eliminate superfluous "-".
244252
- **2022-02-02**: Changed eTag error from `FAILED_PRECONDITION` to `ABORTED` making it consistent with change to [AIP-154][] & [AIP-134][etag] on 2021-03-05.

0 commit comments

Comments
 (0)