using MessagePack; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Shared.Contracts; /// Per-host runtime status — per driver-stability.md Galaxy §"Connection Health Probe". [MessagePackObject] public sealed class HostConnectivityStatus { [Key(0)] public string HostName { get; set; } = string.Empty; [Key(1)] public string RuntimeStatus { get; set; } = string.Empty; // Running | Stopped | Unknown [Key(2)] public long LastObservedUtcUnixMs { get; set; } } [MessagePackObject] public sealed class RuntimeStatusChangeNotification { [Key(0)] public HostConnectivityStatus Status { get; set; } = new(); } [MessagePackObject] public sealed class RecycleHostRequest { /// One of: Soft, Hard. [Key(0)] public string Kind { get; set; } = "Soft"; [Key(1)] public string Reason { get; set; } = string.Empty; } [MessagePackObject] public sealed class RecycleStatusResponse { [Key(0)] public bool Accepted { get; set; } [Key(1)] public int GraceSeconds { get; set; } = 15; [Key(2)] public string? Error { get; set; } }