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 " );
0 commit comments