diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index a50db5d2e05..cecbe13a90d 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -5734,6 +5734,12 @@ components: Scope down exclusion filter to only a subset of logs with a log query. example: "*" type: string + sample_attribute: + description: |- + Sample attribute to use for the sampling of logs going through this exclusion filter. + When set, only the logs with the specified attribute are sampled. + example: "@ci.job_id" + type: string sample_rate: description: |- Sample rate to apply to logs going through this exclusion filter, diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 035a0b32780..f917fd11155 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1048,7 +1048,7 @@ components: type: string ResourceID: description: |- - Identifier, formatted as `type:id`. Supported types: `dashboard`, `integration-service`, `integration-webhook`, `notebook`, `reference-table`, `security-rule`, `slo`, `workflow`, `app-builder-app`, `connection`, `connection-group`, `rum-application`, `cross-org-connection`, `spreadsheet`, `on-call-schedule`, `on-call-escalation-policy`, `on-call-team-routing-rules`, `logs-pipeline`. + Identifier, formatted as `type:id`. Supported types: `dashboard`, `integration-service`, `integration-webhook`, `notebook`, `powerpack`, `reference-table`, `security-rule`, `slo`, `synthetics-global-variable`, `synthetics-test`, `synthetics-private-location`, `monitor`, `workflow`, `app-builder-app`, `connection`, `connection-group`, `rum-application`, `cross-org-connection`, `spreadsheet`, `on-call-schedule`, `on-call-escalation-policy`, `on-call-team-routing-rules`, `logs-pipeline`, `case-management-project`. example: "dashboard:abc-def-ghi" in: path name: resource_id diff --git a/examples/v1/logs-indexes/CreateLogsIndex.java b/examples/v1/logs-indexes/CreateLogsIndex.java index 591003d2bb9..c9c4da3000f 100644 --- a/examples/v1/logs-indexes/CreateLogsIndex.java +++ b/examples/v1/logs-indexes/CreateLogsIndex.java @@ -24,7 +24,11 @@ public static void main(String[] args) { .exclusionFilters( Collections.singletonList( new LogsExclusion() - .filter(new LogsExclusionFilter().query("*").sampleRate(1.0)) + .filter( + new LogsExclusionFilter() + .query("*") + .sampleAttribute("@ci.job_id") + .sampleRate(1.0)) .name("payment"))) .filter(new LogsFilter().query("source:python")) .name("main") diff --git a/examples/v1/logs-indexes/UpdateLogsIndex.java b/examples/v1/logs-indexes/UpdateLogsIndex.java index 5ada6ac53bc..043c5973530 100644 --- a/examples/v1/logs-indexes/UpdateLogsIndex.java +++ b/examples/v1/logs-indexes/UpdateLogsIndex.java @@ -26,7 +26,11 @@ public static void main(String[] args) { .exclusionFilters( Collections.singletonList( new LogsExclusion() - .filter(new LogsExclusionFilter().query("*").sampleRate(1.0)) + .filter( + new LogsExclusionFilter() + .query("*") + .sampleAttribute("@ci.job_id") + .sampleRate(1.0)) .name("payment"))) .filter(new LogsFilter().query("source:python")) .numFlexLogsRetentionDays(360L) diff --git a/src/main/java/com/datadog/api/client/v1/model/LogsExclusionFilter.java b/src/main/java/com/datadog/api/client/v1/model/LogsExclusionFilter.java index f23ed3909e1..d18faead1ec 100644 --- a/src/main/java/com/datadog/api/client/v1/model/LogsExclusionFilter.java +++ b/src/main/java/com/datadog/api/client/v1/model/LogsExclusionFilter.java @@ -20,6 +20,7 @@ /** Exclusion filter is defined by a query, a sampling rule, and a active/inactive toggle. */ @JsonPropertyOrder({ LogsExclusionFilter.JSON_PROPERTY_QUERY, + LogsExclusionFilter.JSON_PROPERTY_SAMPLE_ATTRIBUTE, LogsExclusionFilter.JSON_PROPERTY_SAMPLE_RATE }) @jakarta.annotation.Generated( @@ -29,6 +30,9 @@ public class LogsExclusionFilter { public static final String JSON_PROPERTY_QUERY = "query"; private String query; + public static final String JSON_PROPERTY_SAMPLE_ATTRIBUTE = "sample_attribute"; + private String sampleAttribute; + public static final String JSON_PROPERTY_SAMPLE_RATE = "sample_rate"; private Double sampleRate; @@ -62,6 +66,28 @@ public void setQuery(String query) { this.query = query; } + public LogsExclusionFilter sampleAttribute(String sampleAttribute) { + this.sampleAttribute = sampleAttribute; + return this; + } + + /** + * Sample attribute to use for the sampling of logs going through this exclusion filter. When set, + * only the logs with the specified attribute are sampled. + * + * @return sampleAttribute + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SAMPLE_ATTRIBUTE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getSampleAttribute() { + return sampleAttribute; + } + + public void setSampleAttribute(String sampleAttribute) { + this.sampleAttribute = sampleAttribute; + } + public LogsExclusionFilter sampleRate(Double sampleRate) { this.sampleRate = sampleRate; return this; @@ -140,13 +166,14 @@ public boolean equals(Object o) { } LogsExclusionFilter logsExclusionFilter = (LogsExclusionFilter) o; return Objects.equals(this.query, logsExclusionFilter.query) + && Objects.equals(this.sampleAttribute, logsExclusionFilter.sampleAttribute) && Objects.equals(this.sampleRate, logsExclusionFilter.sampleRate) && Objects.equals(this.additionalProperties, logsExclusionFilter.additionalProperties); } @Override public int hashCode() { - return Objects.hash(query, sampleRate, additionalProperties); + return Objects.hash(query, sampleAttribute, sampleRate, additionalProperties); } @Override @@ -154,6 +181,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class LogsExclusionFilter {\n"); sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" sampleAttribute: ").append(toIndentedString(sampleAttribute)).append("\n"); sb.append(" sampleRate: ").append(toIndentedString(sampleRate)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) diff --git a/src/main/java/com/datadog/api/client/v2/api/RestrictionPoliciesApi.java b/src/main/java/com/datadog/api/client/v2/api/RestrictionPoliciesApi.java index 39a0e5fc3ea..b4fa4913f1e 100644 --- a/src/main/java/com/datadog/api/client/v2/api/RestrictionPoliciesApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/RestrictionPoliciesApi.java @@ -52,12 +52,14 @@ public void setApiClient(ApiClient apiClient) { * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @throws ApiException if fails to make API call */ public void deleteRestrictionPolicy(String resourceId) throws ApiException { @@ -71,12 +73,14 @@ public void deleteRestrictionPolicy(String resourceId) throws ApiException { * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @return CompletableFuture */ public CompletableFuture deleteRestrictionPolicyAsync(String resourceId) { @@ -92,12 +96,14 @@ public CompletableFuture deleteRestrictionPolicyAsync(String resourceId) { * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @return ApiResponse<Void> * @throws ApiException if fails to make API call * @http.response.details @@ -154,12 +160,14 @@ public ApiResponse deleteRestrictionPolicyWithHttpInfo(String resourceId) * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @return CompletableFuture<ApiResponse<Void>> */ public CompletableFuture> deleteRestrictionPolicyWithHttpInfoAsync( @@ -217,12 +225,14 @@ public CompletableFuture> deleteRestrictionPolicyWithHttpInfoA * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @return RestrictionPolicyResponse * @throws ApiException if fails to make API call */ @@ -237,12 +247,14 @@ public RestrictionPolicyResponse getRestrictionPolicy(String resourceId) throws * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @return CompletableFuture<RestrictionPolicyResponse> */ public CompletableFuture getRestrictionPolicyAsync(String resourceId) { @@ -258,12 +270,14 @@ public CompletableFuture getRestrictionPolicyAsync(St * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @return ApiResponse<RestrictionPolicyResponse> * @throws ApiException if fails to make API call * @http.response.details @@ -320,12 +334,14 @@ public ApiResponse getRestrictionPolicyWithHttpInfo(S * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @return CompletableFuture<ApiResponse<RestrictionPolicyResponse>> */ public CompletableFuture> @@ -402,12 +418,14 @@ public UpdateRestrictionPolicyOptionalParameters allowSelfLockout(Boolean allowS * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @param body Restriction policy payload (required) * @return RestrictionPolicyResponse * @throws ApiException if fails to make API call @@ -426,12 +444,14 @@ resourceId, body, new UpdateRestrictionPolicyOptionalParameters()) * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @param body Restriction policy payload (required) * @return CompletableFuture<RestrictionPolicyResponse> */ @@ -452,12 +472,14 @@ resourceId, body, new UpdateRestrictionPolicyOptionalParameters()) * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @param body Restriction policy payload (required) * @param parameters Optional parameters for the request. * @return RestrictionPolicyResponse @@ -478,12 +500,14 @@ public RestrictionPolicyResponse updateRestrictionPolicy( * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @param body Restriction policy payload (required) * @param parameters Optional parameters for the request. * @return CompletableFuture<RestrictionPolicyResponse> @@ -544,12 +568,14 @@ public CompletableFuture updateRestrictionPolicyAsync * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @param body Restriction policy payload (required) * @param parameters Optional parameters for the request. * @return ApiResponse<RestrictionPolicyResponse> @@ -622,12 +648,14 @@ public ApiResponse updateRestrictionPolicyWithHttpInf * * @param resourceId Identifier, formatted as type:id. Supported types: * dashboard, integration-service, integration-webhook, - * notebook, reference-table, security-rule, slo - * , workflow, app-builder-app, connection, - * connection-group, rum-application, cross-org-connection - * , spreadsheet, on-call-schedule, - * on-call-escalation-policy, on-call-team-routing-rules, - * logs-pipeline. (required) + * notebook, powerpack, reference-table, + * security-rule, slo, synthetics-global-variable, + * synthetics-test, synthetics-private-location, monitor, + * workflow, app-builder-app, connection, + * connection-group, rum-application, cross-org-connection, + * spreadsheet, on-call-schedule, on-call-escalation-policy + * , on-call-team-routing-rules, logs-pipeline, + * case-management-project. (required) * @param body Restriction policy payload (required) * @param parameters Optional parameters for the request. * @return CompletableFuture<ApiResponse<RestrictionPolicyResponse>> diff --git a/src/test/resources/com/datadog/api/client/v1/api/logs_indexes.feature b/src/test/resources/com/datadog/api/client/v1/api/logs_indexes.feature index 8277ce4ae24..4091527029b 100644 --- a/src/test/resources/com/datadog/api/client/v1/api/logs_indexes.feature +++ b/src/test/resources/com/datadog/api/client/v1/api/logs_indexes.feature @@ -11,21 +11,21 @@ Feature: Logs Indexes @generated @skip @team:DataDog/logs-backend @team:DataDog/logs-core Scenario: Create an index returns "Invalid Parameter Error" response Given new "CreateLogsIndex" request - And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} When the request is sent Then the response status is 400 Invalid Parameter Error @generated @skip @team:DataDog/logs-backend @team:DataDog/logs-core Scenario: Create an index returns "OK" response Given new "CreateLogsIndex" request - And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} When the request is sent Then the response status is 200 OK @generated @skip @team:DataDog/logs-backend @team:DataDog/logs-core Scenario: Create an index returns "Unprocessable Entity" response Given new "CreateLogsIndex" request - And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} When the request is sent Then the response status is 422 Unprocessable Entity @@ -73,7 +73,7 @@ Feature: Logs Indexes Scenario: Update an index returns "Invalid Parameter Error" response Given new "UpdateLogsIndex" request And request contains "name" parameter from "REPLACE.ME" - And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} When the request is sent Then the response status is 400 Invalid Parameter Error @@ -81,7 +81,7 @@ Feature: Logs Indexes Scenario: Update an index returns "OK" response Given new "UpdateLogsIndex" request And request contains "name" parameter from "REPLACE.ME" - And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} + And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]} When the request is sent Then the response status is 200 OK