Skip to content

Commit 66a7911

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 752f866 of spec repo
1 parent 4e28bc5 commit 66a7911

18 files changed

Lines changed: 1840 additions & 8 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40874,6 +40874,8 @@ components:
4087440874
type: integer
4087540875
type:
4087640876
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType'
40877+
when_full:
40878+
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull'
4087740879
type: object
4087840880
ObservabilityPipelineMemoryBufferSizeOptions:
4087940881
description: Options for configuring a memory buffer by queue length.
@@ -40885,6 +40887,8 @@ components:
4088540887
type: integer
4088640888
type:
4088740889
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsMemoryType'
40890+
when_full:
40891+
$ref: '#/components/schemas/ObservabilityPipelineBufferOptionsWhenFull'
4088840892
type: object
4088940893
ObservabilityPipelineMetadataEntry:
4089040894
description: A custom metadata entry.
@@ -41113,6 +41117,7 @@ components:
4111341117
example: CloudTrail Account Change
4111441118
oneOf:
4111541119
- $ref: '#/components/schemas/ObservabilityPipelineOcsfMappingLibrary'
41120+
- $ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustom'
4111641121
ObservabilityPipelineOcsfMapperProcessorType:
4111741122
default: ocsf_mapper
4111841123
description: The processor type. The value should always be `ocsf_mapper`.
@@ -41122,6 +41127,116 @@ components:
4112241127
type: string
4112341128
x-enum-varnames:
4112441129
- OCSF_MAPPER
41130+
ObservabilityPipelineOcsfMappingCustom:
41131+
description: Custom OCSF mapping configuration for transforming logs.
41132+
properties:
41133+
mapping:
41134+
description: A list of field mapping rules for transforming log fields to
41135+
OCSF schema fields.
41136+
items:
41137+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomFieldMapping'
41138+
type: array
41139+
metadata:
41140+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomMetadata'
41141+
version:
41142+
description: The version of the custom mapping configuration.
41143+
example: 1
41144+
format: int64
41145+
type: integer
41146+
required:
41147+
- mapping
41148+
- metadata
41149+
- version
41150+
type: object
41151+
ObservabilityPipelineOcsfMappingCustomFieldMapping:
41152+
description: Defines a single field mapping rule for transforming a source field
41153+
to an OCSF destination field.
41154+
properties:
41155+
default:
41156+
description: The default value to use if the source field is missing or
41157+
empty.
41158+
example: ''
41159+
dest:
41160+
description: The destination OCSF field path.
41161+
example: device.type
41162+
type: string
41163+
lookup:
41164+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookup'
41165+
source:
41166+
description: The source field path from the log event.
41167+
example: host.type
41168+
sources:
41169+
description: Multiple source field paths for combined mapping.
41170+
example:
41171+
- field1
41172+
- field2
41173+
value:
41174+
description: A static value to use for the destination field.
41175+
example: static_value
41176+
required:
41177+
- dest
41178+
type: object
41179+
ObservabilityPipelineOcsfMappingCustomLookup:
41180+
description: Lookup table configuration for mapping source values to destination
41181+
values.
41182+
properties:
41183+
default:
41184+
description: The default value to use if no lookup match is found.
41185+
example: unknown
41186+
table:
41187+
description: A list of lookup table entries for value transformation.
41188+
items:
41189+
$ref: '#/components/schemas/ObservabilityPipelineOcsfMappingCustomLookupTableEntry'
41190+
type: array
41191+
type: object
41192+
ObservabilityPipelineOcsfMappingCustomLookupTableEntry:
41193+
description: A single entry in a lookup table for value transformation.
41194+
properties:
41195+
contains:
41196+
description: The substring to match in the source value.
41197+
example: Desktop
41198+
type: string
41199+
equals:
41200+
description: The exact value to match in the source.
41201+
example: desktop
41202+
equals_source:
41203+
description: The source field to match against.
41204+
example: device_type
41205+
type: string
41206+
matches:
41207+
description: A regex pattern to match in the source value.
41208+
example: ^Desktop.*
41209+
type: string
41210+
not_matches:
41211+
description: A regex pattern that must not match the source value.
41212+
example: ^Mobile.*
41213+
type: string
41214+
value:
41215+
description: The value to use when a match is found.
41216+
example: desktop
41217+
type: object
41218+
ObservabilityPipelineOcsfMappingCustomMetadata:
41219+
description: Metadata for the custom OCSF mapping.
41220+
properties:
41221+
class:
41222+
description: The OCSF event class name.
41223+
example: Device Inventory Info
41224+
type: string
41225+
profiles:
41226+
description: A list of OCSF profiles to apply.
41227+
example:
41228+
- container
41229+
items:
41230+
type: string
41231+
type: array
41232+
version:
41233+
description: The OCSF schema version.
41234+
example: 1.3.0
41235+
type: string
41236+
required:
41237+
- class
41238+
- version
41239+
type: object
4112541240
ObservabilityPipelineOcsfMappingLibrary:
4112641241
description: Predefined library mappings for common log formats.
4112741242
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)