namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions;
///
/// Every OPC UA operation surface the Phase 6.2 authorization evaluator gates, per
/// docs/v2/implementation/phase-6-2-authorization-runtime.md §Stream C and
/// decision #143. The evaluator maps each operation onto the corresponding
/// NodePermissions bit(s) to decide whether the calling session is allowed.
///
///
/// Write is split out into / /
/// because the underlying driver-reported
/// already carries that distinction — the
/// evaluator maps the requested tag's security class to the matching operation value
/// before checking the permission bit.
///
public enum OpcUaOperation
{
///
/// Browse + TranslateBrowsePathsToNodeIds. Ancestor visibility implied
/// when any descendant has a grant; denied ancestors filter from browse results.
///
Browse,
/// Read on a variable node.
Read,
/// Write when the target has / .
WriteOperate,
/// Write when the target has .
WriteTune,
/// Write when the target has .
WriteConfigure,
/// HistoryRead — uses its own NodePermissions.HistoryRead bit; Read alone is NOT sufficient (decision in Phase 6.2 Compliance).
HistoryRead,
/// HistoryUpdate — annotation / insert / delete on historian.
HistoryUpdate,
/// CreateMonitoredItems. Per-item denial in mixed-authorization batches.
CreateMonitoredItems,
/// TransferSubscriptions. Re-evaluates transferred items against current auth state.
TransferSubscriptions,
/// Call on a Method node.
Call,
/// Alarm Acknowledge.
AlarmAcknowledge,
/// Alarm Confirm.
AlarmConfirm,
/// Alarm Shelve / Unshelve.
AlarmShelve,
}