From 5a86c77ba499a08fc8448183f176530269edb931 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 11 Mar 2026 12:37:03 +0000 Subject: [PATCH] Regenerate client from commit f52cb37 of spec repo --- .generator/schemas/v2/openapi.yaml | 3 +- .../ValidatePipeline_884022323.java | 90 +++++++++++++++++++ ...ervabilityPipelineOpentelemetrySource.java | 2 +- ...elemetry_source_returns_OK_response.freeze | 1 + ...ntelemetry_source_returns_OK_response.json | 32 +++++++ .../v2/api/observability_pipelines.feature | 8 ++ 6 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 examples/v2/observability-pipelines/ValidatePipeline_884022323.java create mode 100644 src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.json diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 50e57915664..3bec741a126 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -44821,7 +44821,7 @@ components: Protocol (OTLP) over gRPC and HTTP. - **Supported pipeline types:** logs' + **Supported pipeline types:** logs, metrics' properties: grpc_address_key: description: Environment variable name containing the gRPC server address @@ -44851,6 +44851,7 @@ components: type: object x-pipeline-types: - logs + - metrics ObservabilityPipelineOpentelemetrySourceType: default: opentelemetry description: The source type. The value should always be `opentelemetry`. diff --git a/examples/v2/observability-pipelines/ValidatePipeline_884022323.java b/examples/v2/observability-pipelines/ValidatePipeline_884022323.java new file mode 100644 index 00000000000..75e3efa36de --- /dev/null +++ b/examples/v2/observability-pipelines/ValidatePipeline_884022323.java @@ -0,0 +1,90 @@ +// Validate a metrics pipeline with opentelemetry source returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.ObservabilityPipelinesApi; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfig; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfigPipelineType; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorGroup; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorItem; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfigSourceItem; +import com.datadog.api.client.v2.model.ObservabilityPipelineDataAttributes; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogMetricsDestination; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogMetricsDestinationType; +import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessor; +import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessorType; +import com.datadog.api.client.v2.model.ObservabilityPipelineOpentelemetrySource; +import com.datadog.api.client.v2.model.ObservabilityPipelineOpentelemetrySourceType; +import com.datadog.api.client.v2.model.ObservabilityPipelineSpec; +import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData; +import com.datadog.api.client.v2.model.ValidationResponse; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient); + + ObservabilityPipelineSpec body = + new ObservabilityPipelineSpec() + .data( + new ObservabilityPipelineSpecData() + .attributes( + new ObservabilityPipelineDataAttributes() + .config( + new ObservabilityPipelineConfig() + .pipelineType(ObservabilityPipelineConfigPipelineType.METRICS) + .destinations( + Collections.singletonList( + new ObservabilityPipelineConfigDestinationItem( + new ObservabilityPipelineDatadogMetricsDestination() + .id("datadog-metrics-destination") + .inputs( + Collections.singletonList( + "my-processor-group")) + .type( + ObservabilityPipelineDatadogMetricsDestinationType + .DATADOG_METRICS)))) + .processorGroups( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorGroup() + .enabled(true) + .id("my-processor-group") + .include("*") + .inputs( + Collections.singletonList( + "opentelemetry-source")) + .processors( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorItem( + new ObservabilityPipelineFilterProcessor() + .enabled(true) + .id("filter-processor") + .include("env:production") + .type( + ObservabilityPipelineFilterProcessorType + .FILTER)))))) + .sources( + Collections.singletonList( + new ObservabilityPipelineConfigSourceItem( + new ObservabilityPipelineOpentelemetrySource() + .id("opentelemetry-source") + .type( + ObservabilityPipelineOpentelemetrySourceType + .OPENTELEMETRY))))) + .name("Metrics OTel Pipeline")) + .type("pipelines")); + + try { + ValidationResponse result = apiInstance.validatePipeline(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ObservabilityPipelinesApi#validatePipeline"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineOpentelemetrySource.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineOpentelemetrySource.java index 2964bc439bb..221238d464d 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineOpentelemetrySource.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineOpentelemetrySource.java @@ -21,7 +21,7 @@ * The opentelemetry source receives telemetry data using the OpenTelemetry Protocol * (OTLP) over gRPC and HTTP. * - *

Supported pipeline types: logs + *

Supported pipeline types: logs, metrics */ @JsonPropertyOrder({ ObservabilityPipelineOpentelemetrySource.JSON_PROPERTY_GRPC_ADDRESS_KEY, diff --git a/src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.freeze new file mode 100644 index 00000000000..9218d08a363 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-03-10T16:11:47.487Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.json new file mode 100644 index 00000000000..fd26d952407 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Validate_a_metrics_pipeline_with_opentelemetry_source_returns_OK_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"config\":{\"destinations\":[{\"id\":\"datadog-metrics-destination\",\"inputs\":[\"my-processor-group\"],\"type\":\"datadog_metrics\"}],\"pipeline_type\":\"metrics\",\"processor_groups\":[{\"enabled\":true,\"id\":\"my-processor-group\",\"include\":\"*\",\"inputs\":[\"opentelemetry-source\"],\"processors\":[{\"enabled\":true,\"id\":\"filter-processor\",\"include\":\"env:production\",\"type\":\"filter\"}]}],\"sources\":[{\"id\":\"opentelemetry-source\",\"type\":\"opentelemetry\"}]},\"name\":\"Metrics OTel Pipeline\"},\"type\":\"pipelines\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/obs-pipelines/pipelines/validate", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[]}\n", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "fd62c635-471a-b911-f21d-26a9cd87afdc" + } +] \ No newline at end of file diff --git a/src/test/resources/com/datadog/api/client/v2/api/observability_pipelines.feature b/src/test/resources/com/datadog/api/client/v2/api/observability_pipelines.feature index bf90c06c139..e272303955a 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/observability_pipelines.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/observability_pipelines.feature @@ -149,6 +149,14 @@ Feature: Observability Pipelines And the response "data.attributes.config.destinations" has length 1 And the response "data.attributes.config.destinations[0].id" is equal to "updated-datadog-logs-destination-id" + @team:DataDog/observability-pipelines + Scenario: Validate a metrics pipeline with opentelemetry source returns "OK" response + Given new "ValidatePipeline" request + And body with value {"data": {"attributes": {"config": {"pipeline_type": "metrics", "destinations": [{"id": "datadog-metrics-destination", "inputs": ["my-processor-group"], "type": "datadog_metrics"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "*", "inputs": ["opentelemetry-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "env:production", "type": "filter"}]}], "sources": [{"id": "opentelemetry-source", "type": "opentelemetry"}]}, "name": "Metrics OTel Pipeline"}, "type": "pipelines"}} + When the request is sent + Then the response status is 200 OK + And the response "errors" has length 0 + @team:DataDog/observability-pipelines Scenario: Validate an observability pipeline returns "Bad Request" response Given new "ValidatePipeline" request