dify/api/services/entities/dsl_entities.py

42 lines
1.1 KiB
Python

from enum import StrEnum
from typing import Any
from pydantic import BaseModel, ConfigDict, Field
from core.plugin.entities.plugin import PluginDependency
class ImportMode(StrEnum):
YAML_CONTENT = "yaml-content"
YAML_URL = "yaml-url"
class ImportStatus(StrEnum):
COMPLETED = "completed"
COMPLETED_WITH_WARNINGS = "completed-with-warnings"
PENDING = "pending"
FAILED = "failed"
class PendingImportOwner(BaseModel):
model_config = ConfigDict(hide_input_in_errors=True)
tenant_id: str
account_id: str
def is_accessible_by(self, *, tenant_id: str | None, account_id: str) -> bool:
return tenant_id is not None and (self.tenant_id, self.account_id) == (tenant_id, account_id)
class DslImportWarning(BaseModel):
"""Portable DSL reference that could not be restored in the target workspace."""
code: str
path: str
message: str
details: dict[str, Any] = Field(default_factory=dict)
class CheckDependenciesResult(BaseModel):
leaked_dependencies: list[PluginDependency] = Field(default_factory=list)