Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions scaleway-async/scaleway_async/cockpit/v1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from .types import PreconfiguredAlertData
from .types import ContactPointEmail
from .types import GetConfigResponseRetention
from .types import RulesCount
from .types import Alert
from .types import ContactPoint
from .types import DataSource
Expand All @@ -26,6 +27,7 @@
from .types import DisableAlertRulesResponse
from .types import EnableAlertRulesResponse
from .types import GetConfigResponse
from .types import GetRulesCountResponse
from .types import GlobalApiCreateGrafanaUserRequest
from .types import GlobalApiDeleteGrafanaUserRequest
from .types import GlobalApiGetCurrentPlanRequest
Expand Down Expand Up @@ -60,6 +62,7 @@
from .types import RegionalApiGetAlertManagerRequest
from .types import RegionalApiGetConfigRequest
from .types import RegionalApiGetDataSourceRequest
from .types import RegionalApiGetRulesCountRequest
from .types import RegionalApiGetTokenRequest
from .types import RegionalApiGetUsageOverviewRequest
from .types import RegionalApiListAlertsRequest
Expand Down Expand Up @@ -88,6 +91,7 @@
"PreconfiguredAlertData",
"ContactPointEmail",
"GetConfigResponseRetention",
"RulesCount",
"Alert",
"ContactPoint",
"DataSource",
Expand All @@ -100,6 +104,7 @@
"DisableAlertRulesResponse",
"EnableAlertRulesResponse",
"GetConfigResponse",
"GetRulesCountResponse",
"GlobalApiCreateGrafanaUserRequest",
"GlobalApiDeleteGrafanaUserRequest",
"GlobalApiGetCurrentPlanRequest",
Expand Down Expand Up @@ -134,6 +139,7 @@
"RegionalApiGetAlertManagerRequest",
"RegionalApiGetConfigRequest",
"RegionalApiGetDataSourceRequest",
"RegionalApiGetRulesCountRequest",
"RegionalApiGetTokenRequest",
"RegionalApiGetUsageOverviewRequest",
"RegionalApiListAlertsRequest",
Expand Down
35 changes: 35 additions & 0 deletions scaleway-async/scaleway_async/cockpit/v1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
DisableAlertRulesResponse,
EnableAlertRulesResponse,
GetConfigResponse,
GetRulesCountResponse,
GlobalApiCreateGrafanaUserRequest,
GlobalApiResetGrafanaUserPasswordRequest,
GlobalApiSelectPlanRequest,
Expand Down Expand Up @@ -71,6 +72,7 @@
unmarshal_DisableAlertRulesResponse,
unmarshal_EnableAlertRulesResponse,
unmarshal_GetConfigResponse,
unmarshal_GetRulesCountResponse,
unmarshal_Grafana,
unmarshal_ListAlertsResponse,
unmarshal_ListContactPointsResponse,
Expand Down Expand Up @@ -1228,6 +1230,39 @@ async def disable_alert_manager(
self._throw_on_error(res)
return unmarshal_AlertManager(res.json())

async def get_rules_count(
self,
*,
region: Optional[ScwRegion] = None,
project_id: Optional[str] = None,
) -> GetRulesCountResponse:
"""
Get a detailed count of enabled rules in the specified Project. Includes preconfigured and custom alerting and recording rules.
:param region: Region to target. If none is passed will use default region from the config.
:param project_id: ID of the Project to retrieve the rule count for.
:return: :class:`GetRulesCountResponse <GetRulesCountResponse>`

Usage:
::

result = await api.get_rules_count()
"""

param_region = validate_path_param(
"region", region or self.client.default_region
)

res = self._request(
"GET",
f"/cockpit/v1/regions/{param_region}/rules/count",
params={
"project_id": project_id or self.client.default_project_id,
},
)

self._throw_on_error(res)
return unmarshal_GetRulesCountResponse(res.json())

async def create_contact_point(
self,
*,
Expand Down
50 changes: 50 additions & 0 deletions scaleway-async/scaleway_async/cockpit/v1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
EnableAlertRulesResponse,
GetConfigResponseRetention,
GetConfigResponse,
RulesCount,
GetRulesCountResponse,
Grafana,
PreconfiguredAlertData,
Alert,
Expand Down Expand Up @@ -435,6 +437,54 @@ def unmarshal_GetConfigResponse(data: Any) -> GetConfigResponse:
return GetConfigResponse(**args)


def unmarshal_RulesCount(data: Any) -> RulesCount:
if not isinstance(data, dict):
raise TypeError(
"Unmarshalling the type 'RulesCount' failed as data isn't a dictionary."
)

args: Dict[str, Any] = {}

field = data.get("data_source_id", None)
if field is not None:
args["data_source_id"] = field

field = data.get("data_source_name", None)
if field is not None:
args["data_source_name"] = field

field = data.get("rules_count", None)
if field is not None:
args["rules_count"] = field

return RulesCount(**args)


def unmarshal_GetRulesCountResponse(data: Any) -> GetRulesCountResponse:
if not isinstance(data, dict):
raise TypeError(
"Unmarshalling the type 'GetRulesCountResponse' failed as data isn't a dictionary."
)

args: Dict[str, Any] = {}

field = data.get("rules_count_by_datasource", None)
if field is not None:
args["rules_count_by_datasource"] = (
[unmarshal_RulesCount(v) for v in field] if field is not None else None
)

field = data.get("preconfigured_rules_count", None)
if field is not None:
args["preconfigured_rules_count"] = field

field = data.get("custom_rules_count", None)
if field is not None:
args["custom_rules_count"] = field

return GetRulesCountResponse(**args)


def unmarshal_Grafana(data: Any) -> Grafana:
if not isinstance(data, dict):
raise TypeError(
Expand Down
49 changes: 49 additions & 0 deletions scaleway-async/scaleway_async/cockpit/v1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,24 @@ class GetConfigResponseRetention:
default_days: int


@dataclass
class RulesCount:
data_source_id: str
"""
ID of the data source.
"""

data_source_name: str
"""
Name of the data source.
"""

rules_count: int
"""
Total count of rules associated with this data source.
"""


@dataclass
class Alert:
"""
Expand Down Expand Up @@ -594,6 +612,24 @@ class GetConfigResponse:
"""


@dataclass
class GetRulesCountResponse:
rules_count_by_datasource: List[RulesCount]
"""
Total count of rules grouped by data source.
"""

preconfigured_rules_count: int
"""
Total count of preconfigured rules.
"""

custom_rules_count: int
"""
Total count of custom rules.
"""


@dataclass
class GlobalApiCreateGrafanaUserRequest:
"""
Expand Down Expand Up @@ -1220,6 +1256,19 @@ class RegionalApiGetDataSourceRequest:
"""


@dataclass
class RegionalApiGetRulesCountRequest:
region: Optional[ScwRegion]
"""
Region to target. If none is passed will use default region from the config.
"""

project_id: Optional[str]
"""
ID of the Project to retrieve the rule count for.
"""


@dataclass
class RegionalApiGetTokenRequest:
"""
Expand Down
6 changes: 6 additions & 0 deletions scaleway/scaleway/cockpit/v1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from .types import PreconfiguredAlertData
from .types import ContactPointEmail
from .types import GetConfigResponseRetention
from .types import RulesCount
from .types import Alert
from .types import ContactPoint
from .types import DataSource
Expand All @@ -26,6 +27,7 @@
from .types import DisableAlertRulesResponse
from .types import EnableAlertRulesResponse
from .types import GetConfigResponse
from .types import GetRulesCountResponse
from .types import GlobalApiCreateGrafanaUserRequest
from .types import GlobalApiDeleteGrafanaUserRequest
from .types import GlobalApiGetCurrentPlanRequest
Expand Down Expand Up @@ -60,6 +62,7 @@
from .types import RegionalApiGetAlertManagerRequest
from .types import RegionalApiGetConfigRequest
from .types import RegionalApiGetDataSourceRequest
from .types import RegionalApiGetRulesCountRequest
from .types import RegionalApiGetTokenRequest
from .types import RegionalApiGetUsageOverviewRequest
from .types import RegionalApiListAlertsRequest
Expand Down Expand Up @@ -88,6 +91,7 @@
"PreconfiguredAlertData",
"ContactPointEmail",
"GetConfigResponseRetention",
"RulesCount",
"Alert",
"ContactPoint",
"DataSource",
Expand All @@ -100,6 +104,7 @@
"DisableAlertRulesResponse",
"EnableAlertRulesResponse",
"GetConfigResponse",
"GetRulesCountResponse",
"GlobalApiCreateGrafanaUserRequest",
"GlobalApiDeleteGrafanaUserRequest",
"GlobalApiGetCurrentPlanRequest",
Expand Down Expand Up @@ -134,6 +139,7 @@
"RegionalApiGetAlertManagerRequest",
"RegionalApiGetConfigRequest",
"RegionalApiGetDataSourceRequest",
"RegionalApiGetRulesCountRequest",
"RegionalApiGetTokenRequest",
"RegionalApiGetUsageOverviewRequest",
"RegionalApiListAlertsRequest",
Expand Down
35 changes: 35 additions & 0 deletions scaleway/scaleway/cockpit/v1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
DisableAlertRulesResponse,
EnableAlertRulesResponse,
GetConfigResponse,
GetRulesCountResponse,
GlobalApiCreateGrafanaUserRequest,
GlobalApiResetGrafanaUserPasswordRequest,
GlobalApiSelectPlanRequest,
Expand Down Expand Up @@ -71,6 +72,7 @@
unmarshal_DisableAlertRulesResponse,
unmarshal_EnableAlertRulesResponse,
unmarshal_GetConfigResponse,
unmarshal_GetRulesCountResponse,
unmarshal_Grafana,
unmarshal_ListAlertsResponse,
unmarshal_ListContactPointsResponse,
Expand Down Expand Up @@ -1228,6 +1230,39 @@ def disable_alert_manager(
self._throw_on_error(res)
return unmarshal_AlertManager(res.json())

def get_rules_count(
self,
*,
region: Optional[ScwRegion] = None,
project_id: Optional[str] = None,
) -> GetRulesCountResponse:
"""
Get a detailed count of enabled rules in the specified Project. Includes preconfigured and custom alerting and recording rules.
:param region: Region to target. If none is passed will use default region from the config.
:param project_id: ID of the Project to retrieve the rule count for.
:return: :class:`GetRulesCountResponse <GetRulesCountResponse>`

Usage:
::

result = api.get_rules_count()
"""

param_region = validate_path_param(
"region", region or self.client.default_region
)

res = self._request(
"GET",
f"/cockpit/v1/regions/{param_region}/rules/count",
params={
"project_id": project_id or self.client.default_project_id,
},
)

self._throw_on_error(res)
return unmarshal_GetRulesCountResponse(res.json())

def create_contact_point(
self,
*,
Expand Down
Loading
Loading