"""
Data models used for communicating with the MailerSend API.
"""
from .base import BaseModel
from .email import (
    EmailContact,
    EmailAttachment,
    EmailPersonalization,
    EmailRequest,
    EmailTrackingSettings,
    EmailHeader,
)
from .activity import (
    ActivityRecipient,
    ActivityEmail,
    Activity,
    ActivityQueryParams,
    ActivityRequest,
    SingleActivityRequest,
)
from .analytics import (
    AnalyticsRequest,
)
from .domains import (
    DomainListRequest,
    DomainCreateRequest,
    DomainDeleteRequest,
    DomainGetRequest,
    DomainUpdateSettingsRequest,
    DomainRecipientsRequest,
    DomainDnsRecordsRequest,
    DomainVerificationRequest,
    DomainSettings,
)
from .identities import (
    IdentityListRequest,
    IdentityCreateRequest,
    IdentityGetRequest,
    IdentityGetByEmailRequest,
    IdentityUpdateRequest,
    IdentityUpdateByEmailRequest,
    IdentityDeleteRequest,
    IdentityDeleteByEmailRequest,
)
from .inbound import (
    InboundListRequest,
    InboundGetRequest,
    InboundCreateRequest,
    InboundUpdateRequest,
    InboundDeleteRequest,
    InboundFilter,
    InboundFilterGroup,
    InboundForward,
)
from .messages import (
    MessagesListRequest,
    MessageGetRequest,
)
from .schedules import (
    SchedulesListRequest,
    ScheduleGetRequest,
    ScheduleDeleteRequest,
)
from .recipients import (
    RecipientsListRequest,
    RecipientGetRequest,
    RecipientDeleteRequest,
    SuppressionListRequest,
    SuppressionAddRequest,
    SuppressionDeleteRequest,
)
from .templates import (
    TemplatesListRequest,
    TemplateGetRequest,
    TemplateDeleteRequest,
)
from .tokens import (
    TOKEN_SCOPES,
    TokenStatus,
    TokensListRequest,
    TokenGetRequest,
    TokenCreateRequest,
    TokenUpdateRequest,
    TokenUpdateNameRequest,
    TokenDeleteRequest,
)
from .webhooks import (
    WebhooksListRequest,
    WebhookGetRequest,
    WebhookCreateRequest,
    WebhookUpdateRequest,
    WebhookDeleteRequest,
)
from .email_verification import (
    EmailVerifyRequest,
    EmailVerifyAsyncRequest,
    EmailVerificationAsyncStatusRequest,
    EmailVerificationListsRequest,
    EmailVerificationGetRequest,
    EmailVerificationCreateRequest,
    EmailVerificationVerifyRequest,
    EmailVerificationResultsRequest,
)
from .users import (
    User,
    UserDomain,
    UserTemplate,
    UserInvite,
    UserInviteData,
    UsersListRequest,
    UserGetRequest,
    UserInviteRequest,
    UserUpdateRequest,
    UserDeleteRequest,
    InvitesListRequest,
    InviteGetRequest,
    InviteResendRequest,
    InviteCancelRequest,
)
from .sms_sending import SmsPersonalization, SmsSendRequest
from .sms_numbers import (
    SmsNumber,
    SmsNumbersListRequest,
    SmsNumberGetRequest,
    SmsNumberUpdateRequest,
    SmsNumberDeleteRequest,
)
from .sms_activity import (
    SmsActivity,
    SmsActivityListRequest,
    SmsMessageGetRequest,
    SmsMessage,
)
from .sms_recipients import (
    SmsRecipientStatus,
    SmsRecipientsListRequest,
    SmsRecipientGetRequest,
    SmsRecipientUpdateRequest,
    SmsRecipient,
    SmsRecipientDetails,
)
from .sms_webhooks import (
    SmsWebhookEvent,
    SmsWebhooksListRequest,
    SmsWebhookGetRequest,
    SmsWebhookCreateRequest,
    SmsWebhookUpdateRequest,
    SmsWebhookDeleteRequest,
    SmsWebhook,
)
from .sms_inbounds import (
    FilterComparer,
    SmsInboundFilter,
    SmsInboundsListRequest,
    SmsInboundGetRequest,
    SmsInboundCreateRequest,
    SmsInboundUpdateRequest,
    SmsInboundDeleteRequest,
    SmsInbound,
)

__all__ = [
    "BaseModel",
    "EmailContact",
    "EmailAttachment",
    "EmailPersonalization",
    "EmailRequest",
    "EmailTrackingSettings",
    "EmailHeader",
    "ActivityRecipient",
    "ActivityEmail",
    "Activity",
    "ActivityQueryParams",
    "ActivityRequest",
    "AnalyticsRequest",
    "DomainListRequest",
    "DomainCreateRequest",
    "DomainDeleteRequest",
    "DomainGetRequest",
    "DomainUpdateSettingsRequest",
    "DomainRecipientsRequest",
    "DomainDnsRecordsRequest",
    "DomainVerificationRequest",
    "DomainSettings",
    "IdentityListRequest",
    "IdentityCreateRequest",
    "IdentityGetRequest",
    "IdentityGetByEmailRequest",
    "IdentityUpdateRequest",
    "IdentityUpdateByEmailRequest",
    "IdentityDeleteRequest",
    "IdentityDeleteByEmailRequest",
    "InboundListRequest",
    "InboundGetRequest",
    "InboundCreateRequest",
    "InboundUpdateRequest",
    "InboundDeleteRequest",
    "InboundFilter",
    "InboundFilterGroup",
    "InboundForward",
    "MessagesListRequest",
    "MessageGetRequest",
    "SchedulesListRequest",
    "ScheduleGetRequest",
    "ScheduleDeleteRequest",
    "RecipientsListRequest",
    "RecipientGetRequest",
    "RecipientDeleteRequest",
    "SuppressionListRequest",
    "SuppressionAddRequest",
    "SuppressionDeleteRequest",
    "TemplatesListRequest",
    "TemplateGetRequest",
    "TemplateDeleteRequest",
    # Tokens models
    "TOKEN_SCOPES",
    "TokenStatus",
    "TokensListRequest",
    "TokenGetRequest",
    "TokenCreateRequest",
    "TokenUpdateRequest",
    "TokenUpdateNameRequest",
    "TokenDeleteRequest",
    "WebhooksListRequest",
    "WebhookGetRequest",
    "WebhookCreateRequest",
    "WebhookUpdateRequest",
    "WebhookDeleteRequest",
    # Email Verification models
    "EmailVerifyRequest",
    "EmailVerifyAsyncRequest",
    "EmailVerificationAsyncStatusRequest",
    "EmailVerificationListsRequest",
    "EmailVerificationGetRequest",
    "EmailVerificationCreateRequest",
    "EmailVerificationVerifyRequest",
    "EmailVerificationResultsRequest",
    # Users models
    "User",
    "UserDomain",
    "UserTemplate",
    "UserInvite",
    "UserInviteData",
    "UsersListRequest",
    "UserGetRequest",
    "UserInviteRequest",
    "UserUpdateRequest",
    "UserDeleteRequest",
    "InvitesListRequest",
    "InviteGetRequest",
    "InviteResendRequest",
    "InviteCancelRequest",
    # SMS Sending models
    "SmsPersonalization",
    "SmsSendRequest",
    # SMS Numbers models
    "SmsNumber",
    "SmsNumbersListRequest",
    "SmsNumberGetRequest",
    "SmsNumberUpdateRequest",
    "SmsNumberDeleteRequest",
    # SMS Activity models
    "SmsActivity",
    "SmsActivityListRequest",
    "SmsMessageGetRequest",
    "SmsMessage",
    # SMS Recipients models
    "SmsRecipientStatus",
    "SmsRecipientsListRequest",
    "SmsRecipientGetRequest",
    "SmsRecipientUpdateRequest",
    "SmsRecipient",
    "SmsRecipientDetails",
    # SMS Webhooks models
    "SmsWebhookEvent",
    "SmsWebhooksListRequest",
    "SmsWebhookGetRequest",
    "SmsWebhookCreateRequest",
    "SmsWebhookUpdateRequest",
    "SmsWebhookDeleteRequest",
    "SmsWebhook",
    # SMS Inbounds models
    "FilterComparer",
    "SmsInboundFilter",
    "SmsInboundsListRequest",
    "SmsInboundGetRequest",
    "SmsInboundCreateRequest",
    "SmsInboundUpdateRequest",
    "SmsInboundDeleteRequest",
    "SmsInbound",
]
