namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions; /// /// Enumerates the driver-capability surface points guarded by Phase 6.1 resilience pipelines. /// Each value corresponds to one method (or tightly-related method group) on the /// Core.Abstractions capability interfaces (, , /// , , , /// , ). /// /// /// Per the per-capability retry policy in docs/v2/plan.md: Read / HistoryRead / /// Discover / Probe / AlarmSubscribe auto-retry; does NOT retry unless the /// tag-definition carries . Alarm-acknowledge is treated /// as a write for retry semantics (an alarm-ack is not idempotent at the plant-floor acknowledgement /// level even if the OPC UA spec permits re-issue). /// public enum DriverCapability { /// Batch . Retries by default. Read, /// Batch . Does not retry unless tag is idempotent. Write, /// . Retries by default. Discover, /// and unsubscribe. Retries by default. Subscribe, /// probe loop. Retries by default. Probe, /// . Retries by default. AlarmSubscribe, /// . Does NOT retry — ack is a write-shaped operation. AlarmAcknowledge, /// reads (Raw/Processed/AtTime/Events). Retries by default. HistoryRead, /// /// IDriver.InitializeAsync — connection establishment (R2-10 T10 closure: without this, /// a driver that cannot connect contributes zero breaker input and the resilience panel stays /// quiet for the failure operators most care about). Does NOT retry — the /// DriverInstanceActor reconnect timer is the retry loop, and pipeline-level retries /// would stack inside each timer tick. The tier-default breaker threshold is deliberately low /// (2): at the 10 s reconnect cadence at most three attempts fit the breaker's 30 s sampling /// window, so a Read-sized threshold of 5 could never open on connect failures. /// Initialize, }