Skip to content

Commit c858e72

Browse files
authored
feat(cockpit): add regional get cockpit metrics (scaleway#760)
1 parent d295c44 commit c858e72

File tree

8 files changed

+166
-2
lines changed

8 files changed

+166
-2
lines changed

scaleway-async/scaleway_async/cockpit/v1/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from .types import Token
2323
from .types import Usage
2424
from .types import AlertManager
25+
from .types import CockpitMetrics
2526
from .types import GetConfigResponse
2627
from .types import GlobalApiCreateGrafanaUserRequest
2728
from .types import GlobalApiDeleteGrafanaUserRequest
@@ -53,6 +54,7 @@
5354
from .types import RegionalApiEnableAlertManagerRequest
5455
from .types import RegionalApiEnableManagedAlertsRequest
5556
from .types import RegionalApiGetAlertManagerRequest
57+
from .types import RegionalApiGetCockpitMetricsRequest
5658
from .types import RegionalApiGetConfigRequest
5759
from .types import RegionalApiGetDataSourceRequest
5860
from .types import RegionalApiGetTokenRequest
@@ -90,6 +92,7 @@
9092
"Token",
9193
"Usage",
9294
"AlertManager",
95+
"CockpitMetrics",
9396
"GetConfigResponse",
9497
"GlobalApiCreateGrafanaUserRequest",
9598
"GlobalApiDeleteGrafanaUserRequest",
@@ -121,6 +124,7 @@
121124
"RegionalApiEnableAlertManagerRequest",
122125
"RegionalApiEnableManagedAlertsRequest",
123126
"RegionalApiGetAlertManagerRequest",
127+
"RegionalApiGetCockpitMetricsRequest",
124128
"RegionalApiGetConfigRequest",
125129
"RegionalApiGetDataSourceRequest",
126130
"RegionalApiGetTokenRequest",

scaleway-async/scaleway_async/cockpit/v1/api.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# This file was automatically generated. DO NOT EDIT.
22
# If you have any remark or suggestion do not hesitate to open an issue.
33

4+
from datetime import datetime
45
from typing import List, Optional
56

67
from scaleway_core.api import API
@@ -24,6 +25,7 @@
2425
TokenScope,
2526
Alert,
2627
AlertManager,
28+
CockpitMetrics,
2729
ContactPoint,
2830
ContactPointEmail,
2931
DataSource,
@@ -64,6 +66,7 @@
6466
unmarshal_Plan,
6567
unmarshal_Token,
6668
unmarshal_AlertManager,
69+
unmarshal_CockpitMetrics,
6770
unmarshal_GetConfigResponse,
6871
unmarshal_Grafana,
6972
unmarshal_ListContactPointsResponse,
@@ -1575,3 +1578,40 @@ async def trigger_test_alert(
15751578
)
15761579

15771580
self._throw_on_error(res)
1581+
1582+
async def get_cockpit_metrics(
1583+
self,
1584+
*,
1585+
query: str,
1586+
project_id: Optional[str] = None,
1587+
start_date: Optional[datetime] = None,
1588+
end_date: Optional[datetime] = None,
1589+
) -> CockpitMetrics:
1590+
"""
1591+
:param query:
1592+
:param project_id:
1593+
:param start_date:
1594+
:param end_date:
1595+
:return: :class:`CockpitMetrics <CockpitMetrics>`
1596+
1597+
Usage:
1598+
::
1599+
1600+
result = await api.get_cockpit_metrics(
1601+
query="example",
1602+
)
1603+
"""
1604+
1605+
res = self._request(
1606+
"GET",
1607+
"/cockpit/v1beta1/cockpit/metrics",
1608+
params={
1609+
"end_date": end_date,
1610+
"project_id": project_id or self.client.default_project_id,
1611+
"query": query,
1612+
"start_date": start_date,
1613+
},
1614+
)
1615+
1616+
self._throw_on_error(res)
1617+
return unmarshal_CockpitMetrics(res.json())

scaleway-async/scaleway_async/cockpit/v1/marshalling.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
from dateutil import parser
66

77
from scaleway_core.profile import ProfileDefaults
8+
from scaleway_core.bridge import (
9+
unmarshal_TimeSeries,
10+
)
811
from scaleway_core.utils import (
912
OneOfPossibility,
1013
resolve_one_of,
@@ -19,6 +22,7 @@
1922
Plan,
2023
Token,
2124
AlertManager,
25+
CockpitMetrics,
2226
GetConfigResponseRetention,
2327
GetConfigResponse,
2428
Grafana,
@@ -331,6 +335,23 @@ def unmarshal_AlertManager(data: Any) -> AlertManager:
331335
return AlertManager(**args)
332336

333337

338+
def unmarshal_CockpitMetrics(data: Any) -> CockpitMetrics:
339+
if not isinstance(data, dict):
340+
raise TypeError(
341+
"Unmarshalling the type 'CockpitMetrics' failed as data isn't a dictionary."
342+
)
343+
344+
args: Dict[str, Any] = {}
345+
346+
field = data.get("timeseries", None)
347+
if field is not None:
348+
args["timeseries"] = (
349+
[unmarshal_TimeSeries(v) for v in field] if field is not None else None
350+
)
351+
352+
return CockpitMetrics(**args)
353+
354+
334355
def unmarshal_GetConfigResponseRetention(data: Any) -> GetConfigResponseRetention:
335356
if not isinstance(data, dict):
336357
raise TypeError(

scaleway-async/scaleway_async/cockpit/v1/types.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from scaleway_core.bridge import (
1111
Region,
12+
TimeSeries,
1213
)
1314
from scaleway_core.utils import (
1415
StrEnumMeta,
@@ -18,7 +19,7 @@
1819
class DataSourceOrigin(str, Enum, metaclass=StrEnumMeta):
1920
UNKNOWN_ORIGIN = "unknown_origin"
2021
SCALEWAY = "scaleway"
21-
EXTERNAL = "external"
22+
CUSTOM = "custom"
2223

2324
def __str__(self) -> str:
2425
return str(self.value)
@@ -458,6 +459,11 @@ class AlertManager:
458459
"""
459460

460461

462+
@dataclass
463+
class CockpitMetrics:
464+
timeseries: List[TimeSeries]
465+
466+
461467
@dataclass
462468
class GetConfigResponse:
463469
"""
@@ -1046,6 +1052,17 @@ class RegionalApiGetAlertManagerRequest:
10461052
"""
10471053

10481054

1055+
@dataclass
1056+
class RegionalApiGetCockpitMetricsRequest:
1057+
query: str
1058+
1059+
project_id: Optional[str]
1060+
1061+
start_date: Optional[datetime]
1062+
1063+
end_date: Optional[datetime]
1064+
1065+
10491066
@dataclass
10501067
class RegionalApiGetConfigRequest:
10511068
"""

scaleway/scaleway/cockpit/v1/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from .types import Token
2323
from .types import Usage
2424
from .types import AlertManager
25+
from .types import CockpitMetrics
2526
from .types import GetConfigResponse
2627
from .types import GlobalApiCreateGrafanaUserRequest
2728
from .types import GlobalApiDeleteGrafanaUserRequest
@@ -53,6 +54,7 @@
5354
from .types import RegionalApiEnableAlertManagerRequest
5455
from .types import RegionalApiEnableManagedAlertsRequest
5556
from .types import RegionalApiGetAlertManagerRequest
57+
from .types import RegionalApiGetCockpitMetricsRequest
5658
from .types import RegionalApiGetConfigRequest
5759
from .types import RegionalApiGetDataSourceRequest
5860
from .types import RegionalApiGetTokenRequest
@@ -90,6 +92,7 @@
9092
"Token",
9193
"Usage",
9294
"AlertManager",
95+
"CockpitMetrics",
9396
"GetConfigResponse",
9497
"GlobalApiCreateGrafanaUserRequest",
9598
"GlobalApiDeleteGrafanaUserRequest",
@@ -121,6 +124,7 @@
121124
"RegionalApiEnableAlertManagerRequest",
122125
"RegionalApiEnableManagedAlertsRequest",
123126
"RegionalApiGetAlertManagerRequest",
127+
"RegionalApiGetCockpitMetricsRequest",
124128
"RegionalApiGetConfigRequest",
125129
"RegionalApiGetDataSourceRequest",
126130
"RegionalApiGetTokenRequest",

scaleway/scaleway/cockpit/v1/api.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# This file was automatically generated. DO NOT EDIT.
22
# If you have any remark or suggestion do not hesitate to open an issue.
33

4+
from datetime import datetime
45
from typing import List, Optional
56

67
from scaleway_core.api import API
@@ -24,6 +25,7 @@
2425
TokenScope,
2526
Alert,
2627
AlertManager,
28+
CockpitMetrics,
2729
ContactPoint,
2830
ContactPointEmail,
2931
DataSource,
@@ -64,6 +66,7 @@
6466
unmarshal_Plan,
6567
unmarshal_Token,
6668
unmarshal_AlertManager,
69+
unmarshal_CockpitMetrics,
6770
unmarshal_GetConfigResponse,
6871
unmarshal_Grafana,
6972
unmarshal_ListContactPointsResponse,
@@ -1575,3 +1578,40 @@ def trigger_test_alert(
15751578
)
15761579

15771580
self._throw_on_error(res)
1581+
1582+
def get_cockpit_metrics(
1583+
self,
1584+
*,
1585+
query: str,
1586+
project_id: Optional[str] = None,
1587+
start_date: Optional[datetime] = None,
1588+
end_date: Optional[datetime] = None,
1589+
) -> CockpitMetrics:
1590+
"""
1591+
:param query:
1592+
:param project_id:
1593+
:param start_date:
1594+
:param end_date:
1595+
:return: :class:`CockpitMetrics <CockpitMetrics>`
1596+
1597+
Usage:
1598+
::
1599+
1600+
result = api.get_cockpit_metrics(
1601+
query="example",
1602+
)
1603+
"""
1604+
1605+
res = self._request(
1606+
"GET",
1607+
"/cockpit/v1beta1/cockpit/metrics",
1608+
params={
1609+
"end_date": end_date,
1610+
"project_id": project_id or self.client.default_project_id,
1611+
"query": query,
1612+
"start_date": start_date,
1613+
},
1614+
)
1615+
1616+
self._throw_on_error(res)
1617+
return unmarshal_CockpitMetrics(res.json())

scaleway/scaleway/cockpit/v1/marshalling.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
from dateutil import parser
66

77
from scaleway_core.profile import ProfileDefaults
8+
from scaleway_core.bridge import (
9+
unmarshal_TimeSeries,
10+
)
811
from scaleway_core.utils import (
912
OneOfPossibility,
1013
resolve_one_of,
@@ -19,6 +22,7 @@
1922
Plan,
2023
Token,
2124
AlertManager,
25+
CockpitMetrics,
2226
GetConfigResponseRetention,
2327
GetConfigResponse,
2428
Grafana,
@@ -331,6 +335,23 @@ def unmarshal_AlertManager(data: Any) -> AlertManager:
331335
return AlertManager(**args)
332336

333337

338+
def unmarshal_CockpitMetrics(data: Any) -> CockpitMetrics:
339+
if not isinstance(data, dict):
340+
raise TypeError(
341+
"Unmarshalling the type 'CockpitMetrics' failed as data isn't a dictionary."
342+
)
343+
344+
args: Dict[str, Any] = {}
345+
346+
field = data.get("timeseries", None)
347+
if field is not None:
348+
args["timeseries"] = (
349+
[unmarshal_TimeSeries(v) for v in field] if field is not None else None
350+
)
351+
352+
return CockpitMetrics(**args)
353+
354+
334355
def unmarshal_GetConfigResponseRetention(data: Any) -> GetConfigResponseRetention:
335356
if not isinstance(data, dict):
336357
raise TypeError(

scaleway/scaleway/cockpit/v1/types.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from scaleway_core.bridge import (
1111
Region,
12+
TimeSeries,
1213
)
1314
from scaleway_core.utils import (
1415
StrEnumMeta,
@@ -18,7 +19,7 @@
1819
class DataSourceOrigin(str, Enum, metaclass=StrEnumMeta):
1920
UNKNOWN_ORIGIN = "unknown_origin"
2021
SCALEWAY = "scaleway"
21-
EXTERNAL = "external"
22+
CUSTOM = "custom"
2223

2324
def __str__(self) -> str:
2425
return str(self.value)
@@ -458,6 +459,11 @@ class AlertManager:
458459
"""
459460

460461

462+
@dataclass
463+
class CockpitMetrics:
464+
timeseries: List[TimeSeries]
465+
466+
461467
@dataclass
462468
class GetConfigResponse:
463469
"""
@@ -1046,6 +1052,17 @@ class RegionalApiGetAlertManagerRequest:
10461052
"""
10471053

10481054

1055+
@dataclass
1056+
class RegionalApiGetCockpitMetricsRequest:
1057+
query: str
1058+
1059+
project_id: Optional[str]
1060+
1061+
start_date: Optional[datetime]
1062+
1063+
end_date: Optional[datetime]
1064+
1065+
10491066
@dataclass
10501067
class RegionalApiGetConfigRequest:
10511068
"""

0 commit comments

Comments
 (0)