diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 81b1f9b3a22..6a185841444 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -41994,6 +41994,191 @@ components: type: string x-enum-varnames: - AMAZON_S3 + ObservabilityPipelineAmazonS3GenericBatchSettings: + description: Event batching settings + properties: + batch_size: + description: Maximum batch size in bytes. + example: 100000000 + format: int64 + type: integer + timeout_secs: + description: Maximum number of seconds to wait before flushing the batch. + example: 900 + format: int64 + type: integer + type: object + ObservabilityPipelineAmazonS3GenericCompression: + description: Compression algorithm applied to encoded logs. + oneOf: + - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionZstd' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionGzip' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionSnappy' + ObservabilityPipelineAmazonS3GenericCompressionGzip: + description: Gzip compression. + properties: + level: + description: Gzip compression level. + example: 6 + format: int64 + type: integer + type: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionGzipType' + required: + - type + - level + type: object + ObservabilityPipelineAmazonS3GenericCompressionGzipType: + default: gzip + description: The compression type. Always `gzip`. + enum: + - gzip + example: gzip + type: string + x-enum-varnames: + - GZIP + ObservabilityPipelineAmazonS3GenericCompressionSnappy: + description: Snappy compression. + properties: + type: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionSnappyType' + required: + - type + type: object + ObservabilityPipelineAmazonS3GenericCompressionSnappyType: + default: snappy + description: The compression type. Always `snappy`. + enum: + - snappy + example: snappy + type: string + x-enum-varnames: + - SNAPPY + ObservabilityPipelineAmazonS3GenericCompressionZstd: + description: Zstd compression. + properties: + level: + description: Zstd compression level. + example: 3 + format: int64 + type: integer + type: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericCompressionZstdType' + required: + - type + - level + type: object + ObservabilityPipelineAmazonS3GenericCompressionZstdType: + default: zstd + description: The compression type. Always `zstd`. + enum: + - zstd + example: zstd + type: string + x-enum-varnames: + - ZSTD + ObservabilityPipelineAmazonS3GenericDestination: + description: 'The `amazon_s3_generic` destination sends your logs to an Amazon + S3 bucket. + + + **Supported pipeline types:** logs' + properties: + auth: + $ref: '#/components/schemas/ObservabilityPipelineAwsAuth' + batch_settings: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericBatchSettings' + bucket: + description: S3 bucket name. + example: my-bucket + type: string + compression: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericCompression' + encoding: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericEncoding' + id: + description: Unique identifier for the destination component. + example: generic-s3-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` + for this component. + example: + - filter-processor + items: + type: string + type: array + key_prefix: + description: Optional prefix for object keys. + type: string + region: + description: AWS region of the S3 bucket. + example: us-east-1 + type: string + storage_class: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3DestinationStorageClass' + type: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericDestinationType' + required: + - id + - type + - inputs + - bucket + - region + - storage_class + - encoding + - compression + type: object + x-pipeline-types: + - logs + ObservabilityPipelineAmazonS3GenericDestinationType: + default: amazon_s3_generic + description: The destination type. Always `amazon_s3_generic`. + enum: + - amazon_s3_generic + example: amazon_s3_generic + type: string + x-enum-varnames: + - GENERIC_ARCHIVES_S3 + ObservabilityPipelineAmazonS3GenericEncoding: + description: Encoding format for the destination. + oneOf: + - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingJson' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingParquet' + ObservabilityPipelineAmazonS3GenericEncodingJson: + description: JSON encoding. + properties: + type: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingJsonType' + required: + - type + type: object + ObservabilityPipelineAmazonS3GenericEncodingJsonType: + default: json + description: The encoding type. Always `json`. + enum: + - json + example: json + type: string + x-enum-varnames: + - JSON + ObservabilityPipelineAmazonS3GenericEncodingParquet: + description: Parquet encoding. + properties: + type: + $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericEncodingParquetType' + required: + - type + type: object + ObservabilityPipelineAmazonS3GenericEncodingParquetType: + default: parquet + description: The encoding type. Always `parquet`. + enum: + - parquet + example: parquet + type: string + x-enum-varnames: + - PARQUET ObservabilityPipelineAmazonS3Source: description: 'The `amazon_s3` source ingests logs from an Amazon S3 bucket. @@ -42269,6 +42454,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestination' - $ref: '#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination' - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3Destination' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3GenericDestination' - $ref: '#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination' - $ref: '#/components/schemas/AzureStorageDestination' - $ref: '#/components/schemas/ObservabilityPipelineCloudPremDestination' @@ -46462,15 +46648,6 @@ components: description: Optional name of the Splunk index where logs are written. example: main type: string - indexed_fields: - description: List of log field names to send as indexed fields to Splunk - HEC. Available only when `encoding` is `json`. - example: - - service - - host - items: - type: string - type: array inputs: description: A list of component IDs whose output is used as the `input` for this component. diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericBatchSettings.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericBatchSettings.java new file mode 100644 index 00000000000..fd11e937c1b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericBatchSettings.java @@ -0,0 +1,171 @@ +/* + * 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.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; + +/** Event batching settings */ +@JsonPropertyOrder({ + ObservabilityPipelineAmazonS3GenericBatchSettings.JSON_PROPERTY_BATCH_SIZE, + ObservabilityPipelineAmazonS3GenericBatchSettings.JSON_PROPERTY_TIMEOUT_SECS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineAmazonS3GenericBatchSettings { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_BATCH_SIZE = "batch_size"; + private Long batchSize; + + public static final String JSON_PROPERTY_TIMEOUT_SECS = "timeout_secs"; + private Long timeoutSecs; + + public ObservabilityPipelineAmazonS3GenericBatchSettings batchSize(Long batchSize) { + this.batchSize = batchSize; + return this; + } + + /** + * Maximum batch size in bytes. + * + * @return batchSize + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BATCH_SIZE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getBatchSize() { + return batchSize; + } + + public void setBatchSize(Long batchSize) { + this.batchSize = batchSize; + } + + public ObservabilityPipelineAmazonS3GenericBatchSettings timeoutSecs(Long timeoutSecs) { + this.timeoutSecs = timeoutSecs; + return this; + } + + /** + * Maximum number of seconds to wait before flushing the batch. + * + * @return timeoutSecs + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TIMEOUT_SECS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getTimeoutSecs() { + return timeoutSecs; + } + + public void setTimeoutSecs(Long timeoutSecs) { + this.timeoutSecs = timeoutSecs; + } + + /** + * 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 ObservabilityPipelineAmazonS3GenericBatchSettings + */ + @JsonAnySetter + public ObservabilityPipelineAmazonS3GenericBatchSettings 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 ObservabilityPipelineAmazonS3GenericBatchSettings object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineAmazonS3GenericBatchSettings + observabilityPipelineAmazonS3GenericBatchSettings = + (ObservabilityPipelineAmazonS3GenericBatchSettings) o; + return Objects.equals( + this.batchSize, observabilityPipelineAmazonS3GenericBatchSettings.batchSize) + && Objects.equals( + this.timeoutSecs, observabilityPipelineAmazonS3GenericBatchSettings.timeoutSecs) + && Objects.equals( + this.additionalProperties, + observabilityPipelineAmazonS3GenericBatchSettings.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(batchSize, timeoutSecs, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineAmazonS3GenericBatchSettings {\n"); + sb.append(" batchSize: ").append(toIndentedString(batchSize)).append("\n"); + sb.append(" timeoutSecs: ").append(toIndentedString(timeoutSecs)).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/ObservabilityPipelineAmazonS3GenericCompression.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompression.java new file mode 100644 index 00000000000..65ad7d3da2a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompression.java @@ -0,0 +1,426 @@ +/* + * 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.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize( + using = + ObservabilityPipelineAmazonS3GenericCompression + .ObservabilityPipelineAmazonS3GenericCompressionDeserializer.class) +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericCompression + .ObservabilityPipelineAmazonS3GenericCompressionSerializer.class) +public class ObservabilityPipelineAmazonS3GenericCompression extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(ObservabilityPipelineAmazonS3GenericCompression.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class ObservabilityPipelineAmazonS3GenericCompressionSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericCompressionSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericCompressionSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericCompression value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class ObservabilityPipelineAmazonS3GenericCompressionDeserializer + extends StdDeserializer { + public ObservabilityPipelineAmazonS3GenericCompressionDeserializer() { + this(ObservabilityPipelineAmazonS3GenericCompression.class); + } + + public ObservabilityPipelineAmazonS3GenericCompressionDeserializer(Class vc) { + super(vc); + } + + @Override + public ObservabilityPipelineAmazonS3GenericCompression deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize ObservabilityPipelineAmazonS3GenericCompressionZstd + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Long.class) + || ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Double.class) + || ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Boolean.class) + || ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericCompressionZstd.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineAmazonS3GenericCompressionZstd.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 (!((ObservabilityPipelineAmazonS3GenericCompressionZstd) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineAmazonS3GenericCompressionZstd'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema" + + " 'ObservabilityPipelineAmazonS3GenericCompressionZstd'", + e); + } + + // deserialize ObservabilityPipelineAmazonS3GenericCompressionGzip + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Long.class) + || ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Double.class) + || ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Boolean.class) + || ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericCompressionGzip.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineAmazonS3GenericCompressionGzip.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 (!((ObservabilityPipelineAmazonS3GenericCompressionGzip) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineAmazonS3GenericCompressionGzip'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema" + + " 'ObservabilityPipelineAmazonS3GenericCompressionGzip'", + e); + } + + // deserialize ObservabilityPipelineAmazonS3GenericCompressionSnappy + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Long.class) + || ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Double.class) + || ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Boolean.class) + || ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericCompressionSnappy.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineAmazonS3GenericCompressionSnappy.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 (!((ObservabilityPipelineAmazonS3GenericCompressionSnappy) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineAmazonS3GenericCompressionSnappy'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema" + + " 'ObservabilityPipelineAmazonS3GenericCompressionSnappy'", + e); + } + + ObservabilityPipelineAmazonS3GenericCompression ret = + new ObservabilityPipelineAmazonS3GenericCompression(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public ObservabilityPipelineAmazonS3GenericCompression getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException( + ctxt.getParser(), "ObservabilityPipelineAmazonS3GenericCompression cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public ObservabilityPipelineAmazonS3GenericCompression() { + super("oneOf", Boolean.FALSE); + } + + public ObservabilityPipelineAmazonS3GenericCompression( + ObservabilityPipelineAmazonS3GenericCompressionZstd o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public ObservabilityPipelineAmazonS3GenericCompression( + ObservabilityPipelineAmazonS3GenericCompressionGzip o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public ObservabilityPipelineAmazonS3GenericCompression( + ObservabilityPipelineAmazonS3GenericCompressionSnappy o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put( + "ObservabilityPipelineAmazonS3GenericCompressionZstd", + new GenericType() {}); + schemas.put( + "ObservabilityPipelineAmazonS3GenericCompressionGzip", + new GenericType() {}); + schemas.put( + "ObservabilityPipelineAmazonS3GenericCompressionSnappy", + new GenericType() {}); + JSON.registerDescendants( + ObservabilityPipelineAmazonS3GenericCompression.class, + Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return ObservabilityPipelineAmazonS3GenericCompression.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: ObservabilityPipelineAmazonS3GenericCompressionZstd, + * ObservabilityPipelineAmazonS3GenericCompressionGzip, + * ObservabilityPipelineAmazonS3GenericCompressionSnappy + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf( + ObservabilityPipelineAmazonS3GenericCompressionZstd.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + ObservabilityPipelineAmazonS3GenericCompressionGzip.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + ObservabilityPipelineAmazonS3GenericCompressionSnappy.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( + "Invalid instance type. Must be ObservabilityPipelineAmazonS3GenericCompressionZstd," + + " ObservabilityPipelineAmazonS3GenericCompressionGzip," + + " ObservabilityPipelineAmazonS3GenericCompressionSnappy"); + } + + /** + * Get the actual instance, which can be the following: + * ObservabilityPipelineAmazonS3GenericCompressionZstd, + * ObservabilityPipelineAmazonS3GenericCompressionGzip, + * ObservabilityPipelineAmazonS3GenericCompressionSnappy + * + * @return The actual instance (ObservabilityPipelineAmazonS3GenericCompressionZstd, + * ObservabilityPipelineAmazonS3GenericCompressionGzip, + * ObservabilityPipelineAmazonS3GenericCompressionSnappy) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ObservabilityPipelineAmazonS3GenericCompressionZstd`. If the actual + * instance is not `ObservabilityPipelineAmazonS3GenericCompressionZstd`, the ClassCastException + * will be thrown. + * + * @return The actual instance of `ObservabilityPipelineAmazonS3GenericCompressionZstd` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineAmazonS3GenericCompressionZstd` + */ + public ObservabilityPipelineAmazonS3GenericCompressionZstd + getObservabilityPipelineAmazonS3GenericCompressionZstd() throws ClassCastException { + return (ObservabilityPipelineAmazonS3GenericCompressionZstd) super.getActualInstance(); + } + + /** + * Get the actual instance of `ObservabilityPipelineAmazonS3GenericCompressionGzip`. If the actual + * instance is not `ObservabilityPipelineAmazonS3GenericCompressionGzip`, the ClassCastException + * will be thrown. + * + * @return The actual instance of `ObservabilityPipelineAmazonS3GenericCompressionGzip` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineAmazonS3GenericCompressionGzip` + */ + public ObservabilityPipelineAmazonS3GenericCompressionGzip + getObservabilityPipelineAmazonS3GenericCompressionGzip() throws ClassCastException { + return (ObservabilityPipelineAmazonS3GenericCompressionGzip) super.getActualInstance(); + } + + /** + * Get the actual instance of `ObservabilityPipelineAmazonS3GenericCompressionSnappy`. If the + * actual instance is not `ObservabilityPipelineAmazonS3GenericCompressionSnappy`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `ObservabilityPipelineAmazonS3GenericCompressionSnappy` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineAmazonS3GenericCompressionSnappy` + */ + public ObservabilityPipelineAmazonS3GenericCompressionSnappy + getObservabilityPipelineAmazonS3GenericCompressionSnappy() throws ClassCastException { + return (ObservabilityPipelineAmazonS3GenericCompressionSnappy) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionGzip.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionGzip.java new file mode 100644 index 00000000000..83e367dacf4 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionGzip.java @@ -0,0 +1,188 @@ +/* + * 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; + +/** Gzip compression. */ +@JsonPropertyOrder({ + ObservabilityPipelineAmazonS3GenericCompressionGzip.JSON_PROPERTY_LEVEL, + ObservabilityPipelineAmazonS3GenericCompressionGzip.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineAmazonS3GenericCompressionGzip { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_LEVEL = "level"; + private Long level; + + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelineAmazonS3GenericCompressionGzipType type = + ObservabilityPipelineAmazonS3GenericCompressionGzipType.GZIP; + + public ObservabilityPipelineAmazonS3GenericCompressionGzip() {} + + @JsonCreator + public ObservabilityPipelineAmazonS3GenericCompressionGzip( + @JsonProperty(required = true, value = JSON_PROPERTY_LEVEL) Long level, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelineAmazonS3GenericCompressionGzipType type) { + this.level = level; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelineAmazonS3GenericCompressionGzip level(Long level) { + this.level = level; + return this; + } + + /** + * Gzip compression level. + * + * @return level + */ + @JsonProperty(JSON_PROPERTY_LEVEL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getLevel() { + return level; + } + + public void setLevel(Long level) { + this.level = level; + } + + public ObservabilityPipelineAmazonS3GenericCompressionGzip type( + ObservabilityPipelineAmazonS3GenericCompressionGzipType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The compression type. Always gzip. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericCompressionGzipType getType() { + return type; + } + + public void setType(ObservabilityPipelineAmazonS3GenericCompressionGzipType 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 ObservabilityPipelineAmazonS3GenericCompressionGzip + */ + @JsonAnySetter + public ObservabilityPipelineAmazonS3GenericCompressionGzip 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 ObservabilityPipelineAmazonS3GenericCompressionGzip object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineAmazonS3GenericCompressionGzip + observabilityPipelineAmazonS3GenericCompressionGzip = + (ObservabilityPipelineAmazonS3GenericCompressionGzip) o; + return Objects.equals(this.level, observabilityPipelineAmazonS3GenericCompressionGzip.level) + && Objects.equals(this.type, observabilityPipelineAmazonS3GenericCompressionGzip.type) + && Objects.equals( + this.additionalProperties, + observabilityPipelineAmazonS3GenericCompressionGzip.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(level, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineAmazonS3GenericCompressionGzip {\n"); + sb.append(" level: ").append(toIndentedString(level)).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/ObservabilityPipelineAmazonS3GenericCompressionGzipType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionGzipType.java new file mode 100644 index 00000000000..1b158657aca --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionGzipType.java @@ -0,0 +1,62 @@ +/* + * 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 type. Always gzip. */ +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericCompressionGzipType + .ObservabilityPipelineAmazonS3GenericCompressionGzipTypeSerializer.class) +public class ObservabilityPipelineAmazonS3GenericCompressionGzipType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("gzip")); + + public static final ObservabilityPipelineAmazonS3GenericCompressionGzipType GZIP = + new ObservabilityPipelineAmazonS3GenericCompressionGzipType("gzip"); + + ObservabilityPipelineAmazonS3GenericCompressionGzipType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineAmazonS3GenericCompressionGzipTypeSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericCompressionGzipTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericCompressionGzipTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericCompressionGzipType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineAmazonS3GenericCompressionGzipType fromValue(String value) { + return new ObservabilityPipelineAmazonS3GenericCompressionGzipType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionSnappy.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionSnappy.java new file mode 100644 index 00000000000..12cc9cadca7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionSnappy.java @@ -0,0 +1,158 @@ +/* + * 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; + +/** Snappy compression. */ +@JsonPropertyOrder({ObservabilityPipelineAmazonS3GenericCompressionSnappy.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineAmazonS3GenericCompressionSnappy { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelineAmazonS3GenericCompressionSnappyType type = + ObservabilityPipelineAmazonS3GenericCompressionSnappyType.SNAPPY; + + public ObservabilityPipelineAmazonS3GenericCompressionSnappy() {} + + @JsonCreator + public ObservabilityPipelineAmazonS3GenericCompressionSnappy( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelineAmazonS3GenericCompressionSnappyType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelineAmazonS3GenericCompressionSnappy type( + ObservabilityPipelineAmazonS3GenericCompressionSnappyType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The compression type. Always snappy. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericCompressionSnappyType getType() { + return type; + } + + public void setType(ObservabilityPipelineAmazonS3GenericCompressionSnappyType 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 ObservabilityPipelineAmazonS3GenericCompressionSnappy + */ + @JsonAnySetter + public ObservabilityPipelineAmazonS3GenericCompressionSnappy 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 ObservabilityPipelineAmazonS3GenericCompressionSnappy object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineAmazonS3GenericCompressionSnappy + observabilityPipelineAmazonS3GenericCompressionSnappy = + (ObservabilityPipelineAmazonS3GenericCompressionSnappy) o; + return Objects.equals(this.type, observabilityPipelineAmazonS3GenericCompressionSnappy.type) + && Objects.equals( + this.additionalProperties, + observabilityPipelineAmazonS3GenericCompressionSnappy.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineAmazonS3GenericCompressionSnappy {\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/ObservabilityPipelineAmazonS3GenericCompressionSnappyType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionSnappyType.java new file mode 100644 index 00000000000..f4099bec869 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionSnappyType.java @@ -0,0 +1,62 @@ +/* + * 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 type. Always snappy. */ +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericCompressionSnappyType + .ObservabilityPipelineAmazonS3GenericCompressionSnappyTypeSerializer.class) +public class ObservabilityPipelineAmazonS3GenericCompressionSnappyType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("snappy")); + + public static final ObservabilityPipelineAmazonS3GenericCompressionSnappyType SNAPPY = + new ObservabilityPipelineAmazonS3GenericCompressionSnappyType("snappy"); + + ObservabilityPipelineAmazonS3GenericCompressionSnappyType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineAmazonS3GenericCompressionSnappyTypeSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericCompressionSnappyTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericCompressionSnappyTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericCompressionSnappyType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineAmazonS3GenericCompressionSnappyType fromValue(String value) { + return new ObservabilityPipelineAmazonS3GenericCompressionSnappyType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionZstd.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionZstd.java new file mode 100644 index 00000000000..d1f8f3c6571 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionZstd.java @@ -0,0 +1,188 @@ +/* + * 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; + +/** Zstd compression. */ +@JsonPropertyOrder({ + ObservabilityPipelineAmazonS3GenericCompressionZstd.JSON_PROPERTY_LEVEL, + ObservabilityPipelineAmazonS3GenericCompressionZstd.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineAmazonS3GenericCompressionZstd { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_LEVEL = "level"; + private Long level; + + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelineAmazonS3GenericCompressionZstdType type = + ObservabilityPipelineAmazonS3GenericCompressionZstdType.ZSTD; + + public ObservabilityPipelineAmazonS3GenericCompressionZstd() {} + + @JsonCreator + public ObservabilityPipelineAmazonS3GenericCompressionZstd( + @JsonProperty(required = true, value = JSON_PROPERTY_LEVEL) Long level, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelineAmazonS3GenericCompressionZstdType type) { + this.level = level; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelineAmazonS3GenericCompressionZstd level(Long level) { + this.level = level; + return this; + } + + /** + * Zstd compression level. + * + * @return level + */ + @JsonProperty(JSON_PROPERTY_LEVEL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getLevel() { + return level; + } + + public void setLevel(Long level) { + this.level = level; + } + + public ObservabilityPipelineAmazonS3GenericCompressionZstd type( + ObservabilityPipelineAmazonS3GenericCompressionZstdType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The compression type. Always zstd. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericCompressionZstdType getType() { + return type; + } + + public void setType(ObservabilityPipelineAmazonS3GenericCompressionZstdType 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 ObservabilityPipelineAmazonS3GenericCompressionZstd + */ + @JsonAnySetter + public ObservabilityPipelineAmazonS3GenericCompressionZstd 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 ObservabilityPipelineAmazonS3GenericCompressionZstd object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineAmazonS3GenericCompressionZstd + observabilityPipelineAmazonS3GenericCompressionZstd = + (ObservabilityPipelineAmazonS3GenericCompressionZstd) o; + return Objects.equals(this.level, observabilityPipelineAmazonS3GenericCompressionZstd.level) + && Objects.equals(this.type, observabilityPipelineAmazonS3GenericCompressionZstd.type) + && Objects.equals( + this.additionalProperties, + observabilityPipelineAmazonS3GenericCompressionZstd.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(level, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineAmazonS3GenericCompressionZstd {\n"); + sb.append(" level: ").append(toIndentedString(level)).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/ObservabilityPipelineAmazonS3GenericCompressionZstdType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionZstdType.java new file mode 100644 index 00000000000..8acc2fd449b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericCompressionZstdType.java @@ -0,0 +1,62 @@ +/* + * 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 type. Always zstd. */ +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericCompressionZstdType + .ObservabilityPipelineAmazonS3GenericCompressionZstdTypeSerializer.class) +public class ObservabilityPipelineAmazonS3GenericCompressionZstdType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("zstd")); + + public static final ObservabilityPipelineAmazonS3GenericCompressionZstdType ZSTD = + new ObservabilityPipelineAmazonS3GenericCompressionZstdType("zstd"); + + ObservabilityPipelineAmazonS3GenericCompressionZstdType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineAmazonS3GenericCompressionZstdTypeSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericCompressionZstdTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericCompressionZstdTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericCompressionZstdType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineAmazonS3GenericCompressionZstdType fromValue(String value) { + return new ObservabilityPipelineAmazonS3GenericCompressionZstdType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericDestination.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericDestination.java new file mode 100644 index 00000000000..a73842c472a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericDestination.java @@ -0,0 +1,480 @@ +/* + * 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 amazon_s3_generic destination sends your logs to an Amazon S3 bucket. + * + *

Supported pipeline types: logs + */ +@JsonPropertyOrder({ + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_AUTH, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_BATCH_SETTINGS, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_BUCKET, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_COMPRESSION, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_ENCODING, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_ID, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_INPUTS, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_KEY_PREFIX, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_REGION, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_STORAGE_CLASS, + ObservabilityPipelineAmazonS3GenericDestination.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineAmazonS3GenericDestination { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_AUTH = "auth"; + private ObservabilityPipelineAwsAuth auth; + + public static final String JSON_PROPERTY_BATCH_SETTINGS = "batch_settings"; + private ObservabilityPipelineAmazonS3GenericBatchSettings batchSettings; + + public static final String JSON_PROPERTY_BUCKET = "bucket"; + private String bucket; + + public static final String JSON_PROPERTY_COMPRESSION = "compression"; + private ObservabilityPipelineAmazonS3GenericCompression compression; + + public static final String JSON_PROPERTY_ENCODING = "encoding"; + private ObservabilityPipelineAmazonS3GenericEncoding encoding; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_INPUTS = "inputs"; + private List inputs = new ArrayList<>(); + + public static final String JSON_PROPERTY_KEY_PREFIX = "key_prefix"; + private String keyPrefix; + + public static final String JSON_PROPERTY_REGION = "region"; + private String region; + + public static final String JSON_PROPERTY_STORAGE_CLASS = "storage_class"; + private ObservabilityPipelineAmazonS3DestinationStorageClass storageClass; + + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelineAmazonS3GenericDestinationType type = + ObservabilityPipelineAmazonS3GenericDestinationType.GENERIC_ARCHIVES_S3; + + public ObservabilityPipelineAmazonS3GenericDestination() {} + + @JsonCreator + public ObservabilityPipelineAmazonS3GenericDestination( + @JsonProperty(required = true, value = JSON_PROPERTY_BUCKET) String bucket, + @JsonProperty(required = true, value = JSON_PROPERTY_COMPRESSION) + ObservabilityPipelineAmazonS3GenericCompression compression, + @JsonProperty(required = true, value = JSON_PROPERTY_ENCODING) + ObservabilityPipelineAmazonS3GenericEncoding encoding, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_INPUTS) List inputs, + @JsonProperty(required = true, value = JSON_PROPERTY_REGION) String region, + @JsonProperty(required = true, value = JSON_PROPERTY_STORAGE_CLASS) + ObservabilityPipelineAmazonS3DestinationStorageClass storageClass, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelineAmazonS3GenericDestinationType type) { + this.bucket = bucket; + this.compression = compression; + this.unparsed |= compression.unparsed; + this.encoding = encoding; + this.unparsed |= encoding.unparsed; + this.id = id; + this.inputs = inputs; + this.region = region; + this.storageClass = storageClass; + this.unparsed |= !storageClass.isValid(); + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelineAmazonS3GenericDestination auth(ObservabilityPipelineAwsAuth auth) { + this.auth = auth; + this.unparsed |= auth.unparsed; + return this; + } + + /** + * AWS authentication credentials used for accessing AWS services such as S3. If omitted, the + * system’s default credentials are used (for example, the IAM role and environment variables). + * + * @return auth + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AUTH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineAwsAuth getAuth() { + return auth; + } + + public void setAuth(ObservabilityPipelineAwsAuth auth) { + this.auth = auth; + } + + public ObservabilityPipelineAmazonS3GenericDestination batchSettings( + ObservabilityPipelineAmazonS3GenericBatchSettings batchSettings) { + this.batchSettings = batchSettings; + this.unparsed |= batchSettings.unparsed; + return this; + } + + /** + * Event batching settings + * + * @return batchSettings + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BATCH_SETTINGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineAmazonS3GenericBatchSettings getBatchSettings() { + return batchSettings; + } + + public void setBatchSettings(ObservabilityPipelineAmazonS3GenericBatchSettings batchSettings) { + this.batchSettings = batchSettings; + } + + public ObservabilityPipelineAmazonS3GenericDestination bucket(String bucket) { + this.bucket = bucket; + return this; + } + + /** + * S3 bucket name. + * + * @return bucket + */ + @JsonProperty(JSON_PROPERTY_BUCKET) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getBucket() { + return bucket; + } + + public void setBucket(String bucket) { + this.bucket = bucket; + } + + public ObservabilityPipelineAmazonS3GenericDestination compression( + ObservabilityPipelineAmazonS3GenericCompression compression) { + this.compression = compression; + this.unparsed |= compression.unparsed; + return this; + } + + /** + * Compression algorithm applied to encoded logs. + * + * @return compression + */ + @JsonProperty(JSON_PROPERTY_COMPRESSION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericCompression getCompression() { + return compression; + } + + public void setCompression(ObservabilityPipelineAmazonS3GenericCompression compression) { + this.compression = compression; + } + + public ObservabilityPipelineAmazonS3GenericDestination encoding( + ObservabilityPipelineAmazonS3GenericEncoding encoding) { + this.encoding = encoding; + this.unparsed |= encoding.unparsed; + return this; + } + + /** + * Encoding format for the destination. + * + * @return encoding + */ + @JsonProperty(JSON_PROPERTY_ENCODING) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericEncoding getEncoding() { + return encoding; + } + + public void setEncoding(ObservabilityPipelineAmazonS3GenericEncoding encoding) { + this.encoding = encoding; + } + + public ObservabilityPipelineAmazonS3GenericDestination id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier for the destination component. + * + * @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 ObservabilityPipelineAmazonS3GenericDestination inputs(List inputs) { + this.inputs = inputs; + return this; + } + + public ObservabilityPipelineAmazonS3GenericDestination addInputsItem(String inputsItem) { + this.inputs.add(inputsItem); + return this; + } + + /** + * A list of component IDs whose output is used as the input for this component. + * + * @return inputs + */ + @JsonProperty(JSON_PROPERTY_INPUTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getInputs() { + return inputs; + } + + public void setInputs(List inputs) { + this.inputs = inputs; + } + + public ObservabilityPipelineAmazonS3GenericDestination keyPrefix(String keyPrefix) { + this.keyPrefix = keyPrefix; + return this; + } + + /** + * Optional prefix for object keys. + * + * @return keyPrefix + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_KEY_PREFIX) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getKeyPrefix() { + return keyPrefix; + } + + public void setKeyPrefix(String keyPrefix) { + this.keyPrefix = keyPrefix; + } + + public ObservabilityPipelineAmazonS3GenericDestination region(String region) { + this.region = region; + return this; + } + + /** + * AWS region of the S3 bucket. + * + * @return region + */ + @JsonProperty(JSON_PROPERTY_REGION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRegion() { + return region; + } + + public void setRegion(String region) { + this.region = region; + } + + public ObservabilityPipelineAmazonS3GenericDestination storageClass( + ObservabilityPipelineAmazonS3DestinationStorageClass storageClass) { + this.storageClass = storageClass; + this.unparsed |= !storageClass.isValid(); + return this; + } + + /** + * S3 storage class. + * + * @return storageClass + */ + @JsonProperty(JSON_PROPERTY_STORAGE_CLASS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3DestinationStorageClass getStorageClass() { + return storageClass; + } + + public void setStorageClass(ObservabilityPipelineAmazonS3DestinationStorageClass storageClass) { + if (!storageClass.isValid()) { + this.unparsed = true; + } + this.storageClass = storageClass; + } + + public ObservabilityPipelineAmazonS3GenericDestination type( + ObservabilityPipelineAmazonS3GenericDestinationType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The destination type. Always amazon_s3_generic. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericDestinationType getType() { + return type; + } + + public void setType(ObservabilityPipelineAmazonS3GenericDestinationType 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 ObservabilityPipelineAmazonS3GenericDestination + */ + @JsonAnySetter + public ObservabilityPipelineAmazonS3GenericDestination 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 ObservabilityPipelineAmazonS3GenericDestination object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineAmazonS3GenericDestination + observabilityPipelineAmazonS3GenericDestination = + (ObservabilityPipelineAmazonS3GenericDestination) o; + return Objects.equals(this.auth, observabilityPipelineAmazonS3GenericDestination.auth) + && Objects.equals( + this.batchSettings, observabilityPipelineAmazonS3GenericDestination.batchSettings) + && Objects.equals(this.bucket, observabilityPipelineAmazonS3GenericDestination.bucket) + && Objects.equals( + this.compression, observabilityPipelineAmazonS3GenericDestination.compression) + && Objects.equals(this.encoding, observabilityPipelineAmazonS3GenericDestination.encoding) + && Objects.equals(this.id, observabilityPipelineAmazonS3GenericDestination.id) + && Objects.equals(this.inputs, observabilityPipelineAmazonS3GenericDestination.inputs) + && Objects.equals(this.keyPrefix, observabilityPipelineAmazonS3GenericDestination.keyPrefix) + && Objects.equals(this.region, observabilityPipelineAmazonS3GenericDestination.region) + && Objects.equals( + this.storageClass, observabilityPipelineAmazonS3GenericDestination.storageClass) + && Objects.equals(this.type, observabilityPipelineAmazonS3GenericDestination.type) + && Objects.equals( + this.additionalProperties, + observabilityPipelineAmazonS3GenericDestination.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + auth, + batchSettings, + bucket, + compression, + encoding, + id, + inputs, + keyPrefix, + region, + storageClass, + type, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineAmazonS3GenericDestination {\n"); + sb.append(" auth: ").append(toIndentedString(auth)).append("\n"); + sb.append(" batchSettings: ").append(toIndentedString(batchSettings)).append("\n"); + sb.append(" bucket: ").append(toIndentedString(bucket)).append("\n"); + sb.append(" compression: ").append(toIndentedString(compression)).append("\n"); + sb.append(" encoding: ").append(toIndentedString(encoding)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" inputs: ").append(toIndentedString(inputs)).append("\n"); + sb.append(" keyPrefix: ").append(toIndentedString(keyPrefix)).append("\n"); + sb.append(" region: ").append(toIndentedString(region)).append("\n"); + sb.append(" storageClass: ").append(toIndentedString(storageClass)).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/ObservabilityPipelineAmazonS3GenericDestinationType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericDestinationType.java new file mode 100644 index 00000000000..75646db0dc7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericDestinationType.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 destination type. Always amazon_s3_generic. */ +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericDestinationType + .ObservabilityPipelineAmazonS3GenericDestinationTypeSerializer.class) +public class ObservabilityPipelineAmazonS3GenericDestinationType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("amazon_s3_generic")); + + public static final ObservabilityPipelineAmazonS3GenericDestinationType GENERIC_ARCHIVES_S3 = + new ObservabilityPipelineAmazonS3GenericDestinationType("amazon_s3_generic"); + + ObservabilityPipelineAmazonS3GenericDestinationType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineAmazonS3GenericDestinationTypeSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericDestinationTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericDestinationTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericDestinationType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineAmazonS3GenericDestinationType fromValue(String value) { + return new ObservabilityPipelineAmazonS3GenericDestinationType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncoding.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncoding.java new file mode 100644 index 00000000000..79154ce448e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncoding.java @@ -0,0 +1,335 @@ +/* + * 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.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize( + using = + ObservabilityPipelineAmazonS3GenericEncoding + .ObservabilityPipelineAmazonS3GenericEncodingDeserializer.class) +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericEncoding + .ObservabilityPipelineAmazonS3GenericEncodingSerializer.class) +public class ObservabilityPipelineAmazonS3GenericEncoding extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(ObservabilityPipelineAmazonS3GenericEncoding.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class ObservabilityPipelineAmazonS3GenericEncodingSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericEncodingSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericEncodingSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericEncoding value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class ObservabilityPipelineAmazonS3GenericEncodingDeserializer + extends StdDeserializer { + public ObservabilityPipelineAmazonS3GenericEncodingDeserializer() { + this(ObservabilityPipelineAmazonS3GenericEncoding.class); + } + + public ObservabilityPipelineAmazonS3GenericEncodingDeserializer(Class vc) { + super(vc); + } + + @Override + public ObservabilityPipelineAmazonS3GenericEncoding deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize ObservabilityPipelineAmazonS3GenericEncodingJson + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Long.class) + || ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Double.class) + || ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Boolean.class) + || ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericEncodingJson.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineAmazonS3GenericEncodingJson.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 (!((ObservabilityPipelineAmazonS3GenericEncodingJson) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineAmazonS3GenericEncodingJson'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'ObservabilityPipelineAmazonS3GenericEncodingJson'", + e); + } + + // deserialize ObservabilityPipelineAmazonS3GenericEncodingParquet + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Long.class) + || ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Double.class) + || ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Boolean.class) + || ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericEncodingParquet.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineAmazonS3GenericEncodingParquet.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 (!((ObservabilityPipelineAmazonS3GenericEncodingParquet) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineAmazonS3GenericEncodingParquet'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema" + + " 'ObservabilityPipelineAmazonS3GenericEncodingParquet'", + e); + } + + ObservabilityPipelineAmazonS3GenericEncoding ret = + new ObservabilityPipelineAmazonS3GenericEncoding(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public ObservabilityPipelineAmazonS3GenericEncoding getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException( + ctxt.getParser(), "ObservabilityPipelineAmazonS3GenericEncoding cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public ObservabilityPipelineAmazonS3GenericEncoding() { + super("oneOf", Boolean.FALSE); + } + + public ObservabilityPipelineAmazonS3GenericEncoding( + ObservabilityPipelineAmazonS3GenericEncodingJson o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public ObservabilityPipelineAmazonS3GenericEncoding( + ObservabilityPipelineAmazonS3GenericEncodingParquet o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put( + "ObservabilityPipelineAmazonS3GenericEncodingJson", + new GenericType() {}); + schemas.put( + "ObservabilityPipelineAmazonS3GenericEncodingParquet", + new GenericType() {}); + JSON.registerDescendants( + ObservabilityPipelineAmazonS3GenericEncoding.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return ObservabilityPipelineAmazonS3GenericEncoding.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: ObservabilityPipelineAmazonS3GenericEncodingJson, + * ObservabilityPipelineAmazonS3GenericEncodingParquet + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf( + ObservabilityPipelineAmazonS3GenericEncodingJson.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + ObservabilityPipelineAmazonS3GenericEncodingParquet.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( + "Invalid instance type. Must be ObservabilityPipelineAmazonS3GenericEncodingJson," + + " ObservabilityPipelineAmazonS3GenericEncodingParquet"); + } + + /** + * Get the actual instance, which can be the following: + * ObservabilityPipelineAmazonS3GenericEncodingJson, + * ObservabilityPipelineAmazonS3GenericEncodingParquet + * + * @return The actual instance (ObservabilityPipelineAmazonS3GenericEncodingJson, + * ObservabilityPipelineAmazonS3GenericEncodingParquet) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ObservabilityPipelineAmazonS3GenericEncodingJson`. If the actual + * instance is not `ObservabilityPipelineAmazonS3GenericEncodingJson`, the ClassCastException will + * be thrown. + * + * @return The actual instance of `ObservabilityPipelineAmazonS3GenericEncodingJson` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineAmazonS3GenericEncodingJson` + */ + public ObservabilityPipelineAmazonS3GenericEncodingJson + getObservabilityPipelineAmazonS3GenericEncodingJson() throws ClassCastException { + return (ObservabilityPipelineAmazonS3GenericEncodingJson) super.getActualInstance(); + } + + /** + * Get the actual instance of `ObservabilityPipelineAmazonS3GenericEncodingParquet`. If the actual + * instance is not `ObservabilityPipelineAmazonS3GenericEncodingParquet`, the ClassCastException + * will be thrown. + * + * @return The actual instance of `ObservabilityPipelineAmazonS3GenericEncodingParquet` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineAmazonS3GenericEncodingParquet` + */ + public ObservabilityPipelineAmazonS3GenericEncodingParquet + getObservabilityPipelineAmazonS3GenericEncodingParquet() throws ClassCastException { + return (ObservabilityPipelineAmazonS3GenericEncodingParquet) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingJson.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingJson.java new file mode 100644 index 00000000000..59d4276cce1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingJson.java @@ -0,0 +1,156 @@ +/* + * 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; + +/** JSON encoding. */ +@JsonPropertyOrder({ObservabilityPipelineAmazonS3GenericEncodingJson.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineAmazonS3GenericEncodingJson { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelineAmazonS3GenericEncodingJsonType type = + ObservabilityPipelineAmazonS3GenericEncodingJsonType.JSON; + + public ObservabilityPipelineAmazonS3GenericEncodingJson() {} + + @JsonCreator + public ObservabilityPipelineAmazonS3GenericEncodingJson( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelineAmazonS3GenericEncodingJsonType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelineAmazonS3GenericEncodingJson type( + ObservabilityPipelineAmazonS3GenericEncodingJsonType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The encoding type. Always json. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericEncodingJsonType getType() { + return type; + } + + public void setType(ObservabilityPipelineAmazonS3GenericEncodingJsonType 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 ObservabilityPipelineAmazonS3GenericEncodingJson + */ + @JsonAnySetter + public ObservabilityPipelineAmazonS3GenericEncodingJson 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 ObservabilityPipelineAmazonS3GenericEncodingJson object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineAmazonS3GenericEncodingJson + observabilityPipelineAmazonS3GenericEncodingJson = + (ObservabilityPipelineAmazonS3GenericEncodingJson) o; + return Objects.equals(this.type, observabilityPipelineAmazonS3GenericEncodingJson.type) + && Objects.equals( + this.additionalProperties, + observabilityPipelineAmazonS3GenericEncodingJson.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineAmazonS3GenericEncodingJson {\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/ObservabilityPipelineAmazonS3GenericEncodingJsonType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingJsonType.java new file mode 100644 index 00000000000..304c0b9a724 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingJsonType.java @@ -0,0 +1,62 @@ +/* + * 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 encoding type. Always json. */ +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericEncodingJsonType + .ObservabilityPipelineAmazonS3GenericEncodingJsonTypeSerializer.class) +public class ObservabilityPipelineAmazonS3GenericEncodingJsonType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("json")); + + public static final ObservabilityPipelineAmazonS3GenericEncodingJsonType JSON = + new ObservabilityPipelineAmazonS3GenericEncodingJsonType("json"); + + ObservabilityPipelineAmazonS3GenericEncodingJsonType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineAmazonS3GenericEncodingJsonTypeSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericEncodingJsonTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericEncodingJsonTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericEncodingJsonType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineAmazonS3GenericEncodingJsonType fromValue(String value) { + return new ObservabilityPipelineAmazonS3GenericEncodingJsonType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingParquet.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingParquet.java new file mode 100644 index 00000000000..7a11c39df02 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingParquet.java @@ -0,0 +1,158 @@ +/* + * 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; + +/** Parquet encoding. */ +@JsonPropertyOrder({ObservabilityPipelineAmazonS3GenericEncodingParquet.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineAmazonS3GenericEncodingParquet { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelineAmazonS3GenericEncodingParquetType type = + ObservabilityPipelineAmazonS3GenericEncodingParquetType.PARQUET; + + public ObservabilityPipelineAmazonS3GenericEncodingParquet() {} + + @JsonCreator + public ObservabilityPipelineAmazonS3GenericEncodingParquet( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelineAmazonS3GenericEncodingParquetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelineAmazonS3GenericEncodingParquet type( + ObservabilityPipelineAmazonS3GenericEncodingParquetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The encoding type. Always parquet. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineAmazonS3GenericEncodingParquetType getType() { + return type; + } + + public void setType(ObservabilityPipelineAmazonS3GenericEncodingParquetType 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 ObservabilityPipelineAmazonS3GenericEncodingParquet + */ + @JsonAnySetter + public ObservabilityPipelineAmazonS3GenericEncodingParquet 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 ObservabilityPipelineAmazonS3GenericEncodingParquet object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineAmazonS3GenericEncodingParquet + observabilityPipelineAmazonS3GenericEncodingParquet = + (ObservabilityPipelineAmazonS3GenericEncodingParquet) o; + return Objects.equals(this.type, observabilityPipelineAmazonS3GenericEncodingParquet.type) + && Objects.equals( + this.additionalProperties, + observabilityPipelineAmazonS3GenericEncodingParquet.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineAmazonS3GenericEncodingParquet {\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/ObservabilityPipelineAmazonS3GenericEncodingParquetType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingParquetType.java new file mode 100644 index 00000000000..1c9c7e836f8 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineAmazonS3GenericEncodingParquetType.java @@ -0,0 +1,62 @@ +/* + * 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 encoding type. Always parquet. */ +@JsonSerialize( + using = + ObservabilityPipelineAmazonS3GenericEncodingParquetType + .ObservabilityPipelineAmazonS3GenericEncodingParquetTypeSerializer.class) +public class ObservabilityPipelineAmazonS3GenericEncodingParquetType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("parquet")); + + public static final ObservabilityPipelineAmazonS3GenericEncodingParquetType PARQUET = + new ObservabilityPipelineAmazonS3GenericEncodingParquetType("parquet"); + + ObservabilityPipelineAmazonS3GenericEncodingParquetType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelineAmazonS3GenericEncodingParquetTypeSerializer + extends StdSerializer { + public ObservabilityPipelineAmazonS3GenericEncodingParquetTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelineAmazonS3GenericEncodingParquetTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelineAmazonS3GenericEncodingParquetType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelineAmazonS3GenericEncodingParquetType fromValue(String value) { + return new ObservabilityPipelineAmazonS3GenericEncodingParquetType(value); + } +} 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 d25d9c1b733..f03bd717bb4 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 @@ -247,6 +247,59 @@ public ObservabilityPipelineConfigDestinationItem deserialize( e); } + // deserialize ObservabilityPipelineAmazonS3GenericDestination + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelineAmazonS3GenericDestination.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericDestination.class.equals(Long.class) + || ObservabilityPipelineAmazonS3GenericDestination.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericDestination.class.equals(Double.class) + || ObservabilityPipelineAmazonS3GenericDestination.class.equals(Boolean.class) + || ObservabilityPipelineAmazonS3GenericDestination.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericDestination.class.equals(Integer.class) + || ObservabilityPipelineAmazonS3GenericDestination.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelineAmazonS3GenericDestination.class.equals(Float.class) + || ObservabilityPipelineAmazonS3GenericDestination.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericDestination.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelineAmazonS3GenericDestination.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelineAmazonS3GenericDestination.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 (!((ObservabilityPipelineAmazonS3GenericDestination) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelineAmazonS3GenericDestination'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'ObservabilityPipelineAmazonS3GenericDestination'", + e); + } + // deserialize ObservabilityPipelineAmazonSecurityLakeDestination try { boolean attemptParsing = true; @@ -1319,6 +1372,12 @@ public ObservabilityPipelineConfigDestinationItem(ObservabilityPipelineAmazonS3D setActualInstance(o); } + public ObservabilityPipelineConfigDestinationItem( + ObservabilityPipelineAmazonS3GenericDestination o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + public ObservabilityPipelineConfigDestinationItem( ObservabilityPipelineAmazonSecurityLakeDestination o) { super("oneOf", Boolean.FALSE); @@ -1436,6 +1495,9 @@ public ObservabilityPipelineConfigDestinationItem( schemas.put( "ObservabilityPipelineAmazonS3Destination", new GenericType() {}); + schemas.put( + "ObservabilityPipelineAmazonS3GenericDestination", + new GenericType() {}); schemas.put( "ObservabilityPipelineAmazonSecurityLakeDestination", new GenericType() {}); @@ -1505,6 +1567,7 @@ 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, * ObservabilityPipelineAmazonSecurityLakeDestination, AzureStorageDestination, * ObservabilityPipelineCloudPremDestination, * ObservabilityPipelineCrowdStrikeNextGenSiemDestination, @@ -1540,6 +1603,11 @@ public void setActualInstance(Object instance) { super.setActualInstance(instance); return; } + if (JSON.isInstanceOf( + ObservabilityPipelineAmazonS3GenericDestination.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } if (JSON.isInstanceOf( ObservabilityPipelineAmazonSecurityLakeDestination.class, instance, @@ -1653,6 +1721,7 @@ public void setActualInstance(Object instance) { "Invalid instance type. Must be ObservabilityPipelineHttpClientDestination," + " ObservabilityPipelineAmazonOpenSearchDestination," + " ObservabilityPipelineAmazonS3Destination," + + " ObservabilityPipelineAmazonS3GenericDestination," + " ObservabilityPipelineAmazonSecurityLakeDestination, AzureStorageDestination," + " ObservabilityPipelineCloudPremDestination," + " ObservabilityPipelineCrowdStrikeNextGenSiemDestination," @@ -1675,8 +1744,9 @@ public void setActualInstance(Object instance) { /** * Get the actual instance, which can be the following: * ObservabilityPipelineHttpClientDestination, ObservabilityPipelineAmazonOpenSearchDestination, - * ObservabilityPipelineAmazonS3Destination, ObservabilityPipelineAmazonSecurityLakeDestination, - * AzureStorageDestination, ObservabilityPipelineCloudPremDestination, + * ObservabilityPipelineAmazonS3Destination, ObservabilityPipelineAmazonS3GenericDestination, + * ObservabilityPipelineAmazonSecurityLakeDestination, AzureStorageDestination, + * ObservabilityPipelineCloudPremDestination, * ObservabilityPipelineCrowdStrikeNextGenSiemDestination, * ObservabilityPipelineDatadogLogsDestination, ObservabilityPipelineElasticsearchDestination, * ObservabilityPipelineGoogleChronicleDestination, @@ -1690,6 +1760,7 @@ public void setActualInstance(Object instance) { * * @return The actual instance (ObservabilityPipelineHttpClientDestination, * ObservabilityPipelineAmazonOpenSearchDestination, ObservabilityPipelineAmazonS3Destination, + * ObservabilityPipelineAmazonS3GenericDestination, * ObservabilityPipelineAmazonSecurityLakeDestination, AzureStorageDestination, * ObservabilityPipelineCloudPremDestination, * ObservabilityPipelineCrowdStrikeNextGenSiemDestination, @@ -1746,6 +1817,20 @@ public ObservabilityPipelineAmazonS3Destination getObservabilityPipelineAmazonS3 return (ObservabilityPipelineAmazonS3Destination) super.getActualInstance(); } + /** + * Get the actual instance of `ObservabilityPipelineAmazonS3GenericDestination`. If the actual + * instance is not `ObservabilityPipelineAmazonS3GenericDestination`, the ClassCastException will + * be thrown. + * + * @return The actual instance of `ObservabilityPipelineAmazonS3GenericDestination` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelineAmazonS3GenericDestination` + */ + public ObservabilityPipelineAmazonS3GenericDestination + getObservabilityPipelineAmazonS3GenericDestination() throws ClassCastException { + return (ObservabilityPipelineAmazonS3GenericDestination) super.getActualInstance(); + } + /** * Get the actual instance of `ObservabilityPipelineAmazonSecurityLakeDestination`. If the actual * instance is not `ObservabilityPipelineAmazonSecurityLakeDestination`, the ClassCastException diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineSplunkHecDestination.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineSplunkHecDestination.java index f0cfc1cac21..57a812dc19a 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineSplunkHecDestination.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineSplunkHecDestination.java @@ -32,7 +32,6 @@ ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_ENDPOINT_URL_KEY, ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_ID, ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_INDEX, - ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_INDEXED_FIELDS, ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_INPUTS, ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_SOURCETYPE, ObservabilityPipelineSplunkHecDestination.JSON_PROPERTY_TOKEN_KEY, @@ -60,9 +59,6 @@ public class ObservabilityPipelineSplunkHecDestination { public static final String JSON_PROPERTY_INDEX = "index"; private String index; - public static final String JSON_PROPERTY_INDEXED_FIELDS = "indexed_fields"; - private List indexedFields = null; - public static final String JSON_PROPERTY_INPUTS = "inputs"; private List inputs = new ArrayList<>(); @@ -225,36 +221,6 @@ public void setIndex(String index) { this.index = index; } - public ObservabilityPipelineSplunkHecDestination indexedFields(List indexedFields) { - this.indexedFields = indexedFields; - return this; - } - - public ObservabilityPipelineSplunkHecDestination addIndexedFieldsItem(String indexedFieldsItem) { - if (this.indexedFields == null) { - this.indexedFields = new ArrayList<>(); - } - this.indexedFields.add(indexedFieldsItem); - return this; - } - - /** - * List of log field names to send as indexed fields to Splunk HEC. Available only when - * encoding is json. - * - * @return indexedFields - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_INDEXED_FIELDS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public List getIndexedFields() { - return indexedFields; - } - - public void setIndexedFields(List indexedFields) { - this.indexedFields = indexedFields; - } - public ObservabilityPipelineSplunkHecDestination inputs(List inputs) { this.inputs = inputs; return this; @@ -413,8 +379,6 @@ public boolean equals(Object o) { this.endpointUrlKey, observabilityPipelineSplunkHecDestination.endpointUrlKey) && Objects.equals(this.id, observabilityPipelineSplunkHecDestination.id) && Objects.equals(this.index, observabilityPipelineSplunkHecDestination.index) - && Objects.equals( - this.indexedFields, observabilityPipelineSplunkHecDestination.indexedFields) && Objects.equals(this.inputs, observabilityPipelineSplunkHecDestination.inputs) && Objects.equals(this.sourcetype, observabilityPipelineSplunkHecDestination.sourcetype) && Objects.equals(this.tokenKey, observabilityPipelineSplunkHecDestination.tokenKey) @@ -433,7 +397,6 @@ public int hashCode() { endpointUrlKey, id, index, - indexedFields, inputs, sourcetype, tokenKey, @@ -453,7 +416,6 @@ public String toString() { sb.append(" endpointUrlKey: ").append(toIndentedString(endpointUrlKey)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" index: ").append(toIndentedString(index)).append("\n"); - sb.append(" indexedFields: ").append(toIndentedString(indexedFields)).append("\n"); sb.append(" inputs: ").append(toIndentedString(inputs)).append("\n"); sb.append(" sourcetype: ").append(toIndentedString(sourcetype)).append("\n"); sb.append(" tokenKey: ").append(toIndentedString(tokenKey)).append("\n");