using System.Runtime.Serialization;
using System.Text.Json.Serialization;
namespace ProtonVPN.OperatingSystems.WebAuthn.Enums;
///
/// This enumeration describes the Relying Party's requirements regarding user verification for the create() operation.
/// Eligible authenticators are filtered to only those capable of satisfying this requirement.
///
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum UserVerificationRequirement : uint
{
///
/// Corresponds to WEBAUTHN_USER_VERIFICATION_REQUIREMENT_ANY.
///
[EnumMember(Value = "NULL")]
Any = PInvoke.WEBAUTHN_USER_VERIFICATION_REQUIREMENT_ANY,
///
/// This value indicates that the Relying Party requires user verification for the operation
/// and will fail the operation if the response does not have the UV flag set.
///
///
/// Corresponds to WEBAUTHN_USER_VERIFICATION_REQUIREMENT_REQUIRED.
///
[EnumMember(Value = "required")]
Required = PInvoke.WEBAUTHN_USER_VERIFICATION_REQUIREMENT_REQUIRED,
///
/// This value indicates that the Relying Party prefers user verification for the operation if possible,
/// but will not fail the operation if the response does not have the UV flag set.
///
///
/// Corresponds to WEBAUTHN_USER_VERIFICATION_REQUIREMENT_PREFERRED.
///
[EnumMember(Value = "preferred")]
Preferred = PInvoke.WEBAUTHN_USER_VERIFICATION_REQUIREMENT_PREFERRED,
///
/// This value indicates that the Relying Party does not want user verification employed during the operation
/// (e.g., in the interest of minimizing disruption to the user interaction flow).
///
///
/// Corresponds to WEBAUTHN_USER_VERIFICATION_REQUIREMENT_DISCOURAGED.
///
[EnumMember(Value = "discouraged")]
Discouraged = PInvoke.WEBAUTHN_USER_VERIFICATION_REQUIREMENT_DISCOURAGED
}