"""
Pydantic models for request/response data validation.

This module defines data models used for validating API request and response data.
"""

from mlflow_oidc_auth.models.experiment import (
    ExperimentPermission,
    ExperimentPermissionSummary,
    ExperimentRegexCreate,
    ExperimentRegexPermission,
    ExperimentSummary,
)
from mlflow_oidc_auth.models.group import (
    GroupExperimentPermission,
    GroupExperimentPermissionItem,
    GroupExperimentRegexPermissionItem,
    GroupListResponse,
    GroupNamedPermissionItem,
    GroupPermissionEntry,
    GroupPromptRegexPermissionItem,
    GroupRegexPermission,
    GroupRegisteredModelRegexPermissionItem,
    GroupScorerPermissionItem,
    GroupScorerRegexPermissionItem,
    GroupUser,
)
from mlflow_oidc_auth.models.permission import PermissionResult, UserPermission
from mlflow_oidc_auth.models.prompt import PromptPermission, PromptRegexCreate
from mlflow_oidc_auth.models.registered_model import RegisteredModelPermission, RegisteredModelRegexCreate
from mlflow_oidc_auth.models.scorer import ScorerPermission, ScorerPermissionRequest, ScorerRegexCreate, ScorerSummary
from mlflow_oidc_auth.models.responses import (
    CurrentUserProfile,
    ExperimentPermissionRecord,
    ExperimentPermissionResponse,
    GroupRecord,
    MessageResponse,
    NamedPermissionSummary,
    PromptPermissionResponse,
    PromptRegexPermissionResponse,
    RegisteredModelPermissionRecord,
    RegisteredModelPermissionResponse,
    RegisteredModelRegexPermissionRecord,
    RegisteredModelRegexPermissionResponse,
    ScorerPermissionRecord,
    ScorerPermissionResponse,
    ScorerRegexPermissionRecord,
    ScorerRegexPermissionResponse,
    StatusMessageResponse,
    StatusOnlyResponse,
)
from mlflow_oidc_auth.models.user import CreateAccessTokenRequest, CreateUserRequest
from mlflow_oidc_auth.models.webhook import (
    WebhookCreateRequest,
    WebhookListResponse,
    WebhookResponse,
    WebhookTestRequest,
    WebhookTestResponse,
    WebhookUpdateRequest,
)

__all__ = [
    "ExperimentPermission",
    "ExperimentRegexCreate",
    "ExperimentPermissionSummary",
    "ExperimentSummary",
    "ExperimentRegexPermission",
    "GroupUser",
    "GroupExperimentPermission",
    "GroupListResponse",
    "GroupExperimentPermissionItem",
    "GroupExperimentRegexPermissionItem",
    "GroupNamedPermissionItem",
    "GroupRegexPermission",
    "GroupPermissionEntry",
    "GroupRegisteredModelRegexPermissionItem",
    "GroupPromptRegexPermissionItem",
    "GroupScorerPermissionItem",
    "GroupScorerRegexPermissionItem",
    "PermissionResult",
    "PromptPermission",
    "PromptRegexCreate",
    "RegisteredModelPermission",
    "RegisteredModelRegexCreate",
    "ScorerPermission",
    "ScorerRegexCreate",
    "ScorerPermissionRequest",
    "ScorerSummary",
    "MessageResponse",
    "StatusOnlyResponse",
    "StatusMessageResponse",
    "GroupRecord",
    "CurrentUserProfile",
    "NamedPermissionSummary",
    "ExperimentPermissionRecord",
    "ExperimentPermissionResponse",
    "RegisteredModelPermissionRecord",
    "PromptPermissionResponse",
    "RegisteredModelPermissionResponse",
    "RegisteredModelRegexPermissionRecord",
    "PromptRegexPermissionResponse",
    "RegisteredModelRegexPermissionResponse",
    "ScorerPermissionRecord",
    "ScorerPermissionResponse",
    "ScorerRegexPermissionRecord",
    "ScorerRegexPermissionResponse",
    "CreateAccessTokenRequest",
    "CreateUserRequest",
    "WebhookCreateRequest",
    "WebhookUpdateRequest",
    "WebhookTestRequest",
    "WebhookResponse",
    "WebhookListResponse",
    "WebhookTestResponse",
    "UserPermission",
]
