From dffb05c0c3db57b4c426784ee1317d5fba86c613 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Mon, 6 Oct 2025 14:46:35 +0000 Subject: [PATCH] Regenerate client from commit 627a896 of spec repo --- .generator/schemas/v2/openapi.yaml | 38 ++++ .../frozen.json | 1 + .../recording.har | 109 ++++++++++++ .../frozen.json | 1 + .../recording.har | 162 ++++++++++++++++++ features/v2/monitors.feature | 18 ++ services/monitors/src/v2/index.ts | 2 + .../MonitorNotificationRuleAttributes.ts | 12 +- .../MonitorNotificationRuleCondition.ts | 54 ++++++ ...orNotificationRuleConditionalRecipients.ts | 55 ++++++ ...nitorNotificationRuleResponseAttributes.ts | 9 + services/monitors/src/v2/models/TypingInfo.ts | 5 + 12 files changed, 464 insertions(+), 2 deletions(-) create mode 100644 cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/frozen.json create mode 100644 cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/recording.har create mode 100644 cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/frozen.json create mode 100644 cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/recording.har create mode 100644 services/monitors/src/v2/models/MonitorNotificationRuleCondition.ts create mode 100644 services/monitors/src/v2/models/MonitorNotificationRuleConditionalRecipients.ts diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 17509b56882d..a0d181216789 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -29565,6 +29565,8 @@ components: additionalProperties: false description: Attributes of the monitor notification rule. properties: + conditional_recipients: + $ref: '#/components/schemas/MonitorNotificationRuleConditionalRecipients' filter: $ref: '#/components/schemas/MonitorNotificationRuleFilter' name: @@ -29573,8 +29575,36 @@ components: $ref: '#/components/schemas/MonitorNotificationRuleRecipients' required: - name + type: object + MonitorNotificationRuleCondition: + description: Conditions for `conditional_recipients`. + properties: + recipients: + $ref: '#/components/schemas/MonitorNotificationRuleRecipients' + scope: + $ref: '#/components/schemas/MonitorNotificationRuleScope' + required: + - scope - recipients type: object + MonitorNotificationRuleConditionalRecipients: + description: Use conditional recipients to define different recipients for different + situations. + properties: + conditions: + description: Conditions of the notification rule. + items: + $ref: '#/components/schemas/MonitorNotificationRuleCondition' + maxItems: 10 + minItems: 1 + type: array + fallback_recipients: + $ref: '#/components/schemas/MonitorNotificationRuleRecipients' + description: If none of the `conditions` applied, `fallback_recipients` + will get notified. + required: + - conditions + type: object MonitorNotificationRuleCreateRequest: description: Request for creating a monitor notification rule. properties: @@ -29714,6 +29744,8 @@ components: additionalProperties: {} description: Attributes of the monitor notification rule. properties: + conditional_recipients: + $ref: '#/components/schemas/MonitorNotificationRuleConditionalRecipients' created: description: Creation time of the monitor notification rule. example: 2020-01-02 03:04:00+00:00 @@ -29735,6 +29767,12 @@ components: description: An object related to a monitor notification rule. oneOf: - $ref: '#/components/schemas/User' + MonitorNotificationRuleScope: + description: The scope to which the monitor applied. + example: transition_type:alert + maxLength: 3000 + minLength: 1 + type: string MonitorNotificationRuleUpdateRequest: description: Request for updating a monitor notification rule. properties: diff --git a/cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/frozen.json b/cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/frozen.json new file mode 100644 index 000000000000..f9ef783a9591 --- /dev/null +++ b/cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/frozen.json @@ -0,0 +1 @@ +"2025-09-26T01:50:59.027Z" diff --git a/cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/recording.har b/cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/recording.har new file mode 100644 index 000000000000..dad6c046805a --- /dev/null +++ b/cassettes/v2/Monitors_4022238206/Create-a-monitor-notification-rule-with-conditional-recipients-returns-OK-response_301236077/recording.har @@ -0,0 +1,109 @@ +{ + "log": { + "_recordingName": "Monitors/Create a monitor notification rule with conditional recipients returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "5a406144918848ee794df49bba5436b3", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 332, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 589, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"conditional_recipients\":{\"conditions\":[{\"recipients\":[\"slack-test-channel\",\"jira-test\"],\"scope\":\"transition_type:is_alert\"}]},\"filter\":{\"tags\":[\"test:test-create_a_monitor_notification_rule_with_conditional_recipients_returns_ok_response-1758851459\"]},\"name\":\"test rule\"},\"type\":\"monitor-notification-rule\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/monitor/notification_rule" + }, + "response": { + "bodySize": 1076, + "content": { + "mimeType": "application/json", + "size": 1076, + "text": "{\"data\":{\"type\":\"monitor-notification-rule\",\"attributes\":{\"name\":\"test rule\",\"filter\":{\"tags\":[\"test:test-create_a_monitor_notification_rule_with_conditional_recipients_returns_ok_response-1758851459\"]},\"created_at\":\"2025-09-26T01:51:00.132009+00:00\",\"conditional_recipients\":{\"conditions\":[{\"recipients\":[\"slack-test-channel\",\"jira-test\"],\"scope\":\"transition_type:is_alert\"}]},\"modified_at\":\"1970-01-01T00:00:00+00:00\"},\"id\":\"707b82d7-6898-4b20-a577-64f76881fe89\",\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":\"2020-12-29T22:58:44.733921+00:00\",\"modified_at\":\"2021-04-27T13:54:01.547888+00:00\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 704, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-09-26T01:50:59.742Z", + "time": 469 + }, + { + "_id": "c37cabe35cdb94a5aeb80ee7e61c7102", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/monitor/notification_rule/707b82d7-6898-4b20-a577-64f76881fe89" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/html; charset=utf-8", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "text/html; charset=utf-8" + } + ], + "headersSize": 690, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-09-26T01:51:00.284Z", + "time": 211 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/frozen.json b/cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/frozen.json new file mode 100644 index 000000000000..13593619c6ef --- /dev/null +++ b/cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/frozen.json @@ -0,0 +1 @@ +"2025-09-26T01:51:00.504Z" diff --git a/cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/recording.har b/cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/recording.har new file mode 100644 index 000000000000..18ce0ca8a222 --- /dev/null +++ b/cassettes/v2/Monitors_4022238206/Update-a-monitor-notification-rule-with-conditional_recipients-returns-OK-response_1914286097/recording.har @@ -0,0 +1,162 @@ +{ + "log": { + "_recordingName": "Monitors/Update a monitor notification rule with conditional_recipients returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "f74113be194d90918399ff38a8c798db", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 239, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 589, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"filter\":{\"tags\":[\"app:test-update_a_monitor_notification_rule_with_conditional_recipients_returns_ok_response-1758851460\"]},\"name\":\"test rule\",\"recipients\":[\"slack-monitor-app\"]},\"type\":\"monitor-notification-rule\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/monitor/notification_rule" + }, + "response": { + "bodySize": 983, + "content": { + "mimeType": "application/json", + "size": 983, + "text": "{\"data\":{\"type\":\"monitor-notification-rule\",\"attributes\":{\"filter\":{\"tags\":[\"app:test-update_a_monitor_notification_rule_with_conditional_recipients_returns_ok_response-1758851460\"]},\"created_at\":\"2025-09-26T01:51:00.665373+00:00\",\"name\":\"test rule\",\"recipients\":[\"slack-monitor-app\"],\"modified_at\":\"1970-01-01T00:00:00+00:00\"},\"id\":\"954d2f74-ec41-4f7b-9f63-7146075f3537\",\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":\"2020-12-29T22:58:44.733921+00:00\",\"modified_at\":\"2021-04-27T13:54:01.547888+00:00\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 703, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-09-26T01:51:00.507Z", + "time": 206 + }, + { + "_id": "56466a6f999a45f8ef1d7f802ab0c507", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 390, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 627, + "httpVersion": "HTTP/1.1", + "method": "PATCH", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"conditional_recipients\":{\"conditions\":[{\"recipients\":[\"slack-test-channel\",\"jira-test\"],\"scope\":\"transition_type:is_alert\"}]},\"filter\":{\"tags\":[\"test:test-update_a_monitor_notification_rule_with_conditional_recipients_returns_ok_response-1758851460\",\"host:abc\"]},\"name\":\"updated rule\"},\"id\":\"954d2f74-ec41-4f7b-9f63-7146075f3537\",\"type\":\"monitor-notification-rule\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/monitor/notification_rule/954d2f74-ec41-4f7b-9f63-7146075f3537" + }, + "response": { + "bodySize": 1097, + "content": { + "mimeType": "application/json", + "size": 1097, + "text": "{\"data\":{\"type\":\"monitor-notification-rule\",\"id\":\"954d2f74-ec41-4f7b-9f63-7146075f3537\",\"attributes\":{\"filter\":{\"tags\":[\"test:test-update_a_monitor_notification_rule_with_conditional_recipients_returns_ok_response-1758851460\",\"host:abc\"]},\"modified_at\":\"2025-09-26T01:51:00.876883+00:00\",\"conditional_recipients\":{\"conditions\":[{\"scope\":\"transition_type:is_alert\",\"recipients\":[\"slack-test-channel\",\"jira-test\"]}]},\"name\":\"updated rule\",\"created_at\":\"2025-09-26T01:51:00.665373+00:00\"},\"relationships\":{\"created_by\":{\"data\":{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}},\"included\":[{\"type\":\"users\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"attributes\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"created_at\":\"2020-12-29T22:58:44.733921+00:00\",\"modified_at\":\"2021-04-27T13:54:01.547888+00:00\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/b7c189b5b4c2c429d7c1e0bc3749330e?s=48&d=retro\",\"title\":null,\"verified\":true,\"service_account\":true,\"disabled\":false,\"allowed_login_methods\":[],\"status\":\"Active\"}}]}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 704, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-09-26T01:51:00.719Z", + "time": 200 + }, + { + "_id": "47601895ff82dd9a14b52f5a0ddc63bd", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/monitor/notification_rule/954d2f74-ec41-4f7b-9f63-7146075f3537" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/html; charset=utf-8", + "size": 0 + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "text/html; charset=utf-8" + } + ], + "headersSize": 690, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-09-26T01:51:00.924Z", + "time": 265 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/features/v2/monitors.feature b/features/v2/monitors.feature index d49f00dd0487..3fd3138f9f57 100644 --- a/features/v2/monitors.feature +++ b/features/v2/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 conditional recipients returns "OK" response + Given new "CreateMonitorNotificationRule" request + And body with value {"data": {"attributes": {"filter": {"tags": ["test:{{ unique_lower }}"]}, "name": "test rule", "conditional_recipients": {"conditions": [{"scope": "transition_type:is_alert", "recipients": ["slack-test-channel", "jira-test"]}]}}, "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" + @skip-validation @team:DataDog/monitor-app Scenario: Create a monitor user template returns "Bad Request" response Given new "CreateMonitorUserTemplate" request @@ -255,6 +263,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 conditional_recipients 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 }}", "host:abc"]}, "name": "updated rule", "conditional_recipients": {"conditions": [{"scope": "transition_type:is_alert", "recipients": ["slack-test-channel", "jira-test"]}]}}, "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" + @skip-validation @team:DataDog/monitor-app Scenario: Update a monitor user template to a new version returns "Bad Request" response Given there is a valid "monitor_user_template" in the system diff --git a/services/monitors/src/v2/index.ts b/services/monitors/src/v2/index.ts index a1c07f13e473..357111fe0d40 100644 --- a/services/monitors/src/v2/index.ts +++ b/services/monitors/src/v2/index.ts @@ -35,6 +35,8 @@ export { MonitorConfigPolicyTagPolicy } from "./models/MonitorConfigPolicyTagPol export { MonitorConfigPolicyTagPolicyCreateRequest } from "./models/MonitorConfigPolicyTagPolicyCreateRequest"; export { MonitorConfigPolicyType } from "./models/MonitorConfigPolicyType"; export { MonitorNotificationRuleAttributes } from "./models/MonitorNotificationRuleAttributes"; +export { MonitorNotificationRuleCondition } from "./models/MonitorNotificationRuleCondition"; +export { MonitorNotificationRuleConditionalRecipients } from "./models/MonitorNotificationRuleConditionalRecipients"; export { MonitorNotificationRuleCreateRequest } from "./models/MonitorNotificationRuleCreateRequest"; export { MonitorNotificationRuleCreateRequestData } from "./models/MonitorNotificationRuleCreateRequestData"; export { MonitorNotificationRuleData } from "./models/MonitorNotificationRuleData"; diff --git a/services/monitors/src/v2/models/MonitorNotificationRuleAttributes.ts b/services/monitors/src/v2/models/MonitorNotificationRuleAttributes.ts index 60fa803e7467..730c581ef7db 100644 --- a/services/monitors/src/v2/models/MonitorNotificationRuleAttributes.ts +++ b/services/monitors/src/v2/models/MonitorNotificationRuleAttributes.ts @@ -1,11 +1,16 @@ import { AttributeTypeMap } from "@datadog/datadog-api-client"; +import { MonitorNotificationRuleConditionalRecipients } from "./MonitorNotificationRuleConditionalRecipients"; import { MonitorNotificationRuleFilter } from "./MonitorNotificationRuleFilter"; /** * Attributes of the monitor notification rule. */ export class MonitorNotificationRuleAttributes { + /** + * Use conditional recipients to define different recipients for different situations. + */ + "conditionalRecipients"?: MonitorNotificationRuleConditionalRecipients; /** * Filter used to associate the notification rule with monitors. */ @@ -17,7 +22,7 @@ export class MonitorNotificationRuleAttributes { /** * A list of recipients to notify. Uses the same format as the monitor `message` field. Must not start with an '@'. */ - "recipients": Array; + "recipients"?: Array; /** * @ignore */ @@ -27,6 +32,10 @@ export class MonitorNotificationRuleAttributes { * @ignore */ static readonly attributeTypeMap: AttributeTypeMap = { + conditionalRecipients: { + baseName: "conditional_recipients", + type: "MonitorNotificationRuleConditionalRecipients", + }, filter: { baseName: "filter", type: "MonitorNotificationRuleFilter", @@ -39,7 +48,6 @@ export class MonitorNotificationRuleAttributes { recipients: { baseName: "recipients", type: "Array", - required: true, }, }; diff --git a/services/monitors/src/v2/models/MonitorNotificationRuleCondition.ts b/services/monitors/src/v2/models/MonitorNotificationRuleCondition.ts new file mode 100644 index 000000000000..e82a955c54ba --- /dev/null +++ b/services/monitors/src/v2/models/MonitorNotificationRuleCondition.ts @@ -0,0 +1,54 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +/** + * Conditions for `conditional_recipients`. + */ +export class MonitorNotificationRuleCondition { + /** + * A list of recipients to notify. Uses the same format as the monitor `message` field. Must not start with an '@'. + */ + "recipients": Array; + /** + * The scope to which the monitor applied. + */ + "scope": string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + recipients: { + baseName: "recipients", + type: "Array", + required: true, + }, + scope: { + baseName: "scope", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return MonitorNotificationRuleCondition.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/monitors/src/v2/models/MonitorNotificationRuleConditionalRecipients.ts b/services/monitors/src/v2/models/MonitorNotificationRuleConditionalRecipients.ts new file mode 100644 index 000000000000..85c739f021f4 --- /dev/null +++ b/services/monitors/src/v2/models/MonitorNotificationRuleConditionalRecipients.ts @@ -0,0 +1,55 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { MonitorNotificationRuleCondition } from "./MonitorNotificationRuleCondition"; + +/** + * Use conditional recipients to define different recipients for different situations. + */ +export class MonitorNotificationRuleConditionalRecipients { + /** + * Conditions of the notification rule. + */ + "conditions": Array; + /** + * A list of recipients to notify. Uses the same format as the monitor `message` field. Must not start with an '@'. + */ + "fallbackRecipients"?: Array; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + conditions: { + baseName: "conditions", + type: "Array", + required: true, + }, + fallbackRecipients: { + baseName: "fallback_recipients", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return MonitorNotificationRuleConditionalRecipients.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/monitors/src/v2/models/MonitorNotificationRuleResponseAttributes.ts b/services/monitors/src/v2/models/MonitorNotificationRuleResponseAttributes.ts index ffb851f95e31..269acd7ab300 100644 --- a/services/monitors/src/v2/models/MonitorNotificationRuleResponseAttributes.ts +++ b/services/monitors/src/v2/models/MonitorNotificationRuleResponseAttributes.ts @@ -1,11 +1,16 @@ import { AttributeTypeMap } from "@datadog/datadog-api-client"; +import { MonitorNotificationRuleConditionalRecipients } from "./MonitorNotificationRuleConditionalRecipients"; import { MonitorNotificationRuleFilter } from "./MonitorNotificationRuleFilter"; /** * Attributes of the monitor notification rule. */ export class MonitorNotificationRuleResponseAttributes { + /** + * Use conditional recipients to define different recipients for different situations. + */ + "conditionalRecipients"?: MonitorNotificationRuleConditionalRecipients; /** * Creation time of the monitor notification rule. */ @@ -41,6 +46,10 @@ export class MonitorNotificationRuleResponseAttributes { * @ignore */ static readonly attributeTypeMap: AttributeTypeMap = { + conditionalRecipients: { + baseName: "conditional_recipients", + type: "MonitorNotificationRuleConditionalRecipients", + }, created: { baseName: "created", type: "Date", diff --git a/services/monitors/src/v2/models/TypingInfo.ts b/services/monitors/src/v2/models/TypingInfo.ts index d54a08b24faf..464f5c086267 100644 --- a/services/monitors/src/v2/models/TypingInfo.ts +++ b/services/monitors/src/v2/models/TypingInfo.ts @@ -14,6 +14,8 @@ import { MonitorConfigPolicyResponseData } from "./MonitorConfigPolicyResponseDa import { MonitorConfigPolicyTagPolicy } from "./MonitorConfigPolicyTagPolicy"; import { MonitorConfigPolicyTagPolicyCreateRequest } from "./MonitorConfigPolicyTagPolicyCreateRequest"; import { MonitorNotificationRuleAttributes } from "./MonitorNotificationRuleAttributes"; +import { MonitorNotificationRuleCondition } from "./MonitorNotificationRuleCondition"; +import { MonitorNotificationRuleConditionalRecipients } from "./MonitorNotificationRuleConditionalRecipients"; import { MonitorNotificationRuleCreateRequest } from "./MonitorNotificationRuleCreateRequest"; import { MonitorNotificationRuleCreateRequestData } from "./MonitorNotificationRuleCreateRequestData"; import { MonitorNotificationRuleData } from "./MonitorNotificationRuleData"; @@ -87,6 +89,9 @@ export const TypingInfo: ModelTypingInfo = { MonitorConfigPolicyTagPolicyCreateRequest: MonitorConfigPolicyTagPolicyCreateRequest, MonitorNotificationRuleAttributes: MonitorNotificationRuleAttributes, + MonitorNotificationRuleCondition: MonitorNotificationRuleCondition, + MonitorNotificationRuleConditionalRecipients: + MonitorNotificationRuleConditionalRecipients, MonitorNotificationRuleCreateRequest: MonitorNotificationRuleCreateRequest, MonitorNotificationRuleCreateRequestData: MonitorNotificationRuleCreateRequestData,