Source code for grafanarmadillo.types

"""Type hints for Grafana interaction."""
from dataclasses import dataclass
from pathlib import Path
from typing import List, NewType, Optional, TypedDict, Union


GrafanaVersion = NewType("UID", int)
UID = NewType("UID", str)


[docs]class AnySearchResult(TypedDict): """Metadata for both Grafana dashboards and alerts.""" uid: UID title: str folderUid: Optional[UID]
[docs]class DashboardSearchResult(TypedDict): """Relevant keys returned by a Grafana search.""" id: int uid: UID title: str folderId: Optional[int] folderUid: Optional[UID] folderTitle: Optional[str]
[docs]class AlertSearchResult(TypedDict): """Relevant keys returned for an alert.""" id: int uid: UID orgID: int folderUID: UID ruleGroup: str title: str
DashboardContent = NewType("DashboardContent", dict) AlertContent = NewType("AlertContent", dict) AnyContent = Union[DashboardContent, AlertContent] DashboardMeta = NewType("DashboardMeta", dict) OrgMeta = NewType("OrgMeta", dict)
[docs]class Dashboard(TypedDict): """Relevant keys returned by GET of a Grafana dashboard.""" meta: DashboardMeta dashboard: DashboardContent
DashboardPanel = NewType("DashboardPanel", dict) FolderSearchResult = NewType("Folder", dict)
[docs]@dataclass class GrafanaPath: """Path of an object in Grafana.""" name: str folder: str org: Optional[str] = None
PathLike = Union[GrafanaPath, str, Path, List[str]]