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
17 changes: 17 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68104,6 +68104,8 @@ components:
additionalProperties: false
description: Attributes of the monitor notification rule.
properties:
bundle_config:
$ref: "#/components/schemas/MonitorNotificationRuleBundleConfig"
conditional_recipients:
$ref: "#/components/schemas/MonitorNotificationRuleConditionalRecipients"
filter:
Expand All @@ -68114,6 +68116,19 @@ components:
$ref: "#/components/schemas/MonitorNotificationRuleRecipients"
required: [name]
type: object
MonitorNotificationRuleBundleConfig:
description: |-
Use bundle config to enable alert bundling to reduce monitor signal noises. **Note**: This feature is in preview and is subject to change.
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
properties:
duration:
description: Duration of the bundling period.
example: 3600
format: int32
maximum: 2147483647
type: integer
required: [duration]
type: object
MonitorNotificationRuleCondition:
description: |-
A conditional recipient rule composed of a `scope` (the matching condition) and
Expand Down Expand Up @@ -68296,6 +68311,8 @@ components:
additionalProperties: {}
description: Attributes of the monitor notification rule.
properties:
bundle_config:
$ref: "#/components/schemas/MonitorNotificationRuleBundleConfig"
conditional_recipients:
$ref: "#/components/schemas/MonitorNotificationRuleConditionalRecipients"
created:
Expand Down
7 changes: 7 additions & 0 deletions docs/datadog_api_client.v2.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28410,6 +28410,13 @@ datadog\_api\_client.v2.model.monitor\_notification\_rule\_attributes module
:members:
:show-inheritance:

datadog\_api\_client.v2.model.monitor\_notification\_rule\_bundle\_config module
--------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.monitor_notification_rule_bundle_config
:members:
:show-inheritance:

datadog\_api\_client.v2.model.monitor\_notification\_rule\_condition module
---------------------------------------------------------------------------

Expand Down
41 changes: 41 additions & 0 deletions examples/v2/monitors/CreateMonitorNotificationRule_678042569.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"""
Create a monitor notification rule with bundle config returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.monitors_api import MonitorsApi
from datadog_api_client.v2.model.monitor_notification_rule_attributes import MonitorNotificationRuleAttributes
from datadog_api_client.v2.model.monitor_notification_rule_bundle_config import MonitorNotificationRuleBundleConfig
from datadog_api_client.v2.model.monitor_notification_rule_create_request import MonitorNotificationRuleCreateRequest
from datadog_api_client.v2.model.monitor_notification_rule_create_request_data import (
MonitorNotificationRuleCreateRequestData,
)
from datadog_api_client.v2.model.monitor_notification_rule_filter_tags import MonitorNotificationRuleFilterTags
from datadog_api_client.v2.model.monitor_notification_rule_resource_type import MonitorNotificationRuleResourceType

body = MonitorNotificationRuleCreateRequest(
data=MonitorNotificationRuleCreateRequestData(
attributes=MonitorNotificationRuleAttributes(
filter=MonitorNotificationRuleFilterTags(
tags=[
"test:example-monitor",
],
),
name="test rule",
recipients=[
"slack-test-channel",
],
bundle_config=MonitorNotificationRuleBundleConfig(
duration=3600,
),
),
type=MonitorNotificationRuleResourceType.MONITOR_NOTIFICATION_RULE,
),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = MonitorsApi(api_client)
response = api_instance.create_monitor_notification_rule(body=body)

print(response)
46 changes: 46 additions & 0 deletions examples/v2/monitors/UpdateMonitorNotificationRule_752032728.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
"""
Update a monitor notification rule with bundle config returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.monitors_api import MonitorsApi
from datadog_api_client.v2.model.monitor_notification_rule_attributes import MonitorNotificationRuleAttributes
from datadog_api_client.v2.model.monitor_notification_rule_bundle_config import MonitorNotificationRuleBundleConfig
from datadog_api_client.v2.model.monitor_notification_rule_filter_tags import MonitorNotificationRuleFilterTags
from datadog_api_client.v2.model.monitor_notification_rule_resource_type import MonitorNotificationRuleResourceType
from datadog_api_client.v2.model.monitor_notification_rule_update_request import MonitorNotificationRuleUpdateRequest
from datadog_api_client.v2.model.monitor_notification_rule_update_request_data import (
MonitorNotificationRuleUpdateRequestData,
)

# there is a valid "monitor_notification_rule" in the system
MONITOR_NOTIFICATION_RULE_DATA_ID = environ["MONITOR_NOTIFICATION_RULE_DATA_ID"]

body = MonitorNotificationRuleUpdateRequest(
data=MonitorNotificationRuleUpdateRequestData(
attributes=MonitorNotificationRuleAttributes(
filter=MonitorNotificationRuleFilterTags(
tags=[
"test:example-monitor",
],
),
name="updated rule",
recipients=[
"slack-test-channel",
],
bundle_config=MonitorNotificationRuleBundleConfig(
duration=3600,
),
),
id=MONITOR_NOTIFICATION_RULE_DATA_ID,
type=MonitorNotificationRuleResourceType.MONITOR_NOTIFICATION_RULE,
),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = MonitorsApi(api_client)
response = api_instance.update_monitor_notification_rule(rule_id=MONITOR_NOTIFICATION_RULE_DATA_ID, body=body)

print(response)
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@


if TYPE_CHECKING:
from datadog_api_client.v2.model.monitor_notification_rule_bundle_config import MonitorNotificationRuleBundleConfig
from datadog_api_client.v2.model.monitor_notification_rule_conditional_recipients import (
MonitorNotificationRuleConditionalRecipients,
)
Expand All @@ -40,19 +41,24 @@ def additional_properties_type(_):

@cached_property
def openapi_types(_):
from datadog_api_client.v2.model.monitor_notification_rule_bundle_config import (
MonitorNotificationRuleBundleConfig,
)
from datadog_api_client.v2.model.monitor_notification_rule_conditional_recipients import (
MonitorNotificationRuleConditionalRecipients,
)
from datadog_api_client.v2.model.monitor_notification_rule_filter import MonitorNotificationRuleFilter

return {
"bundle_config": (MonitorNotificationRuleBundleConfig,),
"conditional_recipients": (MonitorNotificationRuleConditionalRecipients,),
"filter": (MonitorNotificationRuleFilter,),
"name": (str,),
"recipients": ([str],),
}

attribute_map = {
"bundle_config": "bundle_config",
"conditional_recipients": "conditional_recipients",
"filter": "filter",
"name": "name",
Expand All @@ -62,6 +68,7 @@ def openapi_types(_):
def __init__(
self_,
name: str,
bundle_config: Union[MonitorNotificationRuleBundleConfig, UnsetType] = unset,
conditional_recipients: Union[MonitorNotificationRuleConditionalRecipients, UnsetType] = unset,
filter: Union[
MonitorNotificationRuleFilter,
Expand All @@ -75,6 +82,10 @@ def __init__(
"""
Attributes of the monitor notification rule.

:param bundle_config: Use bundle config to enable alert bundling to reduce monitor signal noises. **Note** : This feature is in preview and is subject to change.
If you have any feedback, contact `Datadog support <https://docs.datadoghq.com/help/>`_.
:type bundle_config: MonitorNotificationRuleBundleConfig, optional

:param conditional_recipients: Use conditional recipients to define different recipients for different situations. Cannot be used with ``recipients``.
:type conditional_recipients: MonitorNotificationRuleConditionalRecipients, optional

Expand All @@ -87,6 +98,8 @@ def __init__(
:param recipients: A list of recipients to notify. Uses the same format as the monitor ``message`` field. Must not start with an '@'. Cannot be used with ``conditional_recipients``.
:type recipients: [str], optional
"""
if bundle_config is not unset:
kwargs["bundle_config"] = bundle_config
if conditional_recipients is not unset:
kwargs["conditional_recipients"] = conditional_recipients
if filter is not unset:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations


from datadog_api_client.model_utils import (
ModelNormal,
cached_property,
)


class MonitorNotificationRuleBundleConfig(ModelNormal):
validations = {
"duration": {
"inclusive_maximum": 2147483647,
},
}

@cached_property
def openapi_types(_):
return {
"duration": (int,),
}

attribute_map = {
"duration": "duration",
}

def __init__(self_, duration: int, **kwargs):
"""
Use bundle config to enable alert bundling to reduce monitor signal noises. **Note** : This feature is in preview and is subject to change.
If you have any feedback, contact `Datadog support <https://docs.datadoghq.com/help/>`_.

:param duration: Duration of the bundling period.
:type duration: int
"""
super().__init__(kwargs)

self_.duration = duration
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@


if TYPE_CHECKING:
from datadog_api_client.v2.model.monitor_notification_rule_bundle_config import MonitorNotificationRuleBundleConfig
from datadog_api_client.v2.model.monitor_notification_rule_conditional_recipients import (
MonitorNotificationRuleConditionalRecipients,
)
Expand All @@ -37,12 +38,16 @@ class MonitorNotificationRuleResponseAttributes(ModelNormal):

@cached_property
def openapi_types(_):
from datadog_api_client.v2.model.monitor_notification_rule_bundle_config import (
MonitorNotificationRuleBundleConfig,
)
from datadog_api_client.v2.model.monitor_notification_rule_conditional_recipients import (
MonitorNotificationRuleConditionalRecipients,
)
from datadog_api_client.v2.model.monitor_notification_rule_filter import MonitorNotificationRuleFilter

return {
"bundle_config": (MonitorNotificationRuleBundleConfig,),
"conditional_recipients": (MonitorNotificationRuleConditionalRecipients,),
"created": (datetime,),
"filter": (MonitorNotificationRuleFilter,),
Expand All @@ -52,6 +57,7 @@ def openapi_types(_):
}

attribute_map = {
"bundle_config": "bundle_config",
"conditional_recipients": "conditional_recipients",
"created": "created",
"filter": "filter",
Expand All @@ -62,6 +68,7 @@ def openapi_types(_):

def __init__(
self_,
bundle_config: Union[MonitorNotificationRuleBundleConfig, UnsetType] = unset,
conditional_recipients: Union[MonitorNotificationRuleConditionalRecipients, UnsetType] = unset,
created: Union[datetime, UnsetType] = unset,
filter: Union[
Expand All @@ -78,6 +85,10 @@ def __init__(
"""
Attributes of the monitor notification rule.

:param bundle_config: Use bundle config to enable alert bundling to reduce monitor signal noises. **Note** : This feature is in preview and is subject to change.
If you have any feedback, contact `Datadog support <https://docs.datadoghq.com/help/>`_.
:type bundle_config: MonitorNotificationRuleBundleConfig, optional

:param conditional_recipients: Use conditional recipients to define different recipients for different situations. Cannot be used with ``recipients``.
:type conditional_recipients: MonitorNotificationRuleConditionalRecipients, optional

Expand All @@ -96,6 +107,8 @@ def __init__(
:param recipients: A list of recipients to notify. Uses the same format as the monitor ``message`` field. Must not start with an '@'. Cannot be used with ``conditional_recipients``.
:type recipients: [str], optional
"""
if bundle_config is not unset:
kwargs["bundle_config"] = bundle_config
if conditional_recipients is not unset:
kwargs["conditional_recipients"] = conditional_recipients
if created is not unset:
Expand Down
2 changes: 2 additions & 0 deletions src/datadog_api_client/v2/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5452,6 +5452,7 @@
)
from datadog_api_client.v2.model.monitor_downtime_match_response_data import MonitorDowntimeMatchResponseData
from datadog_api_client.v2.model.monitor_notification_rule_attributes import MonitorNotificationRuleAttributes
from datadog_api_client.v2.model.monitor_notification_rule_bundle_config import MonitorNotificationRuleBundleConfig
from datadog_api_client.v2.model.monitor_notification_rule_condition import MonitorNotificationRuleCondition
from datadog_api_client.v2.model.monitor_notification_rule_conditional_recipients import (
MonitorNotificationRuleConditionalRecipients,
Expand Down Expand Up @@ -14648,6 +14649,7 @@
"MonitorDowntimeMatchResponseAttributes",
"MonitorDowntimeMatchResponseData",
"MonitorNotificationRuleAttributes",
"MonitorNotificationRuleBundleConfig",
"MonitorNotificationRuleCondition",
"MonitorNotificationRuleConditionalRecipients",
"MonitorNotificationRuleCreateRequest",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2026-08-17T21:40:51.600Z
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
interactions:
- request:
body: '{"data":{"attributes":{"bundle_config":{"duration":3600},"filter":{"tags":["test:test-create_a_monitor_notification_rule_with_bundle_config_returns_ok_response-1787002851"]},"name":"test
rule","recipients":["slack-test-channel"]},"type":"monitor-notification-rule"}}'
headers:
accept:
- application/json
content-type:
- application/json
method: POST
uri: https://api.datadoghq.com/api/v2/monitor/notification_rule
response:
body:
string: '{"data":{"type":"monitor-notification-rule","id":"fc63c678-ecf4-4807-a3c9-317baea76bb1","attributes":{"name":"test
rule","created_at":"2026-08-17T21:40:51.789668+00:00","modified_at":"2026-08-17T21:40:51.806466+00:00","filter":{"tags":["test:test-create_a_monitor_notification_rule_with_bundle_config_returns_ok_response-1787002851"]},"recipients":["slack-test-channel"],"bundle_config":{"duration":3600}},"relationships":{"created_by":{"data":{"type":"users","id":"3ad549bf-eba0-11e9-a77a-0705486660d0"}}}},"included":[{"type":"users","id":"3ad549bf-eba0-11e9-a77a-0705486660d0","attributes":{"uuid":"3ad549bf-eba0-11e9-a77a-0705486660d0","name":"frog","handle":"frog@datadoghq.com","created_at":"2019-10-02T08:15:39.795051+00:00","modified_at":"2026-07-10T19:34:11.410571+00:00","email":"frog@datadoghq.com","icon":"https://secure.gravatar.com/avatar/28a16dfe36e73b60c1d55872cb0f1172?s=48&d=retro","title":null,"verified":true,"service_account":false,"disabled":false,"allowed_login_methods":[],"status":"Active","last_login_time":"2024-01-04T18:40:05+00:00"}}]}

'
headers:
content-type:
- application/json
status:
code: 200
message: OK
- request:
body: null
headers:
accept:
- '*/*'
method: DELETE
uri: https://api.datadoghq.com/api/v2/monitor/notification_rule/fc63c678-ecf4-4807-a3c9-317baea76bb1
response:
body:
string: ''
headers:
content-type:
- text/html; charset=utf-8
status:
code: 204
message: No Content
version: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2026-08-17T21:41:19.954Z
Loading
Loading