mirror of https://github.com/kortix-ai/suna.git
66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
from dataclasses import dataclass, field
|
|
from datetime import datetime
|
|
from typing import Dict, List, Any, Optional
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MCPCredential:
|
|
credential_id: str
|
|
account_id: str
|
|
mcp_qualified_name: str
|
|
display_name: str
|
|
config: Dict[str, Any]
|
|
is_active: bool
|
|
last_used_at: Optional[datetime] = None
|
|
created_at: Optional[datetime] = None
|
|
updated_at: Optional[datetime] = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MCPCredentialProfile:
|
|
profile_id: str
|
|
account_id: str
|
|
mcp_qualified_name: str
|
|
profile_name: str
|
|
display_name: str
|
|
config: Dict[str, Any]
|
|
is_active: bool
|
|
is_default: bool
|
|
last_used_at: Optional[datetime] = None
|
|
created_at: Optional[datetime] = None
|
|
updated_at: Optional[datetime] = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MCPRequirement:
|
|
qualified_name: str
|
|
display_name: str
|
|
enabled_tools: List[str] = field(default_factory=list)
|
|
required_config: List[str] = field(default_factory=list)
|
|
custom_type: Optional[str] = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class CredentialMapping:
|
|
qualified_name: str
|
|
profile_id: str
|
|
profile_name: str
|
|
display_name: str
|
|
|
|
|
|
@dataclass
|
|
class CredentialRequest:
|
|
account_id: str
|
|
mcp_qualified_name: str
|
|
display_name: str
|
|
config: Dict[str, Any]
|
|
|
|
|
|
@dataclass
|
|
class ProfileRequest:
|
|
account_id: str
|
|
mcp_qualified_name: str
|
|
profile_name: str
|
|
display_name: str
|
|
config: Dict[str, Any]
|
|
is_default: bool = False |