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
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Create a monitor notification rule with bundle config returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.MonitorsApi;
import com.datadog.api.client.v2.model.MonitorNotificationRuleAttributes;
import com.datadog.api.client.v2.model.MonitorNotificationRuleBundleConfig;
import com.datadog.api.client.v2.model.MonitorNotificationRuleCreateRequest;
import com.datadog.api.client.v2.model.MonitorNotificationRuleCreateRequestData;
import com.datadog.api.client.v2.model.MonitorNotificationRuleFilter;
import com.datadog.api.client.v2.model.MonitorNotificationRuleFilterTags;
import com.datadog.api.client.v2.model.MonitorNotificationRuleResourceType;
import com.datadog.api.client.v2.model.MonitorNotificationRuleResponse;
import java.util.Collections;

public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MonitorsApi apiInstance = new MonitorsApi(defaultClient);

MonitorNotificationRuleCreateRequest body =
new MonitorNotificationRuleCreateRequest()
.data(
new MonitorNotificationRuleCreateRequestData()
.attributes(
new MonitorNotificationRuleAttributes()
.filter(
new MonitorNotificationRuleFilter(
new MonitorNotificationRuleFilterTags()
.tags(Collections.singletonList("test:example-monitor"))))
.name("test rule")
.recipients(Collections.singletonList("slack-test-channel"))
.bundleConfig(new MonitorNotificationRuleBundleConfig().duration(3600)))
.type(MonitorNotificationRuleResourceType.MONITOR_NOTIFICATION_RULE));

try {
MonitorNotificationRuleResponse result = apiInstance.createMonitorNotificationRule(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MonitorsApi#createMonitorNotificationRule");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// Update a monitor notification rule with bundle config returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.MonitorsApi;
import com.datadog.api.client.v2.model.MonitorNotificationRuleAttributes;
import com.datadog.api.client.v2.model.MonitorNotificationRuleBundleConfig;
import com.datadog.api.client.v2.model.MonitorNotificationRuleFilter;
import com.datadog.api.client.v2.model.MonitorNotificationRuleFilterTags;
import com.datadog.api.client.v2.model.MonitorNotificationRuleResourceType;
import com.datadog.api.client.v2.model.MonitorNotificationRuleResponse;
import com.datadog.api.client.v2.model.MonitorNotificationRuleUpdateRequest;
import com.datadog.api.client.v2.model.MonitorNotificationRuleUpdateRequestData;
import java.util.Collections;

public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MonitorsApi apiInstance = new MonitorsApi(defaultClient);

// there is a valid "monitor_notification_rule" in the system
String MONITOR_NOTIFICATION_RULE_DATA_ID = System.getenv("MONITOR_NOTIFICATION_RULE_DATA_ID");

MonitorNotificationRuleUpdateRequest body =
new MonitorNotificationRuleUpdateRequest()
.data(
new MonitorNotificationRuleUpdateRequestData()
.attributes(
new MonitorNotificationRuleAttributes()
.filter(
new MonitorNotificationRuleFilter(
new MonitorNotificationRuleFilterTags()
.tags(Collections.singletonList("test:example-monitor"))))
.name("updated rule")
.recipients(Collections.singletonList("slack-test-channel"))
.bundleConfig(new MonitorNotificationRuleBundleConfig().duration(3600)))
.id(MONITOR_NOTIFICATION_RULE_DATA_ID)
.type(MonitorNotificationRuleResourceType.MONITOR_NOTIFICATION_RULE));

try {
MonitorNotificationRuleResponse result =
apiInstance.updateMonitorNotificationRule(MONITOR_NOTIFICATION_RULE_DATA_ID, body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MonitorsApi#updateMonitorNotificationRule");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

/** Attributes of the monitor notification rule. */
@JsonPropertyOrder({
MonitorNotificationRuleAttributes.JSON_PROPERTY_BUNDLE_CONFIG,
MonitorNotificationRuleAttributes.JSON_PROPERTY_CONDITIONAL_RECIPIENTS,
MonitorNotificationRuleAttributes.JSON_PROPERTY_FILTER,
MonitorNotificationRuleAttributes.JSON_PROPERTY_NAME,
Expand All @@ -26,6 +27,9 @@
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class MonitorNotificationRuleAttributes {
@JsonIgnore public boolean unparsed = false;
public static final String JSON_PROPERTY_BUNDLE_CONFIG = "bundle_config";
private MonitorNotificationRuleBundleConfig bundleConfig;

public static final String JSON_PROPERTY_CONDITIONAL_RECIPIENTS = "conditional_recipients";
private MonitorNotificationRuleConditionalRecipients conditionalRecipients;

Expand All @@ -46,6 +50,34 @@ public MonitorNotificationRuleAttributes(
this.name = name;
}

public MonitorNotificationRuleAttributes bundleConfig(
MonitorNotificationRuleBundleConfig bundleConfig) {
this.bundleConfig = bundleConfig;
this.unparsed |= bundleConfig.unparsed;
return this;
}

/**
* Use bundle config to enable alert bundling to reduce monitor signal noises.
* <strong>Note</strong>: This feature is in preview and is subject to change. If you have any
* feedback, contact <a href="https://docs.datadoghq.com/help/">Datadog support</a>.
*
* @return bundleConfig
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_BUNDLE_CONFIG)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public MonitorNotificationRuleBundleConfig getBundleConfig() {
return bundleConfig;
}

public void setBundleConfig(MonitorNotificationRuleBundleConfig bundleConfig) {
this.bundleConfig = bundleConfig;
if (bundleConfig != null) {
this.unparsed |= bundleConfig.unparsed;
}
}

public MonitorNotificationRuleAttributes conditionalRecipients(
MonitorNotificationRuleConditionalRecipients conditionalRecipients) {
this.conditionalRecipients = conditionalRecipients;
Expand Down Expand Up @@ -160,7 +192,8 @@ public boolean equals(Object o) {
}
MonitorNotificationRuleAttributes monitorNotificationRuleAttributes =
(MonitorNotificationRuleAttributes) o;
return Objects.equals(
return Objects.equals(this.bundleConfig, monitorNotificationRuleAttributes.bundleConfig)
&& Objects.equals(
this.conditionalRecipients, monitorNotificationRuleAttributes.conditionalRecipients)
&& Objects.equals(this.filter, monitorNotificationRuleAttributes.filter)
&& Objects.equals(this.name, monitorNotificationRuleAttributes.name)
Expand All @@ -169,13 +202,14 @@ public boolean equals(Object o) {

@Override
public int hashCode() {
return Objects.hash(conditionalRecipients, filter, name, recipients);
return Objects.hash(bundleConfig, conditionalRecipients, filter, name, recipients);
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class MonitorNotificationRuleAttributes {\n");
sb.append(" bundleConfig: ").append(toIndentedString(bundleConfig)).append("\n");
sb.append(" conditionalRecipients: ")
.append(toIndentedString(conditionalRecipients))
.append("\n");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
/*
* 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.
*/

package com.datadog.api.client.v2.model;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
* Use bundle config to enable alert bundling to reduce monitor signal noises.
* <strong>Note</strong>: This feature is in preview and is subject to change. If you have any
* feedback, contact <a href="https://docs.datadoghq.com/help/">Datadog support</a>.
*/
@JsonPropertyOrder({MonitorNotificationRuleBundleConfig.JSON_PROPERTY_DURATION})
@jakarta.annotation.Generated(
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class MonitorNotificationRuleBundleConfig {
@JsonIgnore public boolean unparsed = false;
public static final String JSON_PROPERTY_DURATION = "duration";
private Integer duration;

public MonitorNotificationRuleBundleConfig() {}

@JsonCreator
public MonitorNotificationRuleBundleConfig(
@JsonProperty(required = true, value = JSON_PROPERTY_DURATION) Integer duration) {
this.duration = duration;
}

public MonitorNotificationRuleBundleConfig duration(Integer duration) {
this.duration = duration;
return this;
}

/**
* Duration of the bundling period. maximum: 2147483647
*
* @return duration
*/
@JsonProperty(JSON_PROPERTY_DURATION)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
public Integer getDuration() {
return duration;
}

public void setDuration(Integer duration) {
this.duration = duration;
}

/**
* A container for additional, undeclared properties. This is a holder for any undeclared
* properties as specified with the 'additionalProperties' keyword in the OAS document.
*/
private Map<String, Object> additionalProperties;

/**
* Set the additional (undeclared) property with the specified name and value. If the property
* does not already exist, create it otherwise replace it.
*
* @param key The arbitrary key to set
* @param value The associated value
* @return MonitorNotificationRuleBundleConfig
*/
@JsonAnySetter
public MonitorNotificationRuleBundleConfig putAdditionalProperty(String key, Object value) {
if (this.additionalProperties == null) {
this.additionalProperties = new HashMap<String, Object>();
}
this.additionalProperties.put(key, value);
return this;
}

/**
* Return the additional (undeclared) property.
*
* @return The additional properties
*/
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return additionalProperties;
}

/**
* Return the additional (undeclared) property with the specified name.
*
* @param key The arbitrary key to get
* @return The specific additional property for the given key
*/
public Object getAdditionalProperty(String key) {
if (this.additionalProperties == null) {
return null;
}
return this.additionalProperties.get(key);
}

/** Return true if this MonitorNotificationRuleBundleConfig object is equal to o. */
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
MonitorNotificationRuleBundleConfig monitorNotificationRuleBundleConfig =
(MonitorNotificationRuleBundleConfig) o;
return Objects.equals(this.duration, monitorNotificationRuleBundleConfig.duration)
&& Objects.equals(
this.additionalProperties, monitorNotificationRuleBundleConfig.additionalProperties);
}

@Override
public int hashCode() {
return Objects.hash(duration, additionalProperties);
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class MonitorNotificationRuleBundleConfig {\n");
sb.append(" duration: ").append(toIndentedString(duration)).append("\n");
sb.append(" additionalProperties: ")
.append(toIndentedString(additionalProperties))
.append("\n");
sb.append('}');
return sb.toString();
}

/**
* Convert the given object to string with each line indented by 4 spaces (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
Loading
Loading