blob: 2c7b9449af7c9dd5f35ee2569a59f28ec252b3bf [file] [edit]
# Copyright 2026 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from typing import Literal
from pydantic import model_validator
from shared.protocol.base import BaseRequest
class DetachRequest(BaseRequest):
"""Request to detach from a process."""
command: Literal["detach"] = "detach"
pid: int | None = None
all: bool = False
@model_validator(mode="after")
def validate(self) -> "DetachRequest":
if self.all and self.pid is not None:
raise ValueError("Cannot specify both PID and all")
if not self.all and self.pid is None:
raise ValueError("PID is required when all is not specified")
return self