From 7e5da1d8f6f1bf0ebe3c6bb4b10baa941c92c3e2 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 3 Sep 2026 16:35:45 +0000 Subject: [PATCH] Regenerate client from commit 05e7bdc of spec repo --- .generator/schemas/v2/openapi.yaml | 5 ++ .../CreatePipeline_2773622121.java | 89 +++++++++++++++++++ .../CreatePipeline_3303546326.java | 89 +++++++++++++++++++ .../GetPipeline_28187501.java | 29 ++++++ .../v2/model/ObservabilityPipelineConfig.java | 36 ++++++++ .../com/datadog/api/client/v2/api/given.json | 12 +++ .../v2/api/observability_pipelines.feature | 26 ++++++ 7 files changed, 286 insertions(+) create mode 100644 examples/v2/observability-pipelines/CreatePipeline_2773622121.java create mode 100644 examples/v2/observability-pipelines/CreatePipeline_3303546326.java create mode 100644 examples/v2/observability-pipelines/GetPipeline_28187501.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 324b65c3ebd..c25f9b172e2 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -72734,6 +72734,11 @@ components: items: $ref: "#/components/schemas/ObservabilityPipelineConfigDestinationItem" type: array + end_to_end_acknowledgements: + description: |- + Enables end-to-end event delivery confirmation. Without a disk buffer, sources acknowledge events after delivery to all final destinations; when a disk buffer provides the acknowledgment boundary, they acknowledge after durable persistence. + Defaults to `false` when omitted. Requires Observability Pipelines Worker 2.14 or later. All configured sources must support this behavior. + type: boolean pipeline_type: $ref: "#/components/schemas/ObservabilityPipelineConfigPipelineType" processor_groups: diff --git a/examples/v2/observability-pipelines/CreatePipeline_2773622121.java b/examples/v2/observability-pipelines/CreatePipeline_2773622121.java new file mode 100644 index 00000000000..f5411c79cc6 --- /dev/null +++ b/examples/v2/observability-pipelines/CreatePipeline_2773622121.java @@ -0,0 +1,89 @@ +// Create a pipeline with end-to-end acknowledgements enabled 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.ObservabilityPipeline; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfig; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem; +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.ObservabilityPipelineDatadogAgentSource; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSourceType; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestination; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestinationType; +import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessor; +import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessorType; +import com.datadog.api.client.v2.model.ObservabilityPipelineSpec; +import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData; +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() + .destinations( + Collections.singletonList( + new ObservabilityPipelineConfigDestinationItem( + new ObservabilityPipelineDatadogLogsDestination() + .id("datadog-logs-destination") + .inputs( + Collections.singletonList( + "my-processor-group")) + .type( + ObservabilityPipelineDatadogLogsDestinationType + .DATADOG_LOGS)))) + .endToEndAcknowledgements(true) + .processorGroups( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorGroup() + .enabled(true) + .id("my-processor-group") + .include("service:my-service") + .inputs( + Collections.singletonList( + "datadog-agent-source")) + .processors( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorItem( + new ObservabilityPipelineFilterProcessor() + .enabled(true) + .id("filter-processor") + .include("status:error") + .type( + ObservabilityPipelineFilterProcessorType + .FILTER)))))) + .sources( + Collections.singletonList( + new ObservabilityPipelineConfigSourceItem( + new ObservabilityPipelineDatadogAgentSource() + .id("datadog-agent-source") + .type( + ObservabilityPipelineDatadogAgentSourceType + .DATADOG_AGENT))))) + .name("Pipeline with End-to-End Acknowledgements")) + .type("pipelines")); + + try { + ObservabilityPipeline result = apiInstance.createPipeline(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ObservabilityPipelinesApi#createPipeline"); + 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/examples/v2/observability-pipelines/CreatePipeline_3303546326.java b/examples/v2/observability-pipelines/CreatePipeline_3303546326.java new file mode 100644 index 00000000000..0c38b624687 --- /dev/null +++ b/examples/v2/observability-pipelines/CreatePipeline_3303546326.java @@ -0,0 +1,89 @@ +// Create a pipeline with end-to-end acknowledgements disabled 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.ObservabilityPipeline; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfig; +import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem; +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.ObservabilityPipelineDatadogAgentSource; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSourceType; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestination; +import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestinationType; +import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessor; +import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessorType; +import com.datadog.api.client.v2.model.ObservabilityPipelineSpec; +import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData; +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() + .destinations( + Collections.singletonList( + new ObservabilityPipelineConfigDestinationItem( + new ObservabilityPipelineDatadogLogsDestination() + .id("datadog-logs-destination") + .inputs( + Collections.singletonList( + "my-processor-group")) + .type( + ObservabilityPipelineDatadogLogsDestinationType + .DATADOG_LOGS)))) + .endToEndAcknowledgements(false) + .processorGroups( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorGroup() + .enabled(true) + .id("my-processor-group") + .include("service:my-service") + .inputs( + Collections.singletonList( + "datadog-agent-source")) + .processors( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorItem( + new ObservabilityPipelineFilterProcessor() + .enabled(true) + .id("filter-processor") + .include("status:error") + .type( + ObservabilityPipelineFilterProcessorType + .FILTER)))))) + .sources( + Collections.singletonList( + new ObservabilityPipelineConfigSourceItem( + new ObservabilityPipelineDatadogAgentSource() + .id("datadog-agent-source") + .type( + ObservabilityPipelineDatadogAgentSourceType + .DATADOG_AGENT))))) + .name("Pipeline with End-to-End Acknowledgements Disabled")) + .type("pipelines")); + + try { + ObservabilityPipeline result = apiInstance.createPipeline(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ObservabilityPipelinesApi#createPipeline"); + 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/examples/v2/observability-pipelines/GetPipeline_28187501.java b/examples/v2/observability-pipelines/GetPipeline_28187501.java new file mode 100644 index 00000000000..8c870094305 --- /dev/null +++ b/examples/v2/observability-pipelines/GetPipeline_28187501.java @@ -0,0 +1,29 @@ +// Get a pipeline preserves end-to-end acknowledgements 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.ObservabilityPipeline; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient); + + // there is a valid "pipeline with end-to-end acknowledgements" in the system + String PIPELINE_WITH_END_TO_END_ACKNOWLEDGEMENTS_DATA_ID = + System.getenv("PIPELINE_WITH_END_TO_END_ACKNOWLEDGEMENTS_DATA_ID"); + + try { + ObservabilityPipeline result = + apiInstance.getPipeline(PIPELINE_WITH_END_TO_END_ACKNOWLEDGEMENTS_DATA_ID); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ObservabilityPipelinesApi#getPipeline"); + 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/ObservabilityPipelineConfig.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfig.java index 7bfe99fd428..314bbfcdc28 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfig.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfig.java @@ -22,6 +22,7 @@ /** Specifies the pipeline's configuration, including its sources, processors, and destinations. */ @JsonPropertyOrder({ ObservabilityPipelineConfig.JSON_PROPERTY_DESTINATIONS, + ObservabilityPipelineConfig.JSON_PROPERTY_END_TO_END_ACKNOWLEDGEMENTS, ObservabilityPipelineConfig.JSON_PROPERTY_PIPELINE_TYPE, ObservabilityPipelineConfig.JSON_PROPERTY_PROCESSOR_GROUPS, ObservabilityPipelineConfig.JSON_PROPERTY_PROCESSORS, @@ -35,6 +36,10 @@ public class ObservabilityPipelineConfig { public static final String JSON_PROPERTY_DESTINATIONS = "destinations"; private List destinations = new ArrayList<>(); + public static final String JSON_PROPERTY_END_TO_END_ACKNOWLEDGEMENTS = + "end_to_end_acknowledgements"; + private Boolean endToEndAcknowledgements; + public static final String JSON_PROPERTY_PIPELINE_TYPE = "pipeline_type"; private ObservabilityPipelineConfigPipelineType pipelineType = ObservabilityPipelineConfigPipelineType.LOGS; @@ -105,6 +110,31 @@ public void setDestinations(List des } } + public ObservabilityPipelineConfig endToEndAcknowledgements(Boolean endToEndAcknowledgements) { + this.endToEndAcknowledgements = endToEndAcknowledgements; + return this; + } + + /** + * Enables end-to-end event delivery confirmation. Without a disk buffer, sources acknowledge + * events after delivery to all final destinations; when a disk buffer provides the acknowledgment + * boundary, they acknowledge after durable persistence. Defaults to false when + * omitted. Requires Observability Pipelines Worker 2.14 or later. All configured sources must + * support this behavior. + * + * @return endToEndAcknowledgements + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_END_TO_END_ACKNOWLEDGEMENTS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getEndToEndAcknowledgements() { + return endToEndAcknowledgements; + } + + public void setEndToEndAcknowledgements(Boolean endToEndAcknowledgements) { + this.endToEndAcknowledgements = endToEndAcknowledgements; + } + public ObservabilityPipelineConfig pipelineType( ObservabilityPipelineConfigPipelineType pipelineType) { this.pipelineType = pipelineType; @@ -340,6 +370,8 @@ public boolean equals(Object o) { } ObservabilityPipelineConfig observabilityPipelineConfig = (ObservabilityPipelineConfig) o; return Objects.equals(this.destinations, observabilityPipelineConfig.destinations) + && Objects.equals( + this.endToEndAcknowledgements, observabilityPipelineConfig.endToEndAcknowledgements) && Objects.equals(this.pipelineType, observabilityPipelineConfig.pipelineType) && Objects.equals(this.processorGroups, observabilityPipelineConfig.processorGroups) && Objects.equals(this.processors, observabilityPipelineConfig.processors) @@ -354,6 +386,7 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash( destinations, + endToEndAcknowledgements, pipelineType, processorGroups, processors, @@ -367,6 +400,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ObservabilityPipelineConfig {\n"); sb.append(" destinations: ").append(toIndentedString(destinations)).append("\n"); + sb.append(" endToEndAcknowledgements: ") + .append(toIndentedString(endToEndAcknowledgements)) + .append("\n"); sb.append(" pipelineType: ").append(toIndentedString(pipelineType)).append("\n"); sb.append(" processorGroups: ").append(toIndentedString(processorGroups)).append("\n"); sb.append(" processors: ").append(toIndentedString(processors)).append("\n"); diff --git a/src/test/resources/com/datadog/api/client/v2/api/given.json b/src/test/resources/com/datadog/api/client/v2/api/given.json index 89abdd8c369..4644c6dd250 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/given.json +++ b/src/test/resources/com/datadog/api/client/v2/api/given.json @@ -1086,6 +1086,18 @@ "tag": "Observability Pipelines", "operationId": "CreatePipeline" }, + { + "parameters": [ + { + "name": "body", + "value": "{\"data\":{\"attributes\":{\"config\":{\"end_to_end_acknowledgements\":true,\"destinations\":[{\"id\":\"datadog-logs-destination\",\"inputs\":[\"processor-group-0\"],\"type\":\"datadog_logs\"}],\"processor_groups\":[{\"id\":\"processor-group-0\",\"include\":\"service:my-service\",\"inputs\":[\"datadog-agent-source\"],\"enabled\":true,\"processors\":[{\"id\":\"filter-processor\",\"type\":\"filter\",\"include\":\"status:error\",\"enabled\":true}]}],\"sources\":[{\"id\":\"datadog-agent-source\",\"type\":\"datadog_agent\"}]},\"name\":\"End-to-End Acknowledgements Pipeline\"},\"type\":\"pipelines\"}}" + } + ], + "step": "there is a valid \"pipeline with end-to-end acknowledgements\" in the system", + "key": "pipeline_with_end_to_end_acknowledgements", + "tag": "Observability Pipelines", + "operationId": "CreatePipeline" + }, { "parameters": [ { 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 78729ae2e8b..24377ba5c34 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 @@ -34,6 +34,7 @@ Feature: Observability Pipelines And the response "data.attributes.config.sources" has length 1 And the response "data.attributes.config.processor_groups" has length 1 And the response "data.attributes.config.destinations" has length 1 + And the response "data.attributes.config" does not have field "end_to_end_acknowledgements" @team:DataDog/observability-pipelines Scenario: Create a pipeline with dedupe processor with cache returns "OK" response @@ -53,6 +54,22 @@ Feature: Observability Pipelines And the response "data.attributes.config.processor_groups[0].processors[0].type" is equal to "dedupe" And the response "data.attributes.config.processor_groups[0].processors[0].fields[0]" is equal to "message" + @skip @team:DataDog/observability-pipelines + Scenario: Create a pipeline with end-to-end acknowledgements disabled returns "OK" response + Given new "CreatePipeline" request + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "end_to_end_acknowledgements": false, "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Pipeline with End-to-End Acknowledgements Disabled"}, "type": "pipelines"}} + When the request is sent + Then the response status is 201 OK + And the response "data.attributes.config.end_to_end_acknowledgements" is false + + @skip @team:DataDog/observability-pipelines + Scenario: Create a pipeline with end-to-end acknowledgements enabled returns "OK" response + Given new "CreatePipeline" request + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "end_to_end_acknowledgements": true, "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Pipeline with End-to-End Acknowledgements"}, "type": "pipelines"}} + When the request is sent + Then the response status is 201 OK + And the response "data.attributes.config.end_to_end_acknowledgements" is equal to true + @generated @skip @team:DataDog/observability-pipelines Scenario: Delete a pipeline returns "Conflict" response Given new "DeletePipeline" request @@ -75,6 +92,15 @@ Feature: Observability Pipelines When the request is sent Then the response status is 204 OK + @skip @team:DataDog/observability-pipelines + Scenario: Get a pipeline preserves end-to-end acknowledgements returns "OK" response + Given there is a valid "pipeline with end-to-end acknowledgements" in the system + And new "GetPipeline" request + And request contains "pipeline_id" parameter from "pipeline_with_end_to_end_acknowledgements.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.attributes.config.end_to_end_acknowledgements" is equal to true + @team:DataDog/observability-pipelines Scenario: Get a specific pipeline returns "OK" response Given there is a valid "pipeline" in the system