Skip to content

Commit 1cd6ef1

Browse files
committed
Add namespace soft deletion restoration API to operator handler
1 parent 7acda96 commit 1cd6ef1

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

temporal/api/operatorservice/v1/request_response.proto

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ message DeleteNamespaceRequest {
5353
// If provided, the deletion of namespace info will be delayed for the given duration (0 means no delay).
5454
// If not provided, the default delay configured in the cluster will be used.
5555
google.protobuf.Duration namespace_delete_delay = 3;
56+
// If provided, execution deletion is delayed by this duration, during which a
57+
// RestoreSoftDeletedNamespace call can cancel the deletion (0 means no window).
58+
// If not provided, the default soft delete window configured in the cluster will be used.
59+
google.protobuf.Duration soft_delete_window = 4;
5660
}
5761

5862
message DeleteNamespaceResponse {
@@ -173,3 +177,11 @@ message ListNexusEndpointsResponse {
173177
bytes next_page_token = 1;
174178
repeated temporal.api.nexus.v1.Endpoint endpoints = 2;
175179
}
180+
181+
message RestoreSoftDeletedNamespaceRequest {
182+
// Namespace ID of the namespace to restore.
183+
string namespace_id = 1;
184+
}
185+
186+
message RestoreSoftDeletedNamespaceResponse {
187+
}

temporal/api/operatorservice/v1/service.proto

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,16 @@ service OperatorService {
121121
}
122122
};
123123
}
124+
125+
// RestoreSoftDeletedNamespace cancels an in-progress namespace deletion by sending a restore
126+
// update to the ReclaimResources workflow. Only valid while the soft delete window is still open.
127+
// If the window has passed the request will be rejected with a FailedPrecondition error.
128+
rpc RestoreSoftDeletedNamespace(RestoreSoftDeletedNamespaceRequest) returns (RestoreSoftDeletedNamespaceResponse) {
129+
option (google.api.http) = {
130+
post: "/namespaces/{namespace_id}/restore"
131+
additional_bindings {
132+
post: "/api/v1/namespaces/{namespace_id}/restore"
133+
}
134+
};
135+
}
124136
}

0 commit comments

Comments
 (0)