Skip to content

Commit 5dfd254

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 5e3e012 of spec repo
1 parent fb48d9e commit 5dfd254

7 files changed

Lines changed: 257 additions & 1 deletion

.generator/schemas/v2/openapi.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75613,12 +75613,15 @@ components:
7561375613
description: |-
7561475614
If `true`, Splunk tries to extract timestamps from incoming log events.
7561575615
If `false`, Splunk assigns the time the event was received.
75616+
Only applies when `endpoint_target` is `event`; cannot be `true` when `endpoint_target` is `raw`.
7561675617
example: true
7561775618
type: boolean
7561875619
buffer:
7561975620
$ref: "#/components/schemas/ObservabilityPipelineBufferOptions"
7562075621
encoding:
7562175622
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationEncoding"
75623+
endpoint_target:
75624+
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationEndpointTarget"
7562275625
endpoint_url_key:
7562375626
description: Name of the environment variable or secret that holds the Splunk HEC endpoint URL.
7562475627
example: SPLUNK_HEC_ENDPOINT_URL
@@ -75673,6 +75676,16 @@ components:
7567375676
x-enum-varnames:
7567475677
- JSON
7567575678
- RAW_MESSAGE
75679+
ObservabilityPipelineSplunkHecDestinationEndpointTarget:
75680+
description: The Splunk HEC endpoint to send events to. Use `event` to send structured events to the `/event` endpoint, or `raw` to send the raw message to the `/raw` endpoint.
75681+
enum:
75682+
- event
75683+
- raw
75684+
example: event
75685+
type: string
75686+
x-enum-varnames:
75687+
- EVENT
75688+
- RAW
7567675689
ObservabilityPipelineSplunkHecDestinationTokenStrategy:
7567775690
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.
7567875691
enum:
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Validate an observability pipeline with Splunk HEC destination endpoint_target returns "OK"
2+
// response
3+
4+
import com.datadog.api.client.ApiClient;
5+
import com.datadog.api.client.ApiException;
6+
import com.datadog.api.client.v2.api.ObservabilityPipelinesApi;
7+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfig;
8+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem;
9+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorGroup;
10+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorItem;
11+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigSourceItem;
12+
import com.datadog.api.client.v2.model.ObservabilityPipelineDataAttributes;
13+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSource;
14+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSourceType;
15+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessor;
16+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessorType;
17+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpec;
18+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData;
19+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecDestination;
20+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecDestinationEndpointTarget;
21+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecDestinationType;
22+
import com.datadog.api.client.v2.model.ValidationResponse;
23+
import java.util.Collections;
24+
25+
public class Example {
26+
public static void main(String[] args) {
27+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
28+
ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient);
29+
30+
ObservabilityPipelineSpec body =
31+
new ObservabilityPipelineSpec()
32+
.data(
33+
new ObservabilityPipelineSpecData()
34+
.attributes(
35+
new ObservabilityPipelineDataAttributes()
36+
.config(
37+
new ObservabilityPipelineConfig()
38+
.destinations(
39+
Collections.singletonList(
40+
new ObservabilityPipelineConfigDestinationItem(
41+
new ObservabilityPipelineSplunkHecDestination()
42+
.id("splunk-hec-destination")
43+
.inputs(
44+
Collections.singletonList(
45+
"my-processor-group"))
46+
.type(
47+
ObservabilityPipelineSplunkHecDestinationType
48+
.SPLUNK_HEC)
49+
.tokenKey("SPLUNK_HEC_TOKEN")
50+
.endpointTarget(
51+
ObservabilityPipelineSplunkHecDestinationEndpointTarget
52+
.RAW))))
53+
.processorGroups(
54+
Collections.singletonList(
55+
new ObservabilityPipelineConfigProcessorGroup()
56+
.enabled(true)
57+
.id("my-processor-group")
58+
.include("service:my-service")
59+
.inputs(
60+
Collections.singletonList(
61+
"datadog-agent-source"))
62+
.processors(
63+
Collections.singletonList(
64+
new ObservabilityPipelineConfigProcessorItem(
65+
new ObservabilityPipelineFilterProcessor()
66+
.enabled(true)
67+
.id("filter-processor")
68+
.include("status:error")
69+
.type(
70+
ObservabilityPipelineFilterProcessorType
71+
.FILTER))))))
72+
.sources(
73+
Collections.singletonList(
74+
new ObservabilityPipelineConfigSourceItem(
75+
new ObservabilityPipelineDatadogAgentSource()
76+
.id("datadog-agent-source")
77+
.type(
78+
ObservabilityPipelineDatadogAgentSourceType
79+
.DATADOG_AGENT)))))
80+
.name("Pipeline with Splunk HEC endpoint_target"))
81+
.type("pipelines"));
82+
83+
try {
84+
ValidationResponse result = apiInstance.validatePipeline(body);
85+
System.out.println(result);
86+
} catch (ApiException e) {
87+
System.err.println("Exception when calling ObservabilityPipelinesApi#validatePipeline");
88+
System.err.println("Status code: " + e.getCode());
89+
System.err.println("Reason: " + e.getResponseBody());
90+
System.err.println("Response headers: " + e.getResponseHeaders());
91+
e.printStackTrace();
92+
}
93+
}
94+
}

src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineSplunkHecDestination.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_AUTO_EXTRACT_TIMESTAMP,
3030
ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_BUFFER,
3131
ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_ENCODING,
32+
ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_ENDPOINT_TARGET,
3233
ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_ENDPOINT_URL_KEY,
3334
ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_ID,
3435
ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_INDEX,
@@ -52,6 +53,9 @@ public class ObservabilityPipelineSplunkHecDestination {
5253
public static final String JSON_PROPERTY_ENCODING = "encoding";
5354
private ObservabilityPipelineSplunkHecDestinationEncoding encoding;
5455

56+
public static final String JSON_PROPERTY_ENDPOINT_TARGET = "endpoint_target";
57+
private ObservabilityPipelineSplunkHecDestinationEndpointTarget endpointTarget;
58+
5559
public static final String JSON_PROPERTY_ENDPOINT_URL_KEY = "endpoint_url_key";
5660
private String endpointUrlKey;
5761

@@ -102,7 +106,9 @@ public ObservabilityPipelineSplunkHecDestination autoExtractTimestamp(
102106

103107
/**
104108
* If <code>true</code>, Splunk tries to extract timestamps from incoming log events. If <code>
105-
* false</code>, Splunk assigns the time the event was received.
109+
* false</code>, Splunk assigns the time the event was received. Only applies when <code>
110+
* endpoint_target</code> is <code>event</code>; cannot be <code>true</code> when <code>
111+
* endpoint_target</code> is <code>raw</code>.
106112
*
107113
* @return autoExtractTimestamp
108114
*/
@@ -169,6 +175,35 @@ public void setEncoding(ObservabilityPipelineSplunkHecDestinationEncoding encodi
169175
this.encoding = encoding;
170176
}
171177

178+
public ObservabilityPipelineSplunkHecDestination endpointTarget(
179+
ObservabilityPipelineSplunkHecDestinationEndpointTarget endpointTarget) {
180+
this.endpointTarget = endpointTarget;
181+
this.unparsed |= !endpointTarget.isValid();
182+
return this;
183+
}
184+
185+
/**
186+
* The Splunk HEC endpoint to send events to. Use <code>event</code> to send structured events to
187+
* the <code>/event</code> endpoint, or <code>raw</code> to send the raw message to the <code>/raw
188+
* </code> endpoint.
189+
*
190+
* @return endpointTarget
191+
*/
192+
@jakarta.annotation.Nullable
193+
@JsonProperty(JSON_PROPERTY_ENDPOINT_TARGET)
194+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
195+
public ObservabilityPipelineSplunkHecDestinationEndpointTarget getEndpointTarget() {
196+
return endpointTarget;
197+
}
198+
199+
public void setEndpointTarget(
200+
ObservabilityPipelineSplunkHecDestinationEndpointTarget endpointTarget) {
201+
if (!endpointTarget.isValid()) {
202+
this.unparsed = true;
203+
}
204+
this.endpointTarget = endpointTarget;
205+
}
206+
172207
public ObservabilityPipelineSplunkHecDestination endpointUrlKey(String endpointUrlKey) {
173208
this.endpointUrlKey = endpointUrlKey;
174209
return this;
@@ -445,6 +480,8 @@ public boolean equals(Object o) {
445480
observabilityPipelineSplunkHecDestination.autoExtractTimestamp)
446481
&& Objects.equals(this.buffer, observabilityPipelineSplunkHecDestination.buffer)
447482
&& Objects.equals(this.encoding, observabilityPipelineSplunkHecDestination.encoding)
483+
&& Objects.equals(
484+
this.endpointTarget, observabilityPipelineSplunkHecDestination.endpointTarget)
448485
&& Objects.equals(
449486
this.endpointUrlKey, observabilityPipelineSplunkHecDestination.endpointUrlKey)
450487
&& Objects.equals(this.id, observabilityPipelineSplunkHecDestination.id)
@@ -468,6 +505,7 @@ public int hashCode() {
468505
autoExtractTimestamp,
469506
buffer,
470507
encoding,
508+
endpointTarget,
471509
endpointUrlKey,
472510
id,
473511
index,
@@ -489,6 +527,7 @@ public String toString() {
489527
.append("\n");
490528
sb.append(" buffer: ").append(toIndentedString(buffer)).append("\n");
491529
sb.append(" encoding: ").append(toIndentedString(encoding)).append("\n");
530+
sb.append(" endpointTarget: ").append(toIndentedString(endpointTarget)).append("\n");
492531
sb.append(" endpointUrlKey: ").append(toIndentedString(endpointUrlKey)).append("\n");
493532
sb.append(" id: ").append(toIndentedString(id)).append("\n");
494533
sb.append(" index: ").append(toIndentedString(index)).append("\n");
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2019-Present Datadog, Inc.
5+
*/
6+
7+
package com.datadog.api.client.v2.model;
8+
9+
import com.datadog.api.client.ModelEnum;
10+
import com.fasterxml.jackson.annotation.JsonCreator;
11+
import com.fasterxml.jackson.core.JsonGenerator;
12+
import com.fasterxml.jackson.core.JsonProcessingException;
13+
import com.fasterxml.jackson.databind.SerializerProvider;
14+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
15+
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
16+
import java.io.IOException;
17+
import java.util.Arrays;
18+
import java.util.HashSet;
19+
import java.util.Set;
20+
21+
/**
22+
* The Splunk HEC endpoint to send events to. Use <code>event</code> to send structured events to
23+
* the <code>/event</code> endpoint, or <code>raw</code> to send the raw message to the <code>/raw
24+
* </code> endpoint.
25+
*/
26+
@JsonSerialize(
27+
using =
28+
ObservabilityPipelineSplunkHecDestinationEndpointTarget
29+
.ObservabilityPipelineSplunkHecDestinationEndpointTargetSerializer.class)
30+
public class ObservabilityPipelineSplunkHecDestinationEndpointTarget extends ModelEnum<String> {
31+
32+
private static final Set<String> allowedValues =
33+
new HashSet<String>(Arrays.asList("event", "raw"));
34+
35+
public static final ObservabilityPipelineSplunkHecDestinationEndpointTarget EVENT =
36+
new ObservabilityPipelineSplunkHecDestinationEndpointTarget("event");
37+
public static final ObservabilityPipelineSplunkHecDestinationEndpointTarget RAW =
38+
new ObservabilityPipelineSplunkHecDestinationEndpointTarget("raw");
39+
40+
ObservabilityPipelineSplunkHecDestinationEndpointTarget(String value) {
41+
super(value, allowedValues);
42+
}
43+
44+
public static class ObservabilityPipelineSplunkHecDestinationEndpointTargetSerializer
45+
extends StdSerializer<ObservabilityPipelineSplunkHecDestinationEndpointTarget> {
46+
public ObservabilityPipelineSplunkHecDestinationEndpointTargetSerializer(
47+
Class<ObservabilityPipelineSplunkHecDestinationEndpointTarget> t) {
48+
super(t);
49+
}
50+
51+
public ObservabilityPipelineSplunkHecDestinationEndpointTargetSerializer() {
52+
this(null);
53+
}
54+
55+
@Override
56+
public void serialize(
57+
ObservabilityPipelineSplunkHecDestinationEndpointTarget value,
58+
JsonGenerator jgen,
59+
SerializerProvider provider)
60+
throws IOException, JsonProcessingException {
61+
jgen.writeObject(value.value);
62+
}
63+
}
64+
65+
@JsonCreator
66+
public static ObservabilityPipelineSplunkHecDestinationEndpointTarget fromValue(String value) {
67+
return new ObservabilityPipelineSplunkHecDestinationEndpointTarget(value);
68+
}
69+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-08-03T12:48:21.947Z
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
[
2+
{
3+
"httpRequest": {
4+
"body": {
5+
"type": "JSON",
6+
"json": "{\"data\":{\"attributes\":{\"config\":{\"destinations\":[{\"endpoint_target\":\"raw\",\"id\":\"splunk-hec-destination\",\"inputs\":[\"my-processor-group\"],\"token_key\":\"SPLUNK_HEC_TOKEN\",\"type\":\"splunk_hec\"}],\"processor_groups\":[{\"enabled\":true,\"id\":\"my-processor-group\",\"include\":\"service:my-service\",\"inputs\":[\"datadog-agent-source\"],\"processors\":[{\"enabled\":true,\"id\":\"filter-processor\",\"include\":\"status:error\",\"type\":\"filter\"}]}],\"sources\":[{\"id\":\"datadog-agent-source\",\"type\":\"datadog_agent\"}]},\"name\":\"Pipeline with Splunk HEC endpoint_target\"},\"type\":\"pipelines\"}}"
7+
},
8+
"headers": {},
9+
"method": "POST",
10+
"path": "/api/v2/obs-pipelines/pipelines/validate",
11+
"keepAlive": false,
12+
"secure": true
13+
},
14+
"httpResponse": {
15+
"body": "{\"errors\":[]}\n",
16+
"headers": {
17+
"Content-Type": [
18+
"application/vnd.api+json"
19+
]
20+
},
21+
"statusCode": 200,
22+
"reasonPhrase": "OK"
23+
},
24+
"times": {
25+
"remainingTimes": 1
26+
},
27+
"timeToLive": {
28+
"unlimited": true
29+
},
30+
"id": "73db9f94-ddcd-4bde-3cd5-7de25c4c7329"
31+
}
32+
]

src/test/resources/com/datadog/api/client/v2/api/observability_pipelines.feature

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,14 @@ Feature: Observability Pipelines
239239
Then the response status is 200 OK
240240
And the response "errors" has length 0
241241

242+
@team:DataDog/observability-pipelines
243+
Scenario: Validate an observability pipeline with Splunk HEC destination endpoint_target returns "OK" response
244+
Given new "ValidatePipeline" request
245+
And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "splunk-hec-destination", "inputs": ["my-processor-group"], "type": "splunk_hec", "token_key": "SPLUNK_HEC_TOKEN", "endpoint_target": "raw"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Pipeline with Splunk HEC endpoint_target"}, "type": "pipelines"}}
246+
When the request is sent
247+
Then the response status is 200 OK
248+
And the response "errors" has length 0
249+
242250
@team:DataDog/observability-pipelines
243251
Scenario: Validate an observability pipeline with Splunk HEC destination token_strategy returns "OK" response
244252
Given new "ValidatePipeline" request

0 commit comments

Comments
 (0)