namespace ZB.MOM.WW.OtOpcUa.Client.Shared.Models;

/// <summary>
///     Shelve operations supported by the OPC UA Part 9 ShelvedStateMachine.
/// </summary>
public enum ShelveKind
{
    /// <summary>
    /// OneShotShelve: suppresses the alarm for one occurrence. The alarm automatically
    /// unshelves when it next returns to the inactive state.
    /// </summary>
    OneShot,

    /// <summary>
    /// TimedShelve: suppresses the alarm for a specified duration (seconds).
    /// Requires a positive <c>shelvingTimeSeconds</c> argument.
    /// </summary>
    Timed,

    /// <summary>
    /// Unshelve: removes an active OneShotShelve or TimedShelve, returning the alarm
    /// to its normal active-notification state.
    /// </summary>
    Unshelve
}
