oncall-engine/engine/apps/grafana_plugin/sync_data.py

52 lines
856 B
Python
Raw Permalink Normal View History

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
irm_enabled: bool
@dataclass
class SyncData:
users: List[SyncUser]
teams: List[SyncTeam]
team_members: Dict[int, List[int]]
settings: SyncSettings