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]]