diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index f3ca46bc048..24e99fe17f7 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -36203,7 +36203,8 @@ components:
type: object
ObservabilityPipelineEnrichmentTableProcessor:
description: The `enrichment_table` processor enriches logs using a static CSV
- file or GeoIP database.
+ file, GeoIP database, or reference table. Exactly one of `file`, `geoip`,
+ or `reference_table` must be configured.
properties:
display_name:
$ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName'
@@ -36224,6 +36225,8 @@ components:
targets.
example: source:my-source
type: string
+ reference_table:
+ $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableReferenceTable'
target:
description: Path where enrichment results should be stored in the log.
example: enriched.geoip
@@ -36246,6 +36249,34 @@ components:
type: string
x-enum-varnames:
- ENRICHMENT_TABLE
+ ObservabilityPipelineEnrichmentTableReferenceTable:
+ description: Uses a Datadog reference table to enrich logs.
+ properties:
+ app_key_key:
+ default: PROCESSOR_ENRICHMENT_TABLES_APP_KEY
+ description: Environment variable name containing the application key used
+ for reference table authentication.
+ type: string
+ columns:
+ description: List of column names to include from the reference table. If
+ not provided, all columns are included.
+ items:
+ type: string
+ nullable: true
+ type: array
+ key_field:
+ description: Path to the field in the log event to match against the reference
+ table.
+ example: log.user.id
+ type: string
+ table_id:
+ description: The unique identifier of the reference table.
+ example: 550e8400-e29b-41d4-a716-446655440000
+ type: string
+ required:
+ - key_field
+ - table_id
+ type: object
ObservabilityPipelineFieldValue:
description: Represents a static key-value pair used in various processors.
properties:
diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineEnrichmentTableProcessor.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineEnrichmentTableProcessor.java
index e19f2eb045c..51bd0b9b58b 100644
--- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineEnrichmentTableProcessor.java
+++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineEnrichmentTableProcessor.java
@@ -18,8 +18,9 @@
import java.util.Objects;
/**
- * The enrichment_table processor enriches logs using a static CSV file or GeoIP
- * database.
+ * The enrichment_table processor enriches logs using a static CSV file, GeoIP
+ * database, or reference table. Exactly one of file, geoip, or
+ * reference_table must be configured.
*/
@JsonPropertyOrder({
ObservabilityPipelineEnrichmentTableProcessor.JSON_PROPERTY_DISPLAY_NAME,
@@ -28,6 +29,7 @@
ObservabilityPipelineEnrichmentTableProcessor.JSON_PROPERTY_GEOIP,
ObservabilityPipelineEnrichmentTableProcessor.JSON_PROPERTY_ID,
ObservabilityPipelineEnrichmentTableProcessor.JSON_PROPERTY_INCLUDE,
+ ObservabilityPipelineEnrichmentTableProcessor.JSON_PROPERTY_REFERENCE_TABLE,
ObservabilityPipelineEnrichmentTableProcessor.JSON_PROPERTY_TARGET,
ObservabilityPipelineEnrichmentTableProcessor.JSON_PROPERTY_TYPE
})
@@ -53,6 +55,9 @@ public class ObservabilityPipelineEnrichmentTableProcessor {
public static final String JSON_PROPERTY_INCLUDE = "include";
private String include;
+ public static final String JSON_PROPERTY_REFERENCE_TABLE = "reference_table";
+ private ObservabilityPipelineEnrichmentTableReferenceTable referenceTable;
+
public static final String JSON_PROPERTY_TARGET = "target";
private String target;
@@ -205,6 +210,29 @@ public void setInclude(String include) {
this.include = include;
}
+ public ObservabilityPipelineEnrichmentTableProcessor referenceTable(
+ ObservabilityPipelineEnrichmentTableReferenceTable referenceTable) {
+ this.referenceTable = referenceTable;
+ this.unparsed |= referenceTable.unparsed;
+ return this;
+ }
+
+ /**
+ * Uses a Datadog reference table to enrich logs.
+ *
+ * @return referenceTable
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_REFERENCE_TABLE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public ObservabilityPipelineEnrichmentTableReferenceTable getReferenceTable() {
+ return referenceTable;
+ }
+
+ public void setReferenceTable(ObservabilityPipelineEnrichmentTableReferenceTable referenceTable) {
+ this.referenceTable = referenceTable;
+ }
+
public ObservabilityPipelineEnrichmentTableProcessor target(String target) {
this.target = target;
return this;
@@ -315,6 +343,8 @@ public boolean equals(Object o) {
&& Objects.equals(this.geoip, observabilityPipelineEnrichmentTableProcessor.geoip)
&& Objects.equals(this.id, observabilityPipelineEnrichmentTableProcessor.id)
&& Objects.equals(this.include, observabilityPipelineEnrichmentTableProcessor.include)
+ && Objects.equals(
+ this.referenceTable, observabilityPipelineEnrichmentTableProcessor.referenceTable)
&& Objects.equals(this.target, observabilityPipelineEnrichmentTableProcessor.target)
&& Objects.equals(this.type, observabilityPipelineEnrichmentTableProcessor.type)
&& Objects.equals(
@@ -325,7 +355,16 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
return Objects.hash(
- displayName, enabled, file, geoip, id, include, target, type, additionalProperties);
+ displayName,
+ enabled,
+ file,
+ geoip,
+ id,
+ include,
+ referenceTable,
+ target,
+ type,
+ additionalProperties);
}
@Override
@@ -338,6 +377,7 @@ public String toString() {
sb.append(" geoip: ").append(toIndentedString(geoip)).append("\n");
sb.append(" id: ").append(toIndentedString(id)).append("\n");
sb.append(" include: ").append(toIndentedString(include)).append("\n");
+ sb.append(" referenceTable: ").append(toIndentedString(referenceTable)).append("\n");
sb.append(" target: ").append(toIndentedString(target)).append("\n");
sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" additionalProperties: ")
diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineEnrichmentTableReferenceTable.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineEnrichmentTableReferenceTable.java
new file mode 100644
index 00000000000..c22c46c663a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineEnrichmentTableReferenceTable.java
@@ -0,0 +1,263 @@
+/*
+ * 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.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import org.openapitools.jackson.nullable.JsonNullable;
+
+/** Uses a Datadog reference table to enrich logs. */
+@JsonPropertyOrder({
+ ObservabilityPipelineEnrichmentTableReferenceTable.JSON_PROPERTY_APP_KEY_KEY,
+ ObservabilityPipelineEnrichmentTableReferenceTable.JSON_PROPERTY_COLUMNS,
+ ObservabilityPipelineEnrichmentTableReferenceTable.JSON_PROPERTY_KEY_FIELD,
+ ObservabilityPipelineEnrichmentTableReferenceTable.JSON_PROPERTY_TABLE_ID
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class ObservabilityPipelineEnrichmentTableReferenceTable {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_APP_KEY_KEY = "app_key_key";
+ private String appKeyKey = "PROCESSOR_ENRICHMENT_TABLES_APP_KEY";
+
+ public static final String JSON_PROPERTY_COLUMNS = "columns";
+ private JsonNullable> columns = JsonNullable.>undefined();
+
+ public static final String JSON_PROPERTY_KEY_FIELD = "key_field";
+ private String keyField;
+
+ public static final String JSON_PROPERTY_TABLE_ID = "table_id";
+ private String tableId;
+
+ public ObservabilityPipelineEnrichmentTableReferenceTable() {}
+
+ @JsonCreator
+ public ObservabilityPipelineEnrichmentTableReferenceTable(
+ @JsonProperty(required = true, value = JSON_PROPERTY_KEY_FIELD) String keyField,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TABLE_ID) String tableId) {
+ this.keyField = keyField;
+ this.tableId = tableId;
+ }
+
+ public ObservabilityPipelineEnrichmentTableReferenceTable appKeyKey(String appKeyKey) {
+ this.appKeyKey = appKeyKey;
+ return this;
+ }
+
+ /**
+ * Environment variable name containing the application key used for reference table
+ * authentication.
+ *
+ * @return appKeyKey
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_APP_KEY_KEY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAppKeyKey() {
+ return appKeyKey;
+ }
+
+ public void setAppKeyKey(String appKeyKey) {
+ this.appKeyKey = appKeyKey;
+ }
+
+ public ObservabilityPipelineEnrichmentTableReferenceTable columns(List columns) {
+ this.columns = JsonNullable.>of(columns);
+ return this;
+ }
+
+ public ObservabilityPipelineEnrichmentTableReferenceTable addColumnsItem(String columnsItem) {
+ if (this.columns == null || !this.columns.isPresent()) {
+ this.columns = JsonNullable.>of(new ArrayList<>());
+ }
+ try {
+ this.columns.get().add(columnsItem);
+ } catch (java.util.NoSuchElementException e) {
+ // this can never happen, as we make sure above that the value is present
+ }
+ return this;
+ }
+
+ /**
+ * List of column names to include from the reference table. If not provided, all columns are
+ * included.
+ *
+ * @return columns
+ */
+ @jakarta.annotation.Nullable
+ @JsonIgnore
+ public List getColumns() {
+ return columns.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_COLUMNS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public JsonNullable> getColumns_JsonNullable() {
+ return columns;
+ }
+
+ @JsonProperty(JSON_PROPERTY_COLUMNS)
+ public void setColumns_JsonNullable(JsonNullable> columns) {
+ this.columns = columns;
+ }
+
+ public void setColumns(List columns) {
+ this.columns = JsonNullable.>of(columns);
+ }
+
+ public ObservabilityPipelineEnrichmentTableReferenceTable keyField(String keyField) {
+ this.keyField = keyField;
+ return this;
+ }
+
+ /**
+ * Path to the field in the log event to match against the reference table.
+ *
+ * @return keyField
+ */
+ @JsonProperty(JSON_PROPERTY_KEY_FIELD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getKeyField() {
+ return keyField;
+ }
+
+ public void setKeyField(String keyField) {
+ this.keyField = keyField;
+ }
+
+ public ObservabilityPipelineEnrichmentTableReferenceTable tableId(String tableId) {
+ this.tableId = tableId;
+ return this;
+ }
+
+ /**
+ * The unique identifier of the reference table.
+ *
+ * @return tableId
+ */
+ @JsonProperty(JSON_PROPERTY_TABLE_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getTableId() {
+ return tableId;
+ }
+
+ public void setTableId(String tableId) {
+ this.tableId = tableId;
+ }
+
+ /**
+ * 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 ObservabilityPipelineEnrichmentTableReferenceTable
+ */
+ @JsonAnySetter
+ public ObservabilityPipelineEnrichmentTableReferenceTable 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 ObservabilityPipelineEnrichmentTableReferenceTable object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ObservabilityPipelineEnrichmentTableReferenceTable
+ observabilityPipelineEnrichmentTableReferenceTable =
+ (ObservabilityPipelineEnrichmentTableReferenceTable) o;
+ return Objects.equals(
+ this.appKeyKey, observabilityPipelineEnrichmentTableReferenceTable.appKeyKey)
+ && Objects.equals(this.columns, observabilityPipelineEnrichmentTableReferenceTable.columns)
+ && Objects.equals(
+ this.keyField, observabilityPipelineEnrichmentTableReferenceTable.keyField)
+ && Objects.equals(this.tableId, observabilityPipelineEnrichmentTableReferenceTable.tableId)
+ && Objects.equals(
+ this.additionalProperties,
+ observabilityPipelineEnrichmentTableReferenceTable.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(appKeyKey, columns, keyField, tableId, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ObservabilityPipelineEnrichmentTableReferenceTable {\n");
+ sb.append(" appKeyKey: ").append(toIndentedString(appKeyKey)).append("\n");
+ sb.append(" columns: ").append(toIndentedString(columns)).append("\n");
+ sb.append(" keyField: ").append(toIndentedString(keyField)).append("\n");
+ sb.append(" tableId: ").append(toIndentedString(tableId)).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 ");
+ }
+}