diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 2f39666f08..e473d161ae 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -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:
@@ -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
@@ -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:
diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst
index ac488764e4..41043cafb7 100644
--- a/docs/datadog_api_client.v2.model.rst
+++ b/docs/datadog_api_client.v2.model.rst
@@ -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
---------------------------------------------------------------------------
diff --git a/examples/v2/monitors/CreateMonitorNotificationRule_678042569.py b/examples/v2/monitors/CreateMonitorNotificationRule_678042569.py
new file mode 100644
index 0000000000..6d556c71a1
--- /dev/null
+++ b/examples/v2/monitors/CreateMonitorNotificationRule_678042569.py
@@ -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)
diff --git a/examples/v2/monitors/UpdateMonitorNotificationRule_752032728.py b/examples/v2/monitors/UpdateMonitorNotificationRule_752032728.py
new file mode 100644
index 0000000000..b9856f2d08
--- /dev/null
+++ b/examples/v2/monitors/UpdateMonitorNotificationRule_752032728.py
@@ -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)
diff --git a/src/datadog_api_client/v2/model/monitor_notification_rule_attributes.py b/src/datadog_api_client/v2/model/monitor_notification_rule_attributes.py
index 6ce15dfe04..bb9cc48cf3 100644
--- a/src/datadog_api_client/v2/model/monitor_notification_rule_attributes.py
+++ b/src/datadog_api_client/v2/model/monitor_notification_rule_attributes.py
@@ -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,
)
@@ -40,12 +41,16 @@ 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,),
@@ -53,6 +58,7 @@ def openapi_types(_):
}
attribute_map = {
+ "bundle_config": "bundle_config",
"conditional_recipients": "conditional_recipients",
"filter": "filter",
"name": "name",
@@ -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,
@@ -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 `_.
+ :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
@@ -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:
diff --git a/src/datadog_api_client/v2/model/monitor_notification_rule_bundle_config.py b/src/datadog_api_client/v2/model/monitor_notification_rule_bundle_config.py
new file mode 100644
index 0000000000..820cbcf58d
--- /dev/null
+++ b/src/datadog_api_client/v2/model/monitor_notification_rule_bundle_config.py
@@ -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 `_.
+
+ :param duration: Duration of the bundling period.
+ :type duration: int
+ """
+ super().__init__(kwargs)
+
+ self_.duration = duration
diff --git a/src/datadog_api_client/v2/model/monitor_notification_rule_response_attributes.py b/src/datadog_api_client/v2/model/monitor_notification_rule_response_attributes.py
index 67670eebae..a2004b1d28 100644
--- a/src/datadog_api_client/v2/model/monitor_notification_rule_response_attributes.py
+++ b/src/datadog_api_client/v2/model/monitor_notification_rule_response_attributes.py
@@ -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,
)
@@ -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,),
@@ -52,6 +57,7 @@ def openapi_types(_):
}
attribute_map = {
+ "bundle_config": "bundle_config",
"conditional_recipients": "conditional_recipients",
"created": "created",
"filter": "filter",
@@ -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[
@@ -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 `_.
+ :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
@@ -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:
diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py
index 127189e023..cf4ce145ea 100644
--- a/src/datadog_api_client/v2/models/__init__.py
+++ b/src/datadog_api_client/v2/models/__init__.py
@@ -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,
@@ -14648,6 +14649,7 @@
"MonitorDowntimeMatchResponseAttributes",
"MonitorDowntimeMatchResponseData",
"MonitorNotificationRuleAttributes",
+ "MonitorNotificationRuleBundleConfig",
"MonitorNotificationRuleCondition",
"MonitorNotificationRuleConditionalRecipients",
"MonitorNotificationRuleCreateRequest",
diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_monitor_notification_rule_with_bundle_config_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_monitor_notification_rule_with_bundle_config_returns_ok_response.frozen
new file mode 100644
index 0000000000..4c576d08d4
--- /dev/null
+++ b/tests/v2/cassettes/test_scenarios/test_create_a_monitor_notification_rule_with_bundle_config_returns_ok_response.frozen
@@ -0,0 +1 @@
+2026-08-17T21:40:51.600Z
\ No newline at end of file
diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_monitor_notification_rule_with_bundle_config_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_monitor_notification_rule_with_bundle_config_returns_ok_response.yaml
new file mode 100644
index 0000000000..14102347bc
--- /dev/null
+++ b/tests/v2/cassettes/test_scenarios/test_create_a_monitor_notification_rule_with_bundle_config_returns_ok_response.yaml
@@ -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
diff --git a/tests/v2/cassettes/test_scenarios/test_update_a_monitor_notification_rule_with_bundle_config_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_a_monitor_notification_rule_with_bundle_config_returns_ok_response.frozen
new file mode 100644
index 0000000000..6ba9cc1d7c
--- /dev/null
+++ b/tests/v2/cassettes/test_scenarios/test_update_a_monitor_notification_rule_with_bundle_config_returns_ok_response.frozen
@@ -0,0 +1 @@
+2026-08-17T21:41:19.954Z
\ No newline at end of file
diff --git a/tests/v2/cassettes/test_scenarios/test_update_a_monitor_notification_rule_with_bundle_config_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_a_monitor_notification_rule_with_bundle_config_returns_ok_response.yaml
new file mode 100644
index 0000000000..5ba1e3a2cb
--- /dev/null
+++ b/tests/v2/cassettes/test_scenarios/test_update_a_monitor_notification_rule_with_bundle_config_returns_ok_response.yaml
@@ -0,0 +1,62 @@
+interactions:
+- request:
+ body: '{"data":{"attributes":{"filter":{"tags":["app:test-update_a_monitor_notification_rule_with_bundle_config_returns_ok_response-1787002879"]},"name":"test
+ rule","recipients":["slack-monitor-app"]},"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":"649f51a4-76f5-4b0d-8ec3-90929a6570bc","attributes":{"name":"test
+ rule","created_at":"2026-08-17T21:41:20.185857+00:00","modified_at":"2026-08-17T21:41:20.209762+00:00","filter":{"tags":["app:test-update_a_monitor_notification_rule_with_bundle_config_returns_ok_response-1787002879"]},"recipients":["slack-monitor-app"]},"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: '{"data":{"attributes":{"bundle_config":{"duration":3600},"filter":{"tags":["test:test-update_a_monitor_notification_rule_with_bundle_config_returns_ok_response-1787002879"]},"name":"updated
+ rule","recipients":["slack-test-channel"]},"id":"649f51a4-76f5-4b0d-8ec3-90929a6570bc","type":"monitor-notification-rule"}}'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ method: PATCH
+ uri: https://api.datadoghq.com/api/v2/monitor/notification_rule/649f51a4-76f5-4b0d-8ec3-90929a6570bc
+ response:
+ body:
+ string: '{"data":{"type":"monitor-notification-rule","id":"649f51a4-76f5-4b0d-8ec3-90929a6570bc","attributes":{"name":"updated
+ rule","created_at":"2026-08-17T21:41:20.185857+00:00","modified_at":"2026-08-17T21:41:22.287888+00:00","filter":{"tags":["test:test-update_a_monitor_notification_rule_with_bundle_config_returns_ok_response-1787002879"]},"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/649f51a4-76f5-4b0d-8ec3-90929a6570bc
+ response:
+ body:
+ string: ''
+ headers:
+ content-type:
+ - text/html; charset=utf-8
+ status:
+ code: 204
+ message: No Content
+version: 1
diff --git a/tests/v2/features/monitors.feature b/tests/v2/features/monitors.feature
index b1bb50a8db..1e7e907c9f 100644
--- a/tests/v2/features/monitors.feature
+++ b/tests/v2/features/monitors.feature
@@ -44,6 +44,14 @@ Feature: Monitors
Then the response status is 200 OK
And the response "data.attributes.name" is equal to "test rule"
+ @team:DataDog/monitor-app
+ Scenario: Create a monitor notification rule with bundle config returns "OK" response
+ Given new "CreateMonitorNotificationRule" request
+ And body with value {"data": {"attributes": {"filter": {"tags": ["test:{{ unique_lower }}"]}, "name": "test rule", "recipients": ["slack-test-channel"], "bundle_config": {"duration": 3600}}, "type": "monitor-notification-rule"}}
+ When the request is sent
+ Then the response status is 200 OK
+ And the response "data.attributes.name" is equal to "test rule"
+
@team:DataDog/monitor-app
Scenario: Create a monitor notification rule with conditional recipients returns "OK" response
Given new "CreateMonitorNotificationRule" request
@@ -273,6 +281,16 @@ Feature: Monitors
Then the response status is 200 OK
And the response "data.attributes.name" is equal to "updated rule"
+ @team:DataDog/monitor-app
+ Scenario: Update a monitor notification rule with bundle config returns "OK" response
+ Given there is a valid "monitor_notification_rule" in the system
+ And new "UpdateMonitorNotificationRule" request
+ And request contains "rule_id" parameter from "monitor_notification_rule.data.id"
+ And body with value {"data": {"attributes": {"filter": {"tags": ["test:{{ unique_lower }}"]}, "name": "updated rule", "recipients": ["slack-test-channel"], "bundle_config": {"duration": 3600}}, "id": "{{ monitor_notification_rule.data.id }}", "type": "monitor-notification-rule"}}
+ When the request is sent
+ Then the response status is 200 OK
+ And the response "data.attributes.name" is equal to "updated rule"
+
@team:DataDog/monitor-app
Scenario: Update a monitor notification rule with conditional_recipients returns "OK" response
Given there is a valid "monitor_notification_rule" in the system