"""
Common DTOs for deployment system used by both Client SDK and Manager.
"""

from __future__ import annotations

from .request import (
    BlueGreenConfigInput,
    ClusterConfigInput,
    CreateDeploymentRequest,
    CreateRevisionRequest,
    DeploymentFilter,
    DeploymentMetadataInput,
    DeploymentPathParam,
    DeploymentStrategyInput,
    ExtraVFolderMountInput,
    ImageInput,
    ModelMountConfigInput,
    ModelRuntimeConfigInput,
    NetworkAccessInput,
    ResourceConfigInput,
    RevisionFilter,
    RevisionInput,
    RevisionPathParam,
    RollingUpdateConfigInput,
    RouteFilter,
    RoutePathParam,
    SearchDeploymentsRequest,
    SearchRevisionsRequest,
    SearchRoutesRequest,
    UpdateDeploymentRequest,
    UpdateRouteTrafficStatusRequest,
)
from .response import (
    ActivateRevisionResponse,
    ClusterConfigDTO,
    CreateDeploymentResponse,
    CreateRevisionResponse,
    CursorPaginationInfo,
    DeactivateRevisionResponse,
    DeploymentDTO,
    DestroyDeploymentResponse,
    GetDeploymentResponse,
    GetRevisionResponse,
    ListDeploymentsResponse,
    ListRevisionsResponse,
    ListRoutesResponse,
    ModelMountConfigDTO,
    ModelRuntimeConfigDTO,
    NetworkConfigDTO,
    PaginationInfo,
    ReplicaStateDTO,
    ResourceConfigDTO,
    RevisionDTO,
    RouteDTO,
    UpdateDeploymentResponse,
    UpdateRouteTrafficStatusResponse,
)
from .types import (
    DeploymentOrder,
    DeploymentOrderField,
    OrderDirection,
    RevisionOrder,
    RevisionOrderField,
    RouteOrder,
    RouteOrderField,
)

__all__ = (
    # Types
    "OrderDirection",
    "DeploymentOrderField",
    "RevisionOrderField",
    "RouteOrderField",
    "DeploymentOrder",
    "RevisionOrder",
    "RouteOrder",
    # Request DTOs - Filters
    "DeploymentFilter",
    "RevisionFilter",
    "RouteFilter",
    # Request DTOs - Path params
    "DeploymentPathParam",
    "RevisionPathParam",
    "RoutePathParam",
    # Request DTOs - Search/List
    "SearchDeploymentsRequest",
    "SearchRevisionsRequest",
    "SearchRoutesRequest",
    # Request DTOs - Create inputs
    "RollingUpdateConfigInput",
    "BlueGreenConfigInput",
    "DeploymentMetadataInput",
    "NetworkAccessInput",
    "DeploymentStrategyInput",
    "ImageInput",
    "ClusterConfigInput",
    "ResourceConfigInput",
    "ModelMountConfigInput",
    "ModelRuntimeConfigInput",
    "ExtraVFolderMountInput",
    "RevisionInput",
    # Request DTOs - Create/Update requests
    "CreateDeploymentRequest",
    "CreateRevisionRequest",
    "UpdateDeploymentRequest",
    "UpdateRouteTrafficStatusRequest",
    # Response DTOs - Data
    "DeploymentDTO",
    "RevisionDTO",
    "RouteDTO",
    "NetworkConfigDTO",
    "ClusterConfigDTO",
    "ResourceConfigDTO",
    "ModelRuntimeConfigDTO",
    "ModelMountConfigDTO",
    "ReplicaStateDTO",
    # Response DTOs - Create responses
    "CreateDeploymentResponse",
    "CreateRevisionResponse",
    # Response DTOs - Get/List responses
    "GetDeploymentResponse",
    "ListDeploymentsResponse",
    "UpdateDeploymentResponse",
    "DestroyDeploymentResponse",
    "GetRevisionResponse",
    "ListRevisionsResponse",
    "ActivateRevisionResponse",
    "DeactivateRevisionResponse",
    "ListRoutesResponse",
    "UpdateRouteTrafficStatusResponse",
    # Response DTOs - Pagination
    "PaginationInfo",
    "CursorPaginationInfo",
)
