Skip to content
Open
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
22 changes: 10 additions & 12 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40869,8 +40869,6 @@ components:
type: integer
type:
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType'
when_full:
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull'
type: object
ObservabilityPipelineMemoryBufferSizeOptions:
description: Options for configuring a memory buffer by queue length.
Expand All @@ -40882,8 +40880,6 @@ components:
type: integer
type:
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType'
when_full:
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull'
type: object
ObservabilityPipelineMetadataEntry:
description: A custom metadata entry.
Expand Down Expand Up @@ -53475,6 +53471,8 @@ components:
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration'
detectionTolerance:
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance'
instantaneousBaseline:
$ref: '#/components/schemas/SecurityMonitoringRuleInstantaneousBaseline'
learningDuration:
$ref: '#/components/schemas/SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration'
learningPeriodBaseline:
Expand Down Expand Up @@ -53812,6 +53810,13 @@ components:
or credentialed API access.'
example: true
type: boolean
SecurityMonitoringRuleInstantaneousBaseline:
description: When set to true, Datadog uses previous values that fall within
the defined learning window to construct the baseline, enabling the system
to establish an accurate baseline more rapidly rather than relying solely
on gradual learning over time.
example: false
type: boolean
SecurityMonitoringRuleKeepAlive:
description: 'Once a signal is generated, the signal will remain "open" if a
case is matched at least once within
Expand Down Expand Up @@ -53885,7 +53890,7 @@ components:
forgetAfter:
$ref: '#/components/schemas/SecurityMonitoringRuleNewValueOptionsForgetAfter'
instantaneousBaseline:
$ref: '#/components/schemas/SecurityMonitoringRuleNewValueOptionsInstantaneousBaseline'
$ref: '#/components/schemas/SecurityMonitoringRuleInstantaneousBaseline'
learningDuration:
$ref: '#/components/schemas/SecurityMonitoringRuleNewValueOptionsLearningDuration'
learningMethod:
Expand All @@ -53911,13 +53916,6 @@ components:
- TWO_WEEKS
- THREE_WEEKS
- FOUR_WEEKS
SecurityMonitoringRuleNewValueOptionsInstantaneousBaseline:
description: When set to true, Datadog uses previous values that fall within
the defined learning window to construct the baseline, enabling the system
to establish an accurate baseline more rapidly rather than relying solely
on gradual learning over time.
example: false
type: boolean
SecurityMonitoringRuleNewValueOptionsLearningDuration:
default: 0
description: 'The duration in days during which values are learned, and after
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
// Create a detection rule with detection method 'anomaly_detection' with enabled feature
// 'instantaneousBaseline' returns
// "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleAnomalyDetectionOptions;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCaseCreate;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleCreatePayload;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleDetectionMethod;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleEvaluationWindow;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleKeepAlive;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleMaxSignalDuration;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleOptions;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleQueryAggregation;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleResponse;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleSeverity;
import com.datadog.api.client.v2.model.SecurityMonitoringRuleTypeCreate;
import com.datadog.api.client.v2.model.SecurityMonitoringStandardDataSource;
import com.datadog.api.client.v2.model.SecurityMonitoringStandardRuleCreatePayload;
import com.datadog.api.client.v2.model.SecurityMonitoringStandardRuleQuery;
import java.util.Arrays;
import java.util.Collections;

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

SecurityMonitoringRuleCreatePayload body =
new SecurityMonitoringRuleCreatePayload(
new SecurityMonitoringStandardRuleCreatePayload()
.name("Example-Security-Monitoring")
.type(SecurityMonitoringRuleTypeCreate.LOG_DETECTION)
.isEnabled(true)
.queries(
Collections.singletonList(
new SecurityMonitoringStandardRuleQuery()
.aggregation(SecurityMonitoringRuleQueryAggregation.COUNT)
.dataSource(SecurityMonitoringStandardDataSource.LOGS)
.groupByFields(Arrays.asList("@usr.email", "@network.client.ip"))
.hasOptionalGroupByFields(false)
.name("")
.query("service:app status:error")))
.cases(
Collections.singletonList(
new SecurityMonitoringRuleCaseCreate()
.name("")
.status(SecurityMonitoringRuleSeverity.INFO)
.condition("a > 0.995")))
.message("An anomaly detection rule")
.options(
new SecurityMonitoringRuleOptions()
.detectionMethod(SecurityMonitoringRuleDetectionMethod.ANOMALY_DETECTION)
.evaluationWindow(SecurityMonitoringRuleEvaluationWindow.FIFTEEN_MINUTES)
.keepAlive(SecurityMonitoringRuleKeepAlive.ONE_HOUR)
.maxSignalDuration(SecurityMonitoringRuleMaxSignalDuration.ONE_DAY)
.anomalyDetectionOptions(
new SecurityMonitoringRuleAnomalyDetectionOptions()
.bucketDuration(
SecurityMonitoringRuleAnomalyDetectionOptionsBucketDuration
.FIVE_MINUTES)
.learningDuration(
SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration
.ONE_DAY)
.detectionTolerance(
SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance
.THREE)
.instantaneousBaseline(true))));

try {
SecurityMonitoringRuleResponse result = apiInstance.createSecurityMonitoringRule(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println(
"Exception when calling SecurityMonitoringApi#createSecurityMonitoringRule");
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 @@ -19,8 +19,7 @@
/** Options for configuring a memory buffer by byte size. */
@JsonPropertyOrder({
ObservabilityPipelineMemoryBufferOptions.JSON_PROPERTY_MAX_SIZE,
ObservabilityPipelineMemoryBufferOptions.JSON_PROPERTY_TYPE,
ObservabilityPipelineMemoryBufferOptions.JSON_PROPERTY_WHEN_FULL
ObservabilityPipelineMemoryBufferOptions.JSON_PROPERTY_TYPE
})
@jakarta.annotation.Generated(
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
Expand All @@ -33,10 +32,6 @@ public class ObservabilityPipelineMemoryBufferOptions {
private ObservabilityPipelineBufferOptionsMemoryType type =
ObservabilityPipelineBufferOptionsMemoryType.MEMORY;

public static final String JSON_PROPERTY_WHEN_FULL = "when_full";
private ObservabilityPipelineBufferOptionsWhenFull whenFull =
ObservabilityPipelineBufferOptionsWhenFull.BLOCK;

public ObservabilityPipelineMemoryBufferOptions maxSize(Long maxSize) {
this.maxSize = maxSize;
return this;
Expand Down Expand Up @@ -84,32 +79,6 @@ public void setType(ObservabilityPipelineBufferOptionsMemoryType type) {
this.type = type;
}

public ObservabilityPipelineMemoryBufferOptions whenFull(
ObservabilityPipelineBufferOptionsWhenFull whenFull) {
this.whenFull = whenFull;
this.unparsed |= !whenFull.isValid();
return this;
}

/**
* Behavior when the buffer is full (block and stop accepting new events, or drop new events)
*
* @return whenFull
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_WHEN_FULL)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public ObservabilityPipelineBufferOptionsWhenFull getWhenFull() {
return whenFull;
}

public void setWhenFull(ObservabilityPipelineBufferOptionsWhenFull whenFull) {
if (!whenFull.isValid()) {
this.unparsed = true;
}
this.whenFull = whenFull;
}

/**
* A container for additional, undeclared properties. This is a holder for any undeclared
* properties as specified with the 'additionalProperties' keyword in the OAS document.
Expand Down Expand Up @@ -169,15 +138,14 @@ public boolean equals(Object o) {
(ObservabilityPipelineMemoryBufferOptions) o;
return Objects.equals(this.maxSize, observabilityPipelineMemoryBufferOptions.maxSize)
&& Objects.equals(this.type, observabilityPipelineMemoryBufferOptions.type)
&& Objects.equals(this.whenFull, observabilityPipelineMemoryBufferOptions.whenFull)
&& Objects.equals(
this.additionalProperties,
observabilityPipelineMemoryBufferOptions.additionalProperties);
}

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

@Override
Expand All @@ -186,7 +154,6 @@ public String toString() {
sb.append("class ObservabilityPipelineMemoryBufferOptions {\n");
sb.append(" maxSize: ").append(toIndentedString(maxSize)).append("\n");
sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" whenFull: ").append(toIndentedString(whenFull)).append("\n");
sb.append(" additionalProperties: ")
.append(toIndentedString(additionalProperties))
.append("\n");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
/** Options for configuring a memory buffer by queue length. */
@JsonPropertyOrder({
ObservabilityPipelineMemoryBufferSizeOptions.JSON_PROPERTY_MAX_EVENTS,
ObservabilityPipelineMemoryBufferSizeOptions.JSON_PROPERTY_TYPE,
ObservabilityPipelineMemoryBufferSizeOptions.JSON_PROPERTY_WHEN_FULL
ObservabilityPipelineMemoryBufferSizeOptions.JSON_PROPERTY_TYPE
})
@jakarta.annotation.Generated(
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
Expand All @@ -33,10 +32,6 @@ public class ObservabilityPipelineMemoryBufferSizeOptions {
private ObservabilityPipelineBufferOptionsMemoryType type =
ObservabilityPipelineBufferOptionsMemoryType.MEMORY;

public static final String JSON_PROPERTY_WHEN_FULL = "when_full";
private ObservabilityPipelineBufferOptionsWhenFull whenFull =
ObservabilityPipelineBufferOptionsWhenFull.BLOCK;

public ObservabilityPipelineMemoryBufferSizeOptions maxEvents(Long maxEvents) {
this.maxEvents = maxEvents;
return this;
Expand Down Expand Up @@ -84,32 +79,6 @@ public void setType(ObservabilityPipelineBufferOptionsMemoryType type) {
this.type = type;
}

public ObservabilityPipelineMemoryBufferSizeOptions whenFull(
ObservabilityPipelineBufferOptionsWhenFull whenFull) {
this.whenFull = whenFull;
this.unparsed |= !whenFull.isValid();
return this;
}

/**
* Behavior when the buffer is full (block and stop accepting new events, or drop new events)
*
* @return whenFull
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_WHEN_FULL)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public ObservabilityPipelineBufferOptionsWhenFull getWhenFull() {
return whenFull;
}

public void setWhenFull(ObservabilityPipelineBufferOptionsWhenFull whenFull) {
if (!whenFull.isValid()) {
this.unparsed = true;
}
this.whenFull = whenFull;
}

/**
* A container for additional, undeclared properties. This is a holder for any undeclared
* properties as specified with the 'additionalProperties' keyword in the OAS document.
Expand Down Expand Up @@ -170,15 +139,14 @@ public boolean equals(Object o) {
(ObservabilityPipelineMemoryBufferSizeOptions) o;
return Objects.equals(this.maxEvents, observabilityPipelineMemoryBufferSizeOptions.maxEvents)
&& Objects.equals(this.type, observabilityPipelineMemoryBufferSizeOptions.type)
&& Objects.equals(this.whenFull, observabilityPipelineMemoryBufferSizeOptions.whenFull)
&& Objects.equals(
this.additionalProperties,
observabilityPipelineMemoryBufferSizeOptions.additionalProperties);
}

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

@Override
Expand All @@ -187,7 +155,6 @@ public String toString() {
sb.append("class ObservabilityPipelineMemoryBufferSizeOptions {\n");
sb.append(" maxEvents: ").append(toIndentedString(maxEvents)).append("\n");
sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" whenFull: ").append(toIndentedString(whenFull)).append("\n");
sb.append(" additionalProperties: ")
.append(toIndentedString(additionalProperties))
.append("\n");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
@JsonPropertyOrder({
SecurityMonitoringRuleAnomalyDetectionOptions.JSON_PROPERTY_BUCKET_DURATION,
SecurityMonitoringRuleAnomalyDetectionOptions.JSON_PROPERTY_DETECTION_TOLERANCE,
SecurityMonitoringRuleAnomalyDetectionOptions.JSON_PROPERTY_INSTANTANEOUS_BASELINE,
SecurityMonitoringRuleAnomalyDetectionOptions.JSON_PROPERTY_LEARNING_DURATION,
SecurityMonitoringRuleAnomalyDetectionOptions.JSON_PROPERTY_LEARNING_PERIOD_BASELINE
})
Expand All @@ -33,6 +34,9 @@ public class SecurityMonitoringRuleAnomalyDetectionOptions {
public static final String JSON_PROPERTY_DETECTION_TOLERANCE = "detectionTolerance";
private SecurityMonitoringRuleAnomalyDetectionOptionsDetectionTolerance detectionTolerance;

public static final String JSON_PROPERTY_INSTANTANEOUS_BASELINE = "instantaneousBaseline";
private Boolean instantaneousBaseline;

public static final String JSON_PROPERTY_LEARNING_DURATION = "learningDuration";
private SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration learningDuration;

Expand Down Expand Up @@ -95,6 +99,30 @@ public void setDetectionTolerance(
this.detectionTolerance = detectionTolerance;
}

public SecurityMonitoringRuleAnomalyDetectionOptions instantaneousBaseline(
Boolean instantaneousBaseline) {
this.instantaneousBaseline = instantaneousBaseline;
return this;
}

/**
* When set to true, Datadog uses previous values that fall within the defined learning window to
* construct the baseline, enabling the system to establish an accurate baseline more rapidly
* rather than relying solely on gradual learning over time.
*
* @return instantaneousBaseline
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_INSTANTANEOUS_BASELINE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public Boolean getInstantaneousBaseline() {
return instantaneousBaseline;
}

public void setInstantaneousBaseline(Boolean instantaneousBaseline) {
this.instantaneousBaseline = instantaneousBaseline;
}

public SecurityMonitoringRuleAnomalyDetectionOptions learningDuration(
SecurityMonitoringRuleAnomalyDetectionOptionsLearningDuration learningDuration) {
this.learningDuration = learningDuration;
Expand Down Expand Up @@ -209,6 +237,9 @@ public boolean equals(Object o) {
&& Objects.equals(
this.detectionTolerance,
securityMonitoringRuleAnomalyDetectionOptions.detectionTolerance)
&& Objects.equals(
this.instantaneousBaseline,
securityMonitoringRuleAnomalyDetectionOptions.instantaneousBaseline)
&& Objects.equals(
this.learningDuration, securityMonitoringRuleAnomalyDetectionOptions.learningDuration)
&& Objects.equals(
Expand All @@ -224,6 +255,7 @@ public int hashCode() {
return Objects.hash(
bucketDuration,
detectionTolerance,
instantaneousBaseline,
learningDuration,
learningPeriodBaseline,
additionalProperties);
Expand All @@ -235,6 +267,9 @@ public String toString() {
sb.append("class SecurityMonitoringRuleAnomalyDetectionOptions {\n");
sb.append(" bucketDuration: ").append(toIndentedString(bucketDuration)).append("\n");
sb.append(" detectionTolerance: ").append(toIndentedString(detectionTolerance)).append("\n");
sb.append(" instantaneousBaseline: ")
.append(toIndentedString(instantaneousBaseline))
.append("\n");
sb.append(" learningDuration: ").append(toIndentedString(learningDuration)).append("\n");
sb.append(" learningPeriodBaseline: ")
.append(toIndentedString(learningPeriodBaseline))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2026-02-10T14:48:33.727Z
Loading
Loading