export interface Reason { code?: ReasonCode; /** A textual description of the reason. */ description?: string; sub_code?: ReasonSubCode; } export type ReasonCode = 'UNKNOWN' | 'INTERNAL_ERROR' | 'RATE_LIMITED' | 'RECIPIENT_INVALID_CHANNEL_IDENTITY' | 'RECIPIENT_NOT_REACHABLE' | 'RECIPIENT_NOT_OPTED_IN' | 'OUTSIDE_ALLOWED_SENDING_WINDOW' | 'CHANNEL_FAILURE' | 'CHANNEL_BAD_CONFIGURATION' | 'CHANNEL_CONFIGURATION_MISSING' | 'MEDIA_TYPE_UNSUPPORTED' | 'MEDIA_TOO_LARGE' | 'MEDIA_NOT_REACHABLE' | 'NO_CHANNELS_LEFT' | 'TEMPLATE_NOT_FOUND' | 'TEMPLATE_INSUFFICIENT_PARAMETERS' | 'TEMPLATE_NON_EXISTING_LANGUAGE_OR_VERSION' | 'DELIVERY_TIMED_OUT' | 'DELIVERY_REJECTED_DUE_TO_POLICY' | 'CONTACT_NOT_FOUND' | 'BAD_REQUEST' | 'UNKNOWN_APP' | 'NO_CHANNEL_IDENTITY_FOR_CONTACT' | 'CHANNEL_REJECT' | 'NO_PERMISSION' | 'NO_PROFILE_AVAILABLE' | 'UNSUPPORTED_OPERATION' | 'INACTIVE_CREDENTIAL' | 'MESSAGE_EXPIRED' | 'MESSAGE_SPLIT_REQUIRED' | 'DELIVERY_REPORT_TIME_OUT'; export type ReasonSubCode = 'UNSPECIFIED_SUB_CODE' | 'ATTACHMENT_REJECTED' | 'MEDIA_TYPE_UNDETERMINED' | 'INACTIVE_SENDER';