Skip to content

Commit f6b0327

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Adding compression optional field to Amazon S3 source (#3886)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent aebaa20 commit f6b0327

File tree

8 files changed

+125
-2
lines changed

8 files changed

+125
-2
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`.
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,67 @@
1+
{
2+
"log": {
3+
"_recordingName": "Observability Pipelines/Validate an observability pipeline with amazon S3 source compression returns \"OK\" response",
4+
"creator": {
5+
"comment": "persister:fs",
6+
"name": "Polly.JS",
7+
"version": "6.0.5"
8+
},
9+
"entries": [
10+
{
11+
"_id": "558c65f8ee8c961fc37ffd1c9d896964",
12+
"_order": 0,
13+
"cache": {},
14+
"request": {
15+
"bodySize": 532,
16+
"cookies": [],
17+
"headers": [
18+
{
19+
"_fromType": "array",
20+
"name": "accept",
21+
"value": "application/json"
22+
},
23+
{
24+
"_fromType": "array",
25+
"name": "content-type",
26+
"value": "application/json"
27+
}
28+
],
29+
"headersSize": 583,
30+
"httpVersion": "HTTP/1.1",
31+
"method": "POST",
32+
"postData": {
33+
"mimeType": "application/json",
34+
"params": [],
35+
"text": "{\"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\"}}"
36+
},
37+
"queryString": [],
38+
"url": "https://api.datadoghq.com/api/v2/obs-pipelines/pipelines/validate"
39+
},
40+
"response": {
41+
"bodySize": 14,
42+
"content": {
43+
"mimeType": "application/vnd.api+json",
44+
"size": 14,
45+
"text": "{\"errors\":[]}\n"
46+
},
47+
"cookies": [],
48+
"headers": [
49+
{
50+
"name": "content-type",
51+
"value": "application/vnd.api+json"
52+
}
53+
],
54+
"headersSize": 370,
55+
"httpVersion": "HTTP/1.1",
56+
"redirectURL": "",
57+
"status": 200,
58+
"statusText": "OK"
59+
},
60+
"startedDateTime": "2026-04-08T12:44:25.066Z",
61+
"time": 389
62+
}
63+
],
64+
"pages": [],
65+
"version": "1.2"
66+
}
67+
}

features/v2/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

services/observability_pipelines/src/v2/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export { ObservabilityPipelineAmazonS3GenericEncodingJsonType } from "./models/O
4848
export { ObservabilityPipelineAmazonS3GenericEncodingParquet } from "./models/ObservabilityPipelineAmazonS3GenericEncodingParquet";
4949
export { ObservabilityPipelineAmazonS3GenericEncodingParquetType } from "./models/ObservabilityPipelineAmazonS3GenericEncodingParquetType";
5050
export { ObservabilityPipelineAmazonS3Source } from "./models/ObservabilityPipelineAmazonS3Source";
51+
export { ObservabilityPipelineAmazonS3SourceCompression } from "./models/ObservabilityPipelineAmazonS3SourceCompression";
5152
export { ObservabilityPipelineAmazonS3SourceType } from "./models/ObservabilityPipelineAmazonS3SourceType";
5253
export { ObservabilityPipelineAmazonSecurityLakeDestination } from "./models/ObservabilityPipelineAmazonSecurityLakeDestination";
5354
export { ObservabilityPipelineAmazonSecurityLakeDestinationType } from "./models/ObservabilityPipelineAmazonSecurityLakeDestinationType";

services/observability_pipelines/src/v2/models/ObservabilityPipelineAmazonS3Source.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { AttributeTypeMap } from "@datadog/datadog-api-client";
22

3+
import { ObservabilityPipelineAmazonS3SourceCompression } from "./ObservabilityPipelineAmazonS3SourceCompression";
34
import { ObservabilityPipelineAmazonS3SourceType } from "./ObservabilityPipelineAmazonS3SourceType";
45
import { ObservabilityPipelineAwsAuth } from "./ObservabilityPipelineAwsAuth";
56
import { ObservabilityPipelineTls } from "./ObservabilityPipelineTls";
67

78
/**
89
* The `amazon_s3` source ingests logs from an Amazon S3 bucket.
9-
* It supports AWS authentication and TLS encryption.
10+
* It supports AWS authentication, TLS encryption, and configurable compression.
1011
*
1112
* **Supported pipeline types:** logs
1213
*/
@@ -16,6 +17,10 @@ export class ObservabilityPipelineAmazonS3Source {
1617
* If omitted, the system’s default credentials are used (for example, the IAM role and environment variables).
1718
*/
1819
"auth"?: ObservabilityPipelineAwsAuth;
20+
/**
21+
* Compression format for objects retrieved from the S3 bucket. Use `auto` to detect compression from the object's Content-Encoding header or file extension.
22+
*/
23+
"compression"?: ObservabilityPipelineAmazonS3SourceCompression;
1924
/**
2025
* 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).
2126
*/
@@ -55,6 +60,10 @@ export class ObservabilityPipelineAmazonS3Source {
5560
baseName: "auth",
5661
type: "ObservabilityPipelineAwsAuth",
5762
},
63+
compression: {
64+
baseName: "compression",
65+
type: "ObservabilityPipelineAmazonS3SourceCompression",
66+
},
5867
id: {
5968
baseName: "id",
6069
type: "string",
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { UnparsedObject } from "@datadog/datadog-api-client";
2+
3+
/**
4+
* Compression format for objects retrieved from the S3 bucket. Use `auto` to detect compression from the object's Content-Encoding header or file extension.
5+
*/
6+
export type ObservabilityPipelineAmazonS3SourceCompression =
7+
| typeof AUTO
8+
| typeof NONE
9+
| typeof GZIP
10+
| typeof ZSTD
11+
| UnparsedObject;
12+
export const AUTO = "auto";
13+
export const NONE = "none";
14+
export const GZIP = "gzip";
15+
export const ZSTD = "zstd";

services/observability_pipelines/src/v2/models/TypingInfo.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,12 @@ export const TypingInfo: ModelTypingInfo = {
182182
ObservabilityPipelineAmazonS3GenericDestinationType: ["amazon_s3_generic"],
183183
ObservabilityPipelineAmazonS3GenericEncodingJsonType: ["json"],
184184
ObservabilityPipelineAmazonS3GenericEncodingParquetType: ["parquet"],
185+
ObservabilityPipelineAmazonS3SourceCompression: [
186+
"auto",
187+
"none",
188+
"gzip",
189+
"zstd",
190+
],
185191
ObservabilityPipelineAmazonS3SourceType: ["amazon_s3"],
186192
ObservabilityPipelineAmazonSecurityLakeDestinationType: [
187193
"amazon_security_lake",

0 commit comments

Comments
 (0)