namespace ZB.MOM.WW.ScadaBridge.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. /// /// DataSourceReferenceOverride is an optional per-instance override of /// the OPC UA node id (or other protocol address) for the bound attribute. /// When non-null it replaces the template's DataSourceReference at /// flattening time; when null the template default is used. /// /// public record ConnectionBinding( string AttributeName, int DataConnectionId, string? DataSourceReferenceOverride = null); 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); // Native alarm source overrides (per-instance retarget of an inherited source binding; // null fields keep the inherited value). public record SetInstanceNativeAlarmSourceOverrideCommand( int InstanceId, string SourceCanonicalName, string? ConnectionNameOverride, string? SourceReferenceOverride, string? ConditionFilterOverride); public record DeleteInstanceNativeAlarmSourceOverrideCommand( int InstanceId, string SourceCanonicalName); public record ListInstanceNativeAlarmSourceOverridesCommand(int InstanceId);