diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 500a3319903..65d674fb23d 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -102910,14 +102910,26 @@ components: description: Whether Auto Test Retries are enabled for this service. example: false type: boolean + auto_test_retries_enabled_is_overridden: + description: Whether the Auto Test Retries setting is overridden at the service level. + example: false + type: boolean code_coverage_enabled: description: Whether Code Coverage is enabled for this service. example: false type: boolean + code_coverage_enabled_is_overridden: + description: Whether the Code Coverage setting is overridden at the service level. + example: false + type: boolean early_flake_detection_enabled: description: Whether Early Flake Detection is enabled for this service. example: false type: boolean + early_flake_detection_enabled_is_overridden: + description: Whether the Early Flake Detection setting is overridden at the service level. + example: false + type: boolean env: description: The environment name. example: prod @@ -102926,9 +102938,13 @@ components: description: Whether Failed Test Replay is enabled for this service. example: false type: boolean + failed_test_replay_enabled_is_overridden: + description: Whether the Failed Test Replay setting is overridden at the service level. + example: false + type: boolean pr_comments_enabled: - description: Whether PR Comments are enabled for this service. - example: true + description: Whether PR Comments are enabled. This value reflects the repository-level setting and cannot be overridden at the service level. + example: false type: boolean repository_id: description: The repository identifier. @@ -102940,7 +102956,11 @@ components: type: string test_impact_analysis_enabled: description: Whether Test Impact Analysis is enabled for this service. - example: false + example: true + type: boolean + test_impact_analysis_enabled_is_overridden: + description: Whether the Test Impact Analysis setting is overridden at the service level. + example: true type: boolean type: object TestOptimizationServiceSettingsData: @@ -102950,7 +102970,7 @@ components: $ref: "#/components/schemas/TestOptimizationServiceSettingsAttributes" id: description: Unique identifier for the service settings. - example: github.com/datadog/shopist::shopist::prod + example: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d type: string type: $ref: "#/components/schemas/TestOptimizationServiceSettingsType" @@ -102993,17 +103013,30 @@ components: description: |- Attributes for updating Test Optimization service settings. All non-required fields are optional; only provided fields will be updated. + Setting a field to `null` is a no-op. To reset a setting to inherit from the repository level, use the corresponding `_inherit` field. properties: auto_test_retries_enabled: - description: Whether Auto Test Retries are enabled for this service. + description: Whether Auto Test Retries are enabled for this service. Setting to `null` is a no-op; use `auto_test_retries_enabled_inherit` to reset to repository-level inheritance. + example: false + type: boolean + auto_test_retries_enabled_inherit: + description: When `true`, resets the Auto Test Retries setting to inherit from the repository level. example: false type: boolean code_coverage_enabled: - description: Whether Code Coverage is enabled for this service. + description: Whether Code Coverage is enabled for this service. Setting to `null` is a no-op; use `code_coverage_enabled_inherit` to reset to repository-level inheritance. + example: false + type: boolean + code_coverage_enabled_inherit: + description: When `true`, resets the Code Coverage setting to inherit from the repository level. example: false type: boolean early_flake_detection_enabled: - description: Whether Early Flake Detection is enabled for this service. + description: Whether Early Flake Detection is enabled for this service. Setting to `null` is a no-op; use `early_flake_detection_enabled_inherit` to reset to repository-level inheritance. + example: false + type: boolean + early_flake_detection_enabled_inherit: + description: When `true`, resets the Early Flake Detection setting to inherit from the repository level. example: false type: boolean env: @@ -103011,12 +103044,16 @@ components: example: prod type: string failed_test_replay_enabled: - description: Whether Failed Test Replay is enabled for this service. + description: Whether Failed Test Replay is enabled for this service. Setting to `null` is a no-op; use `failed_test_replay_enabled_inherit` to reset to repository-level inheritance. + example: false + type: boolean + failed_test_replay_enabled_inherit: + description: When `true`, resets the Failed Test Replay setting to inherit from the repository level. example: false type: boolean pr_comments_enabled: - description: Whether PR Comments are enabled for this service. - example: true + description: This field is ignored. PR Comments cannot be overridden at the service level. + example: false type: boolean repository_id: description: The repository identifier. @@ -103029,8 +103066,12 @@ components: minLength: 1 type: string test_impact_analysis_enabled: - description: Whether Test Impact Analysis is enabled for this service. - example: false + description: Whether Test Impact Analysis is enabled for this service. Setting to `null` is a no-op; use `test_impact_analysis_enabled_inherit` to reset to repository-level inheritance. + example: true + type: boolean + test_impact_analysis_enabled_inherit: + description: When `true`, resets the Test Impact Analysis setting to inherit from the repository level. + example: true type: boolean required: - repository_id @@ -121112,7 +121153,9 @@ paths: patch: description: |- Partially update Test Optimization settings for a specific service identified by repository, service name, and environment. - Only provided fields are updated; null or omitted fields are left unchanged. + Only provided fields are updated; setting a field to `null` is a no-op. + To reset a setting to inherit from the repository level, use the corresponding `_inherit` field. + The `pr_comments_enabled` field is ignored as it cannot be overridden at the service level. operationId: UpdateTestOptimizationServiceSettings requestBody: content: @@ -121122,15 +121165,10 @@ paths: value: data: attributes: - auto_test_retries_enabled: false - code_coverage_enabled: false - early_flake_detection_enabled: false env: prod - failed_test_replay_enabled: false - pr_comments_enabled: true repository_id: github.com/datadog/test-service service_name: test-service - test_impact_analysis_enabled: false + test_impact_analysis_enabled_inherit: true type: test_optimization_update_service_settings_request schema: $ref: "#/components/schemas/TestOptimizationUpdateServiceSettingsRequest" @@ -121145,15 +121183,20 @@ paths: data: attributes: auto_test_retries_enabled: false + auto_test_retries_enabled_is_overridden: false code_coverage_enabled: false + code_coverage_enabled_is_overridden: false early_flake_detection_enabled: false + early_flake_detection_enabled_is_overridden: false env: prod failed_test_replay_enabled: false - pr_comments_enabled: true + failed_test_replay_enabled_is_overridden: false + pr_comments_enabled: false repository_id: github.com/datadog/test-service service_name: test-service - test_impact_analysis_enabled: false - id: github.com/datadog/test-service::test-service::prod + test_impact_analysis_enabled: true + test_impact_analysis_enabled_is_overridden: true + id: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d type: test_optimization_service_settings schema: $ref: "#/components/schemas/TestOptimizationServiceSettingsResponse" @@ -121207,15 +121250,20 @@ paths: data: attributes: auto_test_retries_enabled: false + auto_test_retries_enabled_is_overridden: false code_coverage_enabled: false + code_coverage_enabled_is_overridden: false early_flake_detection_enabled: false + early_flake_detection_enabled_is_overridden: false env: prod failed_test_replay_enabled: false - pr_comments_enabled: true + failed_test_replay_enabled_is_overridden: false + pr_comments_enabled: false repository_id: github.com/datadog/test-service service_name: test-service - test_impact_analysis_enabled: false - id: github.com/datadog/test-service::test-service::prod + test_impact_analysis_enabled: true + test_impact_analysis_enabled_is_overridden: true + id: 9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d type: test_optimization_service_settings schema: $ref: "#/components/schemas/TestOptimizationServiceSettingsResponse" diff --git a/examples/v2/test-optimization/UpdateTestOptimizationServiceSettings.java b/examples/v2/test-optimization/UpdateTestOptimizationServiceSettings.java index fc5a824176f..6a2395b4629 100644 --- a/examples/v2/test-optimization/UpdateTestOptimizationServiceSettings.java +++ b/examples/v2/test-optimization/UpdateTestOptimizationServiceSettings.java @@ -21,14 +21,19 @@ public static void main(String[] args) { .attributes( new TestOptimizationUpdateServiceSettingsRequestAttributes() .autoTestRetriesEnabled(false) + .autoTestRetriesEnabledInherit(false) .codeCoverageEnabled(false) + .codeCoverageEnabledInherit(false) .earlyFlakeDetectionEnabled(false) + .earlyFlakeDetectionEnabledInherit(false) .env("prod") .failedTestReplayEnabled(false) - .prCommentsEnabled(true) + .failedTestReplayEnabledInherit(false) + .prCommentsEnabled(false) .repositoryId("github.com/datadog/shopist") .serviceName("shopist") - .testImpactAnalysisEnabled(false)) + .testImpactAnalysisEnabled(true) + .testImpactAnalysisEnabledInherit(true)) .type( TestOptimizationUpdateServiceSettingsRequestDataType .TEST_OPTIMIZATION_UPDATE_SERVICE_SETTINGS_REQUEST)); diff --git a/src/main/java/com/datadog/api/client/v2/api/TestOptimizationApi.java b/src/main/java/com/datadog/api/client/v2/api/TestOptimizationApi.java index b5fd10c6c40..296a890da77 100644 --- a/src/main/java/com/datadog/api/client/v2/api/TestOptimizationApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/TestOptimizationApi.java @@ -1037,8 +1037,10 @@ public TestOptimizationServiceSettingsResponse updateTestOptimizationServiceSett /** * Partially update Test Optimization settings for a specific service identified by repository, - * service name, and environment. Only provided fields are updated; null or omitted fields are - * left unchanged. + * service name, and environment. Only provided fields are updated; setting a field to null + * is a no-op. To reset a setting to inherit from the repository level, use the + * corresponding <setting>_inherit field. The pr_comments_enabled + * field is ignored as it cannot be overridden at the service level. * * @param body (required) * @return ApiResponse<TestOptimizationServiceSettingsResponse> diff --git a/src/main/java/com/datadog/api/client/v2/model/TestOptimizationServiceSettingsAttributes.java b/src/main/java/com/datadog/api/client/v2/model/TestOptimizationServiceSettingsAttributes.java index 500d5abca72..785aee6dd03 100644 --- a/src/main/java/com/datadog/api/client/v2/model/TestOptimizationServiceSettingsAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/TestOptimizationServiceSettingsAttributes.java @@ -19,14 +19,20 @@ /** Attributes for Test Optimization service settings. */ @JsonPropertyOrder({ TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED, + TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED_IS_OVERRIDDEN, TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_CODE_COVERAGE_ENABLED, + TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_CODE_COVERAGE_ENABLED_IS_OVERRIDDEN, TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED, + TestOptimizationServiceSettingsAttributes + .JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED_IS_OVERRIDDEN, TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_ENV, TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED, + TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED_IS_OVERRIDDEN, TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_PR_COMMENTS_ENABLED, TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_REPOSITORY_ID, TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_SERVICE_NAME, - TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED + TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED, + TestOptimizationServiceSettingsAttributes.JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED_IS_OVERRIDDEN }) @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") @@ -35,13 +41,25 @@ public class TestOptimizationServiceSettingsAttributes { public static final String JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED = "auto_test_retries_enabled"; private Boolean autoTestRetriesEnabled; + public static final String JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED_IS_OVERRIDDEN = + "auto_test_retries_enabled_is_overridden"; + private Boolean autoTestRetriesEnabledIsOverridden; + public static final String JSON_PROPERTY_CODE_COVERAGE_ENABLED = "code_coverage_enabled"; private Boolean codeCoverageEnabled; + public static final String JSON_PROPERTY_CODE_COVERAGE_ENABLED_IS_OVERRIDDEN = + "code_coverage_enabled_is_overridden"; + private Boolean codeCoverageEnabledIsOverridden; + public static final String JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED = "early_flake_detection_enabled"; private Boolean earlyFlakeDetectionEnabled; + public static final String JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED_IS_OVERRIDDEN = + "early_flake_detection_enabled_is_overridden"; + private Boolean earlyFlakeDetectionEnabledIsOverridden; + public static final String JSON_PROPERTY_ENV = "env"; private String env; @@ -49,6 +67,10 @@ public class TestOptimizationServiceSettingsAttributes { "failed_test_replay_enabled"; private Boolean failedTestReplayEnabled; + public static final String JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED_IS_OVERRIDDEN = + "failed_test_replay_enabled_is_overridden"; + private Boolean failedTestReplayEnabledIsOverridden; + public static final String JSON_PROPERTY_PR_COMMENTS_ENABLED = "pr_comments_enabled"; private Boolean prCommentsEnabled; @@ -62,6 +84,10 @@ public class TestOptimizationServiceSettingsAttributes { "test_impact_analysis_enabled"; private Boolean testImpactAnalysisEnabled; + public static final String JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED_IS_OVERRIDDEN = + "test_impact_analysis_enabled_is_overridden"; + private Boolean testImpactAnalysisEnabledIsOverridden; + public TestOptimizationServiceSettingsAttributes autoTestRetriesEnabled( Boolean autoTestRetriesEnabled) { this.autoTestRetriesEnabled = autoTestRetriesEnabled; @@ -84,6 +110,28 @@ public void setAutoTestRetriesEnabled(Boolean autoTestRetriesEnabled) { this.autoTestRetriesEnabled = autoTestRetriesEnabled; } + public TestOptimizationServiceSettingsAttributes autoTestRetriesEnabledIsOverridden( + Boolean autoTestRetriesEnabledIsOverridden) { + this.autoTestRetriesEnabledIsOverridden = autoTestRetriesEnabledIsOverridden; + return this; + } + + /** + * Whether the Auto Test Retries setting is overridden at the service level. + * + * @return autoTestRetriesEnabledIsOverridden + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED_IS_OVERRIDDEN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getAutoTestRetriesEnabledIsOverridden() { + return autoTestRetriesEnabledIsOverridden; + } + + public void setAutoTestRetriesEnabledIsOverridden(Boolean autoTestRetriesEnabledIsOverridden) { + this.autoTestRetriesEnabledIsOverridden = autoTestRetriesEnabledIsOverridden; + } + public TestOptimizationServiceSettingsAttributes codeCoverageEnabled( Boolean codeCoverageEnabled) { this.codeCoverageEnabled = codeCoverageEnabled; @@ -106,6 +154,28 @@ public void setCodeCoverageEnabled(Boolean codeCoverageEnabled) { this.codeCoverageEnabled = codeCoverageEnabled; } + public TestOptimizationServiceSettingsAttributes codeCoverageEnabledIsOverridden( + Boolean codeCoverageEnabledIsOverridden) { + this.codeCoverageEnabledIsOverridden = codeCoverageEnabledIsOverridden; + return this; + } + + /** + * Whether the Code Coverage setting is overridden at the service level. + * + * @return codeCoverageEnabledIsOverridden + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CODE_COVERAGE_ENABLED_IS_OVERRIDDEN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getCodeCoverageEnabledIsOverridden() { + return codeCoverageEnabledIsOverridden; + } + + public void setCodeCoverageEnabledIsOverridden(Boolean codeCoverageEnabledIsOverridden) { + this.codeCoverageEnabledIsOverridden = codeCoverageEnabledIsOverridden; + } + public TestOptimizationServiceSettingsAttributes earlyFlakeDetectionEnabled( Boolean earlyFlakeDetectionEnabled) { this.earlyFlakeDetectionEnabled = earlyFlakeDetectionEnabled; @@ -128,6 +198,29 @@ public void setEarlyFlakeDetectionEnabled(Boolean earlyFlakeDetectionEnabled) { this.earlyFlakeDetectionEnabled = earlyFlakeDetectionEnabled; } + public TestOptimizationServiceSettingsAttributes earlyFlakeDetectionEnabledIsOverridden( + Boolean earlyFlakeDetectionEnabledIsOverridden) { + this.earlyFlakeDetectionEnabledIsOverridden = earlyFlakeDetectionEnabledIsOverridden; + return this; + } + + /** + * Whether the Early Flake Detection setting is overridden at the service level. + * + * @return earlyFlakeDetectionEnabledIsOverridden + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED_IS_OVERRIDDEN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getEarlyFlakeDetectionEnabledIsOverridden() { + return earlyFlakeDetectionEnabledIsOverridden; + } + + public void setEarlyFlakeDetectionEnabledIsOverridden( + Boolean earlyFlakeDetectionEnabledIsOverridden) { + this.earlyFlakeDetectionEnabledIsOverridden = earlyFlakeDetectionEnabledIsOverridden; + } + public TestOptimizationServiceSettingsAttributes env(String env) { this.env = env; return this; @@ -171,13 +264,36 @@ public void setFailedTestReplayEnabled(Boolean failedTestReplayEnabled) { this.failedTestReplayEnabled = failedTestReplayEnabled; } + public TestOptimizationServiceSettingsAttributes failedTestReplayEnabledIsOverridden( + Boolean failedTestReplayEnabledIsOverridden) { + this.failedTestReplayEnabledIsOverridden = failedTestReplayEnabledIsOverridden; + return this; + } + + /** + * Whether the Failed Test Replay setting is overridden at the service level. + * + * @return failedTestReplayEnabledIsOverridden + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED_IS_OVERRIDDEN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getFailedTestReplayEnabledIsOverridden() { + return failedTestReplayEnabledIsOverridden; + } + + public void setFailedTestReplayEnabledIsOverridden(Boolean failedTestReplayEnabledIsOverridden) { + this.failedTestReplayEnabledIsOverridden = failedTestReplayEnabledIsOverridden; + } + public TestOptimizationServiceSettingsAttributes prCommentsEnabled(Boolean prCommentsEnabled) { this.prCommentsEnabled = prCommentsEnabled; return this; } /** - * Whether PR Comments are enabled for this service. + * Whether PR Comments are enabled. This value reflects the repository-level setting and cannot be + * overridden at the service level. * * @return prCommentsEnabled */ @@ -256,6 +372,29 @@ public void setTestImpactAnalysisEnabled(Boolean testImpactAnalysisEnabled) { this.testImpactAnalysisEnabled = testImpactAnalysisEnabled; } + public TestOptimizationServiceSettingsAttributes testImpactAnalysisEnabledIsOverridden( + Boolean testImpactAnalysisEnabledIsOverridden) { + this.testImpactAnalysisEnabledIsOverridden = testImpactAnalysisEnabledIsOverridden; + return this; + } + + /** + * Whether the Test Impact Analysis setting is overridden at the service level. + * + * @return testImpactAnalysisEnabledIsOverridden + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED_IS_OVERRIDDEN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getTestImpactAnalysisEnabledIsOverridden() { + return testImpactAnalysisEnabledIsOverridden; + } + + public void setTestImpactAnalysisEnabledIsOverridden( + Boolean testImpactAnalysisEnabledIsOverridden) { + this.testImpactAnalysisEnabledIsOverridden = testImpactAnalysisEnabledIsOverridden; + } + /** * A container for additional, undeclared properties. This is a holder for any undeclared * properties as specified with the 'additionalProperties' keyword in the OAS document. @@ -316,15 +455,27 @@ public boolean equals(Object o) { return Objects.equals( this.autoTestRetriesEnabled, testOptimizationServiceSettingsAttributes.autoTestRetriesEnabled) + && Objects.equals( + this.autoTestRetriesEnabledIsOverridden, + testOptimizationServiceSettingsAttributes.autoTestRetriesEnabledIsOverridden) && Objects.equals( this.codeCoverageEnabled, testOptimizationServiceSettingsAttributes.codeCoverageEnabled) + && Objects.equals( + this.codeCoverageEnabledIsOverridden, + testOptimizationServiceSettingsAttributes.codeCoverageEnabledIsOverridden) && Objects.equals( this.earlyFlakeDetectionEnabled, testOptimizationServiceSettingsAttributes.earlyFlakeDetectionEnabled) + && Objects.equals( + this.earlyFlakeDetectionEnabledIsOverridden, + testOptimizationServiceSettingsAttributes.earlyFlakeDetectionEnabledIsOverridden) && Objects.equals(this.env, testOptimizationServiceSettingsAttributes.env) && Objects.equals( this.failedTestReplayEnabled, testOptimizationServiceSettingsAttributes.failedTestReplayEnabled) + && Objects.equals( + this.failedTestReplayEnabledIsOverridden, + testOptimizationServiceSettingsAttributes.failedTestReplayEnabledIsOverridden) && Objects.equals( this.prCommentsEnabled, testOptimizationServiceSettingsAttributes.prCommentsEnabled) && Objects.equals(this.repositoryId, testOptimizationServiceSettingsAttributes.repositoryId) @@ -332,6 +483,9 @@ public boolean equals(Object o) { && Objects.equals( this.testImpactAnalysisEnabled, testOptimizationServiceSettingsAttributes.testImpactAnalysisEnabled) + && Objects.equals( + this.testImpactAnalysisEnabledIsOverridden, + testOptimizationServiceSettingsAttributes.testImpactAnalysisEnabledIsOverridden) && Objects.equals( this.additionalProperties, testOptimizationServiceSettingsAttributes.additionalProperties); @@ -341,14 +495,19 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash( autoTestRetriesEnabled, + autoTestRetriesEnabledIsOverridden, codeCoverageEnabled, + codeCoverageEnabledIsOverridden, earlyFlakeDetectionEnabled, + earlyFlakeDetectionEnabledIsOverridden, env, failedTestReplayEnabled, + failedTestReplayEnabledIsOverridden, prCommentsEnabled, repositoryId, serviceName, testImpactAnalysisEnabled, + testImpactAnalysisEnabledIsOverridden, additionalProperties); } @@ -359,22 +518,37 @@ public String toString() { sb.append(" autoTestRetriesEnabled: ") .append(toIndentedString(autoTestRetriesEnabled)) .append("\n"); + sb.append(" autoTestRetriesEnabledIsOverridden: ") + .append(toIndentedString(autoTestRetriesEnabledIsOverridden)) + .append("\n"); sb.append(" codeCoverageEnabled: ") .append(toIndentedString(codeCoverageEnabled)) .append("\n"); + sb.append(" codeCoverageEnabledIsOverridden: ") + .append(toIndentedString(codeCoverageEnabledIsOverridden)) + .append("\n"); sb.append(" earlyFlakeDetectionEnabled: ") .append(toIndentedString(earlyFlakeDetectionEnabled)) .append("\n"); + sb.append(" earlyFlakeDetectionEnabledIsOverridden: ") + .append(toIndentedString(earlyFlakeDetectionEnabledIsOverridden)) + .append("\n"); sb.append(" env: ").append(toIndentedString(env)).append("\n"); sb.append(" failedTestReplayEnabled: ") .append(toIndentedString(failedTestReplayEnabled)) .append("\n"); + sb.append(" failedTestReplayEnabledIsOverridden: ") + .append(toIndentedString(failedTestReplayEnabledIsOverridden)) + .append("\n"); sb.append(" prCommentsEnabled: ").append(toIndentedString(prCommentsEnabled)).append("\n"); sb.append(" repositoryId: ").append(toIndentedString(repositoryId)).append("\n"); sb.append(" serviceName: ").append(toIndentedString(serviceName)).append("\n"); sb.append(" testImpactAnalysisEnabled: ") .append(toIndentedString(testImpactAnalysisEnabled)) .append("\n"); + sb.append(" testImpactAnalysisEnabledIsOverridden: ") + .append(toIndentedString(testImpactAnalysisEnabledIsOverridden)) + .append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestAttributes.java index 8540222d129..c6bef419fb5 100644 --- a/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestAttributes.java @@ -19,19 +19,31 @@ /** * Attributes for updating Test Optimization service settings. All non-required fields are optional; - * only provided fields will be updated. + * only provided fields will be updated. Setting a field to null is a no-op. To reset a + * setting to inherit from the repository level, use the corresponding <setting>_inherit + * field. */ @JsonPropertyOrder({ TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED, + TestOptimizationUpdateServiceSettingsRequestAttributes + .JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED_INHERIT, TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_CODE_COVERAGE_ENABLED, + TestOptimizationUpdateServiceSettingsRequestAttributes + .JSON_PROPERTY_CODE_COVERAGE_ENABLED_INHERIT, TestOptimizationUpdateServiceSettingsRequestAttributes .JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED, + TestOptimizationUpdateServiceSettingsRequestAttributes + .JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED_INHERIT, TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_ENV, TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED, + TestOptimizationUpdateServiceSettingsRequestAttributes + .JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED_INHERIT, TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_PR_COMMENTS_ENABLED, TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_REPOSITORY_ID, TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_SERVICE_NAME, - TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED + TestOptimizationUpdateServiceSettingsRequestAttributes.JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED, + TestOptimizationUpdateServiceSettingsRequestAttributes + .JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED_INHERIT }) @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") @@ -40,13 +52,25 @@ public class TestOptimizationUpdateServiceSettingsRequestAttributes { public static final String JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED = "auto_test_retries_enabled"; private Boolean autoTestRetriesEnabled; + public static final String JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED_INHERIT = + "auto_test_retries_enabled_inherit"; + private Boolean autoTestRetriesEnabledInherit; + public static final String JSON_PROPERTY_CODE_COVERAGE_ENABLED = "code_coverage_enabled"; private Boolean codeCoverageEnabled; + public static final String JSON_PROPERTY_CODE_COVERAGE_ENABLED_INHERIT = + "code_coverage_enabled_inherit"; + private Boolean codeCoverageEnabledInherit; + public static final String JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED = "early_flake_detection_enabled"; private Boolean earlyFlakeDetectionEnabled; + public static final String JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED_INHERIT = + "early_flake_detection_enabled_inherit"; + private Boolean earlyFlakeDetectionEnabledInherit; + public static final String JSON_PROPERTY_ENV = "env"; private String env; @@ -54,6 +78,10 @@ public class TestOptimizationUpdateServiceSettingsRequestAttributes { "failed_test_replay_enabled"; private Boolean failedTestReplayEnabled; + public static final String JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED_INHERIT = + "failed_test_replay_enabled_inherit"; + private Boolean failedTestReplayEnabledInherit; + public static final String JSON_PROPERTY_PR_COMMENTS_ENABLED = "pr_comments_enabled"; private Boolean prCommentsEnabled; @@ -67,6 +95,10 @@ public class TestOptimizationUpdateServiceSettingsRequestAttributes { "test_impact_analysis_enabled"; private Boolean testImpactAnalysisEnabled; + public static final String JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED_INHERIT = + "test_impact_analysis_enabled_inherit"; + private Boolean testImpactAnalysisEnabledInherit; + public TestOptimizationUpdateServiceSettingsRequestAttributes() {} @JsonCreator @@ -84,7 +116,9 @@ public TestOptimizationUpdateServiceSettingsRequestAttributes autoTestRetriesEna } /** - * Whether Auto Test Retries are enabled for this service. + * Whether Auto Test Retries are enabled for this service. Setting to null is a + * no-op; use auto_test_retries_enabled_inherit to reset to repository-level + * inheritance. * * @return autoTestRetriesEnabled */ @@ -99,6 +133,29 @@ public void setAutoTestRetriesEnabled(Boolean autoTestRetriesEnabled) { this.autoTestRetriesEnabled = autoTestRetriesEnabled; } + public TestOptimizationUpdateServiceSettingsRequestAttributes autoTestRetriesEnabledInherit( + Boolean autoTestRetriesEnabledInherit) { + this.autoTestRetriesEnabledInherit = autoTestRetriesEnabledInherit; + return this; + } + + /** + * When true, resets the Auto Test Retries setting to inherit from the repository + * level. + * + * @return autoTestRetriesEnabledInherit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AUTO_TEST_RETRIES_ENABLED_INHERIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getAutoTestRetriesEnabledInherit() { + return autoTestRetriesEnabledInherit; + } + + public void setAutoTestRetriesEnabledInherit(Boolean autoTestRetriesEnabledInherit) { + this.autoTestRetriesEnabledInherit = autoTestRetriesEnabledInherit; + } + public TestOptimizationUpdateServiceSettingsRequestAttributes codeCoverageEnabled( Boolean codeCoverageEnabled) { this.codeCoverageEnabled = codeCoverageEnabled; @@ -106,7 +163,8 @@ public TestOptimizationUpdateServiceSettingsRequestAttributes codeCoverageEnable } /** - * Whether Code Coverage is enabled for this service. + * Whether Code Coverage is enabled for this service. Setting to null is a no-op; use + * code_coverage_enabled_inherit to reset to repository-level inheritance. * * @return codeCoverageEnabled */ @@ -121,6 +179,28 @@ public void setCodeCoverageEnabled(Boolean codeCoverageEnabled) { this.codeCoverageEnabled = codeCoverageEnabled; } + public TestOptimizationUpdateServiceSettingsRequestAttributes codeCoverageEnabledInherit( + Boolean codeCoverageEnabledInherit) { + this.codeCoverageEnabledInherit = codeCoverageEnabledInherit; + return this; + } + + /** + * When true, resets the Code Coverage setting to inherit from the repository level. + * + * @return codeCoverageEnabledInherit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CODE_COVERAGE_ENABLED_INHERIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getCodeCoverageEnabledInherit() { + return codeCoverageEnabledInherit; + } + + public void setCodeCoverageEnabledInherit(Boolean codeCoverageEnabledInherit) { + this.codeCoverageEnabledInherit = codeCoverageEnabledInherit; + } + public TestOptimizationUpdateServiceSettingsRequestAttributes earlyFlakeDetectionEnabled( Boolean earlyFlakeDetectionEnabled) { this.earlyFlakeDetectionEnabled = earlyFlakeDetectionEnabled; @@ -128,7 +208,9 @@ public TestOptimizationUpdateServiceSettingsRequestAttributes earlyFlakeDetectio } /** - * Whether Early Flake Detection is enabled for this service. + * Whether Early Flake Detection is enabled for this service. Setting to null is a + * no-op; use early_flake_detection_enabled_inherit to reset to repository-level + * inheritance. * * @return earlyFlakeDetectionEnabled */ @@ -143,6 +225,29 @@ public void setEarlyFlakeDetectionEnabled(Boolean earlyFlakeDetectionEnabled) { this.earlyFlakeDetectionEnabled = earlyFlakeDetectionEnabled; } + public TestOptimizationUpdateServiceSettingsRequestAttributes earlyFlakeDetectionEnabledInherit( + Boolean earlyFlakeDetectionEnabledInherit) { + this.earlyFlakeDetectionEnabledInherit = earlyFlakeDetectionEnabledInherit; + return this; + } + + /** + * When true, resets the Early Flake Detection setting to inherit from the repository + * level. + * + * @return earlyFlakeDetectionEnabledInherit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EARLY_FLAKE_DETECTION_ENABLED_INHERIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getEarlyFlakeDetectionEnabledInherit() { + return earlyFlakeDetectionEnabledInherit; + } + + public void setEarlyFlakeDetectionEnabledInherit(Boolean earlyFlakeDetectionEnabledInherit) { + this.earlyFlakeDetectionEnabledInherit = earlyFlakeDetectionEnabledInherit; + } + public TestOptimizationUpdateServiceSettingsRequestAttributes env(String env) { this.env = env; return this; @@ -171,7 +276,9 @@ public TestOptimizationUpdateServiceSettingsRequestAttributes failedTestReplayEn } /** - * Whether Failed Test Replay is enabled for this service. + * Whether Failed Test Replay is enabled for this service. Setting to null is a + * no-op; use failed_test_replay_enabled_inherit to reset to repository-level + * inheritance. * * @return failedTestReplayEnabled */ @@ -186,6 +293,29 @@ public void setFailedTestReplayEnabled(Boolean failedTestReplayEnabled) { this.failedTestReplayEnabled = failedTestReplayEnabled; } + public TestOptimizationUpdateServiceSettingsRequestAttributes failedTestReplayEnabledInherit( + Boolean failedTestReplayEnabledInherit) { + this.failedTestReplayEnabledInherit = failedTestReplayEnabledInherit; + return this; + } + + /** + * When true, resets the Failed Test Replay setting to inherit from the repository + * level. + * + * @return failedTestReplayEnabledInherit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FAILED_TEST_REPLAY_ENABLED_INHERIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getFailedTestReplayEnabledInherit() { + return failedTestReplayEnabledInherit; + } + + public void setFailedTestReplayEnabledInherit(Boolean failedTestReplayEnabledInherit) { + this.failedTestReplayEnabledInherit = failedTestReplayEnabledInherit; + } + public TestOptimizationUpdateServiceSettingsRequestAttributes prCommentsEnabled( Boolean prCommentsEnabled) { this.prCommentsEnabled = prCommentsEnabled; @@ -193,7 +323,7 @@ public TestOptimizationUpdateServiceSettingsRequestAttributes prCommentsEnabled( } /** - * Whether PR Comments are enabled for this service. + * This field is ignored. PR Comments cannot be overridden at the service level. * * @return prCommentsEnabled */ @@ -255,7 +385,9 @@ public TestOptimizationUpdateServiceSettingsRequestAttributes testImpactAnalysis } /** - * Whether Test Impact Analysis is enabled for this service. + * Whether Test Impact Analysis is enabled for this service. Setting to null is a + * no-op; use test_impact_analysis_enabled_inherit to reset to repository-level + * inheritance. * * @return testImpactAnalysisEnabled */ @@ -270,6 +402,29 @@ public void setTestImpactAnalysisEnabled(Boolean testImpactAnalysisEnabled) { this.testImpactAnalysisEnabled = testImpactAnalysisEnabled; } + public TestOptimizationUpdateServiceSettingsRequestAttributes testImpactAnalysisEnabledInherit( + Boolean testImpactAnalysisEnabledInherit) { + this.testImpactAnalysisEnabledInherit = testImpactAnalysisEnabledInherit; + return this; + } + + /** + * When true, resets the Test Impact Analysis setting to inherit from the repository + * level. + * + * @return testImpactAnalysisEnabledInherit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TEST_IMPACT_ANALYSIS_ENABLED_INHERIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getTestImpactAnalysisEnabledInherit() { + return testImpactAnalysisEnabledInherit; + } + + public void setTestImpactAnalysisEnabledInherit(Boolean testImpactAnalysisEnabledInherit) { + this.testImpactAnalysisEnabledInherit = testImpactAnalysisEnabledInherit; + } + /** * A container for additional, undeclared properties. This is a holder for any undeclared * properties as specified with the 'additionalProperties' keyword in the OAS document. @@ -335,16 +490,29 @@ public boolean equals(Object o) { return Objects.equals( this.autoTestRetriesEnabled, testOptimizationUpdateServiceSettingsRequestAttributes.autoTestRetriesEnabled) + && Objects.equals( + this.autoTestRetriesEnabledInherit, + testOptimizationUpdateServiceSettingsRequestAttributes.autoTestRetriesEnabledInherit) && Objects.equals( this.codeCoverageEnabled, testOptimizationUpdateServiceSettingsRequestAttributes.codeCoverageEnabled) + && Objects.equals( + this.codeCoverageEnabledInherit, + testOptimizationUpdateServiceSettingsRequestAttributes.codeCoverageEnabledInherit) && Objects.equals( this.earlyFlakeDetectionEnabled, testOptimizationUpdateServiceSettingsRequestAttributes.earlyFlakeDetectionEnabled) + && Objects.equals( + this.earlyFlakeDetectionEnabledInherit, + testOptimizationUpdateServiceSettingsRequestAttributes + .earlyFlakeDetectionEnabledInherit) && Objects.equals(this.env, testOptimizationUpdateServiceSettingsRequestAttributes.env) && Objects.equals( this.failedTestReplayEnabled, testOptimizationUpdateServiceSettingsRequestAttributes.failedTestReplayEnabled) + && Objects.equals( + this.failedTestReplayEnabledInherit, + testOptimizationUpdateServiceSettingsRequestAttributes.failedTestReplayEnabledInherit) && Objects.equals( this.prCommentsEnabled, testOptimizationUpdateServiceSettingsRequestAttributes.prCommentsEnabled) @@ -355,6 +523,9 @@ public boolean equals(Object o) { && Objects.equals( this.testImpactAnalysisEnabled, testOptimizationUpdateServiceSettingsRequestAttributes.testImpactAnalysisEnabled) + && Objects.equals( + this.testImpactAnalysisEnabledInherit, + testOptimizationUpdateServiceSettingsRequestAttributes.testImpactAnalysisEnabledInherit) && Objects.equals( this.additionalProperties, testOptimizationUpdateServiceSettingsRequestAttributes.additionalProperties); @@ -364,14 +535,19 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash( autoTestRetriesEnabled, + autoTestRetriesEnabledInherit, codeCoverageEnabled, + codeCoverageEnabledInherit, earlyFlakeDetectionEnabled, + earlyFlakeDetectionEnabledInherit, env, failedTestReplayEnabled, + failedTestReplayEnabledInherit, prCommentsEnabled, repositoryId, serviceName, testImpactAnalysisEnabled, + testImpactAnalysisEnabledInherit, additionalProperties); } @@ -382,22 +558,37 @@ public String toString() { sb.append(" autoTestRetriesEnabled: ") .append(toIndentedString(autoTestRetriesEnabled)) .append("\n"); + sb.append(" autoTestRetriesEnabledInherit: ") + .append(toIndentedString(autoTestRetriesEnabledInherit)) + .append("\n"); sb.append(" codeCoverageEnabled: ") .append(toIndentedString(codeCoverageEnabled)) .append("\n"); + sb.append(" codeCoverageEnabledInherit: ") + .append(toIndentedString(codeCoverageEnabledInherit)) + .append("\n"); sb.append(" earlyFlakeDetectionEnabled: ") .append(toIndentedString(earlyFlakeDetectionEnabled)) .append("\n"); + sb.append(" earlyFlakeDetectionEnabledInherit: ") + .append(toIndentedString(earlyFlakeDetectionEnabledInherit)) + .append("\n"); sb.append(" env: ").append(toIndentedString(env)).append("\n"); sb.append(" failedTestReplayEnabled: ") .append(toIndentedString(failedTestReplayEnabled)) .append("\n"); + sb.append(" failedTestReplayEnabledInherit: ") + .append(toIndentedString(failedTestReplayEnabledInherit)) + .append("\n"); sb.append(" prCommentsEnabled: ").append(toIndentedString(prCommentsEnabled)).append("\n"); sb.append(" repositoryId: ").append(toIndentedString(repositoryId)).append("\n"); sb.append(" serviceName: ").append(toIndentedString(serviceName)).append("\n"); sb.append(" testImpactAnalysisEnabled: ") .append(toIndentedString(testImpactAnalysisEnabled)) .append("\n"); + sb.append(" testImpactAnalysisEnabledInherit: ") + .append(toIndentedString(testImpactAnalysisEnabledInherit)) + .append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestData.java b/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestData.java index 7ed77c11f94..af926c8618f 100644 --- a/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestData.java +++ b/src/main/java/com/datadog/api/client/v2/model/TestOptimizationUpdateServiceSettingsRequestData.java @@ -55,7 +55,9 @@ public TestOptimizationUpdateServiceSettingsRequestData attributes( /** * Attributes for updating Test Optimization service settings. All non-required fields are - * optional; only provided fields will be updated. + * optional; only provided fields will be updated. Setting a field to null is a + * no-op. To reset a setting to inherit from the repository level, use the corresponding + * <setting>_inherit field. * * @return attributes */ diff --git a/src/test/resources/com/datadog/api/client/v2/api/test_optimization.feature b/src/test/resources/com/datadog/api/client/v2/api/test_optimization.feature index c363d29f04c..342eda12e8f 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/test_optimization.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/test_optimization.feature @@ -187,21 +187,21 @@ Feature: Test Optimization @generated @skip @team:DataDog/ci-app-backend Scenario: Update Test Optimization service settings returns "Bad Request" response Given new "UpdateTestOptimizationServiceSettings" request - And body with value {"data": {"attributes": {"auto_test_retries_enabled": false, "code_coverage_enabled": false, "early_flake_detection_enabled": false, "env": "prod", "failed_test_replay_enabled": false, "pr_comments_enabled": true, "repository_id": "github.com/datadog/shopist", "service_name": "shopist", "test_impact_analysis_enabled": false}, "type": "test_optimization_update_service_settings_request"}} + And body with value {"data": {"attributes": {"auto_test_retries_enabled": false, "auto_test_retries_enabled_inherit": false, "code_coverage_enabled": false, "code_coverage_enabled_inherit": false, "early_flake_detection_enabled": false, "early_flake_detection_enabled_inherit": false, "env": "prod", "failed_test_replay_enabled": false, "failed_test_replay_enabled_inherit": false, "pr_comments_enabled": false, "repository_id": "github.com/datadog/shopist", "service_name": "shopist", "test_impact_analysis_enabled": true, "test_impact_analysis_enabled_inherit": true}, "type": "test_optimization_update_service_settings_request"}} When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/ci-app-backend Scenario: Update Test Optimization service settings returns "Not Found" response Given new "UpdateTestOptimizationServiceSettings" request - And body with value {"data": {"attributes": {"auto_test_retries_enabled": false, "code_coverage_enabled": false, "early_flake_detection_enabled": false, "env": "prod", "failed_test_replay_enabled": false, "pr_comments_enabled": true, "repository_id": "github.com/datadog/shopist", "service_name": "shopist", "test_impact_analysis_enabled": false}, "type": "test_optimization_update_service_settings_request"}} + And body with value {"data": {"attributes": {"auto_test_retries_enabled": false, "auto_test_retries_enabled_inherit": false, "code_coverage_enabled": false, "code_coverage_enabled_inherit": false, "early_flake_detection_enabled": false, "early_flake_detection_enabled_inherit": false, "env": "prod", "failed_test_replay_enabled": false, "failed_test_replay_enabled_inherit": false, "pr_comments_enabled": false, "repository_id": "github.com/datadog/shopist", "service_name": "shopist", "test_impact_analysis_enabled": true, "test_impact_analysis_enabled_inherit": true}, "type": "test_optimization_update_service_settings_request"}} When the request is sent Then the response status is 404 Not Found @generated @skip @team:DataDog/ci-app-backend Scenario: Update Test Optimization service settings returns "OK" response Given new "UpdateTestOptimizationServiceSettings" request - And body with value {"data": {"attributes": {"auto_test_retries_enabled": false, "code_coverage_enabled": false, "early_flake_detection_enabled": false, "env": "prod", "failed_test_replay_enabled": false, "pr_comments_enabled": true, "repository_id": "github.com/datadog/shopist", "service_name": "shopist", "test_impact_analysis_enabled": false}, "type": "test_optimization_update_service_settings_request"}} + And body with value {"data": {"attributes": {"auto_test_retries_enabled": false, "auto_test_retries_enabled_inherit": false, "code_coverage_enabled": false, "code_coverage_enabled_inherit": false, "early_flake_detection_enabled": false, "early_flake_detection_enabled_inherit": false, "env": "prod", "failed_test_replay_enabled": false, "failed_test_replay_enabled_inherit": false, "pr_comments_enabled": false, "repository_id": "github.com/datadog/shopist", "service_name": "shopist", "test_impact_analysis_enabled": true, "test_impact_analysis_enabled_inherit": true}, "type": "test_optimization_update_service_settings_request"}} When the request is sent Then the response status is 200 OK