From 83f2563e3ace2df4db7e123fe2ff4ebd52513c5d Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 10 Sep 2026 20:26:46 +0000 Subject: [PATCH] Regenerate client from commit a19c1b4 of spec repo --- .generator/schemas/v2/openapi.yaml | 166 ++++++ ...vabilityPipelineConfigDestinationItem.java | 89 +++ ...ObservabilityPipelineConfigSourceItem.java | 92 +++- ...elinePrometheusRemoteWriteDestination.java | 518 ++++++++++++++++++ ...eusRemoteWriteDestinationAuthStrategy.java | 69 +++ ...ePrometheusRemoteWriteDestinationType.java | 64 +++ ...tyPipelinePrometheusRemoteWriteSource.java | 439 +++++++++++++++ ...ometheusRemoteWriteSourceAuthStrategy.java | 67 +++ ...pelinePrometheusRemoteWriteSourceType.java | 63 +++ ...PrometheusRemoteWriteSourceValidToken.java | 220 ++++++++ 10 files changed, 1783 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestination.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestinationType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSource.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceValidToken.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index d4445d66254..9f138ef9b5c 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -74487,6 +74487,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineDatabricksZerobusDestination' - $ref: '#/components/schemas/ObservabilityPipelineDatadogMetricsDestination' - $ref: '#/components/schemas/ObservabilityPipelineOpentelemetryMetricsDestination' + - $ref: '#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestination' - $ref: '#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestination' ObservabilityPipelineConfigPipelineType: default: logs @@ -74586,6 +74587,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineSyslogNgSource' - $ref: '#/components/schemas/ObservabilityPipelineWebsocketSource' - $ref: '#/components/schemas/ObservabilityPipelineOpentelemetrySource' + - $ref: '#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSource' ObservabilityPipelineCrowdStrikeNextGenSiemDestination: description: |- The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike Next Gen SIEM. @@ -77476,6 +77478,170 @@ components: type: string x-enum-varnames: - PARSE_XML + ObservabilityPipelinePrometheusRemoteWriteDestination: + description: |- + The `prometheus_remote_write` destination forwards metrics to an endpoint that supports the Prometheus Remote Write protocol. + + **Supported pipeline types:** metrics + properties: + auth_strategy: + $ref: '#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy' + buffer: + $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' + default_namespace: + description: The default namespace to add as a prefix to metric names that do not already have one. + example: datadog + type: string + endpoint_url_key: + description: |- + Name of the environment variable or secret that holds the Prometheus Remote Write endpoint URL. + Defaults to `DESTINATION_PROMETHEUS_REMOTE_WRITE_ENDPOINT_URL` (prefixed with `DD_OP_` at runtime). + example: PROMETHEUS_REMOTE_WRITE_ENDPOINT_URL + type: string + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: prometheus-remote-write-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["metrics-filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + password_key: + description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). + example: PROMETHEUS_REMOTE_WRITE_PASSWORD + type: string + tenant_id: + description: The tenant ID to include with outgoing requests. Used by multi-tenant Prometheus Remote Write receivers. + example: my-tenant + type: string + tls: + $ref: '#/components/schemas/ObservabilityPipelineClientTls' + token_key: + description: Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). + example: PROMETHEUS_REMOTE_WRITE_TOKEN + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteDestinationType' + username_key: + description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). + example: PROMETHEUS_REMOTE_WRITE_USERNAME + type: string + required: + - id + - type + - inputs + type: object + x-pipeline-types: [metrics] + ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy: + description: The authentication strategy to use for outgoing Prometheus Remote Write requests. + enum: + - none + - basic + - bearer + example: basic + type: string + x-enum-varnames: + - NONE + - BASIC + - BEARER + ObservabilityPipelinePrometheusRemoteWriteDestinationType: + default: prometheus_remote_write + description: The destination type. The value should always be `prometheus_remote_write`. + enum: + - prometheus_remote_write + example: prometheus_remote_write + type: string + x-enum-varnames: + - PROMETHEUS_REMOTE_WRITE + ObservabilityPipelinePrometheusRemoteWriteSource: + description: |- + The `prometheus_remote_write` source ingests metrics pushed over the Prometheus Remote Write protocol. + + **Supported pipeline types:** metrics + properties: + address_key: + description: Name of the environment variable or secret that holds the listen address for the Prometheus Remote Write endpoint. + example: PROMETHEUS_REMOTE_WRITE_ADDRESS + type: string + auth_strategy: + $ref: '#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy' + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: prometheus-remote-write-source + type: string + password_key: + description: Name of the environment variable or secret that holds the password (used when `auth_strategy` is `plain`). + example: PROMETHEUS_REMOTE_WRITE_PASSWORD + type: string + path: + default: "/api/v1/write" + description: The HTTP path on which the source listens for incoming Prometheus Remote Write requests. + example: "/api/v1/write" + type: string + tls: + $ref: '#/components/schemas/ObservabilityPipelineMtlsServerTls' + type: + $ref: '#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceType' + username_key: + description: Name of the environment variable or secret that holds the username (used when `auth_strategy` is `plain`). + example: PROMETHEUS_REMOTE_WRITE_USERNAME + type: string + valid_tokens: + description: |- + A list of tokens that are accepted for authenticating incoming requests. When set, + the source rejects any request whose token does not match an enabled entry in this list. + items: + $ref: '#/components/schemas/ObservabilityPipelinePrometheusRemoteWriteSourceValidToken' + maxItems: 1000 + minItems: 1 + type: array + required: + - id + - type + - auth_strategy + type: object + x-pipeline-types: [metrics] + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy: + description: HTTP authentication method. + enum: + - none + - plain + example: plain + type: string + x-enum-varnames: + - NONE + - PLAIN + ObservabilityPipelinePrometheusRemoteWriteSourceType: + default: prometheus_remote_write + description: The source type. The value should always be `prometheus_remote_write`. + enum: [prometheus_remote_write] + example: prometheus_remote_write + type: string + x-enum-varnames: + - PROMETHEUS_REMOTE_WRITE + ObservabilityPipelinePrometheusRemoteWriteSourceValidToken: + description: An accepted token used to authenticate incoming Prometheus Remote Write requests. + properties: + enabled: + default: true + description: |- + Indicates whether this token is currently accepted. Disabled tokens are rejected without + being removed from the configuration. + example: true + type: boolean + path_to_token: + $ref: '#/components/schemas/ObservabilityPipelineHttpServerSourceValidTokenPathToToken' + token_key: + description: Name of the environment variable or secret that holds the expected token value. + example: PROMETHEUS_REMOTE_WRITE_TOKEN + pattern: "^[A-Za-z0-9_]+$" + type: string + required: + - token_key + type: object ObservabilityPipelineQuotaProcessor: description: |- The `quota` processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert. 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 285c5c013c3..e7994f424b4 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 @@ -1486,6 +1486,61 @@ public ObservabilityPipelineConfigDestinationItem deserialize( e); } + // deserialize ObservabilityPipelinePrometheusRemoteWriteDestination + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Integer.class) + || ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Long.class) + || ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Float.class) + || ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Double.class) + || ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Boolean.class) + || ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Integer.class) + || ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Float.class) + || ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelinePrometheusRemoteWriteDestination.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelinePrometheusRemoteWriteDestination.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 (!((ObservabilityPipelinePrometheusRemoteWriteDestination) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelinePrometheusRemoteWriteDestination'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema" + + " 'ObservabilityPipelinePrometheusRemoteWriteDestination'", + e); + } + // deserialize ObservabilityPipelineSplunkHecMetricsDestination try { boolean attemptParsing = true; @@ -1717,6 +1772,12 @@ public ObservabilityPipelineConfigDestinationItem( setActualInstance(o); } + public ObservabilityPipelineConfigDestinationItem( + ObservabilityPipelinePrometheusRemoteWriteDestination o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + public ObservabilityPipelineConfigDestinationItem( ObservabilityPipelineSplunkHecMetricsDestination o) { super("oneOf", Boolean.FALSE); @@ -1801,6 +1862,9 @@ public ObservabilityPipelineConfigDestinationItem( schemas.put( "ObservabilityPipelineOpentelemetryMetricsDestination", new GenericType() {}); + schemas.put( + "ObservabilityPipelinePrometheusRemoteWriteDestination", + new GenericType() {}); schemas.put( "ObservabilityPipelineSplunkHecMetricsDestination", new GenericType() {}); @@ -1831,6 +1895,7 @@ public Map getSchemas() { * ObservabilityPipelineSyslogNgDestination, ObservabilityPipelineDatabricksZerobusDestination, * ObservabilityPipelineDatadogMetricsDestination, * ObservabilityPipelineOpentelemetryMetricsDestination, + * ObservabilityPipelinePrometheusRemoteWriteDestination, * ObservabilityPipelineSplunkHecMetricsDestination * *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a @@ -1983,6 +2048,13 @@ public void setActualInstance(Object instance) { super.setActualInstance(instance); return; } + if (JSON.isInstanceOf( + ObservabilityPipelinePrometheusRemoteWriteDestination.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } if (JSON.isInstanceOf( ObservabilityPipelineSplunkHecMetricsDestination.class, instance, @@ -2020,6 +2092,7 @@ public void setActualInstance(Object instance) { + " ObservabilityPipelineDatabricksZerobusDestination," + " ObservabilityPipelineDatadogMetricsDestination," + " ObservabilityPipelineOpentelemetryMetricsDestination," + + " ObservabilityPipelinePrometheusRemoteWriteDestination," + " ObservabilityPipelineSplunkHecMetricsDestination"); } @@ -2041,6 +2114,7 @@ public void setActualInstance(Object instance) { * ObservabilityPipelineSyslogNgDestination, ObservabilityPipelineDatabricksZerobusDestination, * ObservabilityPipelineDatadogMetricsDestination, * ObservabilityPipelineOpentelemetryMetricsDestination, + * ObservabilityPipelinePrometheusRemoteWriteDestination, * ObservabilityPipelineSplunkHecMetricsDestination * * @return The actual instance (ObservabilityPipelineElasticsearchDestination, @@ -2062,6 +2136,7 @@ public void setActualInstance(Object instance) { * ObservabilityPipelineDatabricksZerobusDestination, * ObservabilityPipelineDatadogMetricsDestination, * ObservabilityPipelineOpentelemetryMetricsDestination, + * ObservabilityPipelinePrometheusRemoteWriteDestination, * ObservabilityPipelineSplunkHecMetricsDestination) */ @Override @@ -2415,6 +2490,20 @@ public ObservabilityPipelineSyslogNgDestination getObservabilityPipelineSyslogNg return (ObservabilityPipelineOpentelemetryMetricsDestination) super.getActualInstance(); } + /** + * Get the actual instance of `ObservabilityPipelinePrometheusRemoteWriteDestination`. If the + * actual instance is not `ObservabilityPipelinePrometheusRemoteWriteDestination`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `ObservabilityPipelinePrometheusRemoteWriteDestination` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelinePrometheusRemoteWriteDestination` + */ + public ObservabilityPipelinePrometheusRemoteWriteDestination + getObservabilityPipelinePrometheusRemoteWriteDestination() throws ClassCastException { + return (ObservabilityPipelinePrometheusRemoteWriteDestination) super.getActualInstance(); + } + /** * Get the actual instance of `ObservabilityPipelineSplunkHecMetricsDestination`. If the actual * instance is not `ObservabilityPipelineSplunkHecMetricsDestination`, the ClassCastException will diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigSourceItem.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigSourceItem.java index 6f9c5c2ac18..e970483052b 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigSourceItem.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigSourceItem.java @@ -969,6 +969,60 @@ public ObservabilityPipelineConfigSourceItem deserialize( e); } + // deserialize ObservabilityPipelinePrometheusRemoteWriteSource + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Integer.class) + || ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Long.class) + || ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Float.class) + || ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Double.class) + || ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Boolean.class) + || ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Integer.class) + || ObservabilityPipelinePrometheusRemoteWriteSource.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Float.class) + || ObservabilityPipelinePrometheusRemoteWriteSource.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (ObservabilityPipelinePrometheusRemoteWriteSource.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(ObservabilityPipelinePrometheusRemoteWriteSource.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 (!((ObservabilityPipelinePrometheusRemoteWriteSource) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'ObservabilityPipelinePrometheusRemoteWriteSource'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'ObservabilityPipelinePrometheusRemoteWriteSource'", + e); + } + ObservabilityPipelineConfigSourceItem ret = new ObservabilityPipelineConfigSourceItem(); if (match == 1) { ret.setActualInstance(deserialized); @@ -1089,6 +1143,11 @@ public ObservabilityPipelineConfigSourceItem(ObservabilityPipelineOpentelemetryS setActualInstance(o); } + public ObservabilityPipelineConfigSourceItem(ObservabilityPipelinePrometheusRemoteWriteSource o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + static { schemas.put( "ObservabilityPipelineDatadogAgentSource", @@ -1143,6 +1202,9 @@ public ObservabilityPipelineConfigSourceItem(ObservabilityPipelineOpentelemetryS schemas.put( "ObservabilityPipelineOpentelemetrySource", new GenericType() {}); + schemas.put( + "ObservabilityPipelinePrometheusRemoteWriteSource", + new GenericType() {}); JSON.registerDescendants( ObservabilityPipelineConfigSourceItem.class, Collections.unmodifiableMap(schemas)); } @@ -1163,7 +1225,7 @@ public Map getSchemas() { * ObservabilityPipelineSocketSource, ObservabilityPipelineSplunkHecSource, * ObservabilityPipelineSplunkTcpSource, ObservabilityPipelineSumoLogicSource, * ObservabilityPipelineSyslogNgSource, ObservabilityPipelineWebsocketSource, - * ObservabilityPipelineOpentelemetrySource + * ObservabilityPipelineOpentelemetrySource, ObservabilityPipelinePrometheusRemoteWriteSource * *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a * composed schema (allOf, anyOf, oneOf). @@ -1260,6 +1322,13 @@ public void setActualInstance(Object instance) { super.setActualInstance(instance); return; } + if (JSON.isInstanceOf( + ObservabilityPipelinePrometheusRemoteWriteSource.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { super.setActualInstance(instance); @@ -1275,7 +1344,8 @@ public void setActualInstance(Object instance) { + " ObservabilityPipelineSocketSource, ObservabilityPipelineSplunkHecSource," + " ObservabilityPipelineSplunkTcpSource, ObservabilityPipelineSumoLogicSource," + " ObservabilityPipelineSyslogNgSource, ObservabilityPipelineWebsocketSource," - + " ObservabilityPipelineOpentelemetrySource"); + + " ObservabilityPipelineOpentelemetrySource," + + " ObservabilityPipelinePrometheusRemoteWriteSource"); } /** @@ -1288,7 +1358,7 @@ public void setActualInstance(Object instance) { * ObservabilityPipelineSocketSource, ObservabilityPipelineSplunkHecSource, * ObservabilityPipelineSplunkTcpSource, ObservabilityPipelineSumoLogicSource, * ObservabilityPipelineSyslogNgSource, ObservabilityPipelineWebsocketSource, - * ObservabilityPipelineOpentelemetrySource + * ObservabilityPipelineOpentelemetrySource, ObservabilityPipelinePrometheusRemoteWriteSource * * @return The actual instance (ObservabilityPipelineDatadogAgentSource, * ObservabilityPipelineAmazonDataFirehoseSource, ObservabilityPipelineAmazonS3Source, @@ -1299,7 +1369,7 @@ public void setActualInstance(Object instance) { * ObservabilityPipelineSocketSource, ObservabilityPipelineSplunkHecSource, * ObservabilityPipelineSplunkTcpSource, ObservabilityPipelineSumoLogicSource, * ObservabilityPipelineSyslogNgSource, ObservabilityPipelineWebsocketSource, - * ObservabilityPipelineOpentelemetrySource) + * ObservabilityPipelineOpentelemetrySource, ObservabilityPipelinePrometheusRemoteWriteSource) */ @Override public Object getActualInstance() { @@ -1523,4 +1593,18 @@ public ObservabilityPipelineOpentelemetrySource getObservabilityPipelineOpentele throws ClassCastException { return (ObservabilityPipelineOpentelemetrySource) super.getActualInstance(); } + + /** + * Get the actual instance of `ObservabilityPipelinePrometheusRemoteWriteSource`. If the actual + * instance is not `ObservabilityPipelinePrometheusRemoteWriteSource`, the ClassCastException will + * be thrown. + * + * @return The actual instance of `ObservabilityPipelinePrometheusRemoteWriteSource` + * @throws ClassCastException if the instance is not + * `ObservabilityPipelinePrometheusRemoteWriteSource` + */ + public ObservabilityPipelinePrometheusRemoteWriteSource + getObservabilityPipelinePrometheusRemoteWriteSource() throws ClassCastException { + return (ObservabilityPipelinePrometheusRemoteWriteSource) super.getActualInstance(); + } } diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestination.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestination.java new file mode 100644 index 00000000000..01272eabc76 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestination.java @@ -0,0 +1,518 @@ +/* + * 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 prometheus_remote_write destination forwards metrics to an endpoint that + * supports the Prometheus Remote Write protocol. + * + *

Supported pipeline types: metrics + */ +@JsonPropertyOrder({ + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_AUTH_STRATEGY, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_BUFFER, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_DEFAULT_NAMESPACE, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_ENDPOINT_URL_KEY, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_ID, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_INPUTS, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_PASSWORD_KEY, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_TENANT_ID, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_TLS, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_TOKEN_KEY, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_TYPE, + ObservabilityPipelinePrometheusRemoteWriteDestination.JSON_PROPERTY_USERNAME_KEY +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelinePrometheusRemoteWriteDestination { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_AUTH_STRATEGY = "auth_strategy"; + private ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy authStrategy; + + public static final String JSON_PROPERTY_BUFFER = "buffer"; + private ObservabilityPipelineBufferOptions buffer; + + public static final String JSON_PROPERTY_DEFAULT_NAMESPACE = "default_namespace"; + private String defaultNamespace; + + public static final String JSON_PROPERTY_ENDPOINT_URL_KEY = "endpoint_url_key"; + private String endpointUrlKey; + + 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_PASSWORD_KEY = "password_key"; + private String passwordKey; + + public static final String JSON_PROPERTY_TENANT_ID = "tenant_id"; + private String tenantId; + + public static final String JSON_PROPERTY_TLS = "tls"; + private ObservabilityPipelineClientTls tls; + + public static final String JSON_PROPERTY_TOKEN_KEY = "token_key"; + private String tokenKey; + + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelinePrometheusRemoteWriteDestinationType type = + ObservabilityPipelinePrometheusRemoteWriteDestinationType.PROMETHEUS_REMOTE_WRITE; + + public static final String JSON_PROPERTY_USERNAME_KEY = "username_key"; + private String usernameKey; + + public ObservabilityPipelinePrometheusRemoteWriteDestination() {} + + @JsonCreator + public ObservabilityPipelinePrometheusRemoteWriteDestination( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_INPUTS) List inputs, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelinePrometheusRemoteWriteDestinationType type) { + this.id = id; + this.inputs = inputs; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination authStrategy( + ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy authStrategy) { + this.authStrategy = authStrategy; + this.unparsed |= !authStrategy.isValid(); + return this; + } + + /** + * The authentication strategy to use for outgoing Prometheus Remote Write requests. + * + * @return authStrategy + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AUTH_STRATEGY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy getAuthStrategy() { + return authStrategy; + } + + public void setAuthStrategy( + ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy authStrategy) { + if (!authStrategy.isValid()) { + this.unparsed = true; + } + this.authStrategy = authStrategy; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination buffer( + ObservabilityPipelineBufferOptions buffer) { + this.buffer = buffer; + this.unparsed |= buffer.unparsed; + return this; + } + + /** + * Configuration for buffer settings on destination components. + * + * @return buffer + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BUFFER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineBufferOptions getBuffer() { + return buffer; + } + + public void setBuffer(ObservabilityPipelineBufferOptions buffer) { + this.buffer = buffer; + if (buffer != null) { + this.unparsed |= buffer.unparsed; + } + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination defaultNamespace( + String defaultNamespace) { + this.defaultNamespace = defaultNamespace; + return this; + } + + /** + * The default namespace to add as a prefix to metric names that do not already have one. + * + * @return defaultNamespace + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DEFAULT_NAMESPACE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDefaultNamespace() { + return defaultNamespace; + } + + public void setDefaultNamespace(String defaultNamespace) { + this.defaultNamespace = defaultNamespace; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination endpointUrlKey( + String endpointUrlKey) { + this.endpointUrlKey = endpointUrlKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the Prometheus Remote Write endpoint URL. + * Defaults to DESTINATION_PROMETHEUS_REMOTE_WRITE_ENDPOINT_URL (prefixed with + * DD_OP_ at runtime). + * + * @return endpointUrlKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ENDPOINT_URL_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getEndpointUrlKey() { + return endpointUrlKey; + } + + public void setEndpointUrlKey(String endpointUrlKey) { + this.endpointUrlKey = endpointUrlKey; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier for this component. Used in other parts of the pipeline to reference this + * component (for example, as the input to downstream components). + * + * @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 ObservabilityPipelinePrometheusRemoteWriteDestination inputs(List inputs) { + this.inputs = inputs; + return this; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination 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 ObservabilityPipelinePrometheusRemoteWriteDestination passwordKey(String passwordKey) { + this.passwordKey = passwordKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the password (used when + * auth_strategy is basic). + * + * @return passwordKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PASSWORD_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPasswordKey() { + return passwordKey; + } + + public void setPasswordKey(String passwordKey) { + this.passwordKey = passwordKey; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination tenantId(String tenantId) { + this.tenantId = tenantId; + return this; + } + + /** + * The tenant ID to include with outgoing requests. Used by multi-tenant Prometheus Remote Write + * receivers. + * + * @return tenantId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TENANT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination tls( + ObservabilityPipelineClientTls tls) { + this.tls = tls; + this.unparsed |= tls.unparsed; + return this; + } + + /** + * Configuration for enabling TLS encryption between the pipeline component and external services. + * + * @return tls + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TLS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineClientTls getTls() { + return tls; + } + + public void setTls(ObservabilityPipelineClientTls tls) { + this.tls = tls; + if (tls != null) { + this.unparsed |= tls.unparsed; + } + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination tokenKey(String tokenKey) { + this.tokenKey = tokenKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the bearer token (used when + * auth_strategy is bearer). + * + * @return tokenKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TOKEN_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTokenKey() { + return tokenKey; + } + + public void setTokenKey(String tokenKey) { + this.tokenKey = tokenKey; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination type( + ObservabilityPipelinePrometheusRemoteWriteDestinationType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The destination type. The value should always be prometheus_remote_write. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelinePrometheusRemoteWriteDestinationType getType() { + return type; + } + + public void setType(ObservabilityPipelinePrometheusRemoteWriteDestinationType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + public ObservabilityPipelinePrometheusRemoteWriteDestination usernameKey(String usernameKey) { + this.usernameKey = usernameKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the username (used when + * auth_strategy is basic). + * + * @return usernameKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_USERNAME_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getUsernameKey() { + return usernameKey; + } + + public void setUsernameKey(String usernameKey) { + this.usernameKey = usernameKey; + } + + /** + * 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 ObservabilityPipelinePrometheusRemoteWriteDestination + */ + @JsonAnySetter + public ObservabilityPipelinePrometheusRemoteWriteDestination 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 ObservabilityPipelinePrometheusRemoteWriteDestination object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelinePrometheusRemoteWriteDestination + observabilityPipelinePrometheusRemoteWriteDestination = + (ObservabilityPipelinePrometheusRemoteWriteDestination) o; + return Objects.equals( + this.authStrategy, observabilityPipelinePrometheusRemoteWriteDestination.authStrategy) + && Objects.equals(this.buffer, observabilityPipelinePrometheusRemoteWriteDestination.buffer) + && Objects.equals( + this.defaultNamespace, + observabilityPipelinePrometheusRemoteWriteDestination.defaultNamespace) + && Objects.equals( + this.endpointUrlKey, + observabilityPipelinePrometheusRemoteWriteDestination.endpointUrlKey) + && Objects.equals(this.id, observabilityPipelinePrometheusRemoteWriteDestination.id) + && Objects.equals(this.inputs, observabilityPipelinePrometheusRemoteWriteDestination.inputs) + && Objects.equals( + this.passwordKey, observabilityPipelinePrometheusRemoteWriteDestination.passwordKey) + && Objects.equals( + this.tenantId, observabilityPipelinePrometheusRemoteWriteDestination.tenantId) + && Objects.equals(this.tls, observabilityPipelinePrometheusRemoteWriteDestination.tls) + && Objects.equals( + this.tokenKey, observabilityPipelinePrometheusRemoteWriteDestination.tokenKey) + && Objects.equals(this.type, observabilityPipelinePrometheusRemoteWriteDestination.type) + && Objects.equals( + this.usernameKey, observabilityPipelinePrometheusRemoteWriteDestination.usernameKey) + && Objects.equals( + this.additionalProperties, + observabilityPipelinePrometheusRemoteWriteDestination.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + authStrategy, + buffer, + defaultNamespace, + endpointUrlKey, + id, + inputs, + passwordKey, + tenantId, + tls, + tokenKey, + type, + usernameKey, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelinePrometheusRemoteWriteDestination {\n"); + sb.append(" authStrategy: ").append(toIndentedString(authStrategy)).append("\n"); + sb.append(" buffer: ").append(toIndentedString(buffer)).append("\n"); + sb.append(" defaultNamespace: ").append(toIndentedString(defaultNamespace)).append("\n"); + sb.append(" endpointUrlKey: ").append(toIndentedString(endpointUrlKey)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" inputs: ").append(toIndentedString(inputs)).append("\n"); + sb.append(" passwordKey: ").append(toIndentedString(passwordKey)).append("\n"); + sb.append(" tenantId: ").append(toIndentedString(tenantId)).append("\n"); + sb.append(" tls: ").append(toIndentedString(tls)).append("\n"); + sb.append(" tokenKey: ").append(toIndentedString(tokenKey)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" usernameKey: ").append(toIndentedString(usernameKey)).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/ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy.java new file mode 100644 index 00000000000..49d4223bba8 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy.java @@ -0,0 +1,69 @@ +/* + * 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 authentication strategy to use for outgoing Prometheus Remote Write requests. */ +@JsonSerialize( + using = + ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy + .ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategySerializer.class) +public class ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy + extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("none", "basic", "bearer")); + + public static final ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy NONE = + new ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy("none"); + public static final ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy BASIC = + new ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy("basic"); + public static final ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy BEARER = + new ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy("bearer"); + + ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategySerializer + extends StdSerializer { + public ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategySerializer( + Class t) { + super(t); + } + + public ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategySerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy fromValue( + String value) { + return new ObservabilityPipelinePrometheusRemoteWriteDestinationAuthStrategy(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestinationType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestinationType.java new file mode 100644 index 00000000000..f7790c3c2d5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteDestinationType.java @@ -0,0 +1,64 @@ +/* + * 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. The value should always be prometheus_remote_write. */ +@JsonSerialize( + using = + ObservabilityPipelinePrometheusRemoteWriteDestinationType + .ObservabilityPipelinePrometheusRemoteWriteDestinationTypeSerializer.class) +public class ObservabilityPipelinePrometheusRemoteWriteDestinationType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("prometheus_remote_write")); + + public static final ObservabilityPipelinePrometheusRemoteWriteDestinationType + PROMETHEUS_REMOTE_WRITE = + new ObservabilityPipelinePrometheusRemoteWriteDestinationType("prometheus_remote_write"); + + ObservabilityPipelinePrometheusRemoteWriteDestinationType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelinePrometheusRemoteWriteDestinationTypeSerializer + extends StdSerializer { + public ObservabilityPipelinePrometheusRemoteWriteDestinationTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelinePrometheusRemoteWriteDestinationTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelinePrometheusRemoteWriteDestinationType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelinePrometheusRemoteWriteDestinationType fromValue(String value) { + return new ObservabilityPipelinePrometheusRemoteWriteDestinationType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSource.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSource.java new file mode 100644 index 00000000000..5a3e6c505fc --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSource.java @@ -0,0 +1,439 @@ +/* + * 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 prometheus_remote_write source ingests metrics pushed over the Prometheus Remote + * Write protocol. + * + *

Supported pipeline types: metrics + */ +@JsonPropertyOrder({ + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_ADDRESS_KEY, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_AUTH_STRATEGY, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_ID, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_PASSWORD_KEY, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_PATH, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_TLS, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_TYPE, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_USERNAME_KEY, + ObservabilityPipelinePrometheusRemoteWriteSource.JSON_PROPERTY_VALID_TOKENS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelinePrometheusRemoteWriteSource { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ADDRESS_KEY = "address_key"; + private String addressKey; + + public static final String JSON_PROPERTY_AUTH_STRATEGY = "auth_strategy"; + private ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy authStrategy; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_PASSWORD_KEY = "password_key"; + private String passwordKey; + + public static final String JSON_PROPERTY_PATH = "path"; + private String path = "/api/v1/write"; + + public static final String JSON_PROPERTY_TLS = "tls"; + private ObservabilityPipelineMtlsServerTls tls; + + public static final String JSON_PROPERTY_TYPE = "type"; + private ObservabilityPipelinePrometheusRemoteWriteSourceType type = + ObservabilityPipelinePrometheusRemoteWriteSourceType.PROMETHEUS_REMOTE_WRITE; + + public static final String JSON_PROPERTY_USERNAME_KEY = "username_key"; + private String usernameKey; + + public static final String JSON_PROPERTY_VALID_TOKENS = "valid_tokens"; + private List validTokens = null; + + public ObservabilityPipelinePrometheusRemoteWriteSource() {} + + @JsonCreator + public ObservabilityPipelinePrometheusRemoteWriteSource( + @JsonProperty(required = true, value = JSON_PROPERTY_AUTH_STRATEGY) + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy authStrategy, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + ObservabilityPipelinePrometheusRemoteWriteSourceType type) { + this.authStrategy = authStrategy; + this.unparsed |= !authStrategy.isValid(); + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public ObservabilityPipelinePrometheusRemoteWriteSource addressKey(String addressKey) { + this.addressKey = addressKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the listen address for the Prometheus + * Remote Write endpoint. + * + * @return addressKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ADDRESS_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAddressKey() { + return addressKey; + } + + public void setAddressKey(String addressKey) { + this.addressKey = addressKey; + } + + public ObservabilityPipelinePrometheusRemoteWriteSource authStrategy( + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy authStrategy) { + this.authStrategy = authStrategy; + this.unparsed |= !authStrategy.isValid(); + return this; + } + + /** + * HTTP authentication method. + * + * @return authStrategy + */ + @JsonProperty(JSON_PROPERTY_AUTH_STRATEGY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy getAuthStrategy() { + return authStrategy; + } + + public void setAuthStrategy( + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy authStrategy) { + if (!authStrategy.isValid()) { + this.unparsed = true; + } + this.authStrategy = authStrategy; + } + + public ObservabilityPipelinePrometheusRemoteWriteSource id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier for this component. Used in other parts of the pipeline to reference this + * component (for example, as the input to downstream components). + * + * @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 ObservabilityPipelinePrometheusRemoteWriteSource passwordKey(String passwordKey) { + this.passwordKey = passwordKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the password (used when + * auth_strategy is plain). + * + * @return passwordKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PASSWORD_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPasswordKey() { + return passwordKey; + } + + public void setPasswordKey(String passwordKey) { + this.passwordKey = passwordKey; + } + + public ObservabilityPipelinePrometheusRemoteWriteSource path(String path) { + this.path = path; + return this; + } + + /** + * The HTTP path on which the source listens for incoming Prometheus Remote Write requests. + * + * @return path + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PATH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ObservabilityPipelinePrometheusRemoteWriteSource tls( + ObservabilityPipelineMtlsServerTls tls) { + this.tls = tls; + this.unparsed |= tls.unparsed; + return this; + } + + /** + * Configuration for enabling TLS encryption between the pipeline component and external + * connecting clients. + * + * @return tls + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TLS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineMtlsServerTls getTls() { + return tls; + } + + public void setTls(ObservabilityPipelineMtlsServerTls tls) { + this.tls = tls; + if (tls != null) { + this.unparsed |= tls.unparsed; + } + } + + public ObservabilityPipelinePrometheusRemoteWriteSource type( + ObservabilityPipelinePrometheusRemoteWriteSourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The source type. The value should always be prometheus_remote_write. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelinePrometheusRemoteWriteSourceType getType() { + return type; + } + + public void setType(ObservabilityPipelinePrometheusRemoteWriteSourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + public ObservabilityPipelinePrometheusRemoteWriteSource usernameKey(String usernameKey) { + this.usernameKey = usernameKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the username (used when + * auth_strategy is plain). + * + * @return usernameKey + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_USERNAME_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getUsernameKey() { + return usernameKey; + } + + public void setUsernameKey(String usernameKey) { + this.usernameKey = usernameKey; + } + + public ObservabilityPipelinePrometheusRemoteWriteSource validTokens( + List validTokens) { + this.validTokens = validTokens; + if (validTokens != null) { + for (ObservabilityPipelinePrometheusRemoteWriteSourceValidToken item : validTokens) { + this.unparsed |= item.unparsed; + } + } + return this; + } + + public ObservabilityPipelinePrometheusRemoteWriteSource addValidTokensItem( + ObservabilityPipelinePrometheusRemoteWriteSourceValidToken validTokensItem) { + if (this.validTokens == null) { + this.validTokens = new ArrayList<>(); + } + this.validTokens.add(validTokensItem); + this.unparsed |= validTokensItem.unparsed; + return this; + } + + /** + * A list of tokens that are accepted for authenticating incoming requests. When set, the source + * rejects any request whose token does not match an enabled entry in this list. + * + * @return validTokens + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VALID_TOKENS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getValidTokens() { + return validTokens; + } + + public void setValidTokens( + List validTokens) { + this.validTokens = validTokens; + if (validTokens != null) { + for (ObservabilityPipelinePrometheusRemoteWriteSourceValidToken item : validTokens) { + this.unparsed |= item.unparsed; + } + } + } + + /** + * 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 ObservabilityPipelinePrometheusRemoteWriteSource + */ + @JsonAnySetter + public ObservabilityPipelinePrometheusRemoteWriteSource 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 ObservabilityPipelinePrometheusRemoteWriteSource object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelinePrometheusRemoteWriteSource + observabilityPipelinePrometheusRemoteWriteSource = + (ObservabilityPipelinePrometheusRemoteWriteSource) o; + return Objects.equals( + this.addressKey, observabilityPipelinePrometheusRemoteWriteSource.addressKey) + && Objects.equals( + this.authStrategy, observabilityPipelinePrometheusRemoteWriteSource.authStrategy) + && Objects.equals(this.id, observabilityPipelinePrometheusRemoteWriteSource.id) + && Objects.equals( + this.passwordKey, observabilityPipelinePrometheusRemoteWriteSource.passwordKey) + && Objects.equals(this.path, observabilityPipelinePrometheusRemoteWriteSource.path) + && Objects.equals(this.tls, observabilityPipelinePrometheusRemoteWriteSource.tls) + && Objects.equals(this.type, observabilityPipelinePrometheusRemoteWriteSource.type) + && Objects.equals( + this.usernameKey, observabilityPipelinePrometheusRemoteWriteSource.usernameKey) + && Objects.equals( + this.validTokens, observabilityPipelinePrometheusRemoteWriteSource.validTokens) + && Objects.equals( + this.additionalProperties, + observabilityPipelinePrometheusRemoteWriteSource.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + addressKey, + authStrategy, + id, + passwordKey, + path, + tls, + type, + usernameKey, + validTokens, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelinePrometheusRemoteWriteSource {\n"); + sb.append(" addressKey: ").append(toIndentedString(addressKey)).append("\n"); + sb.append(" authStrategy: ").append(toIndentedString(authStrategy)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" passwordKey: ").append(toIndentedString(passwordKey)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" tls: ").append(toIndentedString(tls)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" usernameKey: ").append(toIndentedString(usernameKey)).append("\n"); + sb.append(" validTokens: ").append(toIndentedString(validTokens)).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/ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy.java new file mode 100644 index 00000000000..d502a25bc6c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy.java @@ -0,0 +1,67 @@ +/* + * 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; + +/** HTTP authentication method. */ +@JsonSerialize( + using = + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy + .ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategySerializer.class) +public class ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy + extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("none", "plain")); + + public static final ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy NONE = + new ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy("none"); + public static final ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy PLAIN = + new ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy("plain"); + + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategySerializer + extends StdSerializer { + public ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategySerializer( + Class t) { + super(t); + } + + public ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategySerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy fromValue( + String value) { + return new ObservabilityPipelinePrometheusRemoteWriteSourceAuthStrategy(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceType.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceType.java new file mode 100644 index 00000000000..2ba01b18229 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceType.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 source type. The value should always be prometheus_remote_write. */ +@JsonSerialize( + using = + ObservabilityPipelinePrometheusRemoteWriteSourceType + .ObservabilityPipelinePrometheusRemoteWriteSourceTypeSerializer.class) +public class ObservabilityPipelinePrometheusRemoteWriteSourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("prometheus_remote_write")); + + public static final ObservabilityPipelinePrometheusRemoteWriteSourceType PROMETHEUS_REMOTE_WRITE = + new ObservabilityPipelinePrometheusRemoteWriteSourceType("prometheus_remote_write"); + + ObservabilityPipelinePrometheusRemoteWriteSourceType(String value) { + super(value, allowedValues); + } + + public static class ObservabilityPipelinePrometheusRemoteWriteSourceTypeSerializer + extends StdSerializer { + public ObservabilityPipelinePrometheusRemoteWriteSourceTypeSerializer( + Class t) { + super(t); + } + + public ObservabilityPipelinePrometheusRemoteWriteSourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + ObservabilityPipelinePrometheusRemoteWriteSourceType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static ObservabilityPipelinePrometheusRemoteWriteSourceType fromValue(String value) { + return new ObservabilityPipelinePrometheusRemoteWriteSourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceValidToken.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceValidToken.java new file mode 100644 index 00000000000..7669fa28cd6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelinePrometheusRemoteWriteSourceValidToken.java @@ -0,0 +1,220 @@ +/* + * 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; + +/** An accepted token used to authenticate incoming Prometheus Remote Write requests. */ +@JsonPropertyOrder({ + ObservabilityPipelinePrometheusRemoteWriteSourceValidToken.JSON_PROPERTY_ENABLED, + ObservabilityPipelinePrometheusRemoteWriteSourceValidToken.JSON_PROPERTY_PATH_TO_TOKEN, + ObservabilityPipelinePrometheusRemoteWriteSourceValidToken.JSON_PROPERTY_TOKEN_KEY +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelinePrometheusRemoteWriteSourceValidToken { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ENABLED = "enabled"; + private Boolean enabled = true; + + public static final String JSON_PROPERTY_PATH_TO_TOKEN = "path_to_token"; + private ObservabilityPipelineHttpServerSourceValidTokenPathToToken pathToToken; + + public static final String JSON_PROPERTY_TOKEN_KEY = "token_key"; + private String tokenKey; + + public ObservabilityPipelinePrometheusRemoteWriteSourceValidToken() {} + + @JsonCreator + public ObservabilityPipelinePrometheusRemoteWriteSourceValidToken( + @JsonProperty(required = true, value = JSON_PROPERTY_TOKEN_KEY) String tokenKey) { + this.tokenKey = tokenKey; + } + + public ObservabilityPipelinePrometheusRemoteWriteSourceValidToken enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Indicates whether this token is currently accepted. Disabled tokens are rejected without being + * removed from the configuration. + * + * @return enabled + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public ObservabilityPipelinePrometheusRemoteWriteSourceValidToken pathToToken( + ObservabilityPipelineHttpServerSourceValidTokenPathToToken pathToToken) { + this.pathToToken = pathToToken; + this.unparsed |= pathToToken.unparsed; + return this; + } + + /** + * Specifies where the worker extracts the token from in the incoming HTTP request. This can be + * either a built-in location (path or address) or an HTTP header + * object. + * + * @return pathToToken + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PATH_TO_TOKEN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ObservabilityPipelineHttpServerSourceValidTokenPathToToken getPathToToken() { + return pathToToken; + } + + public void setPathToToken( + ObservabilityPipelineHttpServerSourceValidTokenPathToToken pathToToken) { + this.pathToToken = pathToToken; + if (pathToToken != null) { + this.unparsed |= pathToToken.unparsed; + } + } + + public ObservabilityPipelinePrometheusRemoteWriteSourceValidToken tokenKey(String tokenKey) { + this.tokenKey = tokenKey; + return this; + } + + /** + * Name of the environment variable or secret that holds the expected token value. + * + * @return tokenKey + */ + @JsonProperty(JSON_PROPERTY_TOKEN_KEY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTokenKey() { + return tokenKey; + } + + public void setTokenKey(String tokenKey) { + this.tokenKey = tokenKey; + } + + /** + * 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 ObservabilityPipelinePrometheusRemoteWriteSourceValidToken + */ + @JsonAnySetter + public ObservabilityPipelinePrometheusRemoteWriteSourceValidToken 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 ObservabilityPipelinePrometheusRemoteWriteSourceValidToken object is equal + * to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelinePrometheusRemoteWriteSourceValidToken + observabilityPipelinePrometheusRemoteWriteSourceValidToken = + (ObservabilityPipelinePrometheusRemoteWriteSourceValidToken) o; + return Objects.equals( + this.enabled, observabilityPipelinePrometheusRemoteWriteSourceValidToken.enabled) + && Objects.equals( + this.pathToToken, + observabilityPipelinePrometheusRemoteWriteSourceValidToken.pathToToken) + && Objects.equals( + this.tokenKey, observabilityPipelinePrometheusRemoteWriteSourceValidToken.tokenKey) + && Objects.equals( + this.additionalProperties, + observabilityPipelinePrometheusRemoteWriteSourceValidToken.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(enabled, pathToToken, tokenKey, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelinePrometheusRemoteWriteSourceValidToken {\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" pathToToken: ").append(toIndentedString(pathToToken)).append("\n"); + sb.append(" tokenKey: ").append(toIndentedString(tokenKey)).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 "); + } +}