diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 093a28a0b5b..fb10f21526e 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -50581,6 +50581,69 @@ components:
type: string
x-enum-varnames:
- RULESET
+ RumCrossProductSampling:
+ description: 'Configuration for additional APM trace data retention for sessions
+ that match this retention filter.
+
+ When a session matches the filter and is retained (based on `sample_rate`),
+ you can configure
+
+ the percentage of retained sessions with ingested traces whose traces are
+ indexed.'
+ properties:
+ trace_enabled:
+ description: Indicates whether trace cross-product sampling is enabled.
+ If `false`, no traces are indexed regardless of `trace_sample_rate`.
+ example: true
+ type: boolean
+ trace_sample_rate:
+ description: 'The percentage (0-100) of retained sessions with ingested
+ traces whose traces are indexed.
+
+ For example, 25.0 means 25% of retained sessions with ingested traces
+ have their traces indexed.'
+ example: 25.0
+ format: double
+ maximum: 100
+ minimum: 0
+ type: number
+ type: object
+ RumCrossProductSamplingCreate:
+ description: Configuration for cross-product sampling when creating a retention
+ filter.
+ properties:
+ trace_enabled:
+ description: Indicates whether trace cross-product sampling is enabled.
+ example: true
+ type: boolean
+ trace_sample_rate:
+ description: The percentage (0-100) of retained sessions with ingested traces
+ whose traces are indexed.
+ example: 25.0
+ format: double
+ maximum: 100
+ minimum: 0
+ type: number
+ required:
+ - trace_sample_rate
+ type: object
+ RumCrossProductSamplingUpdate:
+ description: Configuration for cross-product sampling when updating a retention
+ filter. All fields are optional for partial updates.
+ properties:
+ trace_enabled:
+ description: Indicates whether trace cross-product sampling is enabled.
+ example: true
+ type: boolean
+ trace_sample_rate:
+ description: The percentage (0-100) of retained sessions with ingested traces
+ whose traces are indexed.
+ example: 25.0
+ format: double
+ maximum: 100
+ minimum: 0
+ type: number
+ type: object
RumMetricCompute:
description: The compute rule to compute the rum-based metric.
properties:
@@ -50868,6 +50931,8 @@ components:
RumRetentionFilterAttributes:
description: The object describing attributes of a RUM retention filter.
properties:
+ cross_product_sampling:
+ $ref: '#/components/schemas/RumCrossProductSampling'
enabled:
$ref: '#/components/schemas/RumRetentionFilterEnabled'
event_type:
@@ -50882,6 +50947,8 @@ components:
RumRetentionFilterCreateAttributes:
description: The object describing attributes of a RUM retention filter to create.
properties:
+ cross_product_sampling:
+ $ref: '#/components/schemas/RumCrossProductSamplingCreate'
enabled:
$ref: '#/components/schemas/RumRetentionFilterEnabled'
event_type:
@@ -50983,6 +51050,8 @@ components:
RumRetentionFilterUpdateAttributes:
description: The object describing attributes of a RUM retention filter to update.
properties:
+ cross_product_sampling:
+ $ref: '#/components/schemas/RumCrossProductSamplingUpdate'
enabled:
$ref: '#/components/schemas/RumRetentionFilterEnabled'
event_type:
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSampling.java b/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSampling.java
new file mode 100644
index 00000000000..a3d2472e007
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSampling.java
@@ -0,0 +1,172 @@
+/*
+ * 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.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;
+
+/**
+ * Configuration for additional APM trace data retention for sessions that match this retention
+ * filter. When a session matches the filter and is retained (based on sample_rate),
+ * you can configure the percentage of retained sessions with ingested traces whose traces are
+ * indexed.
+ */
+@JsonPropertyOrder({
+ RumCrossProductSampling.JSON_PROPERTY_TRACE_ENABLED,
+ RumCrossProductSampling.JSON_PROPERTY_TRACE_SAMPLE_RATE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumCrossProductSampling {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_TRACE_ENABLED = "trace_enabled";
+ private Boolean traceEnabled;
+
+ public static final String JSON_PROPERTY_TRACE_SAMPLE_RATE = "trace_sample_rate";
+ private Double traceSampleRate;
+
+ public RumCrossProductSampling traceEnabled(Boolean traceEnabled) {
+ this.traceEnabled = traceEnabled;
+ return this;
+ }
+
+ /**
+ * Indicates whether trace cross-product sampling is enabled. If false, no traces are
+ * indexed regardless of trace_sample_rate.
+ *
+ * @return traceEnabled
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACE_ENABLED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getTraceEnabled() {
+ return traceEnabled;
+ }
+
+ public void setTraceEnabled(Boolean traceEnabled) {
+ this.traceEnabled = traceEnabled;
+ }
+
+ public RumCrossProductSampling traceSampleRate(Double traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage (0-100) of retained sessions with ingested traces whose traces are indexed. For
+ * example, 25.0 means 25% of retained sessions with ingested traces have their traces indexed.
+ * minimum: 0 maximum: 100
+ *
+ * @return traceSampleRate
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACE_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Double getTraceSampleRate() {
+ return traceSampleRate;
+ }
+
+ public void setTraceSampleRate(Double traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ }
+
+ /**
+ * 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 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 RumCrossProductSampling
+ */
+ @JsonAnySetter
+ public RumCrossProductSampling putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map 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 RumCrossProductSampling object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumCrossProductSampling rumCrossProductSampling = (RumCrossProductSampling) o;
+ return Objects.equals(this.traceEnabled, rumCrossProductSampling.traceEnabled)
+ && Objects.equals(this.traceSampleRate, rumCrossProductSampling.traceSampleRate)
+ && Objects.equals(this.additionalProperties, rumCrossProductSampling.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(traceEnabled, traceSampleRate, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumCrossProductSampling {\n");
+ sb.append(" traceEnabled: ").append(toIndentedString(traceEnabled)).append("\n");
+ sb.append(" traceSampleRate: ").append(toIndentedString(traceSampleRate)).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 ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSamplingCreate.java b/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSamplingCreate.java
new file mode 100644
index 00000000000..df9187cfdf9
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSamplingCreate.java
@@ -0,0 +1,175 @@
+/*
+ * 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;
+
+/** Configuration for cross-product sampling when creating a retention filter. */
+@JsonPropertyOrder({
+ RumCrossProductSamplingCreate.JSON_PROPERTY_TRACE_ENABLED,
+ RumCrossProductSamplingCreate.JSON_PROPERTY_TRACE_SAMPLE_RATE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumCrossProductSamplingCreate {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_TRACE_ENABLED = "trace_enabled";
+ private Boolean traceEnabled;
+
+ public static final String JSON_PROPERTY_TRACE_SAMPLE_RATE = "trace_sample_rate";
+ private Double traceSampleRate;
+
+ public RumCrossProductSamplingCreate() {}
+
+ @JsonCreator
+ public RumCrossProductSamplingCreate(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TRACE_SAMPLE_RATE)
+ Double traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ }
+
+ public RumCrossProductSamplingCreate traceEnabled(Boolean traceEnabled) {
+ this.traceEnabled = traceEnabled;
+ return this;
+ }
+
+ /**
+ * Indicates whether trace cross-product sampling is enabled.
+ *
+ * @return traceEnabled
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACE_ENABLED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getTraceEnabled() {
+ return traceEnabled;
+ }
+
+ public void setTraceEnabled(Boolean traceEnabled) {
+ this.traceEnabled = traceEnabled;
+ }
+
+ public RumCrossProductSamplingCreate traceSampleRate(Double traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage (0-100) of retained sessions with ingested traces whose traces are indexed.
+ * minimum: 0 maximum: 100
+ *
+ * @return traceSampleRate
+ */
+ @JsonProperty(JSON_PROPERTY_TRACE_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Double getTraceSampleRate() {
+ return traceSampleRate;
+ }
+
+ public void setTraceSampleRate(Double traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ }
+
+ /**
+ * 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 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 RumCrossProductSamplingCreate
+ */
+ @JsonAnySetter
+ public RumCrossProductSamplingCreate putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map 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 RumCrossProductSamplingCreate object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumCrossProductSamplingCreate rumCrossProductSamplingCreate = (RumCrossProductSamplingCreate) o;
+ return Objects.equals(this.traceEnabled, rumCrossProductSamplingCreate.traceEnabled)
+ && Objects.equals(this.traceSampleRate, rumCrossProductSamplingCreate.traceSampleRate)
+ && Objects.equals(
+ this.additionalProperties, rumCrossProductSamplingCreate.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(traceEnabled, traceSampleRate, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumCrossProductSamplingCreate {\n");
+ sb.append(" traceEnabled: ").append(toIndentedString(traceEnabled)).append("\n");
+ sb.append(" traceSampleRate: ").append(toIndentedString(traceSampleRate)).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 ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSamplingUpdate.java b/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSamplingUpdate.java
new file mode 100644
index 00000000000..b9e1b93f5db
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumCrossProductSamplingUpdate.java
@@ -0,0 +1,169 @@
+/*
+ * 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.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;
+
+/**
+ * Configuration for cross-product sampling when updating a retention filter. All fields are
+ * optional for partial updates.
+ */
+@JsonPropertyOrder({
+ RumCrossProductSamplingUpdate.JSON_PROPERTY_TRACE_ENABLED,
+ RumCrossProductSamplingUpdate.JSON_PROPERTY_TRACE_SAMPLE_RATE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumCrossProductSamplingUpdate {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_TRACE_ENABLED = "trace_enabled";
+ private Boolean traceEnabled;
+
+ public static final String JSON_PROPERTY_TRACE_SAMPLE_RATE = "trace_sample_rate";
+ private Double traceSampleRate;
+
+ public RumCrossProductSamplingUpdate traceEnabled(Boolean traceEnabled) {
+ this.traceEnabled = traceEnabled;
+ return this;
+ }
+
+ /**
+ * Indicates whether trace cross-product sampling is enabled.
+ *
+ * @return traceEnabled
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACE_ENABLED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getTraceEnabled() {
+ return traceEnabled;
+ }
+
+ public void setTraceEnabled(Boolean traceEnabled) {
+ this.traceEnabled = traceEnabled;
+ }
+
+ public RumCrossProductSamplingUpdate traceSampleRate(Double traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage (0-100) of retained sessions with ingested traces whose traces are indexed.
+ * minimum: 0 maximum: 100
+ *
+ * @return traceSampleRate
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACE_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Double getTraceSampleRate() {
+ return traceSampleRate;
+ }
+
+ public void setTraceSampleRate(Double traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ }
+
+ /**
+ * 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 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 RumCrossProductSamplingUpdate
+ */
+ @JsonAnySetter
+ public RumCrossProductSamplingUpdate putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map 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 RumCrossProductSamplingUpdate object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumCrossProductSamplingUpdate rumCrossProductSamplingUpdate = (RumCrossProductSamplingUpdate) o;
+ return Objects.equals(this.traceEnabled, rumCrossProductSamplingUpdate.traceEnabled)
+ && Objects.equals(this.traceSampleRate, rumCrossProductSamplingUpdate.traceSampleRate)
+ && Objects.equals(
+ this.additionalProperties, rumCrossProductSamplingUpdate.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(traceEnabled, traceSampleRate, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumCrossProductSamplingUpdate {\n");
+ sb.append(" traceEnabled: ").append(toIndentedString(traceEnabled)).append("\n");
+ sb.append(" traceSampleRate: ").append(toIndentedString(traceSampleRate)).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 ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterAttributes.java
index d22686af276..1afab7693f8 100644
--- a/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterAttributes.java
+++ b/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterAttributes.java
@@ -18,6 +18,7 @@
/** The object describing attributes of a RUM retention filter. */
@JsonPropertyOrder({
+ RumRetentionFilterAttributes.JSON_PROPERTY_CROSS_PRODUCT_SAMPLING,
RumRetentionFilterAttributes.JSON_PROPERTY_ENABLED,
RumRetentionFilterAttributes.JSON_PROPERTY_EVENT_TYPE,
RumRetentionFilterAttributes.JSON_PROPERTY_NAME,
@@ -28,6 +29,9 @@
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class RumRetentionFilterAttributes {
@JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CROSS_PRODUCT_SAMPLING = "cross_product_sampling";
+ private RumCrossProductSampling crossProductSampling;
+
public static final String JSON_PROPERTY_ENABLED = "enabled";
private Boolean enabled;
@@ -43,6 +47,32 @@ public class RumRetentionFilterAttributes {
public static final String JSON_PROPERTY_SAMPLE_RATE = "sample_rate";
private Double sampleRate;
+ public RumRetentionFilterAttributes crossProductSampling(
+ RumCrossProductSampling crossProductSampling) {
+ this.crossProductSampling = crossProductSampling;
+ this.unparsed |= crossProductSampling.unparsed;
+ return this;
+ }
+
+ /**
+ * Configuration for additional APM trace data retention for sessions that match this retention
+ * filter. When a session matches the filter and is retained (based on sample_rate),
+ * you can configure the percentage of retained sessions with ingested traces whose traces are
+ * indexed.
+ *
+ * @return crossProductSampling
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CROSS_PRODUCT_SAMPLING)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RumCrossProductSampling getCrossProductSampling() {
+ return crossProductSampling;
+ }
+
+ public void setCrossProductSampling(RumCrossProductSampling crossProductSampling) {
+ this.crossProductSampling = crossProductSampling;
+ }
+
public RumRetentionFilterAttributes enabled(Boolean enabled) {
this.enabled = enabled;
return this;
@@ -208,7 +238,9 @@ public boolean equals(Object o) {
return false;
}
RumRetentionFilterAttributes rumRetentionFilterAttributes = (RumRetentionFilterAttributes) o;
- return Objects.equals(this.enabled, rumRetentionFilterAttributes.enabled)
+ return Objects.equals(
+ this.crossProductSampling, rumRetentionFilterAttributes.crossProductSampling)
+ && Objects.equals(this.enabled, rumRetentionFilterAttributes.enabled)
&& Objects.equals(this.eventType, rumRetentionFilterAttributes.eventType)
&& Objects.equals(this.name, rumRetentionFilterAttributes.name)
&& Objects.equals(this.query, rumRetentionFilterAttributes.query)
@@ -219,13 +251,17 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(enabled, eventType, name, query, sampleRate, additionalProperties);
+ return Objects.hash(
+ crossProductSampling, enabled, eventType, name, query, sampleRate, additionalProperties);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class RumRetentionFilterAttributes {\n");
+ sb.append(" crossProductSampling: ")
+ .append(toIndentedString(crossProductSampling))
+ .append("\n");
sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n");
sb.append(" name: ").append(toIndentedString(name)).append("\n");
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterCreateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterCreateAttributes.java
index b4c5275c046..53d61e8818b 100644
--- a/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterCreateAttributes.java
+++ b/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterCreateAttributes.java
@@ -19,6 +19,7 @@
/** The object describing attributes of a RUM retention filter to create. */
@JsonPropertyOrder({
+ RumRetentionFilterCreateAttributes.JSON_PROPERTY_CROSS_PRODUCT_SAMPLING,
RumRetentionFilterCreateAttributes.JSON_PROPERTY_ENABLED,
RumRetentionFilterCreateAttributes.JSON_PROPERTY_EVENT_TYPE,
RumRetentionFilterCreateAttributes.JSON_PROPERTY_NAME,
@@ -29,6 +30,9 @@
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class RumRetentionFilterCreateAttributes {
@JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CROSS_PRODUCT_SAMPLING = "cross_product_sampling";
+ private RumCrossProductSamplingCreate crossProductSampling;
+
public static final String JSON_PROPERTY_ENABLED = "enabled";
private Boolean enabled;
@@ -58,6 +62,29 @@ public RumRetentionFilterCreateAttributes(
this.sampleRate = sampleRate;
}
+ public RumRetentionFilterCreateAttributes crossProductSampling(
+ RumCrossProductSamplingCreate crossProductSampling) {
+ this.crossProductSampling = crossProductSampling;
+ this.unparsed |= crossProductSampling.unparsed;
+ return this;
+ }
+
+ /**
+ * Configuration for cross-product sampling when creating a retention filter.
+ *
+ * @return crossProductSampling
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CROSS_PRODUCT_SAMPLING)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RumCrossProductSamplingCreate getCrossProductSampling() {
+ return crossProductSampling;
+ }
+
+ public void setCrossProductSampling(RumCrossProductSamplingCreate crossProductSampling) {
+ this.crossProductSampling = crossProductSampling;
+ }
+
public RumRetentionFilterCreateAttributes enabled(Boolean enabled) {
this.enabled = enabled;
return this;
@@ -221,7 +248,9 @@ public boolean equals(Object o) {
}
RumRetentionFilterCreateAttributes rumRetentionFilterCreateAttributes =
(RumRetentionFilterCreateAttributes) o;
- return Objects.equals(this.enabled, rumRetentionFilterCreateAttributes.enabled)
+ return Objects.equals(
+ this.crossProductSampling, rumRetentionFilterCreateAttributes.crossProductSampling)
+ && Objects.equals(this.enabled, rumRetentionFilterCreateAttributes.enabled)
&& Objects.equals(this.eventType, rumRetentionFilterCreateAttributes.eventType)
&& Objects.equals(this.name, rumRetentionFilterCreateAttributes.name)
&& Objects.equals(this.query, rumRetentionFilterCreateAttributes.query)
@@ -232,13 +261,17 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(enabled, eventType, name, query, sampleRate, additionalProperties);
+ return Objects.hash(
+ crossProductSampling, enabled, eventType, name, query, sampleRate, additionalProperties);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class RumRetentionFilterCreateAttributes {\n");
+ sb.append(" crossProductSampling: ")
+ .append(toIndentedString(crossProductSampling))
+ .append("\n");
sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n");
sb.append(" name: ").append(toIndentedString(name)).append("\n");
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterUpdateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterUpdateAttributes.java
index c862aeb411e..6905f018bd2 100644
--- a/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterUpdateAttributes.java
+++ b/src/main/java/com/datadog/api/client/v2/model/RumRetentionFilterUpdateAttributes.java
@@ -18,6 +18,7 @@
/** The object describing attributes of a RUM retention filter to update. */
@JsonPropertyOrder({
+ RumRetentionFilterUpdateAttributes.JSON_PROPERTY_CROSS_PRODUCT_SAMPLING,
RumRetentionFilterUpdateAttributes.JSON_PROPERTY_ENABLED,
RumRetentionFilterUpdateAttributes.JSON_PROPERTY_EVENT_TYPE,
RumRetentionFilterUpdateAttributes.JSON_PROPERTY_NAME,
@@ -28,6 +29,9 @@
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class RumRetentionFilterUpdateAttributes {
@JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CROSS_PRODUCT_SAMPLING = "cross_product_sampling";
+ private RumCrossProductSamplingUpdate crossProductSampling;
+
public static final String JSON_PROPERTY_ENABLED = "enabled";
private Boolean enabled;
@@ -43,6 +47,30 @@ public class RumRetentionFilterUpdateAttributes {
public static final String JSON_PROPERTY_SAMPLE_RATE = "sample_rate";
private Double sampleRate;
+ public RumRetentionFilterUpdateAttributes crossProductSampling(
+ RumCrossProductSamplingUpdate crossProductSampling) {
+ this.crossProductSampling = crossProductSampling;
+ this.unparsed |= crossProductSampling.unparsed;
+ return this;
+ }
+
+ /**
+ * Configuration for cross-product sampling when updating a retention filter. All fields are
+ * optional for partial updates.
+ *
+ * @return crossProductSampling
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CROSS_PRODUCT_SAMPLING)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RumCrossProductSamplingUpdate getCrossProductSampling() {
+ return crossProductSampling;
+ }
+
+ public void setCrossProductSampling(RumCrossProductSamplingUpdate crossProductSampling) {
+ this.crossProductSampling = crossProductSampling;
+ }
+
public RumRetentionFilterUpdateAttributes enabled(Boolean enabled) {
this.enabled = enabled;
return this;
@@ -209,7 +237,9 @@ public boolean equals(Object o) {
}
RumRetentionFilterUpdateAttributes rumRetentionFilterUpdateAttributes =
(RumRetentionFilterUpdateAttributes) o;
- return Objects.equals(this.enabled, rumRetentionFilterUpdateAttributes.enabled)
+ return Objects.equals(
+ this.crossProductSampling, rumRetentionFilterUpdateAttributes.crossProductSampling)
+ && Objects.equals(this.enabled, rumRetentionFilterUpdateAttributes.enabled)
&& Objects.equals(this.eventType, rumRetentionFilterUpdateAttributes.eventType)
&& Objects.equals(this.name, rumRetentionFilterUpdateAttributes.name)
&& Objects.equals(this.query, rumRetentionFilterUpdateAttributes.query)
@@ -220,13 +250,17 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(enabled, eventType, name, query, sampleRate, additionalProperties);
+ return Objects.hash(
+ crossProductSampling, enabled, eventType, name, query, sampleRate, additionalProperties);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class RumRetentionFilterUpdateAttributes {\n");
+ sb.append(" crossProductSampling: ")
+ .append(toIndentedString(crossProductSampling))
+ .append("\n");
sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n");
sb.append(" name: ").append(toIndentedString(name)).append("\n");