"""Appliku — Python CLI and SDK for the Appliku platform."""

from appliku._exceptions import (
    AplikuError,
    AuthenticationError,
    AuthorizationError,
    NotFoundError,
    RateLimitError,
    ServerError,
    ValidationError,
)
from appliku._main import Appliku
from appliku._models import (
    AdvancedLogsResponse,
    App,
    AppCreate,
    AppLogsRequest,
    AppUpdate,
    Cluster,
    ClusterCreate,
    ConfigVarsResponse,
    CronJob,
    CronJobCreate,
    CronJobUpdate,
    Datastore,
    DatastoreCreate,
    DatastoreLogsResponse,
    Deployment,
    Domain,
    DomainCreate,
    Invite,
    InviteCreate,
    LogEntry,
    LogsRequestResponse,
    Migration,
    MigrationRun,
    NginxLogsRequest,
    NginxLogsResponse,
    PaginatedResponse,
    Server,
    ServerCreateCustom,
    ServerCreateDO,
    ServerCreateEC2,
    ServiceLogsResponse,
    Team,
    TeamCreate,
    TeamUpdate,
    UserInfo,
    Volume,
    VolumeCreate,
    VolumeUpdate,
)

__version__ = "0.1.0"

__all__ = [
    # Main client
    "Appliku",
    # Exceptions
    "AplikuError",
    "AuthenticationError",
    "AuthorizationError",
    "NotFoundError",
    "RateLimitError",
    "ServerError",
    "ValidationError",
    # Models — Resources
    "Team",
    "TeamCreate",
    "TeamUpdate",
    "App",
    "AppCreate",
    "AppUpdate",
    "ConfigVarsResponse",
    "Deployment",
    "LogEntry",
    "Datastore",
    "DatastoreCreate",
    "Domain",
    "DomainCreate",
    "Volume",
    "VolumeCreate",
    "VolumeUpdate",
    "CronJob",
    "CronJobCreate",
    "CronJobUpdate",
    "Cluster",
    "ClusterCreate",
    "Server",
    "ServerCreateDO",
    "ServerCreateEC2",
    "ServerCreateCustom",
    "Invite",
    "InviteCreate",
    "Migration",
    "MigrationRun",
    # Models — Logs
    "AdvancedLogsResponse",
    "AppLogsRequest",
    "DatastoreLogsResponse",
    "LogsRequestResponse",
    "NginxLogsRequest",
    "NginxLogsResponse",
    "ServiceLogsResponse",
    # Models — Common
    "PaginatedResponse",
    "UserInfo",
]
