Skip to content

Commit e03f70b

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit bd3c75a of spec repo
1 parent 3e4f9e1 commit e03f70b

16 files changed

+1766
-4
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41139,6 +41139,7 @@ components:
4113941139
example: CloudTrail Account Change
4114041140
oneOf:
4114141141
- $ref: '#/components/schemas/ObservabilityPipelineOcsfMappingLibrary'
41142+
- $ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustom'
4114241143
ObservabilityPipelineOcsfMapperProcessorType:
4114341144
default: ocsf_mapper
4114441145
description: The processor type. The value should always be `ocsf_mapper`.
@@ -41148,6 +41149,116 @@ components:
4114841149
type: string
4114941150
x-enum-varnames:
4115041151
- OCSF_MAPPER
41152+
ObservabilityPipelineOcsfMappingCustom:
41153+
description: Custom OCSF mapping configuration for transforming logs.
41154+
properties:
41155+
mapping:
41156+
description: A list of field mapping rules for transforming log fields to
41157+
OCSF schema fields.
41158+
items:
41159+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomFieldMapping'
41160+
type: array
41161+
metadata:
41162+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomMetadata'
41163+
version:
41164+
description: The version of the custom mapping configuration.
41165+
example: 1
41166+
format: int64
41167+
type: integer
41168+
required:
41169+
- mapping
41170+
- metadata
41171+
- version
41172+
type: object
41173+
ObservabilityPipelineOcsfMappingCustomFieldMapping:
41174+
description: Defines a single field mapping rule for transforming a source field
41175+
to an OCSF destination field.
41176+
properties:
41177+
default:
41178+
description: The default value to use if the source field is missing or
41179+
empty.
41180+
example: ''
41181+
dest:
41182+
description: The destination OCSF field path.
41183+
example: device.type
41184+
type: string
41185+
lookup:
41186+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookup'
41187+
source:
41188+
description: The source field path from the log event.
41189+
example: host.type
41190+
sources:
41191+
description: Multiple source field paths for combined mapping.
41192+
example:
41193+
- field1
41194+
- field2
41195+
value:
41196+
description: A static value to use for the destination field.
41197+
example: static_value
41198+
required:
41199+
- dest
41200+
type: object
41201+
ObservabilityPipelineOcsfMappingCustomLookup:
41202+
description: Lookup table configuration for mapping source values to destination
41203+
values.
41204+
properties:
41205+
default:
41206+
description: The default value to use if no lookup match is found.
41207+
example: unknown
41208+
table:
41209+
description: A list of lookup table entries for value transformation.
41210+
items:
41211+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookupTableEntry'
41212+
type: array
41213+
type: object
41214+
ObservabilityPipelineOcsfMappingCustomLookupTableEntry:
41215+
description: A single entry in a lookup table for value transformation.
41216+
properties:
41217+
contains:
41218+
description: The substring to match in the source value.
41219+
example: Desktop
41220+
type: string
41221+
equals:
41222+
description: The exact value to match in the source.
41223+
example: desktop
41224+
equals_source:
41225+
description: The source field to match against.
41226+
example: device_type
41227+
type: string
41228+
matches:
41229+
description: A regex pattern to match in the source value.
41230+
example: ^Desktop.*
41231+
type: string
41232+
not_matches:
41233+
description: A regex pattern that must not match the source value.
41234+
example: ^Mobile.*
41235+
type: string
41236+
value:
41237+
description: The value to use when a match is found.
41238+
example: desktop
41239+
type: object
41240+
ObservabilityPipelineOcsfMappingCustomMetadata:
41241+
description: Metadata for the custom OCSF mapping.
41242+
properties:
41243+
class:
41244+
description: The OCSF event class name.
41245+
example: Device Inventory Info
41246+
type: string
41247+
profiles:
41248+
description: A list of OCSF profiles to apply.
41249+
example:
41250+
- container
41251+
items:
41252+
type: string
41253+
type: array
41254+
version:
41255+
description: The OCSF schema version.
41256+
example: 1.3.0
41257+
type: string
41258+
required:
41259+
- class
41260+
- version
41261+
type: object
4115141262
ObservabilityPipelineOcsfMappingLibrary:
4115241263
description: Predefined library mappings for common log formats.
4115341264
enum:
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
// Validate an observability pipeline with OCSF mapper custom mapping 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.ObservabilityPipelineOcsfMappingCustom;
21+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMappingCustomFieldMapping;
22+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMappingCustomLookup;
23+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMappingCustomLookupTableEntry;
24+
import com.datadog.api.client.v2.model.ObservabilityPipelineOcsfMappingCustomMetadata;
25+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpec;
26+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData;
27+
import com.datadog.api.client.v2.model.ValidationResponse;
28+
import java.util.Arrays;
29+
import java.util.Collections;
30+
31+
public class Example {
32+
public static void main(String[] args) {
33+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
34+
ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient);
35+
36+
ObservabilityPipelineSpec body =
37+
new ObservabilityPipelineSpec()
38+
.data(
39+
new ObservabilityPipelineSpecData()
40+
.attributes(
41+
new ObservabilityPipelineDataAttributes()
42+
.config(
43+
new ObservabilityPipelineConfig()
44+
.destinations(
45+
Collections.singletonList(
46+
new ObservabilityPipelineConfigDestinationItem(
47+
new ObservabilityPipelineDatadogLogsDestination()
48+
.id("datadog-logs-destination")
49+
.inputs(
50+
Collections.singletonList(
51+
"my-processor-group"))
52+
.type(
53+
ObservabilityPipelineDatadogLogsDestinationType
54+
.DATADOG_LOGS))))
55+
.processorGroups(
56+
Collections.singletonList(
57+
new ObservabilityPipelineConfigProcessorGroup()
58+
.enabled(true)
59+
.id("my-processor-group")
60+
.include("service:my-service")
61+
.inputs(
62+
Collections.singletonList(
63+
"datadog-agent-source"))
64+
.processors(
65+
Collections.singletonList(
66+
new ObservabilityPipelineConfigProcessorItem(
67+
new ObservabilityPipelineOcsfMapperProcessor()
68+
.enabled(true)
69+
.id("ocsf-mapper-processor")
70+
.include("service:my-service")
71+
.type(
72+
ObservabilityPipelineOcsfMapperProcessorType
73+
.OCSF_MAPPER)
74+
.mappings(
75+
Collections.singletonList(
76+
new ObservabilityPipelineOcsfMapperProcessorMapping()
77+
.include(
78+
"source:custom")
79+
.mapping(
80+
new ObservabilityPipelineOcsfMapperProcessorMappingMapping(
81+
new ObservabilityPipelineOcsfMappingCustom()
82+
.version(1L)
83+
.metadata(
84+
new ObservabilityPipelineOcsfMappingCustomMetadata()
85+
._class(
86+
"Device"
87+
+ " Inventory"
88+
+ " Info")
89+
.profiles(
90+
Collections
91+
.singletonList(
92+
"container"))
93+
.version(
94+
"1.3.0"))
95+
.mapping(
96+
Arrays
97+
.asList(
98+
new ObservabilityPipelineOcsfMappingCustomFieldMapping()
99+
.dest(
100+
"time")
101+
.source(
102+
"timestamp")
103+
._default(
104+
""),
105+
new ObservabilityPipelineOcsfMappingCustomFieldMapping()
106+
.dest(
107+
"severity")
108+
.source(
109+
"level")
110+
._default(
111+
""),
112+
new ObservabilityPipelineOcsfMappingCustomFieldMapping()
113+
.dest(
114+
"device.type")
115+
.source(
116+
"host.type")
117+
._default(
118+
"")
119+
.lookup(
120+
new ObservabilityPipelineOcsfMappingCustomLookup()
121+
.table(
122+
Collections
123+
.singletonList(
124+
new ObservabilityPipelineOcsfMappingCustomLookupTableEntry()
125+
.contains(
126+
"Desktop")
127+
.value(
128+
"desktop")))))))))))))))
129+
.sources(
130+
Collections.singletonList(
131+
new ObservabilityPipelineConfigSourceItem(
132+
new ObservabilityPipelineDatadogAgentSource()
133+
.id("datadog-agent-source")
134+
.type(
135+
ObservabilityPipelineDatadogAgentSourceType
136+
.DATADOG_AGENT)))))
137+
.name("OCSF Custom Mapper Pipeline"))
138+
.type("pipelines"));
139+
140+
try {
141+
ValidationResponse result = apiInstance.validatePipeline(body);
142+
System.out.println(result);
143+
} catch (ApiException e) {
144+
System.err.println("Exception when calling ObservabilityPipelinesApi#validatePipeline");
145+
System.err.println("Status code: " + e.getCode());
146+
System.err.println("Reason: " + e.getResponseBody());
147+
System.err.println("Response headers: " + e.getResponseHeaders());
148+
e.printStackTrace();
149+
}
150+
}
151+
}

0 commit comments

Comments
 (0)