mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-08 14:12:27 -05:00
221 lines
4.9 KiB
Python
221 lines
4.9 KiB
Python
from enum import StrEnum
|
|
|
|
|
|
class TemplateType(StrEnum):
|
|
SMS = "sms"
|
|
EMAIL = "email"
|
|
LETTER = "letter"
|
|
|
|
|
|
class NotificationType(StrEnum):
|
|
SMS = "sms"
|
|
EMAIL = "email"
|
|
LETTER = "letter"
|
|
|
|
|
|
class TemplateProcessType(StrEnum):
|
|
# TODO: Should Template.process_type be changed to use this?
|
|
NORMAL = "normal"
|
|
PRIORITY = "priority"
|
|
|
|
|
|
class AuthType(StrEnum):
|
|
SMS = "sms_auth"
|
|
EMAIL = "email_auth"
|
|
WEBAUTHN = "webauthn_auth"
|
|
|
|
|
|
class UserState(StrEnum):
|
|
ACTIVE = "active"
|
|
INACTIVE = "inactive"
|
|
PENDING = "pending"
|
|
|
|
|
|
class CallbackType(StrEnum):
|
|
DELIVERY_STATUS = "delivery_status"
|
|
COMPLAINT = "complaint"
|
|
|
|
|
|
class OrganizationType(StrEnum):
|
|
FEDERAL = "federal"
|
|
STATE = "state"
|
|
OTHER = "other"
|
|
|
|
|
|
class NotificationStatus(StrEnum):
|
|
CANCELLED = "cancelled"
|
|
CREATED = "created"
|
|
SENDING = "sending"
|
|
SENT = "sent"
|
|
DELIVERED = "delivered"
|
|
PENDING = "pending"
|
|
FAILED = "failed"
|
|
TECHNICAL_FAILURE = "technical-failure"
|
|
TEMPORARY_FAILURE = "temporary-failure"
|
|
PERMANENT_FAILURE = "permanent-failure"
|
|
PENDING_VIRUS_CHECK = "pending-virus-check"
|
|
VALIDATION_FAILED = "validation-failed"
|
|
VIRUS_SCAN_FAILED = "virus-scan-failed"
|
|
|
|
@classmethod
|
|
def failed_types(cls) -> tuple[str, ...]:
|
|
return (
|
|
cls.TECHNICAL_FAILURE,
|
|
cls.TEMPORARY_FAILURE,
|
|
cls.PERMANENT_FAILURE,
|
|
cls.VALIDATION_FAILED,
|
|
cls.VIRUS_SCAN_FAILED,
|
|
)
|
|
|
|
@classmethod
|
|
def completed_types(cls) -> tuple[str, ...]:
|
|
return (
|
|
cls.SENT,
|
|
cls.DELIVERED,
|
|
cls.FAILED,
|
|
cls.TECHNICAL_FAILURE,
|
|
cls.TEMPORARY_FAILURE,
|
|
cls.PERMANENT_FAILURE,
|
|
cls.CANCELLED,
|
|
)
|
|
|
|
@classmethod
|
|
def success_types(cls) -> tuple[str, ...]:
|
|
return (cls.SENT, cls.DELIVERED)
|
|
|
|
@classmethod
|
|
def billable_types(cls) -> tuple[str, ...]:
|
|
return (
|
|
cls.SENDING,
|
|
cls.SENT,
|
|
cls.DELIVERED,
|
|
cls.PENDING,
|
|
cls.FAILED,
|
|
cls.TEMPORARY_FAILURE,
|
|
cls.PERMANENT_FAILURE,
|
|
)
|
|
|
|
@classmethod
|
|
def billable_sms_types(cls) -> tuple[str, ...]:
|
|
return (
|
|
cls.SENDING,
|
|
cls.SENT, # internationally
|
|
cls.DELIVERED,
|
|
cls.PENDING,
|
|
cls.TEMPORARY_FAILURE,
|
|
cls.PERMANENT_FAILURE,
|
|
)
|
|
|
|
@classmethod
|
|
def sent_email_types(cls) -> tuple[str, ...]:
|
|
return (
|
|
cls.SENDING,
|
|
cls.DELIVERED,
|
|
cls.TEMPORARY_FAILURE,
|
|
cls.PERMANENT_FAILURE,
|
|
)
|
|
|
|
@classmethod
|
|
def non_billable_types(cls) -> tuple[str, ...]:
|
|
return tuple(set(cls) - set(cls.billable_types()))
|
|
|
|
|
|
class PermissionType(StrEnum):
|
|
MANAGE_USERS = "manage_users"
|
|
MANAGE_TEMPLATES = "manage_templates"
|
|
MANAGE_SETTINGS = "manage_settings"
|
|
SEND_TEXTS = "send_texts"
|
|
SEND_EMAILS = "send_emails"
|
|
MANAGE_API_KEYS = "manage_api_keys"
|
|
PLATFORM_ADMIN = "platform_admin"
|
|
VIEW_ACTIVITY = "view_activity"
|
|
|
|
@classmethod
|
|
def defaults(cls) -> tuple[str, ...]:
|
|
return (
|
|
cls.MANAGE_USERS,
|
|
cls.MANAGE_TEMPLATES,
|
|
cls.MANAGE_SETTINGS,
|
|
cls.SEND_TEXTS,
|
|
cls.SEND_EMAILS,
|
|
cls.MANAGE_API_KEYS,
|
|
cls.VIEW_ACTIVITY,
|
|
)
|
|
|
|
|
|
class ServicePermissionType(StrEnum):
|
|
EMAIL = "email"
|
|
SMS = "sms"
|
|
INTERNATIONAL_SMS = "international_sms"
|
|
INBOUND_SMS = "inbound_sms"
|
|
SCHEDULE_NOTIFICATIONS = "schedule_notifications"
|
|
EMAIL_AUTH = "email_auth"
|
|
UPLOAD_DOCUMENT = "upload_document"
|
|
EDIT_FOLDER_PERMISSIONS = "edit_folder_permissions"
|
|
|
|
@classmethod
|
|
def defaults(cls) -> tuple[str, ...]:
|
|
return (
|
|
cls.SMS,
|
|
cls.EMAIL,
|
|
cls.INTERNATIONAL_SMS,
|
|
)
|
|
|
|
|
|
class RecipientType(StrEnum):
|
|
MOBILE = "mobile"
|
|
EMAIL = "email"
|
|
|
|
|
|
class KeyType(StrEnum):
|
|
NORMAL = "normal"
|
|
TEAM = "team"
|
|
TEST = "test"
|
|
|
|
|
|
class JobStatus(StrEnum):
|
|
PENDING = "pending"
|
|
IN_PROGRESS = "in progress"
|
|
FINISHED = "finished"
|
|
SENDING_LIMITS_EXCEEDED = "sending limits exceeded"
|
|
SCHEDULED = "scheduled"
|
|
CANCELLED = "cancelled"
|
|
READY_TO_SEND = "ready to send"
|
|
SENT_TO_DVLA = "sent to dvla"
|
|
ERROR = "error"
|
|
|
|
|
|
class InvitedUserStatus(StrEnum):
|
|
PENDING = "pending"
|
|
ACCEPTED = "accepted"
|
|
CANCELLED = "cancelled"
|
|
EXPIRED = "expired"
|
|
|
|
|
|
class BrandType(StrEnum):
|
|
ORG = "org"
|
|
BOTH = "both"
|
|
ORG_BANNER = "org_banner"
|
|
|
|
|
|
class CodeType(StrEnum):
|
|
EMAIL = "email"
|
|
SMS = "sms"
|
|
|
|
|
|
class AgreementType(StrEnum):
|
|
MOU = "MOU"
|
|
IAA = "IAA"
|
|
|
|
|
|
class AgreementStatus(StrEnum):
|
|
ACTIVE = "active"
|
|
EXPIRED = "expired"
|
|
|
|
|
|
class StatisticsType(StrEnum):
|
|
REQUESTED = "requested"
|
|
DELIVERED = "delivered"
|
|
FAILURE = "failure"
|
|
PENDING = "pending"
|