Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54016,6 +54016,7 @@ components:
- $ref: "#/components/schemas/ObservabilityPipelineSyslogNgDestination"
- $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestination"
- $ref: "#/components/schemas/ObservabilityPipelineDatadogMetricsDestination"
- $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestination"
ObservabilityPipelineConfigPipelineType:
default: logs
description: The type of data being ingested. Defaults to `logs` if not specified.
Expand Down Expand Up @@ -58137,6 +58138,79 @@ components:
type: string
x-enum-varnames:
- SPLUNK_HEC
ObservabilityPipelineSplunkHecMetricsDestination:
description: |-
The `splunk_hec_metrics` destination forwards metrics to Splunk using the HTTP Event Collector (HEC).

**Supported pipeline types:** metrics
properties:
compression:
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationCompression"
default_namespace:
description: Optional default namespace for metrics sent to Splunk HEC.
example: "custom_namespace"
type: string
endpoint_url_key:
description: Name of the environment variable or secret that holds the Splunk HEC endpoint URL.
example: SPLUNK_HEC_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: splunk-hec-metrics-destination
type: string
index:
description: Optional name of the Splunk index where metrics are written.
example: "metrics"
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
source:
description: The Splunk source field value for metric events.
example: "observability_pipelines"
type: string
sourcetype:
description: The Splunk sourcetype to assign to metric events.
example: "custom_sourcetype"
type: string
tls:
$ref: "#/components/schemas/ObservabilityPipelineTls"
token_key:
description: Name of the environment variable or secret that holds the Splunk HEC token.
example: SPLUNK_HEC_TOKEN
type: string
type:
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationType"
required:
- id
- type
- inputs
type: object
x-pipeline-types: [metrics]
ObservabilityPipelineSplunkHecMetricsDestinationCompression:
default: none
description: Compression algorithm applied when sending metrics to Splunk HEC.
enum:
- none
- gzip
example: none
type: string
x-enum-varnames:
- NONE
- GZIP
ObservabilityPipelineSplunkHecMetricsDestinationType:
default: splunk_hec_metrics
description: The destination type. Always `splunk_hec_metrics`.
enum:
- splunk_hec_metrics
example: splunk_hec_metrics
type: string
x-enum-varnames:
- SPLUNK_HEC_METRICS
ObservabilityPipelineSplunkHecSource:
description: |-
The `splunk_hec` source implements the Splunk HTTP Event Collector (HEC) API.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1379,6 +1379,60 @@ public ObservabilityPipelineConfigDestinationItem deserialize(
e);
}

// deserialize ObservabilityPipelineSplunkHecMetricsDestination
try {
boolean attemptParsing = true;
// ensure that we respect type coercion as set on the client ObjectMapper
if (ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Integer.class)
|| ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Long.class)
|| ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Float.class)
|| ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Double.class)
|| ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Boolean.class)
|| ObservabilityPipelineSplunkHecMetricsDestination.class.equals(String.class)) {
attemptParsing = typeCoercion;
if (!attemptParsing) {
attemptParsing |=
((ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Integer.class)
|| ObservabilityPipelineSplunkHecMetricsDestination.class.equals(
Long.class))
&& token == JsonToken.VALUE_NUMBER_INT);
attemptParsing |=
((ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Float.class)
|| ObservabilityPipelineSplunkHecMetricsDestination.class.equals(
Double.class))
&& (token == JsonToken.VALUE_NUMBER_FLOAT
|| token == JsonToken.VALUE_NUMBER_INT));
attemptParsing |=
(ObservabilityPipelineSplunkHecMetricsDestination.class.equals(Boolean.class)
&& (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
attemptParsing |=
(ObservabilityPipelineSplunkHecMetricsDestination.class.equals(String.class)
&& token == JsonToken.VALUE_STRING);
}
}
if (attemptParsing) {
tmp =
tree.traverse(jp.getCodec())
.readValueAs(ObservabilityPipelineSplunkHecMetricsDestination.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 (!((ObservabilityPipelineSplunkHecMetricsDestination) tmp).unparsed) {
deserialized = tmp;
match++;
}
log.log(
Level.FINER,
"Input data matches schema 'ObservabilityPipelineSplunkHecMetricsDestination'");
}
} catch (Exception e) {
// deserialization failed, continue
log.log(
Level.FINER,
"Input data does not match schema 'ObservabilityPipelineSplunkHecMetricsDestination'",
e);
}

ObservabilityPipelineConfigDestinationItem ret =
new ObservabilityPipelineConfigDestinationItem();
if (match == 1) {
Expand Down Expand Up @@ -1545,6 +1599,12 @@ public ObservabilityPipelineConfigDestinationItem(
setActualInstance(o);
}

public ObservabilityPipelineConfigDestinationItem(
ObservabilityPipelineSplunkHecMetricsDestination o) {
super("oneOf", Boolean.FALSE);
setActualInstance(o);
}

static {
schemas.put(
"ObservabilityPipelineElasticsearchDestination",
Expand Down Expand Up @@ -1617,6 +1677,9 @@ public ObservabilityPipelineConfigDestinationItem(
schemas.put(
"ObservabilityPipelineDatadogMetricsDestination",
new GenericType<ObservabilityPipelineDatadogMetricsDestination>() {});
schemas.put(
"ObservabilityPipelineSplunkHecMetricsDestination",
new GenericType<ObservabilityPipelineSplunkHecMetricsDestination>() {});
JSON.registerDescendants(
ObservabilityPipelineConfigDestinationItem.class, Collections.unmodifiableMap(schemas));
}
Expand All @@ -1642,7 +1705,8 @@ public Map<String, GenericType> getSchemas() {
* ObservabilityPipelineSentinelOneDestination, ObservabilityPipelineSocketDestination,
* ObservabilityPipelineSplunkHecDestination, ObservabilityPipelineSumoLogicDestination,
* ObservabilityPipelineSyslogNgDestination, ObservabilityPipelineDatabricksZerobusDestination,
* ObservabilityPipelineDatadogMetricsDestination
* ObservabilityPipelineDatadogMetricsDestination,
* ObservabilityPipelineSplunkHecMetricsDestination
*
* <p>It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a
* composed schema (allOf, anyOf, oneOf).
Expand Down Expand Up @@ -1782,6 +1846,13 @@ public void setActualInstance(Object instance) {
super.setActualInstance(instance);
return;
}
if (JSON.isInstanceOf(
ObservabilityPipelineSplunkHecMetricsDestination.class,
instance,
new HashSet<Class<?>>())) {
super.setActualInstance(instance);
return;
}

if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet<Class<?>>())) {
super.setActualInstance(instance);
Expand Down Expand Up @@ -1809,7 +1880,8 @@ public void setActualInstance(Object instance) {
+ " ObservabilityPipelineSumoLogicDestination,"
+ " ObservabilityPipelineSyslogNgDestination,"
+ " ObservabilityPipelineDatabricksZerobusDestination,"
+ " ObservabilityPipelineDatadogMetricsDestination");
+ " ObservabilityPipelineDatadogMetricsDestination,"
+ " ObservabilityPipelineSplunkHecMetricsDestination");
}

/**
Expand All @@ -1828,7 +1900,8 @@ public void setActualInstance(Object instance) {
* ObservabilityPipelineSentinelOneDestination, ObservabilityPipelineSocketDestination,
* ObservabilityPipelineSplunkHecDestination, ObservabilityPipelineSumoLogicDestination,
* ObservabilityPipelineSyslogNgDestination, ObservabilityPipelineDatabricksZerobusDestination,
* ObservabilityPipelineDatadogMetricsDestination
* ObservabilityPipelineDatadogMetricsDestination,
* ObservabilityPipelineSplunkHecMetricsDestination
*
* @return The actual instance (ObservabilityPipelineElasticsearchDestination,
* ObservabilityPipelineHttpClientDestination,
Expand All @@ -1847,7 +1920,8 @@ public void setActualInstance(Object instance) {
* ObservabilityPipelineSplunkHecDestination, ObservabilityPipelineSumoLogicDestination,
* ObservabilityPipelineSyslogNgDestination,
* ObservabilityPipelineDatabricksZerobusDestination,
* ObservabilityPipelineDatadogMetricsDestination)
* ObservabilityPipelineDatadogMetricsDestination,
* ObservabilityPipelineSplunkHecMetricsDestination)
*/
@Override
public Object getActualInstance() {
Expand Down Expand Up @@ -2173,4 +2247,18 @@ public ObservabilityPipelineSyslogNgDestination getObservabilityPipelineSyslogNg
getObservabilityPipelineDatadogMetricsDestination() throws ClassCastException {
return (ObservabilityPipelineDatadogMetricsDestination) super.getActualInstance();
}

/**
* Get the actual instance of `ObservabilityPipelineSplunkHecMetricsDestination`. If the actual
* instance is not `ObservabilityPipelineSplunkHecMetricsDestination`, the ClassCastException will
* be thrown.
*
* @return The actual instance of `ObservabilityPipelineSplunkHecMetricsDestination`
* @throws ClassCastException if the instance is not
* `ObservabilityPipelineSplunkHecMetricsDestination`
*/
public ObservabilityPipelineSplunkHecMetricsDestination
getObservabilityPipelineSplunkHecMetricsDestination() throws ClassCastException {
return (ObservabilityPipelineSplunkHecMetricsDestination) super.getActualInstance();
}
}
Loading
Loading