diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 2d470c8f2f0..2247ca8cc59 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -59823,6 +59823,7 @@ components: - $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessor" - $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor" - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsProcessor" + - $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2Processor" - $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessor" - $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessor" - $ref: "#/components/schemas/ObservabilityPipelineParseJSONProcessor" @@ -60962,6 +60963,50 @@ components: type: string x-enum-varnames: - GENERATE_DATADOG_METRICS + ObservabilityPipelineGenerateMetricsV2Processor: + description: |- + The `generate_metrics` processor creates custom metrics from logs. + Metrics can be counters, gauges, or distributions and optionally grouped by log fields. + The generated metrics must be routed to a metrics destination using the input `.metrics`. + + **Supported pipeline types:** logs + properties: + display_name: + $ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName" + enabled: + description: Indicates whether the processor is enabled. + example: true + type: boolean + id: + description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. + example: generate-metrics-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor targets. + example: "service:my-service" + type: string + metrics: + description: Configuration for generating individual metrics. + items: + $ref: "#/components/schemas/ObservabilityPipelineGeneratedMetric" + type: array + type: + $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2ProcessorType" + required: + - id + - type + - enabled + type: object + x-pipeline-types: [logs] + ObservabilityPipelineGenerateMetricsV2ProcessorType: + default: generate_metrics + description: The processor type. Always `generate_metrics`. + enum: + - generate_metrics + example: generate_metrics + type: string + x-enum-varnames: + - GENERATE_METRICS ObservabilityPipelineGeneratedMetric: description: |- Defines a log-based custom metric, including its name, type, filter, value computation strategy, diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorItem.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorItem.java index 5507e67af27..e3f1a3d6e13 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorItem.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorItem.java @@ -545,6 +545,59 @@ public ObservabilityPipelineConfigProcessorItem deserialize( e); } + // deserialize ObservabilityPipelineGenerateMetricsV2Processor + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Integer.class) + || ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Long.class) + || ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Float.class) + || ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Double.class) + || ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Boolean.class) + || ObservabilityPipelineGenerateMetricsV2Processor.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Integer.class) + || ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Float.class) + || ObservabilityPipelineGenerateMetricsV2Processor.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineGenerateMetricsV2Processor.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineGenerateMetricsV2Processor.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 (!((ObservabilityPipelineGenerateMetricsV2Processor) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineGenerateMetricsV2Processor'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'ObservabilityPipelineGenerateMetricsV2Processor'", + e); + } + // deserialize ObservabilityPipelineOcsfMapperProcessor try { boolean attemptParsing = true; @@ -1491,6 +1544,12 @@ public ObservabilityPipelineConfigProcessorItem(ObservabilityPipelineGenerateMet setActualInstance(o); } + public ObservabilityPipelineConfigProcessorItem( + ObservabilityPipelineGenerateMetricsV2Processor o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + public ObservabilityPipelineConfigProcessorItem(ObservabilityPipelineOcsfMapperProcessor o) { super("oneOf", Boolean.FALSE); setActualInstance(o); @@ -1607,6 +1666,9 @@ public ObservabilityPipelineConfigProcessorItem( schemas.put( "ObservabilityPipelineGenerateMetricsProcessor", new GenericType() {}); + schemas.put( + "ObservabilityPipelineGenerateMetricsV2Processor", + new GenericType() {}); schemas.put( "ObservabilityPipelineOcsfMapperProcessor", new GenericType() {}); @@ -1674,14 +1736,15 @@ public Map getSchemas() { * ObservabilityPipelineAddHostnameProcessor, ObservabilityPipelineCustomProcessor, * ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor, * ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineGenerateMetricsProcessor, - * ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineParseGrokProcessor, - * ObservabilityPipelineParseJSONProcessor, ObservabilityPipelineParseXMLProcessor, - * ObservabilityPipelineQuotaProcessor, ObservabilityPipelineReduceProcessor, - * ObservabilityPipelineRemoveFieldsProcessor, ObservabilityPipelineRenameFieldsProcessor, - * ObservabilityPipelineSampleProcessor, ObservabilityPipelineSensitiveDataScannerProcessor, - * ObservabilityPipelineSplitArrayProcessor, ObservabilityPipelineThrottleProcessor, - * ObservabilityPipelineAddMetricTagsProcessor, ObservabilityPipelineAggregateProcessor, - * ObservabilityPipelineMetricTagsProcessor, ObservabilityPipelineRenameMetricTagsProcessor, + * ObservabilityPipelineGenerateMetricsV2Processor, ObservabilityPipelineOcsfMapperProcessor, + * ObservabilityPipelineParseGrokProcessor, ObservabilityPipelineParseJSONProcessor, + * ObservabilityPipelineParseXMLProcessor, ObservabilityPipelineQuotaProcessor, + * ObservabilityPipelineReduceProcessor, ObservabilityPipelineRemoveFieldsProcessor, + * ObservabilityPipelineRenameFieldsProcessor, ObservabilityPipelineSampleProcessor, + * ObservabilityPipelineSensitiveDataScannerProcessor, ObservabilityPipelineSplitArrayProcessor, + * ObservabilityPipelineThrottleProcessor, ObservabilityPipelineAddMetricTagsProcessor, + * ObservabilityPipelineAggregateProcessor, ObservabilityPipelineMetricTagsProcessor, + * ObservabilityPipelineRenameMetricTagsProcessor, * ObservabilityPipelineTagCardinalityLimitProcessor * *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a @@ -1734,6 +1797,11 @@ public void setActualInstance(Object instance) { super.setActualInstance(instance); return; } + if (JSON.isInstanceOf( + ObservabilityPipelineGenerateMetricsV2Processor.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } if (JSON.isInstanceOf( ObservabilityPipelineOcsfMapperProcessor.class, instance, new HashSet>())) { super.setActualInstance(instance); @@ -1835,6 +1903,7 @@ public void setActualInstance(Object instance) { + " ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor," + " ObservabilityPipelineEnrichmentTableProcessor," + " ObservabilityPipelineGenerateMetricsProcessor," + + " ObservabilityPipelineGenerateMetricsV2Processor," + " ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineParseGrokProcessor," + " ObservabilityPipelineParseJSONProcessor, ObservabilityPipelineParseXMLProcessor," + " ObservabilityPipelineQuotaProcessor, ObservabilityPipelineReduceProcessor," @@ -1854,14 +1923,15 @@ public void setActualInstance(Object instance) { * ObservabilityPipelineAddHostnameProcessor, ObservabilityPipelineCustomProcessor, * ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor, * ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineGenerateMetricsProcessor, - * ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineParseGrokProcessor, - * ObservabilityPipelineParseJSONProcessor, ObservabilityPipelineParseXMLProcessor, - * ObservabilityPipelineQuotaProcessor, ObservabilityPipelineReduceProcessor, - * ObservabilityPipelineRemoveFieldsProcessor, ObservabilityPipelineRenameFieldsProcessor, - * ObservabilityPipelineSampleProcessor, ObservabilityPipelineSensitiveDataScannerProcessor, - * ObservabilityPipelineSplitArrayProcessor, ObservabilityPipelineThrottleProcessor, - * ObservabilityPipelineAddMetricTagsProcessor, ObservabilityPipelineAggregateProcessor, - * ObservabilityPipelineMetricTagsProcessor, ObservabilityPipelineRenameMetricTagsProcessor, + * ObservabilityPipelineGenerateMetricsV2Processor, ObservabilityPipelineOcsfMapperProcessor, + * ObservabilityPipelineParseGrokProcessor, ObservabilityPipelineParseJSONProcessor, + * ObservabilityPipelineParseXMLProcessor, ObservabilityPipelineQuotaProcessor, + * ObservabilityPipelineReduceProcessor, ObservabilityPipelineRemoveFieldsProcessor, + * ObservabilityPipelineRenameFieldsProcessor, ObservabilityPipelineSampleProcessor, + * ObservabilityPipelineSensitiveDataScannerProcessor, ObservabilityPipelineSplitArrayProcessor, + * ObservabilityPipelineThrottleProcessor, ObservabilityPipelineAddMetricTagsProcessor, + * ObservabilityPipelineAggregateProcessor, ObservabilityPipelineMetricTagsProcessor, + * ObservabilityPipelineRenameMetricTagsProcessor, * ObservabilityPipelineTagCardinalityLimitProcessor * * @return The actual instance (ObservabilityPipelineFilterProcessor, @@ -1869,7 +1939,8 @@ public void setActualInstance(Object instance) { * ObservabilityPipelineAddHostnameProcessor, ObservabilityPipelineCustomProcessor, * ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor, * ObservabilityPipelineEnrichmentTableProcessor, - * ObservabilityPipelineGenerateMetricsProcessor, ObservabilityPipelineOcsfMapperProcessor, + * ObservabilityPipelineGenerateMetricsProcessor, + * ObservabilityPipelineGenerateMetricsV2Processor, ObservabilityPipelineOcsfMapperProcessor, * ObservabilityPipelineParseGrokProcessor, ObservabilityPipelineParseJSONProcessor, * ObservabilityPipelineParseXMLProcessor, ObservabilityPipelineQuotaProcessor, * ObservabilityPipelineReduceProcessor, ObservabilityPipelineRemoveFieldsProcessor, @@ -1997,6 +2068,20 @@ public ObservabilityPipelineDedupeProcessor getObservabilityPipelineDedupeProces return (ObservabilityPipelineGenerateMetricsProcessor) super.getActualInstance(); } + /** + * Get the actual instance of `ObservabilityPipelineGenerateMetricsV2Processor`. If the actual + * instance is not `ObservabilityPipelineGenerateMetricsV2Processor`, the ClassCastException will + * be thrown. + * + * @return The actual instance of `ObservabilityPipelineGenerateMetricsV2Processor` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineGenerateMetricsV2Processor` + */ + public ObservabilityPipelineGenerateMetricsV2Processor + getObservabilityPipelineGenerateMetricsV2Processor() throws ClassCastException { + return (ObservabilityPipelineGenerateMetricsV2Processor) super.getActualInstance(); + } + /** * Get the actual instance of `ObservabilityPipelineOcsfMapperProcessor`. If the actual instance * is not `ObservabilityPipelineOcsfMapperProcessor`, the ClassCastException will be thrown. diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineGenerateMetricsV2Processor.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineGenerateMetricsV2Processor.java new file mode 100644 index 00000000000..256fcd0996e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineGenerateMetricsV2Processor.java @@ -0,0 +1,320 @@ +/* + * 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.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * The generate_metrics processor creates custom metrics from logs. Metrics can be + * counters, gauges, or distributions and optionally grouped by log fields. The generated metrics + * must be routed to a metrics destination using the input <processor-id>.metrics + * . + * + *

Supported pipeline types: logs + */ +@JsonPropertyOrder({ + ObservabilityPipelineGenerateMetricsV2Processor.JSON_PROPERTY_DISPLAY_NAME, + ObservabilityPipelineGenerateMetricsV2Processor.JSON_PROPERTY_ENABLED, + ObservabilityPipelineGenerateMetricsV2Processor.JSON_PROPERTY_ID, + ObservabilityPipelineGenerateMetricsV2Processor.JSON_PROPERTY_INCLUDE, + ObservabilityPipelineGenerateMetricsV2Processor.JSON_PROPERTY_METRICS, + ObservabilityPipelineGenerateMetricsV2Processor.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineGenerateMetricsV2Processor { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DISPLAY_NAME = "display_name"; + private String displayName; + + public static final String JSON_PROPERTY_ENABLED = "enabled"; + private Boolean enabled; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_INCLUDE = "include"; + private String include; + + public static final String JSON_PROPERTY_METRICS = "metrics"; + private List metrics = null; + + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelineGenerateMetricsV2ProcessorType type = + ObservabilityPipelineGenerateMetricsV2ProcessorType.GENERATE_METRICS; + + public ObservabilityPipelineGenerateMetricsV2Processor() {} + + @JsonCreator + public ObservabilityPipelineGenerateMetricsV2Processor( + @JsonProperty(required = true, value = JSON_PROPERTY_ENABLED) Boolean enabled, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelineGenerateMetricsV2ProcessorType type) { + this.enabled = enabled; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelineGenerateMetricsV2Processor displayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * The display name for a component. + * + * @return displayName + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public ObservabilityPipelineGenerateMetricsV2Processor enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Indicates whether the processor is enabled. + * + * @return enabled + */ + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public ObservabilityPipelineGenerateMetricsV2Processor id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier for this component. Used to reference this component in other parts of + * the pipeline. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ObservabilityPipelineGenerateMetricsV2Processor include(String include) { + this.include = include; + return this; + } + + /** + * A Datadog search query used to determine which logs this processor targets. + * + * @return include + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCLUDE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getInclude() { + return include; + } + + public void setInclude(String include) { + this.include = include; + } + + public ObservabilityPipelineGenerateMetricsV2Processor metrics( + List metrics) { + this.metrics = metrics; + for (ObservabilityPipelineGeneratedMetric item : metrics) { + this.unparsed |= item.unparsed; + } + return this; + } + + public ObservabilityPipelineGenerateMetricsV2Processor addMetricsItem( + ObservabilityPipelineGeneratedMetric metricsItem) { + if (this.metrics == null) { + this.metrics = new ArrayList<>(); + } + this.metrics.add(metricsItem); + this.unparsed |= metricsItem.unparsed; + return this; + } + + /** + * Configuration for generating individual metrics. + * + * @return metrics + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METRICS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getMetrics() { + return metrics; + } + + public void setMetrics(List metrics) { + this.metrics = metrics; + } + + public ObservabilityPipelineGenerateMetricsV2Processor type( + ObservabilityPipelineGenerateMetricsV2ProcessorType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The processor type. Always generate_metrics. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineGenerateMetricsV2ProcessorType getType() { + return type; + } + + public void setType(ObservabilityPipelineGenerateMetricsV2ProcessorType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * 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 ObservabilityPipelineGenerateMetricsV2Processor + */ + @JsonAnySetter + public ObservabilityPipelineGenerateMetricsV2Processor 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 ObservabilityPipelineGenerateMetricsV2Processor object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineGenerateMetricsV2Processor + observabilityPipelineGenerateMetricsV2Processor = + (ObservabilityPipelineGenerateMetricsV2Processor) o; + return Objects.equals( + this.displayName, observabilityPipelineGenerateMetricsV2Processor.displayName) + && Objects.equals(this.enabled, observabilityPipelineGenerateMetricsV2Processor.enabled) + && Objects.equals(this.id, observabilityPipelineGenerateMetricsV2Processor.id) + && Objects.equals(this.include, observabilityPipelineGenerateMetricsV2Processor.include) + && Objects.equals(this.metrics, observabilityPipelineGenerateMetricsV2Processor.metrics) + && Objects.equals(this.type, observabilityPipelineGenerateMetricsV2Processor.type) + && Objects.equals( + this.additionalProperties, + observabilityPipelineGenerateMetricsV2Processor.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, enabled, id, include, metrics, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineGenerateMetricsV2Processor {\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" include: ").append(toIndentedString(include)).append("\n"); + sb.append(" metrics: ").append(toIndentedString(metrics)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).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/ObservabilityPipelineGenerateMetricsV2ProcessorType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineGenerateMetricsV2ProcessorType.java new file mode 100644 index 00000000000..204d2a6aec4 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineGenerateMetricsV2ProcessorType.java @@ -0,0 +1,63 @@ +/* + * 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 processor type. Always generate_metrics. */ +@JsonSerialize( + using = + ObservabilityPipelineGenerateMetricsV2ProcessorType + .ObservabilityPipelineGenerateMetricsV2ProcessorTypeSerializer.class) +public class ObservabilityPipelineGenerateMetricsV2ProcessorType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("generate_metrics")); + + public static final ObservabilityPipelineGenerateMetricsV2ProcessorType GENERATE_METRICS = + new ObservabilityPipelineGenerateMetricsV2ProcessorType("generate_metrics"); + + ObservabilityPipelineGenerateMetricsV2ProcessorType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineGenerateMetricsV2ProcessorTypeSerializer + extends StdSerializer { + public ObservabilityPipelineGenerateMetricsV2ProcessorTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineGenerateMetricsV2ProcessorTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineGenerateMetricsV2ProcessorType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineGenerateMetricsV2ProcessorType fromValue(String value) { + return new ObservabilityPipelineGenerateMetricsV2ProcessorType(value); + } +}