using System.Text.Json.Serialization;
namespace StellaOps.Notify.Models;
///
/// Supported Notify channel types.
///
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum NotifyChannelType
{
Slack,
Teams,
Email,
Webhook,
Custom,
PagerDuty,
OpsGenie,
Cli,
InAppInbox,
InApp,
}
///
/// Delivery lifecycle states tracked for audit and retries.
///
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum NotifyDeliveryStatus
{
Pending,
Queued,
Sending,
Delivered,
Sent,
Failed,
Throttled,
Digested,
Dropped,
}
///
/// Individual attempt status recorded during delivery retries.
///
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum NotifyDeliveryAttemptStatus
{
Enqueued,
Sending,
Succeeded,
Success = Succeeded,
Failed,
Throttled,
Skipped,
}
///
/// Rendering modes for templates to help connectors decide format handling.
///
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum NotifyTemplateRenderMode
{
Markdown,
Html,
AdaptiveCard,
PlainText,
Json,
}
///
/// Structured representation of rendered payload format.
///
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum NotifyDeliveryFormat
{
Markdown,
Html,
PlainText,
Slack,
Teams,
Email,
Webhook,
Json,
PagerDuty,
OpsGenie,
Cli,
InAppInbox,
}