using MemoryPack;

namespace Insight.Domain.Messages;

[MemoryPackable]
[MemoryPackUnion(0, typeof(Keepalive))]
[MemoryPackUnion(1, typeof(Agent.Authentication))]
[MemoryPackUnion(2, typeof(Agent.AuthenticationRequest))]
[MemoryPackUnion(10, typeof(Agent.InventoryRequest))]
[MemoryPackUnion(20, typeof(Agent.ConsoleQuery))]
[MemoryPackUnion(21, typeof(Agent.ConsoleQueryRequest))]
[MemoryPackUnion(100, typeof(Agent.Application))]
[MemoryPackUnion(101, typeof(Agent.ApplicationList))]
[MemoryPackUnion(102, typeof(Agent.Drive))]
[MemoryPackUnion(103, typeof(Agent.DriveList))]
[MemoryPackUnion(104, typeof(Agent.Event))]
[MemoryPackUnion(105, typeof(Agent.Interface))]
[MemoryPackUnion(106, typeof(Agent.InterfaceList))]
[MemoryPackUnion(107, typeof(Agent.Mainboard))]
[MemoryPackUnion(108, typeof(Agent.Memory))]
[MemoryPackUnion(109, typeof(Agent.MemoryList))]
[MemoryPackUnion(110, typeof(Agent.OperationSystem))]
[MemoryPackUnion(111, typeof(Agent.Printer))]
[MemoryPackUnion(112, typeof(Agent.PrinterList))]
[MemoryPackUnion(113, typeof(Agent.Processor))]
[MemoryPackUnion(114, typeof(Agent.ProcessorList))]
[MemoryPackUnion(115, typeof(Agent.Service))]
[MemoryPackUnion(116, typeof(Agent.ServiceList))]
[MemoryPackUnion(117, typeof(Agent.Session))]
[MemoryPackUnion(118, typeof(Agent.SessionList))]
[MemoryPackUnion(119, typeof(Agent.Status))]
[MemoryPackUnion(120, typeof(Agent.StoragePool))]
[MemoryPackUnion(121, typeof(Agent.StoragePoolList))]
[MemoryPackUnion(122, typeof(Agent.SystemInfo))]
[MemoryPackUnion(123, typeof(Agent.Trap))]
[MemoryPackUnion(124, typeof(Agent.Update))]
[MemoryPackUnion(125, typeof(Agent.UpdateList))]
[MemoryPackUnion(126, typeof(Agent.User))]
[MemoryPackUnion(127, typeof(Agent.UserList))]
[MemoryPackUnion(128, typeof(Agent.Videocard))]
[MemoryPackUnion(129, typeof(Agent.VideocardList))]
[MemoryPackUnion(130, typeof(Agent.VirtualMaschine))]
[MemoryPackUnion(131, typeof(Agent.VirtualMaschineList))]
[MemoryPackUnion(400, typeof(Web.ConsoleQueryProxy))]
[MemoryPackUnion(401, typeof(Web.ConsoleQueryProxyRequest))]
public partial interface IMessage { }