| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | from enum import Enumfrom typing import Dict, List, Optionalfrom core.tools.entities.common_entities import I18nObjectfrom core.tools.entities.tool_entities import ToolProviderCredentialsfrom core.tools.tool.tool import ToolParameterfrom pydantic import BaseModelclass UserToolProvider(BaseModel):    class ProviderType(Enum):        BUILTIN = "builtin"        APP = "app"        API = "api"    id: str    author: str    name: str # identifier    description: I18nObject    icon: str    label: I18nObject # label    type: ProviderType    team_credentials: dict = None    is_team_authorization: bool = False    allow_delete: bool = True    def to_dict(self) -> dict:        return {            'id': self.id,            'author': self.author,            'name': self.name,            'description': self.description.to_dict(),            'icon': self.icon,            'label': self.label.to_dict(),            'type': self.type.value,            'team_credentials': self.team_credentials,            'is_team_authorization': self.is_team_authorization,            'allow_delete': self.allow_delete        }class UserToolProviderCredentials(BaseModel):    credentials: Dict[str, ToolProviderCredentials]class UserTool(BaseModel):    author: str    name: str # identifier    label: I18nObject # label    description: I18nObject    parameters: Optional[List[ToolParameter]]
 |