Skip to content

Commit f9c0337

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Adding all Observability Pipeline new hec_token related features into the api (#3212)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 57818ec commit f9c0337

20 files changed

Lines changed: 838 additions & 7 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44467,6 +44467,40 @@ components:
4446744467
type: string
4446844468
x-enum-varnames:
4446944469
- ELASTICSEARCH
44470+
ObservabilityPipelineEnrichmentTableFieldEventLookup:
44471+
description: Looks up a value from a field path in the log event.
44472+
properties:
44473+
event:
44474+
description: The path to the field in the log event to use as the lookup key.
44475+
example: log.user.id
44476+
type: string
44477+
required:
44478+
- event
44479+
type: object
44480+
ObservabilityPipelineEnrichmentTableFieldSecretLookup:
44481+
description: Looks up a value stored as a pipeline secret.
44482+
properties:
44483+
secret:
44484+
description: The name of the secret containing the lookup key value.
44485+
example: MY_LOOKUP_SECRET
44486+
type: string
44487+
required:
44488+
- secret
44489+
type: object
44490+
ObservabilityPipelineEnrichmentTableFieldStringPath:
44491+
description: A plain field path in the log event, used as the lookup key.
44492+
example: log.user.id
44493+
type: string
44494+
ObservabilityPipelineEnrichmentTableFieldVrlLookup:
44495+
description: Evaluates a VRL expression to produce the lookup key.
44496+
properties:
44497+
vrl:
44498+
description: A VRL expression that returns the value to use as the lookup key.
44499+
example: .log.user.id
44500+
type: string
44501+
required:
44502+
- vrl
44503+
type: object
4447044504
ObservabilityPipelineEnrichmentTableFile:
4447144505
description: Defines a static enrichment table loaded from a CSV file.
4447244506
properties:
@@ -44517,6 +44551,16 @@ components:
4451744551
type: string
4451844552
x-enum-varnames:
4451944553
- CSV
44554+
ObservabilityPipelineEnrichmentTableFileKeyItemField:
44555+
description: |-
44556+
Specifies the source of the key value used for enrichment table lookups.
44557+
Can be a plain field path string or an object specifying `event`, `vrl`, or `secret`.
44558+
example: log.user.id
44559+
oneOf:
44560+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldStringPath"
44561+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldEventLookup"
44562+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldVrlLookup"
44563+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldSecretLookup"
4452044564
ObservabilityPipelineEnrichmentTableFileKeyItems:
4452144565
description: Defines how to map log fields to enrichment table columns during lookups.
4452244566
properties:
@@ -44527,9 +44571,7 @@ components:
4452744571
comparison:
4452844572
$ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemsComparison"
4452944573
field:
44530-
description: The `items` `field`.
44531-
example: log.user.id
44532-
type: string
44574+
$ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemField"
4453344575
required:
4453444576
- column
4453544577
- comparison
@@ -47550,6 +47592,8 @@ components:
4755047592
description: Name of the environment variable or secret that holds the Splunk HEC token.
4755147593
example: SPLUNK_HEC_TOKEN
4755247594
type: string
47595+
token_strategy:
47596+
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationTokenStrategy"
4755347597
type:
4755447598
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationType"
4755547599
required:
@@ -47568,6 +47612,16 @@ components:
4756847612
x-enum-varnames:
4756947613
- JSON
4757047614
- RAW_MESSAGE
47615+
ObservabilityPipelineSplunkHecDestinationTokenStrategy:
47616+
description: Controls how the Splunk HEC token is supplied. Use `custom` to provide a token with `token_key`, or `from_source` to forward the token received from an upstream Splunk HEC source.
47617+
enum:
47618+
- custom
47619+
- from_source
47620+
example: custom
47621+
type: string
47622+
x-enum-varnames:
47623+
- CUSTOM
47624+
- FROM_SOURCE
4757147625
ObservabilityPipelineSplunkHecDestinationType:
4757247626
default: splunk_hec
4757347627
description: The destination type. Always `splunk_hec`.
@@ -47591,6 +47645,12 @@ components:
4759147645
description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components).
4759247646
example: splunk-hec-source
4759347647
type: string
47648+
store_hec_token:
47649+
description: |-
47650+
When `true`, the Splunk HEC token from the incoming request is stored in the event metadata.
47651+
This allows downstream components to forward the token to other Splunk HEC destinations.
47652+
example: true
47653+
type: boolean
4759447654
tls:
4759547655
$ref: "#/components/schemas/ObservabilityPipelineTls"
4759647656
type:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-04-08T15:11:59.762Z

cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-Splunk-HEC-destination-token-strategy-returns-OK-response.yml

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-04-08T15:11:59.370Z

cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-Splunk-HEC-source-store-hec-token-returns-OK-response.yml

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-04-09T11:54:29.220Z

cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-enrichment-table-secret-field-lookup-returns-OK-response.yml

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Validate an observability pipeline with Splunk HEC destination token_strategy returns "OK" response
2+
3+
require "datadog_api_client"
4+
api_instance = DatadogAPIClient::V2::ObservabilityPipelinesAPI.new
5+
6+
body = DatadogAPIClient::V2::ObservabilityPipelineSpec.new({
7+
data: DatadogAPIClient::V2::ObservabilityPipelineSpecData.new({
8+
attributes: DatadogAPIClient::V2::ObservabilityPipelineDataAttributes.new({
9+
config: DatadogAPIClient::V2::ObservabilityPipelineConfig.new({
10+
destinations: [
11+
DatadogAPIClient::V2::ObservabilityPipelineSplunkHecDestination.new({
12+
id: "splunk-hec-destination",
13+
inputs: [
14+
"my-processor-group",
15+
],
16+
type: DatadogAPIClient::V2::ObservabilityPipelineSplunkHecDestinationType::SPLUNK_HEC,
17+
token_key: "SPLUNK_HEC_TOKEN",
18+
token_strategy: DatadogAPIClient::V2::ObservabilityPipelineSplunkHecDestinationTokenStrategy::CUSTOM,
19+
}),
20+
],
21+
processor_groups: [
22+
DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({
23+
enabled: true,
24+
id: "my-processor-group",
25+
include: "service:my-service",
26+
inputs: [
27+
"datadog-agent-source",
28+
],
29+
processors: [
30+
DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({
31+
enabled: true,
32+
id: "filter-processor",
33+
include: "status:error",
34+
type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER,
35+
}),
36+
],
37+
}),
38+
],
39+
sources: [
40+
DatadogAPIClient::V2::ObservabilityPipelineDatadogAgentSource.new({
41+
id: "datadog-agent-source",
42+
type: DatadogAPIClient::V2::ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
43+
}),
44+
],
45+
}),
46+
name: "Pipeline with Splunk HEC token_strategy",
47+
}),
48+
type: "pipelines",
49+
}),
50+
})
51+
p api_instance.validate_pipeline(body)
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Validate an observability pipeline with Splunk HEC source store_hec_token returns "OK" response
2+
3+
require "datadog_api_client"
4+
api_instance = DatadogAPIClient::V2::ObservabilityPipelinesAPI.new
5+
6+
body = DatadogAPIClient::V2::ObservabilityPipelineSpec.new({
7+
data: DatadogAPIClient::V2::ObservabilityPipelineSpecData.new({
8+
attributes: DatadogAPIClient::V2::ObservabilityPipelineDataAttributes.new({
9+
config: DatadogAPIClient::V2::ObservabilityPipelineConfig.new({
10+
destinations: [
11+
DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestination.new({
12+
id: "datadog-logs-destination",
13+
inputs: [
14+
"my-processor-group",
15+
],
16+
type: DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
17+
}),
18+
],
19+
processor_groups: [
20+
DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({
21+
enabled: true,
22+
id: "my-processor-group",
23+
include: "service:my-service",
24+
inputs: [
25+
"splunk-hec-source",
26+
],
27+
processors: [
28+
DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({
29+
enabled: true,
30+
id: "filter-processor",
31+
include: "status:error",
32+
type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER,
33+
}),
34+
],
35+
}),
36+
],
37+
sources: [
38+
DatadogAPIClient::V2::ObservabilityPipelineSplunkHecSource.new({
39+
id: "splunk-hec-source",
40+
type: DatadogAPIClient::V2::ObservabilityPipelineSplunkHecSourceType::SPLUNK_HEC,
41+
store_hec_token: true,
42+
}),
43+
],
44+
}),
45+
name: "Pipeline with Splunk HEC store_hec_token",
46+
}),
47+
type: "pipelines",
48+
}),
49+
})
50+
p api_instance.validate_pipeline(body)
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Validate an observability pipeline with enrichment table secret field lookup returns "OK" response
2+
3+
require "datadog_api_client"
4+
api_instance = DatadogAPIClient::V2::ObservabilityPipelinesAPI.new
5+
6+
body = DatadogAPIClient::V2::ObservabilityPipelineSpec.new({
7+
data: DatadogAPIClient::V2::ObservabilityPipelineSpecData.new({
8+
attributes: DatadogAPIClient::V2::ObservabilityPipelineDataAttributes.new({
9+
config: DatadogAPIClient::V2::ObservabilityPipelineConfig.new({
10+
destinations: [
11+
DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestination.new({
12+
id: "datadog-logs-destination",
13+
inputs: [
14+
"my-processor-group",
15+
],
16+
type: DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS,
17+
}),
18+
],
19+
processor_groups: [
20+
DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({
21+
enabled: true,
22+
id: "my-processor-group",
23+
include: "service:my-service",
24+
inputs: [
25+
"datadog-agent-source",
26+
],
27+
processors: [
28+
DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableProcessor.new({
29+
enabled: true,
30+
id: "enrichment-processor",
31+
include: "*",
32+
target: "enriched",
33+
type: DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableProcessorType::ENRICHMENT_TABLE,
34+
file: DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFile.new({
35+
encoding: DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFileEncoding.new({
36+
delimiter: ",",
37+
type: DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFileEncodingType::CSV,
38+
includes_headers: true,
39+
}),
40+
key: [
41+
DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFileKeyItems.new({
42+
column: "user_id",
43+
comparison: DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFileKeyItemsComparison::EQUALS,
44+
field: DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFieldSecretLookup.new({
45+
secret: "LOOKUP_KEY_SECRET",
46+
}),
47+
}),
48+
],
49+
path: "/etc/enrichment/lookup.csv",
50+
schema: [
51+
DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFileSchemaItems.new({
52+
column: "user_id",
53+
type: DatadogAPIClient::V2::ObservabilityPipelineEnrichmentTableFileSchemaItemsType::STRING,
54+
}),
55+
],
56+
}),
57+
}),
58+
],
59+
}),
60+
],
61+
sources: [
62+
DatadogAPIClient::V2::ObservabilityPipelineDatadogAgentSource.new({
63+
id: "datadog-agent-source",
64+
type: DatadogAPIClient::V2::ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT,
65+
}),
66+
],
67+
}),
68+
name: "Pipeline with Enrichment Table Secret Field Lookup",
69+
}),
70+
type: "pipelines",
71+
}),
72+
})
73+
p api_instance.validate_pipeline(body)

0 commit comments

Comments
 (0)