From 961fb5aaabedec65acca44cf136aa4dcbde2016e Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Tue, 7 Apr 2026 18:45:47 +0000 Subject: [PATCH] Regenerate client from commit fc2edb6 of spec repo --- .generator/schemas/v2/openapi.yaml | 61 +++++- ...vabilityPipelineConfigDestinationItem.java | 186 ++++++++--------- ...ilityPipelineElasticsearchDestination.java | 156 +++++++++++++- ...neElasticsearchDestinationCompression.java | 191 ++++++++++++++++++ ...searchDestinationCompressionAlgorithm.java | 73 +++++++ ...ineElasticsearchDestinationDataStream.java | 69 ++++++- 6 files changed, 625 insertions(+), 111 deletions(-) create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompression.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index e83df8269e5..06b0264c012 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -43029,6 +43029,7 @@ components: ObservabilityPipelineConfigDestinationItem: description: "A destination for the pipeline." oneOf: + - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestination" - $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestination" - $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination" - $ref: "#/components/schemas/ObservabilityPipelineAmazonS3Destination" @@ -43038,7 +43039,6 @@ components: - $ref: "#/components/schemas/ObservabilityPipelineCloudPremDestination" - $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination" - $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestination" - - $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestination" - $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestination" - $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestination" - $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestination" @@ -43640,9 +43640,9 @@ components: type: object ObservabilityPipelineElasticsearchDestination: description: |- - The `elasticsearch` destination writes logs to an Elasticsearch cluster. + The `elasticsearch` destination writes logs or metrics to an Elasticsearch cluster. - **Supported pipeline types:** logs + **Supported pipeline types:** logs, metrics properties: api_version: $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationApiVersion" @@ -43651,9 +43651,11 @@ components: buffer: $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" bulk_index: - description: The index to write logs to in Elasticsearch. + description: The name of the index to write events to in Elasticsearch. example: logs-index type: string + compression: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompression" data_stream: $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationDataStream" endpoint_url_key: @@ -43664,6 +43666,10 @@ components: description: The unique identifier for this component. example: "elasticsearch-destination" type: string + id_key: + description: The name of the field used as the document ID in Elasticsearch. + example: id + type: string inputs: description: A list of component IDs whose output is used as the `input` for this component. example: ["filter-processor"] @@ -43671,6 +43677,15 @@ components: description: The ID of a component whose output is used as input for this destination. type: string type: array + pipeline: + description: The name of an Elasticsearch ingest pipeline to apply to events before indexing. + example: my-pipeline + type: string + request_retry_partial: + description: When `true`, retries failed partial bulk requests when some events in a batch fail while others succeed. + type: boolean + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" type: $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationType" required: @@ -43678,7 +43693,7 @@ components: - type - inputs type: object - x-pipeline-types: [logs] + x-pipeline-types: [logs, metrics] ObservabilityPipelineElasticsearchDestinationApiVersion: description: The Elasticsearch API version to use. Set to `auto` to auto-detect. enum: [auto, v6, v7, v8] @@ -43707,18 +43722,48 @@ components: required: - strategy type: object + ObservabilityPipelineElasticsearchDestinationCompression: + description: Compression configuration for the Elasticsearch destination. + properties: + algorithm: + $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm" + level: + description: The compression level. Only applicable for `gzip`, `zlib`, and `zstd` algorithms. + example: 6 + format: int64 + type: integer + required: + - algorithm + type: object + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm: + description: The compression algorithm applied when sending data to Elasticsearch. + enum: [none, gzip, zlib, zstd, snappy] + example: gzip + type: string + x-enum-varnames: + - NONE + - GZIP + - ZLIB + - ZSTD + - SNAPPY ObservabilityPipelineElasticsearchDestinationDataStream: description: Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. properties: + auto_routing: + description: When `true`, automatically routes events to the appropriate data stream based on the event content. + type: boolean dataset: - description: The data stream dataset for your logs. This groups logs by their source or application. + description: The data stream dataset. This groups events by their source or application. type: string dtype: - description: The data stream type for your logs. This determines how logs are categorized within the data stream. + description: The data stream type. This determines how events are categorized within the data stream. type: string namespace: - description: The data stream namespace for your logs. This separates logs into different environments or domains. + description: The data stream namespace. This separates events into different environments or domains. type: string + sync_fields: + description: When `true`, synchronizes data stream fields with the Elasticsearch index mapping. + type: boolean type: object ObservabilityPipelineElasticsearchDestinationType: default: elasticsearch diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigDestinationItem.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigDestinationItem.java index f03bd717bb4..0aab9e7b45a 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigDestinationItem.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigDestinationItem.java @@ -90,6 +90,58 @@ public ObservabilityPipelineConfigDestinationItem deserialize( boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); int match = 0; JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize ObservabilityPipelineElasticsearchDestination + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineElasticsearchDestination.class.equals(Integer.class) + || ObservabilityPipelineElasticsearchDestination.class.equals(Long.class) + || ObservabilityPipelineElasticsearchDestination.class.equals(Float.class) + || ObservabilityPipelineElasticsearchDestination.class.equals(Double.class) + || ObservabilityPipelineElasticsearchDestination.class.equals(Boolean.class) + || ObservabilityPipelineElasticsearchDestination.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineElasticsearchDestination.class.equals(Integer.class) + || ObservabilityPipelineElasticsearchDestination.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineElasticsearchDestination.class.equals(Float.class) + || ObservabilityPipelineElasticsearchDestination.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineElasticsearchDestination.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineElasticsearchDestination.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineElasticsearchDestination.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((ObservabilityPipelineElasticsearchDestination) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineElasticsearchDestination'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'ObservabilityPipelineElasticsearchDestination'", + e); + } + // deserialize ObservabilityPipelineHttpClientDestination try { boolean attemptParsing = true; @@ -557,58 +609,6 @@ public ObservabilityPipelineConfigDestinationItem deserialize( e); } - // deserialize ObservabilityPipelineElasticsearchDestination - try { - boolean attemptParsing = true; - // ensure that we respect type coercion as set on the client ObjectMapper - if (ObservabilityPipelineElasticsearchDestination.class.equals(Integer.class) - || ObservabilityPipelineElasticsearchDestination.class.equals(Long.class) - || ObservabilityPipelineElasticsearchDestination.class.equals(Float.class) - || ObservabilityPipelineElasticsearchDestination.class.equals(Double.class) - || ObservabilityPipelineElasticsearchDestination.class.equals(Boolean.class) - || ObservabilityPipelineElasticsearchDestination.class.equals(String.class)) { - attemptParsing = typeCoercion; - if (!attemptParsing) { - attemptParsing |= - ((ObservabilityPipelineElasticsearchDestination.class.equals(Integer.class) - || ObservabilityPipelineElasticsearchDestination.class.equals(Long.class)) - && token == JsonToken.VALUE_NUMBER_INT); - attemptParsing |= - ((ObservabilityPipelineElasticsearchDestination.class.equals(Float.class) - || ObservabilityPipelineElasticsearchDestination.class.equals(Double.class)) - && (token == JsonToken.VALUE_NUMBER_FLOAT - || token == JsonToken.VALUE_NUMBER_INT)); - attemptParsing |= - (ObservabilityPipelineElasticsearchDestination.class.equals(Boolean.class) - && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); - attemptParsing |= - (ObservabilityPipelineElasticsearchDestination.class.equals(String.class) - && token == JsonToken.VALUE_STRING); - } - } - if (attemptParsing) { - tmp = - tree.traverse(jp.getCodec()) - .readValueAs(ObservabilityPipelineElasticsearchDestination.class); - // TODO: there is no validation against JSON schema constraints - // (min, max, enum, pattern...), this does not perform a strict JSON - // validation, which means the 'match' count may be higher than it should be. - if (!((ObservabilityPipelineElasticsearchDestination) tmp).unparsed) { - deserialized = tmp; - match++; - } - log.log( - Level.FINER, - "Input data matches schema 'ObservabilityPipelineElasticsearchDestination'"); - } - } catch (Exception e) { - // deserialization failed, continue - log.log( - Level.FINER, - "Input data does not match schema 'ObservabilityPipelineElasticsearchDestination'", - e); - } - // deserialize ObservabilityPipelineGoogleChronicleDestination try { boolean attemptParsing = true; @@ -1356,6 +1356,12 @@ public ObservabilityPipelineConfigDestinationItem() { super("oneOf", Boolean.FALSE); } + public ObservabilityPipelineConfigDestinationItem( + ObservabilityPipelineElasticsearchDestination o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + public ObservabilityPipelineConfigDestinationItem(ObservabilityPipelineHttpClientDestination o) { super("oneOf", Boolean.FALSE); setActualInstance(o); @@ -1405,12 +1411,6 @@ public ObservabilityPipelineConfigDestinationItem(ObservabilityPipelineDatadogLo setActualInstance(o); } - public ObservabilityPipelineConfigDestinationItem( - ObservabilityPipelineElasticsearchDestination o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - public ObservabilityPipelineConfigDestinationItem( ObservabilityPipelineGoogleChronicleDestination o) { super("oneOf", Boolean.FALSE); @@ -1486,6 +1486,9 @@ public ObservabilityPipelineConfigDestinationItem( } static { + schemas.put( + "ObservabilityPipelineElasticsearchDestination", + new GenericType() {}); schemas.put( "ObservabilityPipelineHttpClientDestination", new GenericType() {}); @@ -1511,9 +1514,6 @@ public ObservabilityPipelineConfigDestinationItem( schemas.put( "ObservabilityPipelineDatadogLogsDestination", new GenericType() {}); - schemas.put( - "ObservabilityPipelineElasticsearchDestination", - new GenericType() {}); schemas.put( "ObservabilityPipelineGoogleChronicleDestination", new GenericType() {}); @@ -1565,14 +1565,13 @@ public Map getSchemas() { /** * Set the instance that matches the oneOf child schema, check the instance parameter is valid - * against the oneOf child schemas: ObservabilityPipelineHttpClientDestination, - * ObservabilityPipelineAmazonOpenSearchDestination, ObservabilityPipelineAmazonS3Destination, - * ObservabilityPipelineAmazonS3GenericDestination, + * against the oneOf child schemas: ObservabilityPipelineElasticsearchDestination, + * ObservabilityPipelineHttpClientDestination, ObservabilityPipelineAmazonOpenSearchDestination, + * ObservabilityPipelineAmazonS3Destination, ObservabilityPipelineAmazonS3GenericDestination, * ObservabilityPipelineAmazonSecurityLakeDestination, AzureStorageDestination, * ObservabilityPipelineCloudPremDestination, * ObservabilityPipelineCrowdStrikeNextGenSiemDestination, - * ObservabilityPipelineDatadogLogsDestination, ObservabilityPipelineElasticsearchDestination, - * ObservabilityPipelineGoogleChronicleDestination, + * ObservabilityPipelineDatadogLogsDestination, ObservabilityPipelineGoogleChronicleDestination, * ObservabilityPipelineGoogleCloudStorageDestination, * ObservabilityPipelineGooglePubSubDestination, ObservabilityPipelineKafkaDestination, * MicrosoftSentinelDestination, ObservabilityPipelineNewRelicDestination, @@ -1586,6 +1585,11 @@ public Map getSchemas() { */ @Override public void setActualInstance(Object instance) { + if (JSON.isInstanceOf( + ObservabilityPipelineElasticsearchDestination.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } if (JSON.isInstanceOf( ObservabilityPipelineHttpClientDestination.class, instance, new HashSet>())) { super.setActualInstance(instance); @@ -1636,11 +1640,6 @@ public void setActualInstance(Object instance) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf( - ObservabilityPipelineElasticsearchDestination.class, instance, new HashSet>())) { - super.setActualInstance(instance); - return; - } if (JSON.isInstanceOf( ObservabilityPipelineGoogleChronicleDestination.class, instance, new HashSet>())) { super.setActualInstance(instance); @@ -1718,7 +1717,8 @@ public void setActualInstance(Object instance) { return; } throw new RuntimeException( - "Invalid instance type. Must be ObservabilityPipelineHttpClientDestination," + "Invalid instance type. Must be ObservabilityPipelineElasticsearchDestination," + + " ObservabilityPipelineHttpClientDestination," + " ObservabilityPipelineAmazonOpenSearchDestination," + " ObservabilityPipelineAmazonS3Destination," + " ObservabilityPipelineAmazonS3GenericDestination," @@ -1726,7 +1726,6 @@ public void setActualInstance(Object instance) { + " ObservabilityPipelineCloudPremDestination," + " ObservabilityPipelineCrowdStrikeNextGenSiemDestination," + " ObservabilityPipelineDatadogLogsDestination," - + " ObservabilityPipelineElasticsearchDestination," + " ObservabilityPipelineGoogleChronicleDestination," + " ObservabilityPipelineGoogleCloudStorageDestination," + " ObservabilityPipelineGooglePubSubDestination," @@ -1743,13 +1742,13 @@ public void setActualInstance(Object instance) { /** * Get the actual instance, which can be the following: - * ObservabilityPipelineHttpClientDestination, ObservabilityPipelineAmazonOpenSearchDestination, - * ObservabilityPipelineAmazonS3Destination, ObservabilityPipelineAmazonS3GenericDestination, + * ObservabilityPipelineElasticsearchDestination, ObservabilityPipelineHttpClientDestination, + * ObservabilityPipelineAmazonOpenSearchDestination, ObservabilityPipelineAmazonS3Destination, + * ObservabilityPipelineAmazonS3GenericDestination, * ObservabilityPipelineAmazonSecurityLakeDestination, AzureStorageDestination, * ObservabilityPipelineCloudPremDestination, * ObservabilityPipelineCrowdStrikeNextGenSiemDestination, - * ObservabilityPipelineDatadogLogsDestination, ObservabilityPipelineElasticsearchDestination, - * ObservabilityPipelineGoogleChronicleDestination, + * ObservabilityPipelineDatadogLogsDestination, ObservabilityPipelineGoogleChronicleDestination, * ObservabilityPipelineGoogleCloudStorageDestination, * ObservabilityPipelineGooglePubSubDestination, ObservabilityPipelineKafkaDestination, * MicrosoftSentinelDestination, ObservabilityPipelineNewRelicDestination, @@ -1758,13 +1757,14 @@ public void setActualInstance(Object instance) { * ObservabilityPipelineSplunkHecDestination, ObservabilityPipelineSumoLogicDestination, * ObservabilityPipelineSyslogNgDestination, ObservabilityPipelineDatadogMetricsDestination * - * @return The actual instance (ObservabilityPipelineHttpClientDestination, + * @return The actual instance (ObservabilityPipelineElasticsearchDestination, + * ObservabilityPipelineHttpClientDestination, * ObservabilityPipelineAmazonOpenSearchDestination, ObservabilityPipelineAmazonS3Destination, * ObservabilityPipelineAmazonS3GenericDestination, * ObservabilityPipelineAmazonSecurityLakeDestination, AzureStorageDestination, * ObservabilityPipelineCloudPremDestination, * ObservabilityPipelineCrowdStrikeNextGenSiemDestination, - * ObservabilityPipelineDatadogLogsDestination, ObservabilityPipelineElasticsearchDestination, + * ObservabilityPipelineDatadogLogsDestination, * ObservabilityPipelineGoogleChronicleDestination, * ObservabilityPipelineGoogleCloudStorageDestination, * ObservabilityPipelineGooglePubSubDestination, ObservabilityPipelineKafkaDestination, @@ -1779,6 +1779,20 @@ public Object getActualInstance() { return super.getActualInstance(); } + /** + * Get the actual instance of `ObservabilityPipelineElasticsearchDestination`. If the actual + * instance is not `ObservabilityPipelineElasticsearchDestination`, the ClassCastException will be + * thrown. + * + * @return The actual instance of `ObservabilityPipelineElasticsearchDestination` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineElasticsearchDestination` + */ + public ObservabilityPipelineElasticsearchDestination + getObservabilityPipelineElasticsearchDestination() throws ClassCastException { + return (ObservabilityPipelineElasticsearchDestination) super.getActualInstance(); + } + /** * Get the actual instance of `ObservabilityPipelineHttpClientDestination`. If the actual instance * is not `ObservabilityPipelineHttpClientDestination`, the ClassCastException will be thrown. @@ -1895,20 +1909,6 @@ public ObservabilityPipelineCloudPremDestination getObservabilityPipelineCloudPr return (ObservabilityPipelineDatadogLogsDestination) super.getActualInstance(); } - /** - * Get the actual instance of `ObservabilityPipelineElasticsearchDestination`. If the actual - * instance is not `ObservabilityPipelineElasticsearchDestination`, the ClassCastException will be - * thrown. - * - * @return The actual instance of `ObservabilityPipelineElasticsearchDestination` - * @throws ClassCastException if the instance is not - * `ObservabilityPipelineElasticsearchDestination` - */ - public ObservabilityPipelineElasticsearchDestination - getObservabilityPipelineElasticsearchDestination() throws ClassCastException { - return (ObservabilityPipelineElasticsearchDestination) super.getActualInstance(); - } - /** * Get the actual instance of `ObservabilityPipelineGoogleChronicleDestination`. If the actual * instance is not `ObservabilityPipelineGoogleChronicleDestination`, the ClassCastException will diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestination.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestination.java index f3b0d8eccee..76c67a07955 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestination.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestination.java @@ -20,19 +20,24 @@ import java.util.Objects; /** - * The elasticsearch destination writes logs to an Elasticsearch cluster. + * The elasticsearch destination writes logs or metrics to an Elasticsearch cluster. * - *

Supported pipeline types: logs + *

Supported pipeline types: logs, metrics */ @JsonPropertyOrder({ ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_API_VERSION, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_AUTH, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_BUFFER, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_BULK_INDEX, + ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_COMPRESSION, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_DATA_STREAM, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_ENDPOINT_URL_KEY, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_ID, + ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_ID_KEY, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_INPUTS, + ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_PIPELINE, + ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_REQUEST_RETRY_PARTIAL, + ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_TLS, ObservabilityPipelineElasticsearchDestination.JSON_PROPERTY_TYPE }) @jakarta.annotation.Generated( @@ -51,6 +56,9 @@ public class ObservabilityPipelineElasticsearchDestination { public static final String JSON_PROPERTY_BULK_INDEX = "bulk_index"; private String bulkIndex; + public static final String JSON_PROPERTY_COMPRESSION = "compression"; + private ObservabilityPipelineElasticsearchDestinationCompression compression; + public static final String JSON_PROPERTY_DATA_STREAM = "data_stream"; private ObservabilityPipelineElasticsearchDestinationDataStream dataStream; @@ -60,9 +68,21 @@ public class ObservabilityPipelineElasticsearchDestination { public static final String JSON_PROPERTY_ID = "id"; private String id; + public static final String JSON_PROPERTY_ID_KEY = "id_key"; + private String idKey; + public static final String JSON_PROPERTY_INPUTS = "inputs"; private List inputs = new ArrayList<>(); + public static final String JSON_PROPERTY_PIPELINE = "pipeline"; + private String pipeline; + + public static final String JSON_PROPERTY_REQUEST_RETRY_PARTIAL = "request_retry_partial"; + private Boolean requestRetryPartial; + + public static final String JSON_PROPERTY_TLS = "tls"; + private ObservabilityPipelineTls tls; + public static final String JSON_PROPERTY_TYPE = "type"; private ObservabilityPipelineElasticsearchDestinationType type = ObservabilityPipelineElasticsearchDestinationType.ELASTICSEARCH; @@ -161,7 +181,7 @@ public ObservabilityPipelineElasticsearchDestination bulkIndex(String bulkIndex) } /** - * The index to write logs to in Elasticsearch. + * The name of the index to write events to in Elasticsearch. * * @return bulkIndex */ @@ -176,6 +196,29 @@ public void setBulkIndex(String bulkIndex) { this.bulkIndex = bulkIndex; } + public ObservabilityPipelineElasticsearchDestination compression( + ObservabilityPipelineElasticsearchDestinationCompression compression) { + this.compression = compression; + this.unparsed |= compression.unparsed; + return this; + } + + /** + * Compression configuration for the Elasticsearch destination. + * + * @return compression + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPRESSION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineElasticsearchDestinationCompression getCompression() { + return compression; + } + + public void setCompression(ObservabilityPipelineElasticsearchDestinationCompression compression) { + this.compression = compression; + } + public ObservabilityPipelineElasticsearchDestination dataStream( ObservabilityPipelineElasticsearchDestinationDataStream dataStream) { this.dataStream = dataStream; @@ -240,6 +283,27 @@ public void setId(String id) { this.id = id; } + public ObservabilityPipelineElasticsearchDestination idKey(String idKey) { + this.idKey = idKey; + return this; + } + + /** + * The name of the field used as the document ID in Elasticsearch. + * + * @return idKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getIdKey() { + return idKey; + } + + public void setIdKey(String idKey) { + this.idKey = idKey; + } + public ObservabilityPipelineElasticsearchDestination inputs(List inputs) { this.inputs = inputs; return this; @@ -265,6 +329,72 @@ public void setInputs(List inputs) { this.inputs = inputs; } + public ObservabilityPipelineElasticsearchDestination pipeline(String pipeline) { + this.pipeline = pipeline; + return this; + } + + /** + * The name of an Elasticsearch ingest pipeline to apply to events before indexing. + * + * @return pipeline + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PIPELINE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPipeline() { + return pipeline; + } + + public void setPipeline(String pipeline) { + this.pipeline = pipeline; + } + + public ObservabilityPipelineElasticsearchDestination requestRetryPartial( + Boolean requestRetryPartial) { + this.requestRetryPartial = requestRetryPartial; + return this; + } + + /** + * When true, retries failed partial bulk requests when some events in a batch fail + * while others succeed. + * + * @return requestRetryPartial + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_REQUEST_RETRY_PARTIAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getRequestRetryPartial() { + return requestRetryPartial; + } + + public void setRequestRetryPartial(Boolean requestRetryPartial) { + this.requestRetryPartial = requestRetryPartial; + } + + public ObservabilityPipelineElasticsearchDestination tls(ObservabilityPipelineTls tls) { + this.tls = tls; + this.unparsed |= tls.unparsed; + return this; + } + + /** + * Configuration for enabling TLS encryption between the pipeline component and external services. + * + * @return tls + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TLS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineTls getTls() { + return tls; + } + + public void setTls(ObservabilityPipelineTls tls) { + this.tls = tls; + } + public ObservabilityPipelineElasticsearchDestination type( ObservabilityPipelineElasticsearchDestinationType type) { this.type = type; @@ -352,11 +482,19 @@ public boolean equals(Object o) { && Objects.equals(this.auth, observabilityPipelineElasticsearchDestination.auth) && Objects.equals(this.buffer, observabilityPipelineElasticsearchDestination.buffer) && Objects.equals(this.bulkIndex, observabilityPipelineElasticsearchDestination.bulkIndex) + && Objects.equals( + this.compression, observabilityPipelineElasticsearchDestination.compression) && Objects.equals(this.dataStream, observabilityPipelineElasticsearchDestination.dataStream) && Objects.equals( this.endpointUrlKey, observabilityPipelineElasticsearchDestination.endpointUrlKey) && Objects.equals(this.id, observabilityPipelineElasticsearchDestination.id) + && Objects.equals(this.idKey, observabilityPipelineElasticsearchDestination.idKey) && Objects.equals(this.inputs, observabilityPipelineElasticsearchDestination.inputs) + && Objects.equals(this.pipeline, observabilityPipelineElasticsearchDestination.pipeline) + && Objects.equals( + this.requestRetryPartial, + observabilityPipelineElasticsearchDestination.requestRetryPartial) + && Objects.equals(this.tls, observabilityPipelineElasticsearchDestination.tls) && Objects.equals(this.type, observabilityPipelineElasticsearchDestination.type) && Objects.equals( this.additionalProperties, @@ -370,10 +508,15 @@ public int hashCode() { auth, buffer, bulkIndex, + compression, dataStream, endpointUrlKey, id, + idKey, inputs, + pipeline, + requestRetryPartial, + tls, type, additionalProperties); } @@ -386,10 +529,17 @@ public String toString() { sb.append(" auth: ").append(toIndentedString(auth)).append("\n"); sb.append(" buffer: ").append(toIndentedString(buffer)).append("\n"); sb.append(" bulkIndex: ").append(toIndentedString(bulkIndex)).append("\n"); + sb.append(" compression: ").append(toIndentedString(compression)).append("\n"); sb.append(" dataStream: ").append(toIndentedString(dataStream)).append("\n"); sb.append(" endpointUrlKey: ").append(toIndentedString(endpointUrlKey)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" idKey: ").append(toIndentedString(idKey)).append("\n"); sb.append(" inputs: ").append(toIndentedString(inputs)).append("\n"); + sb.append(" pipeline: ").append(toIndentedString(pipeline)).append("\n"); + sb.append(" requestRetryPartial: ") + .append(toIndentedString(requestRetryPartial)) + .append("\n"); + sb.append(" tls: ").append(toIndentedString(tls)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompression.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompression.java new file mode 100644 index 00000000000..07a919cb461 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompression.java @@ -0,0 +1,191 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Compression configuration for the Elasticsearch destination. */ +@JsonPropertyOrder({ + ObservabilityPipelineElasticsearchDestinationCompression.JSON_PROPERTY_ALGORITHM, + ObservabilityPipelineElasticsearchDestinationCompression.JSON_PROPERTY_LEVEL +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineElasticsearchDestinationCompression { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ALGORITHM = "algorithm"; + private ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm algorithm; + + public static final String JSON_PROPERTY_LEVEL = "level"; + private Long level; + + public ObservabilityPipelineElasticsearchDestinationCompression() {} + + @JsonCreator + public ObservabilityPipelineElasticsearchDestinationCompression( + @JsonProperty(required = true, value = JSON_PROPERTY_ALGORITHM) + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm algorithm) { + this.algorithm = algorithm; + this.unparsed |= !algorithm.isValid(); + } + + public ObservabilityPipelineElasticsearchDestinationCompression algorithm( + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm algorithm) { + this.algorithm = algorithm; + this.unparsed |= !algorithm.isValid(); + return this; + } + + /** + * The compression algorithm applied when sending data to Elasticsearch. + * + * @return algorithm + */ + @JsonProperty(JSON_PROPERTY_ALGORITHM) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm getAlgorithm() { + return algorithm; + } + + public void setAlgorithm( + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm algorithm) { + if (!algorithm.isValid()) { + this.unparsed = true; + } + this.algorithm = algorithm; + } + + public ObservabilityPipelineElasticsearchDestinationCompression level(Long level) { + this.level = level; + return this; + } + + /** + * The compression level. Only applicable for gzip, zlib, and zstd + * algorithms. + * + * @return level + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LEVEL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getLevel() { + return level; + } + + public void setLevel(Long level) { + this.level = level; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return ObservabilityPipelineElasticsearchDestinationCompression + */ + @JsonAnySetter + public ObservabilityPipelineElasticsearchDestinationCompression putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this ObservabilityPipelineElasticsearchDestinationCompression object is equal to + * o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineElasticsearchDestinationCompression + observabilityPipelineElasticsearchDestinationCompression = + (ObservabilityPipelineElasticsearchDestinationCompression) o; + return Objects.equals( + this.algorithm, observabilityPipelineElasticsearchDestinationCompression.algorithm) + && Objects.equals( + this.level, observabilityPipelineElasticsearchDestinationCompression.level) + && Objects.equals( + this.additionalProperties, + observabilityPipelineElasticsearchDestinationCompression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(algorithm, level, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineElasticsearchDestinationCompression {\n"); + sb.append(" algorithm: ").append(toIndentedString(algorithm)).append("\n"); + sb.append(" level: ").append(toIndentedString(level)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm.java new file mode 100644 index 00000000000..72069a0e7ca --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm.java @@ -0,0 +1,73 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The compression algorithm applied when sending data to Elasticsearch. */ +@JsonSerialize( + using = + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm + .ObservabilityPipelineElasticsearchDestinationCompressionAlgorithmSerializer.class) +public class ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm + extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("none", "gzip", "zlib", "zstd", "snappy")); + + public static final ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm NONE = + new ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm("none"); + public static final ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm GZIP = + new ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm("gzip"); + public static final ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm ZLIB = + new ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm("zlib"); + public static final ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm ZSTD = + new ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm("zstd"); + public static final ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm SNAPPY = + new ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm("snappy"); + + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineElasticsearchDestinationCompressionAlgorithmSerializer + extends StdSerializer { + public ObservabilityPipelineElasticsearchDestinationCompressionAlgorithmSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineElasticsearchDestinationCompressionAlgorithmSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm fromValue( + String value) { + return new ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationDataStream.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationDataStream.java index 013ee28fc95..6259dc34bd2 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationDataStream.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineElasticsearchDestinationDataStream.java @@ -18,14 +18,19 @@ /** Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. */ @JsonPropertyOrder({ + ObservabilityPipelineElasticsearchDestinationDataStream.JSON_PROPERTY_AUTO_ROUTING, ObservabilityPipelineElasticsearchDestinationDataStream.JSON_PROPERTY_DATASET, ObservabilityPipelineElasticsearchDestinationDataStream.JSON_PROPERTY_DTYPE, - ObservabilityPipelineElasticsearchDestinationDataStream.JSON_PROPERTY_NAMESPACE + ObservabilityPipelineElasticsearchDestinationDataStream.JSON_PROPERTY_NAMESPACE, + ObservabilityPipelineElasticsearchDestinationDataStream.JSON_PROPERTY_SYNC_FIELDS }) @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") public class ObservabilityPipelineElasticsearchDestinationDataStream { @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_AUTO_ROUTING = "auto_routing"; + private Boolean autoRouting; + public static final String JSON_PROPERTY_DATASET = "dataset"; private String dataset; @@ -35,13 +40,38 @@ public class ObservabilityPipelineElasticsearchDestinationDataStream { public static final String JSON_PROPERTY_NAMESPACE = "namespace"; private String namespace; + public static final String JSON_PROPERTY_SYNC_FIELDS = "sync_fields"; + private Boolean syncFields; + + public ObservabilityPipelineElasticsearchDestinationDataStream autoRouting(Boolean autoRouting) { + this.autoRouting = autoRouting; + return this; + } + + /** + * When true, automatically routes events to the appropriate data stream based on the + * event content. + * + * @return autoRouting + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AUTO_ROUTING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getAutoRouting() { + return autoRouting; + } + + public void setAutoRouting(Boolean autoRouting) { + this.autoRouting = autoRouting; + } + public ObservabilityPipelineElasticsearchDestinationDataStream dataset(String dataset) { this.dataset = dataset; return this; } /** - * The data stream dataset for your logs. This groups logs by their source or application. + * The data stream dataset. This groups events by their source or application. * * @return dataset */ @@ -62,8 +92,7 @@ public ObservabilityPipelineElasticsearchDestinationDataStream dtype(String dtyp } /** - * The data stream type for your logs. This determines how logs are categorized within the data - * stream. + * The data stream type. This determines how events are categorized within the data stream. * * @return dtype */ @@ -84,8 +113,7 @@ public ObservabilityPipelineElasticsearchDestinationDataStream namespace(String } /** - * The data stream namespace for your logs. This separates logs into different environments or - * domains. + * The data stream namespace. This separates events into different environments or domains. * * @return namespace */ @@ -100,6 +128,27 @@ public void setNamespace(String namespace) { this.namespace = namespace; } + public ObservabilityPipelineElasticsearchDestinationDataStream syncFields(Boolean syncFields) { + this.syncFields = syncFields; + return this; + } + + /** + * When true, synchronizes data stream fields with the Elasticsearch index mapping. + * + * @return syncFields + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SYNC_FIELDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getSyncFields() { + return syncFields; + } + + public void setSyncFields(Boolean syncFields) { + this.syncFields = syncFields; + } + /** * A container for additional, undeclared properties. This is a holder for any undeclared * properties as specified with the 'additionalProperties' keyword in the OAS document. @@ -163,10 +212,14 @@ public boolean equals(Object o) { observabilityPipelineElasticsearchDestinationDataStream = (ObservabilityPipelineElasticsearchDestinationDataStream) o; return Objects.equals( + this.autoRouting, observabilityPipelineElasticsearchDestinationDataStream.autoRouting) + && Objects.equals( this.dataset, observabilityPipelineElasticsearchDestinationDataStream.dataset) && Objects.equals(this.dtype, observabilityPipelineElasticsearchDestinationDataStream.dtype) && Objects.equals( this.namespace, observabilityPipelineElasticsearchDestinationDataStream.namespace) + && Objects.equals( + this.syncFields, observabilityPipelineElasticsearchDestinationDataStream.syncFields) && Objects.equals( this.additionalProperties, observabilityPipelineElasticsearchDestinationDataStream.additionalProperties); @@ -174,16 +227,18 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(dataset, dtype, namespace, additionalProperties); + return Objects.hash(autoRouting, dataset, dtype, namespace, syncFields, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ObservabilityPipelineElasticsearchDestinationDataStream {\n"); + sb.append(" autoRouting: ").append(toIndentedString(autoRouting)).append("\n"); sb.append(" dataset: ").append(toIndentedString(dataset)).append("\n"); sb.append(" dtype: ").append(toIndentedString(dtype)).append("\n"); sb.append(" namespace: ").append(toIndentedString(namespace)).append("\n"); + sb.append(" syncFields: ").append(toIndentedString(syncFields)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n");