diff --git a/scaleway-async/scaleway_async/cockpit/v1/__init__.py b/scaleway-async/scaleway_async/cockpit/v1/__init__.py index 833733ae8..9f801350a 100644 --- a/scaleway-async/scaleway_async/cockpit/v1/__init__.py +++ b/scaleway-async/scaleway_async/cockpit/v1/__init__.py @@ -22,6 +22,7 @@ from .types import Token from .types import Usage from .types import AlertManager +from .types import CockpitMetrics from .types import GetConfigResponse from .types import GlobalApiCreateGrafanaUserRequest from .types import GlobalApiDeleteGrafanaUserRequest @@ -53,6 +54,7 @@ from .types import RegionalApiEnableAlertManagerRequest from .types import RegionalApiEnableManagedAlertsRequest from .types import RegionalApiGetAlertManagerRequest +from .types import RegionalApiGetCockpitMetricsRequest from .types import RegionalApiGetConfigRequest from .types import RegionalApiGetDataSourceRequest from .types import RegionalApiGetTokenRequest @@ -90,6 +92,7 @@ "Token", "Usage", "AlertManager", + "CockpitMetrics", "GetConfigResponse", "GlobalApiCreateGrafanaUserRequest", "GlobalApiDeleteGrafanaUserRequest", @@ -121,6 +124,7 @@ "RegionalApiEnableAlertManagerRequest", "RegionalApiEnableManagedAlertsRequest", "RegionalApiGetAlertManagerRequest", + "RegionalApiGetCockpitMetricsRequest", "RegionalApiGetConfigRequest", "RegionalApiGetDataSourceRequest", "RegionalApiGetTokenRequest", diff --git a/scaleway-async/scaleway_async/cockpit/v1/api.py b/scaleway-async/scaleway_async/cockpit/v1/api.py index 183601987..4bcd1060a 100644 --- a/scaleway-async/scaleway_async/cockpit/v1/api.py +++ b/scaleway-async/scaleway_async/cockpit/v1/api.py @@ -1,6 +1,7 @@ # This file was automatically generated. DO NOT EDIT. # If you have any remark or suggestion do not hesitate to open an issue. +from datetime import datetime from typing import List, Optional from scaleway_core.api import API @@ -24,6 +25,7 @@ TokenScope, Alert, AlertManager, + CockpitMetrics, ContactPoint, ContactPointEmail, DataSource, @@ -64,6 +66,7 @@ unmarshal_Plan, unmarshal_Token, unmarshal_AlertManager, + unmarshal_CockpitMetrics, unmarshal_GetConfigResponse, unmarshal_Grafana, unmarshal_ListContactPointsResponse, @@ -1575,3 +1578,40 @@ async def trigger_test_alert( ) self._throw_on_error(res) + + async def get_cockpit_metrics( + self, + *, + query: str, + project_id: Optional[str] = None, + start_date: Optional[datetime] = None, + end_date: Optional[datetime] = None, + ) -> CockpitMetrics: + """ + :param query: + :param project_id: + :param start_date: + :param end_date: + :return: :class:`CockpitMetrics ` + + Usage: + :: + + result = await api.get_cockpit_metrics( + query="example", + ) + """ + + res = self._request( + "GET", + "/cockpit/v1beta1/cockpit/metrics", + params={ + "end_date": end_date, + "project_id": project_id or self.client.default_project_id, + "query": query, + "start_date": start_date, + }, + ) + + self._throw_on_error(res) + return unmarshal_CockpitMetrics(res.json()) diff --git a/scaleway-async/scaleway_async/cockpit/v1/marshalling.py b/scaleway-async/scaleway_async/cockpit/v1/marshalling.py index ab3d480cf..19907f6b7 100644 --- a/scaleway-async/scaleway_async/cockpit/v1/marshalling.py +++ b/scaleway-async/scaleway_async/cockpit/v1/marshalling.py @@ -5,6 +5,9 @@ from dateutil import parser from scaleway_core.profile import ProfileDefaults +from scaleway_core.bridge import ( + unmarshal_TimeSeries, +) from scaleway_core.utils import ( OneOfPossibility, resolve_one_of, @@ -19,6 +22,7 @@ Plan, Token, AlertManager, + CockpitMetrics, GetConfigResponseRetention, GetConfigResponse, Grafana, @@ -331,6 +335,23 @@ def unmarshal_AlertManager(data: Any) -> AlertManager: return AlertManager(**args) +def unmarshal_CockpitMetrics(data: Any) -> CockpitMetrics: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'CockpitMetrics' failed as data isn't a dictionary." + ) + + args: Dict[str, Any] = {} + + field = data.get("timeseries", None) + if field is not None: + args["timeseries"] = ( + [unmarshal_TimeSeries(v) for v in field] if field is not None else None + ) + + return CockpitMetrics(**args) + + def unmarshal_GetConfigResponseRetention(data: Any) -> GetConfigResponseRetention: if not isinstance(data, dict): raise TypeError( diff --git a/scaleway-async/scaleway_async/cockpit/v1/types.py b/scaleway-async/scaleway_async/cockpit/v1/types.py index a2e8017fd..635c2b9db 100644 --- a/scaleway-async/scaleway_async/cockpit/v1/types.py +++ b/scaleway-async/scaleway_async/cockpit/v1/types.py @@ -9,6 +9,7 @@ from scaleway_core.bridge import ( Region, + TimeSeries, ) from scaleway_core.utils import ( StrEnumMeta, @@ -18,7 +19,7 @@ class DataSourceOrigin(str, Enum, metaclass=StrEnumMeta): UNKNOWN_ORIGIN = "unknown_origin" SCALEWAY = "scaleway" - EXTERNAL = "external" + CUSTOM = "custom" def __str__(self) -> str: return str(self.value) @@ -458,6 +459,11 @@ class AlertManager: """ +@dataclass +class CockpitMetrics: + timeseries: List[TimeSeries] + + @dataclass class GetConfigResponse: """ @@ -1046,6 +1052,17 @@ class RegionalApiGetAlertManagerRequest: """ +@dataclass +class RegionalApiGetCockpitMetricsRequest: + query: str + + project_id: Optional[str] + + start_date: Optional[datetime] + + end_date: Optional[datetime] + + @dataclass class RegionalApiGetConfigRequest: """ diff --git a/scaleway/scaleway/cockpit/v1/__init__.py b/scaleway/scaleway/cockpit/v1/__init__.py index 833733ae8..9f801350a 100644 --- a/scaleway/scaleway/cockpit/v1/__init__.py +++ b/scaleway/scaleway/cockpit/v1/__init__.py @@ -22,6 +22,7 @@ from .types import Token from .types import Usage from .types import AlertManager +from .types import CockpitMetrics from .types import GetConfigResponse from .types import GlobalApiCreateGrafanaUserRequest from .types import GlobalApiDeleteGrafanaUserRequest @@ -53,6 +54,7 @@ from .types import RegionalApiEnableAlertManagerRequest from .types import RegionalApiEnableManagedAlertsRequest from .types import RegionalApiGetAlertManagerRequest +from .types import RegionalApiGetCockpitMetricsRequest from .types import RegionalApiGetConfigRequest from .types import RegionalApiGetDataSourceRequest from .types import RegionalApiGetTokenRequest @@ -90,6 +92,7 @@ "Token", "Usage", "AlertManager", + "CockpitMetrics", "GetConfigResponse", "GlobalApiCreateGrafanaUserRequest", "GlobalApiDeleteGrafanaUserRequest", @@ -121,6 +124,7 @@ "RegionalApiEnableAlertManagerRequest", "RegionalApiEnableManagedAlertsRequest", "RegionalApiGetAlertManagerRequest", + "RegionalApiGetCockpitMetricsRequest", "RegionalApiGetConfigRequest", "RegionalApiGetDataSourceRequest", "RegionalApiGetTokenRequest", diff --git a/scaleway/scaleway/cockpit/v1/api.py b/scaleway/scaleway/cockpit/v1/api.py index af201fc28..205d2ddc9 100644 --- a/scaleway/scaleway/cockpit/v1/api.py +++ b/scaleway/scaleway/cockpit/v1/api.py @@ -1,6 +1,7 @@ # This file was automatically generated. DO NOT EDIT. # If you have any remark or suggestion do not hesitate to open an issue. +from datetime import datetime from typing import List, Optional from scaleway_core.api import API @@ -24,6 +25,7 @@ TokenScope, Alert, AlertManager, + CockpitMetrics, ContactPoint, ContactPointEmail, DataSource, @@ -64,6 +66,7 @@ unmarshal_Plan, unmarshal_Token, unmarshal_AlertManager, + unmarshal_CockpitMetrics, unmarshal_GetConfigResponse, unmarshal_Grafana, unmarshal_ListContactPointsResponse, @@ -1575,3 +1578,40 @@ def trigger_test_alert( ) self._throw_on_error(res) + + def get_cockpit_metrics( + self, + *, + query: str, + project_id: Optional[str] = None, + start_date: Optional[datetime] = None, + end_date: Optional[datetime] = None, + ) -> CockpitMetrics: + """ + :param query: + :param project_id: + :param start_date: + :param end_date: + :return: :class:`CockpitMetrics ` + + Usage: + :: + + result = api.get_cockpit_metrics( + query="example", + ) + """ + + res = self._request( + "GET", + "/cockpit/v1beta1/cockpit/metrics", + params={ + "end_date": end_date, + "project_id": project_id or self.client.default_project_id, + "query": query, + "start_date": start_date, + }, + ) + + self._throw_on_error(res) + return unmarshal_CockpitMetrics(res.json()) diff --git a/scaleway/scaleway/cockpit/v1/marshalling.py b/scaleway/scaleway/cockpit/v1/marshalling.py index ab3d480cf..19907f6b7 100644 --- a/scaleway/scaleway/cockpit/v1/marshalling.py +++ b/scaleway/scaleway/cockpit/v1/marshalling.py @@ -5,6 +5,9 @@ from dateutil import parser from scaleway_core.profile import ProfileDefaults +from scaleway_core.bridge import ( + unmarshal_TimeSeries, +) from scaleway_core.utils import ( OneOfPossibility, resolve_one_of, @@ -19,6 +22,7 @@ Plan, Token, AlertManager, + CockpitMetrics, GetConfigResponseRetention, GetConfigResponse, Grafana, @@ -331,6 +335,23 @@ def unmarshal_AlertManager(data: Any) -> AlertManager: return AlertManager(**args) +def unmarshal_CockpitMetrics(data: Any) -> CockpitMetrics: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'CockpitMetrics' failed as data isn't a dictionary." + ) + + args: Dict[str, Any] = {} + + field = data.get("timeseries", None) + if field is not None: + args["timeseries"] = ( + [unmarshal_TimeSeries(v) for v in field] if field is not None else None + ) + + return CockpitMetrics(**args) + + def unmarshal_GetConfigResponseRetention(data: Any) -> GetConfigResponseRetention: if not isinstance(data, dict): raise TypeError( diff --git a/scaleway/scaleway/cockpit/v1/types.py b/scaleway/scaleway/cockpit/v1/types.py index a2e8017fd..635c2b9db 100644 --- a/scaleway/scaleway/cockpit/v1/types.py +++ b/scaleway/scaleway/cockpit/v1/types.py @@ -9,6 +9,7 @@ from scaleway_core.bridge import ( Region, + TimeSeries, ) from scaleway_core.utils import ( StrEnumMeta, @@ -18,7 +19,7 @@ class DataSourceOrigin(str, Enum, metaclass=StrEnumMeta): UNKNOWN_ORIGIN = "unknown_origin" SCALEWAY = "scaleway" - EXTERNAL = "external" + CUSTOM = "custom" def __str__(self) -> str: return str(self.value) @@ -458,6 +459,11 @@ class AlertManager: """ +@dataclass +class CockpitMetrics: + timeseries: List[TimeSeries] + + @dataclass class GetConfigResponse: """ @@ -1046,6 +1052,17 @@ class RegionalApiGetAlertManagerRequest: """ +@dataclass +class RegionalApiGetCockpitMetricsRequest: + query: str + + project_id: Optional[str] + + start_date: Optional[datetime] + + end_date: Optional[datetime] + + @dataclass class RegionalApiGetConfigRequest: """