namespace ScadaLink.Commons.Messages.Management; public record ListInstancesCommand(int? SiteId = null, int? TemplateId = null, string? SearchTerm = null); public record GetInstanceCommand(int InstanceId); public record CreateInstanceCommand(string UniqueName, int TemplateId, int SiteId, int? AreaId = null); public record MgmtDeployInstanceCommand(int InstanceId); public record MgmtEnableInstanceCommand(int InstanceId); public record MgmtDisableInstanceCommand(int InstanceId); public record MgmtDeleteInstanceCommand(int InstanceId); /// /// A single attribute-to-data-connection binding carried by /// . This is a named record (not a /// ValueTuple) so it serializes with stable, named JSON properties and can /// evolve additively per REQ-COM-5a. /// public record ConnectionBinding(string AttributeName, int DataConnectionId); public record SetConnectionBindingsCommand(int InstanceId, IReadOnlyList Bindings); public record SetInstanceOverridesCommand(int InstanceId, IReadOnlyDictionary Overrides); public record SetInstanceAreaCommand(int InstanceId, int? AreaId); /// /// Sets (or upserts) a per-instance alarm override. For HiLo trigger types the /// TriggerConfigurationOverride JSON is merged setpoint-by-setpoint with /// the inherited config; for binary trigger types it replaces the whole config. /// Either field is optional — pass null to leave it unchanged. /// public record SetInstanceAlarmOverrideCommand( int InstanceId, string AlarmCanonicalName, string? TriggerConfigurationOverride, int? PriorityLevelOverride); public record DeleteInstanceAlarmOverrideCommand( int InstanceId, string AlarmCanonicalName); public record ListInstanceAlarmOverridesCommand(int InstanceId);