using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Protocol; namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Management; /// /// Sent from CentralUI to a specific site to enumerate the immediate children /// of an OPC UA node on the live server backing the given data connection. /// /// /// Keyed by (not id) because the site-side /// DataConnectionManagerActor indexes its children by connection name — /// the central UI already has the connection name in scope (dropdown), so a /// string carries no extra plumbing across the trust boundary. The central /// DataConnections table's id is intentionally not exposed at the site. /// /// Name of the site-local data connection to browse against. /// Node to browse, or null to browse from the server root (ObjectsFolder). public record BrowseNodeCommand( string ConnectionName, string? ParentNodeId); public record BrowseNodeResult( IReadOnlyList Children, bool Truncated, BrowseFailure? Failure); public record BrowseFailure( BrowseFailureKind Kind, string Message); public enum BrowseFailureKind { ConnectionNotFound, ConnectionNotConnected, NotBrowsable, Timeout, ServerError }