From 31fad04c55769c83721143dc34ae9725bef3e0c1 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 5 Nov 2026 14:00:03 +0000 Subject: [PATCH] Regenerate client from commit c8c797f of spec repo --- .generator/schemas/v2/openapi.yaml | 18 ++- .../ValidatePipeline_2324504662.java | 76 ++++++++++ .../ValidatePipeline_3415678462.java | 89 +++++++++++ ...rvabilityPipelineConfigProcessorGroup.java | 23 +-- ...servabilityPipelineParseGrokProcessor.java | 23 +-- .../v2/api/observability_pipelines.feature | 18 +++ .../test-runner-data/manifest.json | 14 ++ ...y-processor-group-returns-ok-response.json | 60 ++++++++ ...rok-library-rules-returns-ok-response.json | 68 +++++++++ .../v2/observability-pipelines.json | 138 ++++++++++++++++++ 10 files changed, 499 insertions(+), 28 deletions(-) create mode 100644 examples/v2/observability-pipelines/ValidatePipeline_2324504662.java create mode 100644 examples/v2/observability-pipelines/ValidatePipeline_3415678462.java create mode 100644 src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-an-empty-processor-group-returns-ok-response.json create mode 100644 src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-grok-library-rules-returns-ok-response.json diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 23e9d015dee..7cd6d4b88fd 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -87185,7 +87185,7 @@ components: type: string type: array processors: - description: Processors applied sequentially within this group. Events flow through each processor in order. + description: Processors applied sequentially within this group. Events flow through each processor in order. Omit or use an empty array for a group without processors. example: [{"enabled": true, "fields": [{"name": "env", "value": "prod"}], "id": "add-fields-processor", "include": "*", "type": "add_fields"}, {"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}] items: $ref: "#/components/schemas/ObservabilityPipelineConfigProcessorItem" @@ -87194,7 +87194,6 @@ components: - id - include - inputs - - processors - enabled type: object ObservabilityPipelineConfigProcessorItem: @@ -90140,7 +90139,7 @@ components: example: "service:my-service" type: string rules: - description: The list of Grok parsing rules selected by either source field or include query. + description: The list of custom Grok parsing rules selected by either source field or include query. Omit to use only the Datadog library rules. items: $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessorRuleItem" type: array @@ -90150,7 +90149,6 @@ components: - id - type - include - - rules - enabled type: object x-pipeline-types: [logs] @@ -209147,7 +209145,11 @@ paths: $ref: "#/components/schemas/ObservabilityPipeline" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": $ref: "#/components/responses/NotAuthorizedResponse" "409": @@ -209219,7 +209221,11 @@ paths: $ref: "#/components/schemas/ValidationResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": $ref: "#/components/responses/NotAuthorizedResponse" "429": diff --git a/examples/v2/observability-pipelines/ValidatePipeline_2324504662.java b/examples/v2/observability-pipelines/ValidatePipeline_2324504662.java new file mode 100644 index 00000000000..747af7d1c84 --- /dev/null +++ b/examples/v2/observability-pipelines/ValidatePipeline_2324504662.java @@ -0,0 +1,76 @@ +// Validate an observability pipeline with an empty processor group 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.ObservabilityPipelineConfigProcessorGroup; +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.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(); + defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN")); + 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)))) + .processorGroups( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorGroup() + .enabled(true) + .id("my-processor-group") + .include("*") + .inputs( + Collections.singletonList( + "datadog-agent-source")))) + .sources( + Collections.singletonList( + new ObservabilityPipelineConfigSourceItem( + new ObservabilityPipelineDatadogAgentSource() + .id("datadog-agent-source") + .type( + ObservabilityPipelineDatadogAgentSourceType + .DATADOG_AGENT))))) + .name("Pipeline with Empty Processor Group")) + .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/examples/v2/observability-pipelines/ValidatePipeline_3415678462.java b/examples/v2/observability-pipelines/ValidatePipeline_3415678462.java new file mode 100644 index 00000000000..d5da5d3861e --- /dev/null +++ b/examples/v2/observability-pipelines/ValidatePipeline_3415678462.java @@ -0,0 +1,89 @@ +// Validate an observability pipeline with grok library rules 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.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.ObservabilityPipelineParseGrokProcessor; +import com.datadog.api.client.v2.model.ObservabilityPipelineParseGrokProcessorType; +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(); + defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN")); + 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)))) + .processorGroups( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorGroup() + .enabled(true) + .id("my-processor-group") + .include("*") + .inputs( + Collections.singletonList( + "datadog-agent-source")) + .processors( + Collections.singletonList( + new ObservabilityPipelineConfigProcessorItem( + new ObservabilityPipelineParseGrokProcessor() + .enabled(true) + .id("parse-grok-processor") + .include("*") + .type( + ObservabilityPipelineParseGrokProcessorType + .PARSE_GROK)))))) + .sources( + Collections.singletonList( + new ObservabilityPipelineConfigSourceItem( + new ObservabilityPipelineDatadogAgentSource() + .id("datadog-agent-source") + .type( + ObservabilityPipelineDatadogAgentSourceType + .DATADOG_AGENT))))) + .name("Pipeline with Grok Library Rules")) + .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/ObservabilityPipelineConfigProcessorGroup.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorGroup.java index 4d46fc6ea98..4b58a07c7c0 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorGroup.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorGroup.java @@ -48,7 +48,7 @@ public class ObservabilityPipelineConfigProcessorGroup { private List inputs = new ArrayList<>(); public static final String JSON_PROPERTY_PROCESSORS = "processors"; - private List processors = new ArrayList<>(); + private List processors = null; public ObservabilityPipelineConfigProcessorGroup() {} @@ -57,17 +57,11 @@ public ObservabilityPipelineConfigProcessorGroup( @JsonProperty(required = true, value = JSON_PROPERTY_ENABLED) Boolean enabled, @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, @JsonProperty(required = true, value = JSON_PROPERTY_INCLUDE) String include, - @JsonProperty(required = true, value = JSON_PROPERTY_INPUTS) List inputs, - @JsonProperty(required = true, value = JSON_PROPERTY_PROCESSORS) - List processors) { + @JsonProperty(required = true, value = JSON_PROPERTY_INPUTS) List inputs) { this.enabled = enabled; this.id = id; this.include = include; this.inputs = inputs; - this.processors = processors; - for (ObservabilityPipelineConfigProcessorItem item : processors) { - this.unparsed |= item.unparsed; - } } public ObservabilityPipelineConfigProcessorGroup displayName(String displayName) { @@ -179,14 +173,19 @@ public void setInputs(List inputs) { public ObservabilityPipelineConfigProcessorGroup processors( List processors) { this.processors = processors; - for (ObservabilityPipelineConfigProcessorItem item : processors) { - this.unparsed |= item.unparsed; + if (processors != null) { + for (ObservabilityPipelineConfigProcessorItem item : processors) { + this.unparsed |= item.unparsed; + } } return this; } public ObservabilityPipelineConfigProcessorGroup addProcessorsItem( ObservabilityPipelineConfigProcessorItem processorsItem) { + if (this.processors == null) { + this.processors = new ArrayList<>(); + } this.processors.add(processorsItem); this.unparsed |= processorsItem.unparsed; return this; @@ -194,11 +193,13 @@ public ObservabilityPipelineConfigProcessorGroup addProcessorsItem( /** * Processors applied sequentially within this group. Events flow through each processor in order. + * Omit or use an empty array for a group without processors. * * @return processors */ + @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_PROCESSORS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public List getProcessors() { return processors; } diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineParseGrokProcessor.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineParseGrokProcessor.java index f51572e0a72..e08c5f70d02 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineParseGrokProcessor.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineParseGrokProcessor.java @@ -58,7 +58,7 @@ public class ObservabilityPipelineParseGrokProcessor { private String include; public static final String JSON_PROPERTY_RULES = "rules"; - private List rules = new ArrayList<>(); + private List rules = null; public static final String JSON_PROPERTY_TYPE = "type"; private ObservabilityPipelineParseGrokProcessorType type = @@ -71,17 +71,11 @@ public ObservabilityPipelineParseGrokProcessor( @JsonProperty(required = true, value = JSON_PROPERTY_ENABLED) Boolean enabled, @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, @JsonProperty(required = true, value = JSON_PROPERTY_INCLUDE) String include, - @JsonProperty(required = true, value = JSON_PROPERTY_RULES) - List rules, @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) ObservabilityPipelineParseGrokProcessorType type) { this.enabled = enabled; this.id = id; this.include = include; - this.rules = rules; - for (ObservabilityPipelineParseGrokProcessorRuleItem item : rules) { - this.unparsed |= item.unparsed; - } this.type = type; this.unparsed |= !type.isValid(); } @@ -212,26 +206,33 @@ public void setInclude(String include) { public ObservabilityPipelineParseGrokProcessor rules( List rules) { this.rules = rules; - for (ObservabilityPipelineParseGrokProcessorRuleItem item : rules) { - this.unparsed |= item.unparsed; + if (rules != null) { + for (ObservabilityPipelineParseGrokProcessorRuleItem item : rules) { + this.unparsed |= item.unparsed; + } } return this; } public ObservabilityPipelineParseGrokProcessor addRulesItem( ObservabilityPipelineParseGrokProcessorRuleItem rulesItem) { + if (this.rules == null) { + this.rules = new ArrayList<>(); + } this.rules.add(rulesItem); this.unparsed |= rulesItem.unparsed; return this; } /** - * The list of Grok parsing rules selected by either source field or include query. + * The list of custom Grok parsing rules selected by either source field or include query. Omit to + * use only the Datadog library rules. * * @return rules */ + @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_RULES) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public List getRules() { return rules; } 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 09472e4ecbd..4ea0aa34428 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 @@ -14,6 +14,8 @@ Feature: Observability Pipelines And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "unknown-processor", "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": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 400 Bad Request + And the response "errors[0].title" is equal to "Component with ID my-processor-group is an unknown component" + And the response "errors[0].meta.message" is equal to "Component with ID my-processor-group is an unknown component" @generated @skip @team:ddoghq/observability-pipelines Scenario: Create a new pipeline returns "Conflict" response @@ -303,6 +305,14 @@ Feature: Observability Pipelines Then the response status is 200 OK And the response "errors" has length 0 + @team:ddoghq/observability-pipelines + Scenario: Validate an observability pipeline with an empty processor group returns "OK" response + Given new "ValidatePipeline" request + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "*", "inputs": ["datadog-agent-source"]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Pipeline with Empty Processor Group"}, "type": "pipelines"}} + When the request is sent + Then the response status is 200 OK + And the response "errors" has length 0 + @skip @team:ddoghq/observability-pipelines Scenario: Validate an observability pipeline with cloud_prem destination buffer returns "OK" response Given new "ValidatePipeline" request @@ -327,6 +337,14 @@ Feature: Observability Pipelines Then the response status is 200 OK And the response "errors" has length 0 + @team:ddoghq/observability-pipelines + Scenario: Validate an observability pipeline with grok library rules returns "OK" response + Given new "ValidatePipeline" request + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "*", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "parse-grok-processor", "include": "*", "type": "parse_grok"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Pipeline with Grok Library Rules"}, "type": "pipelines"}} + When the request is sent + Then the response status is 200 OK + And the response "errors" has length 0 + @team:ddoghq/observability-pipelines Scenario: Validate an observability pipeline with parse grok processor include rules returns "OK" response Given new "ValidatePipeline" request diff --git a/src/test/resources/generated-test/test-runner-data/manifest.json b/src/test/resources/generated-test/test-runner-data/manifest.json index b0e88f1ece3..10833cdaab6 100644 --- a/src/test/resources/generated-test/test-runner-data/manifest.json +++ b/src/test/resources/generated-test/test-runner-data/manifest.json @@ -8995,6 +8995,13 @@ "scenario": "Validate an observability pipeline with amazon S3 source compression returns \"OK\" response", "version": "v2" }, + { + "feature": "Observability Pipelines", + "feature_file": "../../com/datadog/api/client/v2/api/observability_pipelines.feature", + "file": "v2/observability-pipelines/validate-an-observability-pipeline-with-an-empty-processor-group-returns-ok-response.json", + "scenario": "Validate an observability pipeline with an empty processor group returns \"OK\" response", + "version": "v2" + }, { "feature": "Observability Pipelines", "feature_file": "../../com/datadog/api/client/v2/api/observability_pipelines.feature", @@ -9009,6 +9016,13 @@ "scenario": "Validate an observability pipeline with enrichment table secret field lookup returns \"OK\" response", "version": "v2" }, + { + "feature": "Observability Pipelines", + "feature_file": "../../com/datadog/api/client/v2/api/observability_pipelines.feature", + "file": "v2/observability-pipelines/validate-an-observability-pipeline-with-grok-library-rules-returns-ok-response.json", + "scenario": "Validate an observability pipeline with grok library rules returns \"OK\" response", + "version": "v2" + }, { "feature": "Observability Pipelines", "feature_file": "../../com/datadog/api/client/v2/api/observability_pipelines.feature", diff --git a/src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-an-empty-processor-group-returns-ok-response.json b/src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-an-empty-processor-group-returns-ok-response.json new file mode 100644 index 00000000000..f778d084505 --- /dev/null +++ b/src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-an-empty-processor-group-returns-ok-response.json @@ -0,0 +1,60 @@ +{ + "api": "ObservabilityPipelines", + "expected_status": 200, + "feature": "Observability Pipelines", + "id": "v2/Observability Pipelines/Validate an observability pipeline with an empty processor group returns \"OK\" response", + "operation_id": "ValidatePipeline", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ObservabilityPipelineSpec", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "config": { + "destinations": [ + { + "id": "datadog-logs-destination", + "inputs": [ + "my-processor-group" + ], + "type": "datadog_logs" + } + ], + "processor_groups": [ + { + "enabled": true, + "id": "my-processor-group", + "include": "*", + "inputs": [ + "datadog-agent-source" + ] + } + ], + "sources": [ + { + "id": "datadog-agent-source", + "type": "datadog_agent" + } + ] + }, + "name": "Pipeline with Empty Processor Group" + }, + "type": "pipelines" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/obs-pipelines/pipelines/validate" + }, + "scenario": "Validate an observability pipeline with an empty processor group returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-grok-library-rules-returns-ok-response.json b/src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-grok-library-rules-returns-ok-response.json new file mode 100644 index 00000000000..671bd146d7c --- /dev/null +++ b/src/test/resources/generated-test/test-runner-data/v2/observability-pipelines/validate-an-observability-pipeline-with-grok-library-rules-returns-ok-response.json @@ -0,0 +1,68 @@ +{ + "api": "ObservabilityPipelines", + "expected_status": 200, + "feature": "Observability Pipelines", + "id": "v2/Observability Pipelines/Validate an observability pipeline with grok library rules returns \"OK\" response", + "operation_id": "ValidatePipeline", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ObservabilityPipelineSpec", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "config": { + "destinations": [ + { + "id": "datadog-logs-destination", + "inputs": [ + "my-processor-group" + ], + "type": "datadog_logs" + } + ], + "processor_groups": [ + { + "enabled": true, + "id": "my-processor-group", + "include": "*", + "inputs": [ + "datadog-agent-source" + ], + "processors": [ + { + "enabled": true, + "id": "parse-grok-processor", + "include": "*", + "type": "parse_grok" + } + ] + } + ], + "sources": [ + { + "id": "datadog-agent-source", + "type": "datadog_agent" + } + ] + }, + "name": "Pipeline with Grok Library Rules" + }, + "type": "pipelines" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/obs-pipelines/pipelines/validate" + }, + "scenario": "Validate an observability pipeline with grok library rules returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/src/test/resources/generated-test/test-server-data/v2/observability-pipelines.json b/src/test/resources/generated-test/test-server-data/v2/observability-pipelines.json index 17a9a68dec3..31105bb5d05 100644 --- a/src/test/resources/generated-test/test-server-data/v2/observability-pipelines.json +++ b/src/test/resources/generated-test/test-server-data/v2/observability-pipelines.json @@ -2800,6 +2800,71 @@ "scenario": "Validate an observability pipeline with amazon S3 source compression returns \"OK\" response", "version": "v2" }, + { + "feature": "Observability Pipelines", + "frozen_at": "2026-11-04T14:33:27.305Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "config": { + "destinations": [ + { + "id": "datadog-logs-destination", + "inputs": [ + "my-processor-group" + ], + "type": "datadog_logs" + } + ], + "processor_groups": [ + { + "enabled": true, + "id": "my-processor-group", + "include": "*", + "inputs": [ + "datadog-agent-source" + ] + } + ], + "sources": [ + { + "id": "datadog-agent-source", + "type": "datadog_agent" + } + ] + }, + "name": "Pipeline with Empty Processor Group" + }, + "type": "pipelines" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/obs-pipelines/pipelines/validate", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[]}\n" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Validate an observability pipeline with an empty processor group returns \"OK\" response", + "version": "v2" + }, { "feature": "Observability Pipelines", "frozen_at": "2026-05-21T09:58:44.439Z", @@ -3049,6 +3114,79 @@ "scenario": "Validate an observability pipeline with enrichment table secret field lookup returns \"OK\" response", "version": "v2" }, + { + "feature": "Observability Pipelines", + "frozen_at": "2026-11-04T14:33:27.650Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "config": { + "destinations": [ + { + "id": "datadog-logs-destination", + "inputs": [ + "my-processor-group" + ], + "type": "datadog_logs" + } + ], + "processor_groups": [ + { + "enabled": true, + "id": "my-processor-group", + "include": "*", + "inputs": [ + "datadog-agent-source" + ], + "processors": [ + { + "enabled": true, + "id": "parse-grok-processor", + "include": "*", + "type": "parse_grok" + } + ] + } + ], + "sources": [ + { + "id": "datadog-agent-source", + "type": "datadog_agent" + } + ] + }, + "name": "Pipeline with Grok Library Rules" + }, + "type": "pipelines" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/obs-pipelines/pipelines/validate", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[]}\n" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Validate an observability pipeline with grok library rules returns \"OK\" response", + "version": "v2" + }, { "feature": "Observability Pipelines", "frozen_at": "2026-06-29T20:01:05.978Z",