2024-07-31 13:12:56 -03:00
|
|
|
from dataclasses import dataclass
|
|
|
|
|
from typing import Dict, List, Optional
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class SyncPermission:
|
|
|
|
|
action: str
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class SyncUser:
|
|
|
|
|
id: int
|
|
|
|
|
name: str
|
|
|
|
|
login: str
|
|
|
|
|
email: str
|
|
|
|
|
role: str
|
|
|
|
|
avatar_url: str
|
|
|
|
|
permissions: List[SyncPermission]
|
|
|
|
|
teams: Optional[List[int]]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class SyncTeam:
|
|
|
|
|
team_id: int
|
|
|
|
|
name: str
|
|
|
|
|
email: str
|
|
|
|
|
avatar_url: str
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class SyncSettings:
|
|
|
|
|
stack_id: int
|
|
|
|
|
org_id: int
|
|
|
|
|
license: str
|
|
|
|
|
oncall_api_url: str
|
|
|
|
|
oncall_token: str
|
|
|
|
|
grafana_url: str
|
|
|
|
|
grafana_token: str
|
|
|
|
|
rbac_enabled: bool
|
|
|
|
|
incident_enabled: bool
|
|
|
|
|
incident_backend_url: str
|
|
|
|
|
labels_enabled: bool
|
2024-10-11 14:57:59 -04:00
|
|
|
irm_enabled: bool
|
2024-07-31 13:12:56 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class SyncData:
|
|
|
|
|
users: List[SyncUser]
|
|
|
|
|
teams: List[SyncTeam]
|
|
|
|
|
team_members: Dict[int, List[int]]
|
|
|
|
|
settings: SyncSettings
|