Skip to content

alerts

alerts

Alerts Package

This package provides alert management functionality for Domo's Alerts (social/v4) product.

Modules:

Name Description
exceptions

Exception classes for alert operations

core

Core alert retrieval functions (list, get, evaluations)

crud

Create, update, delete, and share operations for alerts

ownership

Owned-alert listing, owner change, and bulk owner transfer

Alert_CRUD_Error

Alert_CRUD_Error(
    operation: str = "CRUD",
    alert_id: str | None = None,
    res=None,
    message: str | None = None,
    **kwargs
)

Bases: RouteError

Raised when alert create, update, or delete operations fail.

Source code in src/crew_dcs/routes/alerts/exceptions.py
31
32
33
34
35
36
37
38
39
40
41
def __init__(
    self,
    operation: str = "CRUD",
    alert_id: str | None = None,
    res=None,
    message: str | None = None,
    **kwargs,
):
    if not message:
        message = f"Alert {operation} operation failed"
    super().__init__(message=message, entity_id=alert_id, res=res, **kwargs)

Alert_GET_Error

Alert_GET_Error(
    alert_id: str | None = None, res=None, **kwargs
)

Bases: RouteError

Raised when alert retrieval operations fail.

Source code in src/crew_dcs/routes/alerts/exceptions.py
19
20
21
22
23
24
25
def __init__(self, alert_id: str | None = None, res=None, **kwargs):
    super().__init__(
        message="Alert retrieval failed",
        entity_id=alert_id,
        res=res,
        **kwargs,
    )

create_alert async

create_alert(
    auth: DomoAuth,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Create a new alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
body dict

Alert creation payload

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the created alert

Raises:

Type Description
Alert_CRUD_Error

If alert creation fails

Source code in src/crew_dcs/routes/alerts/crud.py
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def create_alert(
    auth: DomoAuth,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Create a new alert.

    Args:
        auth: Authentication object for API requests
        body: Alert creation payload
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the created alert

    Raises:
        Alert_CRUD_Error: If alert creation fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts"

    res = await gd.get_data(
        auth=auth, url=url, method="POST", body=body, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_CRUD_Error(operation="create", res=res)
    return res

delete_alert async

delete_alert(
    auth: DomoAuth,
    alert_id: str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Delete an alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert to delete

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object confirming deletion

Raises:

Type Description
Alert_CRUD_Error

If alert deletion fails

Source code in src/crew_dcs/routes/alerts/crud.py
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def delete_alert(
    auth: DomoAuth,
    alert_id: str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Delete an alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert to delete
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object confirming deletion

    Raises:
        Alert_CRUD_Error: If alert deletion fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}"

    res = await gd.get_data(auth=auth, url=url, method="DELETE", context=context)

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_CRUD_Error(operation="delete", alert_id=str(alert_id), res=res)
    return res

get_alert async

get_alert(
    auth: DomoAuth,
    alert_id: str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Retrieve a single alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert to retrieve

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the alert

Raises:

Type Description
Alert_GET_Error

If alert retrieval fails

Source code in src/crew_dcs/routes/alerts/core.py
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def get_alert(
    auth: DomoAuth,
    alert_id: str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Retrieve a single alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert to retrieve
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the alert

    Raises:
        Alert_GET_Error: If alert retrieval fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}"

    res = await gd.get_data(auth=auth, url=url, method="GET", context=context)

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_GET_Error(alert_id=str(alert_id), res=res)
    return res

get_alert_evaluations async

get_alert_evaluations(
    auth: DomoAuth,
    alert_id: str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Retrieve evaluations for an alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the alert's evaluations

Raises:

Type Description
Alert_GET_Error

If evaluation retrieval fails

Source code in src/crew_dcs/routes/alerts/core.py
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def get_alert_evaluations(
    auth: DomoAuth,
    alert_id: str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Retrieve evaluations for an alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the alert's evaluations

    Raises:
        Alert_GET_Error: If evaluation retrieval fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}/evaluations"

    res = await gd.get_data(auth=auth, url=url, method="GET", context=context)

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_GET_Error(alert_id=str(alert_id), res=res)
    return res

get_owned_alerts async

get_owned_alerts(
    auth: DomoAuth,
    user_id: int | str,
    limit: int = 50,
    offset: int = 0,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

List alerts owned by a specific user.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
user_id int | str

ID of the owning user

required
limit int

Maximum number of alerts to return

50
offset int

Pagination offset

0
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the user's alerts

Raises:

Type Description
Alert_GET_Error

If alert listing fails

Source code in src/crew_dcs/routes/alerts/ownership.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def get_owned_alerts(
    auth: DomoAuth,
    user_id: int | str,
    limit: int = 50,
    offset: int = 0,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """List alerts owned by a specific user.

    Args:
        auth: Authentication object for API requests
        user_id: ID of the owning user
        limit: Maximum number of alerts to return
        offset: Pagination offset
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the user's alerts

    Raises:
        Alert_GET_Error: If alert listing fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts"
    params = {"ownerId": user_id, "limit": limit, "offset": offset}

    res = await gd.get_data(
        auth=auth, url=url, method="GET", params=params, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_GET_Error(res=res)
    return res

list_alerts async

list_alerts(
    auth: DomoAuth,
    all: bool = True,
    fields: str = "all",
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

List alerts.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
all bool

Whether to return all alerts

True
fields str

Which fields to include in the response (e.g. "all")

'all'
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing matching alerts

Raises:

Type Description
Alert_GET_Error

If alert listing fails

Source code in src/crew_dcs/routes/alerts/core.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def list_alerts(
    auth: DomoAuth,
    all: bool = True,
    fields: str = "all",
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """List alerts.

    Args:
        auth: Authentication object for API requests
        all: Whether to return all alerts
        fields: Which fields to include in the response (e.g. "all")
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing matching alerts

    Raises:
        Alert_GET_Error: If alert listing fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts"
    params = {"all": all, "fields": fields}

    res = await gd.get_data(
        auth=auth, url=url, method="GET", params=params, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_GET_Error(res=res)
    return res

share_alert async

share_alert(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Share an alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert to share

required
body dict

Share payload (e.g. recipient user/group ids)

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object confirming the share

Raises:

Type Description
Alert_CRUD_Error

If sharing fails

Source code in src/crew_dcs/routes/alerts/crud.py
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def share_alert(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Share an alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert to share
        body: Share payload (e.g. recipient user/group ids)
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object confirming the share

    Raises:
        Alert_CRUD_Error: If sharing fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}/share"

    res = await gd.get_data(
        auth=auth, url=url, method="POST", body=body, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_CRUD_Error(operation="share", alert_id=str(alert_id), res=res)
    return res

transfer_alerts async

transfer_alerts(
    auth: DomoAuth,
    from_user_id: int | str,
    to_user_id: int | str,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> list[ResponseGetData]

Transfer all alerts from one user to another.

Fetches all alerts owned by from_user_id, then updates each one's owner to to_user_id.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
from_user_id int | str

ID of the current owner

required
to_user_id int | str

ID of the new owner

required
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
list[ResponseGetData]

List of per-alert update ResponseGetData objects

Raises:

Type Description
Alert_GET_Error

If listing the owned alerts fails

Alert_CRUD_Error

If any owner update fails

Source code in src/crew_dcs/routes/alerts/ownership.py
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
async def transfer_alerts(
    auth: DomoAuth,
    from_user_id: int | str,
    to_user_id: int | str,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> list[rgd.ResponseGetData]:
    """Transfer all alerts from one user to another.

    Fetches all alerts owned by from_user_id, then updates each one's owner
    to to_user_id.

    Args:
        auth: Authentication object for API requests
        from_user_id: ID of the current owner
        to_user_id: ID of the new owner
        context: RouteContext for request configuration

    Returns:
        List of per-alert update ResponseGetData objects

    Raises:
        Alert_GET_Error: If listing the owned alerts fails
        Alert_CRUD_Error: If any owner update fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    owned_res = await get_owned_alerts(auth=auth, user_id=from_user_id, context=context)

    alerts = owned_res.response or []

    results = []
    for alert in alerts:
        res = await update_alert_owner(
            auth=auth,
            alert_id=str(alert["id"]),
            to_user_id=to_user_id,
            context=context,
        )
        results.append(res)

    return results

update_alert async

update_alert(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Update an existing alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert to update

required
body dict

Updated alert payload

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the updated alert

Raises:

Type Description
Alert_CRUD_Error

If alert update fails

Source code in src/crew_dcs/routes/alerts/crud.py
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def update_alert(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Update an existing alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert to update
        body: Updated alert payload
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the updated alert

    Raises:
        Alert_CRUD_Error: If alert update fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}"

    res = await gd.get_data(
        auth=auth, url=url, method="PATCH", body=body, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_CRUD_Error(operation="update", alert_id=str(alert_id), res=res)
    return res

update_alert_message_template async

update_alert_message_template(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Replace the message template for an alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert to update

required
body dict

Updated message template payload

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the updated alert

Raises:

Type Description
Alert_CRUD_Error

If message template update fails

Source code in src/crew_dcs/routes/alerts/crud.py
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def update_alert_message_template(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Replace the message template for an alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert to update
        body: Updated message template payload
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the updated alert

    Raises:
        Alert_CRUD_Error: If message template update fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}/message-template"

    res = await gd.get_data(
        auth=auth, url=url, method="PUT", body=body, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_CRUD_Error(
            operation="update message template", alert_id=str(alert_id), res=res
        )
    return res

update_alert_owner async

update_alert_owner(
    auth: DomoAuth,
    alert_id: str,
    to_user_id: int | str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Change the owner of a single alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert to update

required
to_user_id int | str

ID of the new owner

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the updated alert

Raises:

Type Description
Alert_CRUD_Error

If the owner update fails

Source code in src/crew_dcs/routes/alerts/ownership.py
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def update_alert_owner(
    auth: DomoAuth,
    alert_id: str,
    to_user_id: int | str,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Change the owner of a single alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert to update
        to_user_id: ID of the new owner
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the updated alert

    Raises:
        Alert_CRUD_Error: If the owner update fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}"
    body = {"id": int(alert_id), "owner": int(to_user_id)}

    res = await gd.get_data(
        auth=auth, url=url, method="PATCH", body=body, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_CRUD_Error(
            operation="update owner", alert_id=str(alert_id), res=res
        )
    return res

update_alert_rules async

update_alert_rules(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> ResponseGetData

Replace the rules for an alert.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object for API requests

required
alert_id str

ID of the alert to update

required
body dict

Updated alert rules payload

required
return_raw bool

Return raw response without processing

False
context RouteContext | None

RouteContext for request configuration

None

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the updated alert

Raises:

Type Description
Alert_CRUD_Error

If rule update fails

Source code in src/crew_dcs/routes/alerts/crud.py
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def update_alert_rules(
    auth: DomoAuth,
    alert_id: str,
    body: dict,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> rgd.ResponseGetData:
    """Replace the rules for an alert.

    Args:
        auth: Authentication object for API requests
        alert_id: ID of the alert to update
        body: Updated alert rules payload
        return_raw: Return raw response without processing
        context: RouteContext for request configuration

    Returns:
        ResponseGetData object containing the updated alert

    Raises:
        Alert_CRUD_Error: If rule update fails
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    url = f"https://{auth.domo_instance}.domo.com/api/social/v4/alerts/{alert_id}"

    res = await gd.get_data(
        auth=auth, url=url, method="PUT", body=body, context=context
    )

    if return_raw:
        return res
    if not res.is_success:
        raise Alert_CRUD_Error(
            operation="update rules", alert_id=str(alert_id), res=res
        )
    return res

Modules