namespace Cleanuparr.Shared.Attributes; /// /// Defines how sensitive data should be masked in API responses. /// public enum SensitiveDataType { /// /// Full mask: replaces the entire value with bullets (••••••••). /// Use for passwords, API keys, tokens, webhook URLs. /// Full, /// /// Apprise URL mask: shows only the scheme of each service URL (discord://••••••••). /// Use for Apprise service URL strings that contain multiple notification service URLs. /// AppriseUrl, } /// /// Marks a property as containing sensitive data that should be masked in API responses /// and preserved when the placeholder value is sent back in updates. /// [AttributeUsage(AttributeTargets.Property)] public class SensitiveDataAttribute : Attribute { public SensitiveDataType Type { get; } public SensitiveDataAttribute(SensitiveDataType type = SensitiveDataType.Full) { Type = type; } }