Skip to content

Commit f99efb1

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 0922945 of spec repo
1 parent 79d895f commit f99efb1

File tree

7 files changed

+257
-3
lines changed

7 files changed

+257
-3
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43045,12 +43045,14 @@ components:
4304543045
ObservabilityPipelineAmazonS3Source:
4304643046
description: |-
4304743047
The `amazon_s3` source ingests logs from an Amazon S3 bucket.
43048-
It supports AWS authentication and TLS encryption.
43048+
It supports AWS authentication, TLS encryption, and configurable compression.
4304943049

4305043050
**Supported pipeline types:** logs
4305143051
properties:
4305243052
auth:
4305343053
$ref: "#/components/schemas/ObservabilityPipelineAwsAuth"
43054+
compression:
43055+
$ref: "#/components/schemas/ObservabilityPipelineAmazonS3SourceCompression"
4305443056
id:
4305543057
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).
4305643058
example: aws-s3-source
@@ -43073,6 +43075,20 @@ components:
4307343075
- region
4307443076
type: object
4307543077
x-pipeline-types: [logs]
43078+
ObservabilityPipelineAmazonS3SourceCompression:
43079+
description: Compression format for objects retrieved from the S3 bucket. Use `auto` to detect compression from the object's Content-Encoding header or file extension.
43080+
enum:
43081+
- auto
43082+
- none
43083+
- gzip
43084+
- zstd
43085+
example: gzip
43086+
type: string
43087+
x-enum-varnames:
43088+
- AUTO
43089+
- NONE
43090+
- GZIP
43091+
- ZSTD
4307643092
ObservabilityPipelineAmazonS3SourceType:
4307743093
default: amazon_s3
4307843094
description: The source type. Always `amazon_s3`.
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// Validate an observability pipeline with amazon S3 source compression 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.ObservabilityPipelineAmazonS3Source;
7+
import com.datadog.api.client.v2.model.ObservabilityPipelineAmazonS3SourceCompression;
8+
import com.datadog.api.client.v2.model.ObservabilityPipelineAmazonS3SourceType;
9+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfig;
10+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem;
11+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorGroup;
12+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorItem;
13+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigSourceItem;
14+
import com.datadog.api.client.v2.model.ObservabilityPipelineDataAttributes;
15+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestination;
16+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestinationType;
17+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessor;
18+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessorType;
19+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpec;
20+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData;
21+
import com.datadog.api.client.v2.model.ValidationResponse;
22+
import java.util.Collections;
23+
24+
public class Example {
25+
public static void main(String[] args) {
26+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
27+
ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient);
28+
29+
ObservabilityPipelineSpec body =
30+
new ObservabilityPipelineSpec()
31+
.data(
32+
new ObservabilityPipelineSpecData()
33+
.attributes(
34+
new ObservabilityPipelineDataAttributes()
35+
.config(
36+
new ObservabilityPipelineConfig()
37+
.destinations(
38+
Collections.singletonList(
39+
new ObservabilityPipelineConfigDestinationItem(
40+
new ObservabilityPipelineDatadogLogsDestination()
41+
.id("datadog-logs-destination")
42+
.inputs(
43+
Collections.singletonList(
44+
"my-processor-group"))
45+
.type(
46+
ObservabilityPipelineDatadogLogsDestinationType
47+
.DATADOG_LOGS))))
48+
.processorGroups(
49+
Collections.singletonList(
50+
new ObservabilityPipelineConfigProcessorGroup()
51+
.enabled(true)
52+
.id("my-processor-group")
53+
.include("service:my-service")
54+
.inputs(
55+
Collections.singletonList("amazon-s3-source"))
56+
.processors(
57+
Collections.singletonList(
58+
new ObservabilityPipelineConfigProcessorItem(
59+
new ObservabilityPipelineFilterProcessor()
60+
.enabled(true)
61+
.id("filter-processor")
62+
.include("service:my-service")
63+
.type(
64+
ObservabilityPipelineFilterProcessorType
65+
.FILTER))))))
66+
.sources(
67+
Collections.singletonList(
68+
new ObservabilityPipelineConfigSourceItem(
69+
new ObservabilityPipelineAmazonS3Source()
70+
.id("amazon-s3-source")
71+
.type(
72+
ObservabilityPipelineAmazonS3SourceType
73+
.AMAZON_S3)
74+
.region("us-east-1")
75+
.compression(
76+
ObservabilityPipelineAmazonS3SourceCompression
77+
.GZIP)))))
78+
.name("Pipeline with S3 Source Compression"))
79+
.type("pipelines"));
80+
81+
try {
82+
ValidationResponse result = apiInstance.validatePipeline(body);
83+
System.out.println(result);
84+
} catch (ApiException e) {
85+
System.err.println("Exception when calling ObservabilityPipelinesApi#validatePipeline");
86+
System.err.println("Status code: " + e.getCode());
87+
System.err.println("Reason: " + e.getResponseBody());
88+
System.err.println("Response headers: " + e.getResponseHeaders());
89+
e.printStackTrace();
90+
}
91+
}
92+
}

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

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@
1919

2020
/**
2121
* The <code>amazon_s3</code> source ingests logs from an Amazon S3 bucket. It supports AWS
22-
* authentication and TLS encryption.
22+
* authentication, TLS encryption, and configurable compression.
2323
*
2424
* <p><strong>Supported pipeline types:</strong> logs
2525
*/
2626
@JsonPropertyOrder({
2727
ObservabilityPipelineAmazonS3Source.JSON_PROPERTY_AUTH,
28+
ObservabilityPipelineAmazonS3Source.JSON_PROPERTY_COMPRESSION,
2829
ObservabilityPipelineAmazonS3Source.JSON_PROPERTY_ID,
2930
ObservabilityPipelineAmazonS3Source.JSON_PROPERTY_REGION,
3031
ObservabilityPipelineAmazonS3Source.JSON_PROPERTY_TLS,
@@ -38,6 +39,9 @@ public class ObservabilityPipelineAmazonS3Source {
3839
public static final String JSON_PROPERTY_AUTH = "auth";
3940
private ObservabilityPipelineAwsAuth auth;
4041

42+
public static final String JSON_PROPERTY_COMPRESSION = "compression";
43+
private ObservabilityPipelineAmazonS3SourceCompression compression;
44+
4145
public static final String JSON_PROPERTY_ID = "id";
4246
private String id;
4347

@@ -91,6 +95,33 @@ public void setAuth(ObservabilityPipelineAwsAuth auth) {
9195
this.auth = auth;
9296
}
9397

98+
public ObservabilityPipelineAmazonS3Source compression(
99+
ObservabilityPipelineAmazonS3SourceCompression compression) {
100+
this.compression = compression;
101+
this.unparsed |= !compression.isValid();
102+
return this;
103+
}
104+
105+
/**
106+
* Compression format for objects retrieved from the S3 bucket. Use <code>auto</code> to detect
107+
* compression from the object's Content-Encoding header or file extension.
108+
*
109+
* @return compression
110+
*/
111+
@jakarta.annotation.Nullable
112+
@JsonProperty(JSON_PROPERTY_COMPRESSION)
113+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
114+
public ObservabilityPipelineAmazonS3SourceCompression getCompression() {
115+
return compression;
116+
}
117+
118+
public void setCompression(ObservabilityPipelineAmazonS3SourceCompression compression) {
119+
if (!compression.isValid()) {
120+
this.unparsed = true;
121+
}
122+
this.compression = compression;
123+
}
124+
94125
public ObservabilityPipelineAmazonS3Source id(String id) {
95126
this.id = id;
96127
return this;
@@ -257,6 +288,7 @@ public boolean equals(Object o) {
257288
ObservabilityPipelineAmazonS3Source observabilityPipelineAmazonS3Source =
258289
(ObservabilityPipelineAmazonS3Source) o;
259290
return Objects.equals(this.auth, observabilityPipelineAmazonS3Source.auth)
291+
&& Objects.equals(this.compression, observabilityPipelineAmazonS3Source.compression)
260292
&& Objects.equals(this.id, observabilityPipelineAmazonS3Source.id)
261293
&& Objects.equals(this.region, observabilityPipelineAmazonS3Source.region)
262294
&& Objects.equals(this.tls, observabilityPipelineAmazonS3Source.tls)
@@ -268,14 +300,15 @@ public boolean equals(Object o) {
268300

269301
@Override
270302
public int hashCode() {
271-
return Objects.hash(auth, id, region, tls, type, urlKey, additionalProperties);
303+
return Objects.hash(auth, compression, id, region, tls, type, urlKey, additionalProperties);
272304
}
273305

274306
@Override
275307
public String toString() {
276308
StringBuilder sb = new StringBuilder();
277309
sb.append("class ObservabilityPipelineAmazonS3Source {\n");
278310
sb.append(" auth: ").append(toIndentedString(auth)).append("\n");
311+
sb.append(" compression: ").append(toIndentedString(compression)).append("\n");
279312
sb.append(" id: ").append(toIndentedString(id)).append("\n");
280313
sb.append(" region: ").append(toIndentedString(region)).append("\n");
281314
sb.append(" tls: ").append(toIndentedString(tls)).append("\n");
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
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+
* Compression format for objects retrieved from the S3 bucket. Use <code>auto</code> to detect
23+
* compression from the object's Content-Encoding header or file extension.
24+
*/
25+
@JsonSerialize(
26+
using =
27+
ObservabilityPipelineAmazonS3SourceCompression
28+
.ObservabilityPipelineAmazonS3SourceCompressionSerializer.class)
29+
public class ObservabilityPipelineAmazonS3SourceCompression extends ModelEnum<String> {
30+
31+
private static final Set<String> allowedValues =
32+
new HashSet<String>(Arrays.asList("auto", "none", "gzip", "zstd"));
33+
34+
public static final ObservabilityPipelineAmazonS3SourceCompression AUTO =
35+
new ObservabilityPipelineAmazonS3SourceCompression("auto");
36+
public static final ObservabilityPipelineAmazonS3SourceCompression NONE =
37+
new ObservabilityPipelineAmazonS3SourceCompression("none");
38+
public static final ObservabilityPipelineAmazonS3SourceCompression GZIP =
39+
new ObservabilityPipelineAmazonS3SourceCompression("gzip");
40+
public static final ObservabilityPipelineAmazonS3SourceCompression ZSTD =
41+
new ObservabilityPipelineAmazonS3SourceCompression("zstd");
42+
43+
ObservabilityPipelineAmazonS3SourceCompression(String value) {
44+
super(value, allowedValues);
45+
}
46+
47+
public static class ObservabilityPipelineAmazonS3SourceCompressionSerializer
48+
extends StdSerializer<ObservabilityPipelineAmazonS3SourceCompression> {
49+
public ObservabilityPipelineAmazonS3SourceCompressionSerializer(
50+
Class<ObservabilityPipelineAmazonS3SourceCompression> t) {
51+
super(t);
52+
}
53+
54+
public ObservabilityPipelineAmazonS3SourceCompressionSerializer() {
55+
this(null);
56+
}
57+
58+
@Override
59+
public void serialize(
60+
ObservabilityPipelineAmazonS3SourceCompression value,
61+
JsonGenerator jgen,
62+
SerializerProvider provider)
63+
throws IOException, JsonProcessingException {
64+
jgen.writeObject(value.value);
65+
}
66+
}
67+
68+
@JsonCreator
69+
public static ObservabilityPipelineAmazonS3SourceCompression fromValue(String value) {
70+
return new ObservabilityPipelineAmazonS3SourceCompression(value);
71+
}
72+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-04-08T12:44:25.060Z
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\":[\"amazon-s3-source\"],\"processors\":[{\"enabled\":true,\"id\":\"filter-processor\",\"include\":\"service:my-service\",\"type\":\"filter\"}]}],\"sources\":[{\"compression\":\"gzip\",\"id\":\"amazon-s3-source\",\"region\":\"us-east-1\",\"type\":\"amazon_s3\"}]},\"name\":\"Pipeline with S3 Source Compression\"},\"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": "558c65f8-ee8c-961f-c37f-fd1c9d896964"
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
@@ -207,6 +207,14 @@ Feature: Observability Pipelines
207207
Then the response status is 200 OK
208208
And the response "errors" has length 0
209209

210+
@team:DataDog/observability-pipelines
211+
Scenario: Validate an observability pipeline with amazon S3 source compression returns "OK" response
212+
Given new "ValidatePipeline" request
213+
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": ["amazon-s3-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "service:my-service", "type": "filter"}]}], "sources": [{"id": "amazon-s3-source", "type": "amazon_s3", "region": "us-east-1", "compression": "gzip"}]}, "name": "Pipeline with S3 Source Compression"}, "type": "pipelines"}}
214+
When the request is sent
215+
Then the response status is 200 OK
216+
And the response "errors" has length 0
217+
210218
@team:DataDog/observability-pipelines
211219
Scenario: Validate an observability pipeline with destination secret key returns "OK" response
212220
Given new "ValidatePipeline" request

0 commit comments

Comments
 (0)