Skip to content

Commit b96c25f

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit de51f87 of spec repo
1 parent 8aec44e commit b96c25f

File tree

6 files changed

+177
-1
lines changed

6 files changed

+177
-1
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44644,6 +44644,11 @@ components:
4464444644
targets.
4464544645
example: service:my-service
4464644646
type: string
44647+
keep_unmatched:
44648+
description: Indicates whether to keep event which do not match any of the
44649+
mapping filters.
44650+
example: false
44651+
type: boolean
4464744652
mappings:
4464844653
description: A list of mapping rules to convert events to the OCSF format.
4464944654
items:
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
// Validate an observability pipeline with OCSF mapper keep_unmatched returns "OK" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.ObservabilityPipelinesApi;
6+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfig;
7+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem;
8+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorGroup;
9+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorItem;
10+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigSourceItem;
11+
import com.datadog.api.client.v2.model.ObservabilityPipelineDataAttributes;
12+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSource;
13+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSourceType;
14+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestination;
15+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestinationType;
16+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMapperProcessor;
17+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMapperProcessorMapping;
18+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMapperProcessorMappingMapping;
19+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMapperProcessorType;
20+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMappingLibrary;
21+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpec;
22+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData;
23+
import com.datadog.api.client.v2.model.ValidationResponse;
24+
import java.util.Collections;
25+
26+
public class Example {
27+
public static void main(String[] args) {
28+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
29+
ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient);
30+
31+
ObservabilityPipelineSpec body =
32+
new ObservabilityPipelineSpec()
33+
.data(
34+
new ObservabilityPipelineSpecData()
35+
.attributes(
36+
new ObservabilityPipelineDataAttributes()
37+
.config(
38+
new ObservabilityPipelineConfig()
39+
.destinations(
40+
Collections.singletonList(
41+
new ObservabilityPipelineConfigDestinationItem(
42+
new ObservabilityPipelineDatadogLogsDestination()
43+
.id("datadog-logs-destination")
44+
.inputs(
45+
Collections.singletonList(
46+
"my-processor-group"))
47+
.type(
48+
ObservabilityPipelineDatadogLogsDestinationType
49+
.DATADOG_LOGS))))
50+
.processorGroups(
51+
Collections.singletonList(
52+
new ObservabilityPipelineConfigProcessorGroup()
53+
.enabled(true)
54+
.id("my-processor-group")
55+
.include("service:my-service")
56+
.inputs(
57+
Collections.singletonList(
58+
"datadog-agent-source"))
59+
.processors(
60+
Collections.singletonList(
61+
new ObservabilityPipelineConfigProcessorItem(
62+
new ObservabilityPipelineOcsfMapperProcessor()
63+
.enabled(true)
64+
.id("ocsf-mapper-processor")
65+
.include("service:my-service")
66+
.type(
67+
ObservabilityPipelineOcsfMapperProcessorType
68+
.OCSF_MAPPER)
69+
.keepUnmatched(true)
70+
.mappings(
71+
Collections.singletonList(
72+
new ObservabilityPipelineOcsfMapperProcessorMapping()
73+
.include(
74+
"source:cloudtrail")
75+
.mapping(
76+
new ObservabilityPipelineOcsfMapperProcessorMappingMapping(
77+
ObservabilityPipelineOcsfMappingLibrary
78+
.CLOUDTRAIL_ACCOUNT_CHANGE)))))))))
79+
.sources(
80+
Collections.singletonList(
81+
new ObservabilityPipelineConfigSourceItem(
82+
new ObservabilityPipelineDatadogAgentSource()
83+
.id("datadog-agent-source")
84+
.type(
85+
ObservabilityPipelineDatadogAgentSourceType
86+
.DATADOG_AGENT)))))
87+
.name("OCSF Mapper Keep Unmatched Pipeline"))
88+
.type("pipelines"));
89+
90+
try {
91+
ValidationResponse result = apiInstance.validatePipeline(body);
92+
System.out.println(result);
93+
} catch (ApiException e) {
94+
System.err.println("Exception when calling ObservabilityPipelinesApi#validatePipeline");
95+
System.err.println("Status code: " + e.getCode());
96+
System.err.println("Reason: " + e.getResponseBody());
97+
System.err.println("Response headers: " + e.getResponseHeaders());
98+
e.printStackTrace();
99+
}
100+
}
101+
}

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

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
ObservabilityPipelineOcsfMapperProcessor.JSON_PROPERTY_ENABLED,
3131
ObservabilityPipelineOcsfMapperProcessor.JSON_PROPERTY_ID,
3232
ObservabilityPipelineOcsfMapperProcessor.JSON_PROPERTY_INCLUDE,
33+
ObservabilityPipelineOcsfMapperProcessor.JSON_PROPERTY_KEEP_UNMATCHED,
3334
ObservabilityPipelineOcsfMapperProcessor.JSON_PROPERTY_MAPPINGS,
3435
ObservabilityPipelineOcsfMapperProcessor.JSON_PROPERTY_TYPE
3536
})
@@ -49,6 +50,9 @@ public class ObservabilityPipelineOcsfMapperProcessor {
4950
public static final String JSON_PROPERTY_INCLUDE = "include";
5051
private String include;
5152

53+
public static final String JSON_PROPERTY_KEEP_UNMATCHED = "keep_unmatched";
54+
private Boolean keepUnmatched;
55+
5256
public static final String JSON_PROPERTY_MAPPINGS = "mappings";
5357
private List<ObservabilityPipelineOcsfMapperProcessorMapping> mappings = new ArrayList<>();
5458

@@ -157,6 +161,27 @@ public void setInclude(String include) {
157161
this.include = include;
158162
}
159163

164+
public ObservabilityPipelineOcsfMapperProcessor keepUnmatched(Boolean keepUnmatched) {
165+
this.keepUnmatched = keepUnmatched;
166+
return this;
167+
}
168+
169+
/**
170+
* Indicates whether to keep event which do not match any of the mapping filters.
171+
*
172+
* @return keepUnmatched
173+
*/
174+
@jakarta.annotation.Nullable
175+
@JsonProperty(JSON_PROPERTY_KEEP_UNMATCHED)
176+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
177+
public Boolean getKeepUnmatched() {
178+
return keepUnmatched;
179+
}
180+
181+
public void setKeepUnmatched(Boolean keepUnmatched) {
182+
this.keepUnmatched = keepUnmatched;
183+
}
184+
160185
public ObservabilityPipelineOcsfMapperProcessor mappings(
161186
List<ObservabilityPipelineOcsfMapperProcessorMapping> mappings) {
162187
this.mappings = mappings;
@@ -274,6 +299,8 @@ public boolean equals(Object o) {
274299
&& Objects.equals(this.enabled, observabilityPipelineOcsfMapperProcessor.enabled)
275300
&& Objects.equals(this.id, observabilityPipelineOcsfMapperProcessor.id)
276301
&& Objects.equals(this.include, observabilityPipelineOcsfMapperProcessor.include)
302+
&& Objects.equals(
303+
this.keepUnmatched, observabilityPipelineOcsfMapperProcessor.keepUnmatched)
277304
&& Objects.equals(this.mappings, observabilityPipelineOcsfMapperProcessor.mappings)
278305
&& Objects.equals(this.type, observabilityPipelineOcsfMapperProcessor.type)
279306
&& Objects.equals(
@@ -283,7 +310,8 @@ public boolean equals(Object o) {
283310

284311
@Override
285312
public int hashCode() {
286-
return Objects.hash(displayName, enabled, id, include, mappings, type, additionalProperties);
313+
return Objects.hash(
314+
displayName, enabled, id, include, keepUnmatched, mappings, type, additionalProperties);
287315
}
288316

289317
@Override
@@ -294,6 +322,7 @@ public String toString() {
294322
sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
295323
sb.append(" id: ").append(toIndentedString(id)).append("\n");
296324
sb.append(" include: ").append(toIndentedString(include)).append("\n");
325+
sb.append(" keepUnmatched: ").append(toIndentedString(keepUnmatched)).append("\n");
297326
sb.append(" mappings: ").append(toIndentedString(mappings)).append("\n");
298327
sb.append(" type: ").append(toIndentedString(type)).append("\n");
299328
sb.append(" additionalProperties: ")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-03-16T13:02:49.264Z
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\":[{\"id\":\"datadog-logs-destination\",\"inputs\":[\"my-processor-group\"],\"type\":\"datadog_logs\"}],\"processor_groups\":[{\"enabled\":true,\"id\":\"my-processor-group\",\"include\":\"service:my-service\",\"inputs\":[\"datadog-agent-source\"],\"processors\":[{\"enabled\":true,\"id\":\"ocsf-mapper-processor\",\"include\":\"service:my-service\",\"keep_unmatched\":true,\"mappings\":[{\"include\":\"source:cloudtrail\",\"mapping\":\"CloudTrail Account Change\"}],\"type\":\"ocsf_mapper\"}]}],\"sources\":[{\"id\":\"datadog-agent-source\",\"type\":\"datadog_agent\"}]},\"name\":\"OCSF Mapper Keep Unmatched Pipeline\"},\"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": "f5433095-b669-5a37-c1e8-c7de43d95c58"
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
@@ -191,6 +191,14 @@ Feature: Observability Pipelines
191191
When the request is sent
192192
Then the response status is 400 Bad Request
193193

194+
@team:DataDog/observability-pipelines
195+
Scenario: Validate an observability pipeline with OCSF mapper keep_unmatched returns "OK" response
196+
Given new "ValidatePipeline" request
197+
And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "ocsf-mapper-processor", "include": "service:my-service", "type": "ocsf_mapper", "keep_unmatched": true, "mappings": [{"include": "source:cloudtrail", "mapping": "CloudTrail Account Change"}]}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "OCSF Mapper Keep Unmatched Pipeline"}, "type": "pipelines"}}
198+
When the request is sent
199+
Then the response status is 200 OK
200+
And the response "errors" has length 0
201+
194202
@team:DataDog/observability-pipelines
195203
Scenario: Validate an observability pipeline with OCSF mapper library mapping returns "OK" response
196204
Given new "ValidatePipeline" request

0 commit comments

Comments
 (0)