Skip to content

Commit 0da09eb

Browse files
authored
feat(cockpit): add received_resolved field (#850)
1 parent 7b4a738 commit 0da09eb

File tree

8 files changed

+238
-2
lines changed

8 files changed

+238
-2
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
from .types import RegionalApiListManagedAlertsRequest
6363
from .types import RegionalApiListTokensRequest
6464
from .types import RegionalApiTriggerTestAlertRequest
65+
from .types import RegionalApiUpdateContactPointRequest
6566
from .types import RegionalApiUpdateDataSourceRequest
6667
from .types import UsageOverview
6768
from .api import CockpitV1GlobalAPI
@@ -130,6 +131,7 @@
130131
"RegionalApiListManagedAlertsRequest",
131132
"RegionalApiListTokensRequest",
132133
"RegionalApiTriggerTestAlertRequest",
134+
"RegionalApiUpdateContactPointRequest",
133135
"RegionalApiUpdateDataSourceRequest",
134136
"UsageOverview",
135137
"CockpitV1GlobalAPI",

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
RegionalApiEnableAlertManagerRequest,
5353
RegionalApiEnableManagedAlertsRequest,
5454
RegionalApiTriggerTestAlertRequest,
55+
RegionalApiUpdateContactPointRequest,
5556
RegionalApiUpdateDataSourceRequest,
5657
Token,
5758
UsageOverview,
@@ -87,6 +88,7 @@
8788
marshal_RegionalApiEnableAlertManagerRequest,
8889
marshal_RegionalApiEnableManagedAlertsRequest,
8990
marshal_RegionalApiTriggerTestAlertRequest,
91+
marshal_RegionalApiUpdateContactPointRequest,
9092
marshal_RegionalApiUpdateDataSourceRequest,
9193
)
9294

@@ -1230,6 +1232,7 @@ async def create_contact_point(
12301232
region: Optional[ScwRegion] = None,
12311233
project_id: Optional[str] = None,
12321234
email: Optional[ContactPointEmail] = None,
1235+
receive_resolved_notifications: Optional[bool] = None,
12331236
) -> ContactPoint:
12341237
"""
12351238
Create a contact point.
@@ -1240,6 +1243,7 @@ async def create_contact_point(
12401243
:param project_id: ID of the Project to create the contact point in.
12411244
:param email: Email address of the contact point to create.
12421245
One-Of ('configuration'): at most one of 'email' could be set.
1246+
:param receive_resolved_notifications: Send an email notification when an alert is marked as resolved.
12431247
:return: :class:`ContactPoint <ContactPoint>`
12441248
12451249
Usage:
@@ -1259,6 +1263,7 @@ async def create_contact_point(
12591263
RegionalApiCreateContactPointRequest(
12601264
region=region,
12611265
project_id=project_id,
1266+
receive_resolved_notifications=receive_resolved_notifications,
12621267
email=email,
12631268
),
12641269
self.client,
@@ -1343,6 +1348,49 @@ async def list_contact_points_all(
13431348
},
13441349
)
13451350

1351+
async def update_contact_point(
1352+
self,
1353+
*,
1354+
region: Optional[ScwRegion] = None,
1355+
project_id: Optional[str] = None,
1356+
email: Optional[ContactPointEmail] = None,
1357+
receive_resolved_notifications: Optional[bool] = None,
1358+
) -> ContactPoint:
1359+
"""
1360+
:param region: Region to target. If none is passed will use default region from the config.
1361+
:param project_id: ID of the Project containing the contact point to update.
1362+
:param email: Email address of the contact point to update.
1363+
One-Of ('configuration'): at most one of 'email' could be set.
1364+
:param receive_resolved_notifications: Enable or disable notifications when alert is resolved.
1365+
:return: :class:`ContactPoint <ContactPoint>`
1366+
1367+
Usage:
1368+
::
1369+
1370+
result = await api.update_contact_point()
1371+
"""
1372+
1373+
param_region = validate_path_param(
1374+
"region", region or self.client.default_region
1375+
)
1376+
1377+
res = self._request(
1378+
"PATCH",
1379+
f"/cockpit/v1/regions/{param_region}/alert-manager/contact-points",
1380+
body=marshal_RegionalApiUpdateContactPointRequest(
1381+
RegionalApiUpdateContactPointRequest(
1382+
region=region,
1383+
project_id=project_id,
1384+
receive_resolved_notifications=receive_resolved_notifications,
1385+
email=email,
1386+
),
1387+
self.client,
1388+
),
1389+
)
1390+
1391+
self._throw_on_error(res)
1392+
return unmarshal_ContactPoint(res.json())
1393+
13461394
async def delete_contact_point(
13471395
self,
13481396
*,

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
RegionalApiEnableAlertManagerRequest,
4646
RegionalApiEnableManagedAlertsRequest,
4747
RegionalApiTriggerTestAlertRequest,
48+
RegionalApiUpdateContactPointRequest,
4849
RegionalApiUpdateDataSourceRequest,
4950
)
5051

@@ -76,6 +77,10 @@ def unmarshal_ContactPoint(data: Any) -> ContactPoint:
7677
if field is not None:
7778
args["region"] = field
7879

80+
field = data.get("receive_resolved_notifications", None)
81+
if field is not None:
82+
args["receive_resolved_notifications"] = field
83+
7984
field = data.get("email", None)
8085
if field is not None:
8186
args["email"] = unmarshal_ContactPointEmail(field)
@@ -773,6 +778,11 @@ def marshal_RegionalApiCreateContactPointRequest(
773778
if request.project_id is not None:
774779
output["project_id"] = request.project_id or defaults.default_project_id
775780

781+
if request.receive_resolved_notifications is not None:
782+
output["receive_resolved_notifications"] = (
783+
request.receive_resolved_notifications
784+
)
785+
776786
return output
777787

778788

@@ -894,6 +904,30 @@ def marshal_RegionalApiTriggerTestAlertRequest(
894904
return output
895905

896906

907+
def marshal_RegionalApiUpdateContactPointRequest(
908+
request: RegionalApiUpdateContactPointRequest,
909+
defaults: ProfileDefaults,
910+
) -> Dict[str, Any]:
911+
output: Dict[str, Any] = {}
912+
output.update(
913+
resolve_one_of(
914+
[
915+
OneOfPossibility("email", request.email),
916+
]
917+
),
918+
)
919+
920+
if request.project_id is not None:
921+
output["project_id"] = request.project_id or defaults.default_project_id
922+
923+
if request.receive_resolved_notifications is not None:
924+
output["receive_resolved_notifications"] = (
925+
request.receive_resolved_notifications
926+
)
927+
928+
return output
929+
930+
897931
def marshal_RegionalApiUpdateDataSourceRequest(
898932
request: RegionalApiUpdateDataSourceRequest,
899933
defaults: ProfileDefaults,

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

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,12 @@ class ContactPoint:
151151

152152
region: ScwRegion
153153
"""
154-
Region to target. If none is passed will use default region from the config.
154+
Region.
155+
"""
156+
157+
receive_resolved_notifications: bool
158+
"""
159+
Send an email notification when an alert is marked as resolved.
155160
"""
156161

157162
email: Optional[ContactPointEmail]
@@ -847,6 +852,11 @@ class RegionalApiCreateContactPointRequest:
847852
ID of the Project to create the contact point in.
848853
"""
849854

855+
receive_resolved_notifications: Optional[bool]
856+
"""
857+
Send an email notification when an alert is marked as resolved.
858+
"""
859+
850860
email: Optional[ContactPointEmail]
851861

852862

@@ -1260,6 +1270,30 @@ class RegionalApiTriggerTestAlertRequest:
12601270
"""
12611271

12621272

1273+
@dataclass
1274+
class RegionalApiUpdateContactPointRequest:
1275+
"""
1276+
Update a contact point.
1277+
"""
1278+
1279+
region: Optional[ScwRegion]
1280+
"""
1281+
Region to target. If none is passed will use default region from the config.
1282+
"""
1283+
1284+
project_id: Optional[str]
1285+
"""
1286+
ID of the Project containing the contact point to update.
1287+
"""
1288+
1289+
receive_resolved_notifications: Optional[bool]
1290+
"""
1291+
Enable or disable notifications when alert is resolved.
1292+
"""
1293+
1294+
email: Optional[ContactPointEmail]
1295+
1296+
12631297
@dataclass
12641298
class RegionalApiUpdateDataSourceRequest:
12651299
"""

scaleway/scaleway/cockpit/v1/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
from .types import RegionalApiListManagedAlertsRequest
6363
from .types import RegionalApiListTokensRequest
6464
from .types import RegionalApiTriggerTestAlertRequest
65+
from .types import RegionalApiUpdateContactPointRequest
6566
from .types import RegionalApiUpdateDataSourceRequest
6667
from .types import UsageOverview
6768
from .api import CockpitV1GlobalAPI
@@ -130,6 +131,7 @@
130131
"RegionalApiListManagedAlertsRequest",
131132
"RegionalApiListTokensRequest",
132133
"RegionalApiTriggerTestAlertRequest",
134+
"RegionalApiUpdateContactPointRequest",
133135
"RegionalApiUpdateDataSourceRequest",
134136
"UsageOverview",
135137
"CockpitV1GlobalAPI",

scaleway/scaleway/cockpit/v1/api.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
RegionalApiEnableAlertManagerRequest,
5353
RegionalApiEnableManagedAlertsRequest,
5454
RegionalApiTriggerTestAlertRequest,
55+
RegionalApiUpdateContactPointRequest,
5556
RegionalApiUpdateDataSourceRequest,
5657
Token,
5758
UsageOverview,
@@ -87,6 +88,7 @@
8788
marshal_RegionalApiEnableAlertManagerRequest,
8889
marshal_RegionalApiEnableManagedAlertsRequest,
8990
marshal_RegionalApiTriggerTestAlertRequest,
91+
marshal_RegionalApiUpdateContactPointRequest,
9092
marshal_RegionalApiUpdateDataSourceRequest,
9193
)
9294

@@ -1230,6 +1232,7 @@ def create_contact_point(
12301232
region: Optional[ScwRegion] = None,
12311233
project_id: Optional[str] = None,
12321234
email: Optional[ContactPointEmail] = None,
1235+
receive_resolved_notifications: Optional[bool] = None,
12331236
) -> ContactPoint:
12341237
"""
12351238
Create a contact point.
@@ -1240,6 +1243,7 @@ def create_contact_point(
12401243
:param project_id: ID of the Project to create the contact point in.
12411244
:param email: Email address of the contact point to create.
12421245
One-Of ('configuration'): at most one of 'email' could be set.
1246+
:param receive_resolved_notifications: Send an email notification when an alert is marked as resolved.
12431247
:return: :class:`ContactPoint <ContactPoint>`
12441248
12451249
Usage:
@@ -1259,6 +1263,7 @@ def create_contact_point(
12591263
RegionalApiCreateContactPointRequest(
12601264
region=region,
12611265
project_id=project_id,
1266+
receive_resolved_notifications=receive_resolved_notifications,
12621267
email=email,
12631268
),
12641269
self.client,
@@ -1343,6 +1348,49 @@ def list_contact_points_all(
13431348
},
13441349
)
13451350

1351+
def update_contact_point(
1352+
self,
1353+
*,
1354+
region: Optional[ScwRegion] = None,
1355+
project_id: Optional[str] = None,
1356+
email: Optional[ContactPointEmail] = None,
1357+
receive_resolved_notifications: Optional[bool] = None,
1358+
) -> ContactPoint:
1359+
"""
1360+
:param region: Region to target. If none is passed will use default region from the config.
1361+
:param project_id: ID of the Project containing the contact point to update.
1362+
:param email: Email address of the contact point to update.
1363+
One-Of ('configuration'): at most one of 'email' could be set.
1364+
:param receive_resolved_notifications: Enable or disable notifications when alert is resolved.
1365+
:return: :class:`ContactPoint <ContactPoint>`
1366+
1367+
Usage:
1368+
::
1369+
1370+
result = api.update_contact_point()
1371+
"""
1372+
1373+
param_region = validate_path_param(
1374+
"region", region or self.client.default_region
1375+
)
1376+
1377+
res = self._request(
1378+
"PATCH",
1379+
f"/cockpit/v1/regions/{param_region}/alert-manager/contact-points",
1380+
body=marshal_RegionalApiUpdateContactPointRequest(
1381+
RegionalApiUpdateContactPointRequest(
1382+
region=region,
1383+
project_id=project_id,
1384+
receive_resolved_notifications=receive_resolved_notifications,
1385+
email=email,
1386+
),
1387+
self.client,
1388+
),
1389+
)
1390+
1391+
self._throw_on_error(res)
1392+
return unmarshal_ContactPoint(res.json())
1393+
13461394
def delete_contact_point(
13471395
self,
13481396
*,

scaleway/scaleway/cockpit/v1/marshalling.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
RegionalApiEnableAlertManagerRequest,
4646
RegionalApiEnableManagedAlertsRequest,
4747
RegionalApiTriggerTestAlertRequest,
48+
RegionalApiUpdateContactPointRequest,
4849
RegionalApiUpdateDataSourceRequest,
4950
)
5051

@@ -76,6 +77,10 @@ def unmarshal_ContactPoint(data: Any) -> ContactPoint:
7677
if field is not None:
7778
args["region"] = field
7879

80+
field = data.get("receive_resolved_notifications", None)
81+
if field is not None:
82+
args["receive_resolved_notifications"] = field
83+
7984
field = data.get("email", None)
8085
if field is not None:
8186
args["email"] = unmarshal_ContactPointEmail(field)
@@ -773,6 +778,11 @@ def marshal_RegionalApiCreateContactPointRequest(
773778
if request.project_id is not None:
774779
output["project_id"] = request.project_id or defaults.default_project_id
775780

781+
if request.receive_resolved_notifications is not None:
782+
output["receive_resolved_notifications"] = (
783+
request.receive_resolved_notifications
784+
)
785+
776786
return output
777787

778788

@@ -894,6 +904,30 @@ def marshal_RegionalApiTriggerTestAlertRequest(
894904
return output
895905

896906

907+
def marshal_RegionalApiUpdateContactPointRequest(
908+
request: RegionalApiUpdateContactPointRequest,
909+
defaults: ProfileDefaults,
910+
) -> Dict[str, Any]:
911+
output: Dict[str, Any] = {}
912+
output.update(
913+
resolve_one_of(
914+
[
915+
OneOfPossibility("email", request.email),
916+
]
917+
),
918+
)
919+
920+
if request.project_id is not None:
921+
output["project_id"] = request.project_id or defaults.default_project_id
922+
923+
if request.receive_resolved_notifications is not None:
924+
output["receive_resolved_notifications"] = (
925+
request.receive_resolved_notifications
926+
)
927+
928+
return output
929+
930+
897931
def marshal_RegionalApiUpdateDataSourceRequest(
898932
request: RegionalApiUpdateDataSourceRequest,
899933
defaults: ProfileDefaults,

0 commit comments

Comments
 (0)