/** * DESTINATION channel this binding routes to (e.g. SLACK, TEAMS) */ export const ChannelRoutingBindingChannelId = { "IN_APP": "IN_APP", "EMAIL": "EMAIL", "SMS": "SMS", "PUSH": "PUSH", "SLACK": "SLACK", "TEAMS": "TEAMS" } as const; export type ChannelRoutingBindingChannelId = (typeof ChannelRoutingBindingChannelId)[keyof typeof ChannelRoutingBindingChannelId]; /** * Post attempt lifecycle status (PENDING, SENT, FAILED) */ export const DestinationDeliveryLogStatus = { "PENDING": "PENDING", "SENT": "SENT", "FAILED": "FAILED" } as const; export type DestinationDeliveryLogStatus = (typeof DestinationDeliveryLogStatus)[keyof typeof DestinationDeliveryLogStatus]; /** * Resolved inclusion reason (SUBSCRIBED/ASSIGNED/AUTHOR/MENTION). ASSIGNED/MENTION trigger the critical bypass over a preference mute */ export const NotificationReason = { "SUBSCRIBED": "SUBSCRIBED", "ASSIGNED": "ASSIGNED", "AUTHOR": "AUTHOR", "MENTION": "MENTION" } as const; export type NotificationReason = (typeof NotificationReason)[keyof typeof NotificationReason]; /** * Linear delivery axis (QUEUED, SENT, DELIVERED, FAILED, BOUNCED) */ export const NotificationDeliveryStatus = { "QUEUED": "QUEUED", "SENT": "SENT", "DELIVERED": "DELIVERED", "FAILED": "FAILED", "BOUNCED": "BOUNCED" } as const; export type NotificationDeliveryStatus = (typeof NotificationDeliveryStatus)[keyof typeof NotificationDeliveryStatus]; /** * Reserved channel identifier (IN_APP, EMAIL, SMS, PUSH, SLACK, TEAMS) */ export const NotificationChannelChannelId = { "IN_APP": "IN_APP", "EMAIL": "EMAIL", "SMS": "SMS", "PUSH": "PUSH", "SLACK": "SLACK", "TEAMS": "TEAMS" } as const; export type NotificationChannelChannelId = (typeof NotificationChannelChannelId)[keyof typeof NotificationChannelChannelId]; /** * Delivery topology: PERSONAL (per-recipient fan-out) or DESTINATION (one post per ChannelRoutingBinding) */ export const NotificationChannelKind = { "PERSONAL": "PERSONAL", "DESTINATION": "DESTINATION" } as const; export type NotificationChannelKind = (typeof NotificationChannelKind)[keyof typeof NotificationChannelKind]; /** * Lifecycle event recorded on either the deliveryStatus or engagementStatuses axis */ export const NotificationDeliveryAuditEventType = { "QUEUED": "QUEUED", "SENT": "SENT", "DELIVERED": "DELIVERED", "SEEN": "SEEN", "READ": "READ", "ARCHIVED": "ARCHIVED", "FAILED": "FAILED", "BOUNCED": "BOUNCED", "OPENED": "OPENED" } as const; export type NotificationDeliveryAuditEventType = (typeof NotificationDeliveryAuditEventType)[keyof typeof NotificationDeliveryAuditEventType]; /** * Dispatch lifecycle: PENDING -> DISPATCHED | NO_DELIVERY */ export const NotificationEventStatus = { "PENDING": "PENDING", "DISPATCHED": "DISPATCHED", "NO_DELIVERY": "NO_DELIVERY" } as const; export type NotificationEventStatus = (typeof NotificationEventStatus)[keyof typeof NotificationEventStatus]; /** * Workspace connection lifecycle status (ACTIVE, REVOKED) */ export const SlackWorkspaceIntegrationStatus = { "REVOKED": "REVOKED", "ACTIVE": "ACTIVE" } as const; export type SlackWorkspaceIntegrationStatus = (typeof SlackWorkspaceIntegrationStatus)[keyof typeof SlackWorkspaceIntegrationStatus];