---
title: 불안정한 테스트 관리 정책 업데이트
description: 지정된 리포지토리에 대한 Flaky Tests Management 리포지토리 수준 정책을 부분적으로 업데이트합니다. 제공된 정책 블록만 업데이트되며 생략된 블록은 변경되지 않습니다.
breadcrumbs: 문서 > API > 불안정한 테스트 관리 정책 업데이트
---

> For the complete documentation index, see [llms.txt](https://dnd37xeb23o8n.cloudfront.net/jen.gilbert/astro-base/llms.txt).

# 불안정한 테스트 관리 정책 업데이트

## v2 (latest)

| Datadog site      | API endpoint                                                                      |
| ----------------- | --------------------------------------------------------------------------------- |
| app.datadoghq.com | PATCH https://api.datadoghq.com/api/v2/ci/test-optimization/settings/policies     |
| us3.datadoghq.com | PATCH https://api.us3.datadoghq.com/api/v2/ci/test-optimization/settings/policies |
| us5.datadoghq.com | PATCH https://api.us5.datadoghq.com/api/v2/ci/test-optimization/settings/policies |
| app.datadoghq.eu  | PATCH https://api.datadoghq.eu/api/v2/ci/test-optimization/settings/policies      |
| ap1.datadoghq.com | PATCH https://api.ap1.datadoghq.com/api/v2/ci/test-optimization/settings/policies |
| ap2.datadoghq.com | PATCH https://api.ap2.datadoghq.com/api/v2/ci/test-optimization/settings/policies |
| uk1.datadoghq.com | PATCH https://api.uk1.datadoghq.com/api/v2/ci/test-optimization/settings/policies |
| app.ddog-gov.com  | PATCH https://api.ddog-gov.com/api/v2/ci/test-optimization/settings/policies      |
| us2.ddog-gov.com  | PATCH https://api.us2.ddog-gov.com/api/v2/ci/test-optimization/settings/policies  |

### Overview

지정된 리포지토리에 대한 Flaky Tests Management 리포지토리 수준 정책을 부분적으로 업데이트합니다.
제공된 정책 블록만 업데이트되며 생략된 블록은 변경되지 않습니다.

This endpoint requires the `test_optimization_settings_write` permission.

OAuth apps require the `test_optimization_settings_write` authorization [scope](https://dnd37xeb23o8n.cloudfront.net/jen.gilbert/astro-base/ko/api/latest/scopes.md#test-optimization) to access this endpoint.

### Request

#### Body Data (required)

{% tabs %}
{% tab label="Model" %}
| Parent field         | Field                      | Type     | Description                                                                                                                                                                                                                                             |
| -------------------- | -------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                      | data [*required*]          | object   | 불안정한 테스트 관리 정책 업데이트를 위한 요청 객체입니다.                                                                                                                                                                                                                       |
| data                 | attributes [*required*]    | object   | Attributes for updating Flaky Tests Management policies. Only provided policy blocks are updated; omitted blocks are left unchanged.                                                                                                                    |
| attributes           | attempt_to_fix             | object   | Configuration for the attempt-to-fix Flaky Tests Management policy.                                                                                                                                                                                     |
| attempt_to_fix       | retries                    | int64    | Number of retries when attempting to fix a flaky test. Must be greater than 0.                                                                                                                                                                          |
| attributes           | disabled                   | object   | Configuration for the disabled Flaky Tests Management policy.                                                                                                                                                                                           |
| disabled             | auto_disable_rule          | object   | Automatic disable triggering rule based on a time window and test status.                                                                                                                                                                               |
| auto_disable_rule    | enabled                    | boolean  | Whether this auto-disable rule is enabled.                                                                                                                                                                                                              |
| auto_disable_rule    | status                     | enum     | Test status that the disable policy applies to. Must be either `active` or `quarantined`. Allowed enum values: `active`, `quarantined`.                                                                                                                 |
| auto_disable_rule    | window_seconds             | int64    | Time window in seconds over which flakiness is evaluated. Must be greater than 0.                                                                                                                                                                       |
| disabled             | branch_rule                | object   | Branch filtering rule for a Flaky Tests Management policy.                                                                                                                                                                                              |
| branch_rule          | branches                   | [string] | List of branches to which the policy applies.                                                                                                                                                                                                           |
| branch_rule          | enabled                    | boolean  | Whether this branch rule is enabled.                                                                                                                                                                                                                    |
| branch_rule          | excluded_branches          | [string] | List of branches excluded from the policy.                                                                                                                                                                                                              |
| branch_rule          | excluded_test_services     | [string] | List of test services excluded from the policy.                                                                                                                                                                                                         |
| disabled             | enabled                    | boolean  | Whether the disabled policy is enabled.                                                                                                                                                                                                                 |
| disabled             | failure_rate_rule          | object   | Failure-rate-based rule for the disabled policy.                                                                                                                                                                                                        |
| failure_rate_rule    | branches                   | [string] | List of branches to which this rule applies.                                                                                                                                                                                                            |
| failure_rate_rule    | enabled                    | boolean  | Whether this failure rate rule is enabled.                                                                                                                                                                                                              |
| failure_rate_rule    | min_runs                   | int64    | Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0.                                                                                                                                                       |
| failure_rate_rule    | status                     | enum     | Test status that the disable policy applies to. Must be either `active` or `quarantined`. Allowed enum values: `active`, `quarantined`.                                                                                                                 |
| failure_rate_rule    | threshold                  | double   | Failure rate threshold (0.0–1.0) above which the rule triggers.                                                                                                                                                                                         |
| attributes           | quarantined                | object   | Configuration for the quarantined Flaky Tests Management policy.                                                                                                                                                                                        |
| quarantined          | auto_quarantine_rule       | object   | Automatic quarantine triggering rule based on a time window.                                                                                                                                                                                            |
| auto_quarantine_rule | enabled                    | boolean  | Whether this auto-quarantine rule is enabled.                                                                                                                                                                                                           |
| auto_quarantine_rule | window_seconds             | int64    | Time window in seconds over which flakiness is evaluated. Must be greater than 0.                                                                                                                                                                       |
| quarantined          | branch_rule                | object   | Branch filtering rule for a Flaky Tests Management policy.                                                                                                                                                                                              |
| branch_rule          | branches                   | [string] | List of branches to which the policy applies.                                                                                                                                                                                                           |
| branch_rule          | enabled                    | boolean  | Whether this branch rule is enabled.                                                                                                                                                                                                                    |
| branch_rule          | excluded_branches          | [string] | List of branches excluded from the policy.                                                                                                                                                                                                              |
| branch_rule          | excluded_test_services     | [string] | List of test services excluded from the policy.                                                                                                                                                                                                         |
| quarantined          | enabled                    | boolean  | Whether the quarantined policy is enabled.                                                                                                                                                                                                              |
| quarantined          | failure_rate_rule          | object   | Failure-rate-based rule for the quarantined policy.                                                                                                                                                                                                     |
| failure_rate_rule    | branches                   | [string] | List of branches to which this rule applies.                                                                                                                                                                                                            |
| failure_rate_rule    | enabled                    | boolean  | Whether this failure rate rule is enabled.                                                                                                                                                                                                              |
| failure_rate_rule    | min_runs                   | int64    | Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0.                                                                                                                                                       |
| failure_rate_rule    | threshold                  | double   | Failure rate threshold (0.0–1.0) above which the rule triggers.                                                                                                                                                                                         |
| attributes           | repository_id [*required*] | string   | The repository identifier.                                                                                                                                                                                                                              |
| data                 | type [*required*]          | enum     | JSON:API type for update Flaky Tests Management policies request. The value must always be `test_optimization_update_flaky_tests_management_policies_request`. Allowed enum values: `test_optimization_update_flaky_tests_management_policies_request`. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "attempt_to_fix": {
        "retries": 3
      },
      "disabled": {
        "auto_disable_rule": {
          "enabled": false,
          "status": "active",
          "window_seconds": 3600
        },
        "branch_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "excluded_branches": [
            []
          ],
          "excluded_test_services": [
            []
          ]
        },
        "enabled": false,
        "failure_rate_rule": {
          "branches": [
            []
          ],
          "enabled": false,
          "min_runs": 10,
          "status": "active",
          "threshold": 0.5
        }
      },
      "quarantined": {
        "auto_quarantine_rule": {
          "enabled": true,
          "window_seconds": 3600
        },
        "branch_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "excluded_branches": [
            []
          ],
          "excluded_test_services": [
            []
          ]
        },
        "enabled": true,
        "failure_rate_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "min_runs": 10,
          "threshold": 0.5
        }
      },
      "repository_id": "github.com/datadog/shopist"
    },
    "type": "test_optimization_update_flaky_tests_management_policies_request"
  }
}
```
{% /tab %}
{% /tabs %}

### Response

{% tabs %}
{% tab label="200" %}
OK

{% tabs %}
{% tab label="Model" %}
Response object containing Flaky Tests Management policies for a repository.

| Parent field         | Field                  | Type     | Description                                                                                                                                                                                                         |
| -------------------- | ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                      | data                   | object   | Data object for Flaky Tests Management policies response.                                                                                                                                                           |
| data                 | attributes             | object   | Attributes of the Flaky Tests Management policies for a repository.                                                                                                                                                 |
| attributes           | attempt_to_fix         | object   | Configuration for the attempt-to-fix Flaky Tests Management policy.                                                                                                                                                 |
| attempt_to_fix       | retries                | int64    | Number of retries when attempting to fix a flaky test. Must be greater than 0.                                                                                                                                      |
| attributes           | disabled               | object   | Configuration for the disabled Flaky Tests Management policy.                                                                                                                                                       |
| disabled             | auto_disable_rule      | object   | Automatic disable triggering rule based on a time window and test status.                                                                                                                                           |
| auto_disable_rule    | enabled                | boolean  | Whether this auto-disable rule is enabled.                                                                                                                                                                          |
| auto_disable_rule    | status                 | enum     | Test status that the disable policy applies to. Must be either `active` or `quarantined`. Allowed enum values: `active`, `quarantined`.                                                                             |
| auto_disable_rule    | window_seconds         | int64    | Time window in seconds over which flakiness is evaluated. Must be greater than 0.                                                                                                                                   |
| disabled             | branch_rule            | object   | Branch filtering rule for a Flaky Tests Management policy.                                                                                                                                                          |
| branch_rule          | branches               | [string] | List of branches to which the policy applies.                                                                                                                                                                       |
| branch_rule          | enabled                | boolean  | Whether this branch rule is enabled.                                                                                                                                                                                |
| branch_rule          | excluded_branches      | [string] | List of branches excluded from the policy.                                                                                                                                                                          |
| branch_rule          | excluded_test_services | [string] | List of test services excluded from the policy.                                                                                                                                                                     |
| disabled             | enabled                | boolean  | Whether the disabled policy is enabled.                                                                                                                                                                             |
| disabled             | failure_rate_rule      | object   | Failure-rate-based rule for the disabled policy.                                                                                                                                                                    |
| failure_rate_rule    | branches               | [string] | List of branches to which this rule applies.                                                                                                                                                                        |
| failure_rate_rule    | enabled                | boolean  | Whether this failure rate rule is enabled.                                                                                                                                                                          |
| failure_rate_rule    | min_runs               | int64    | Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0.                                                                                                                   |
| failure_rate_rule    | status                 | enum     | Test status that the disable policy applies to. Must be either `active` or `quarantined`. Allowed enum values: `active`, `quarantined`.                                                                             |
| failure_rate_rule    | threshold              | double   | Failure rate threshold (0.0–1.0) above which the rule triggers.                                                                                                                                                     |
| attributes           | quarantined            | object   | Configuration for the quarantined Flaky Tests Management policy.                                                                                                                                                    |
| quarantined          | auto_quarantine_rule   | object   | Automatic quarantine triggering rule based on a time window.                                                                                                                                                        |
| auto_quarantine_rule | enabled                | boolean  | Whether this auto-quarantine rule is enabled.                                                                                                                                                                       |
| auto_quarantine_rule | window_seconds         | int64    | Time window in seconds over which flakiness is evaluated. Must be greater than 0.                                                                                                                                   |
| quarantined          | branch_rule            | object   | Branch filtering rule for a Flaky Tests Management policy.                                                                                                                                                          |
| branch_rule          | branches               | [string] | List of branches to which the policy applies.                                                                                                                                                                       |
| branch_rule          | enabled                | boolean  | Whether this branch rule is enabled.                                                                                                                                                                                |
| branch_rule          | excluded_branches      | [string] | List of branches excluded from the policy.                                                                                                                                                                          |
| branch_rule          | excluded_test_services | [string] | List of test services excluded from the policy.                                                                                                                                                                     |
| quarantined          | enabled                | boolean  | Whether the quarantined policy is enabled.                                                                                                                                                                          |
| quarantined          | failure_rate_rule      | object   | Failure-rate-based rule for the quarantined policy.                                                                                                                                                                 |
| failure_rate_rule    | branches               | [string] | List of branches to which this rule applies.                                                                                                                                                                        |
| failure_rate_rule    | enabled                | boolean  | Whether this failure rate rule is enabled.                                                                                                                                                                          |
| failure_rate_rule    | min_runs               | int64    | Minimum number of runs required before the rule is evaluated. Must be greater than or equal to 0.                                                                                                                   |
| failure_rate_rule    | threshold              | double   | Failure rate threshold (0.0–1.0) above which the rule triggers.                                                                                                                                                     |
| attributes           | repository_id          | string   | The repository identifier.                                                                                                                                                                                          |
| data                 | id                     | string   | The repository identifier used as the resource ID.                                                                                                                                                                  |
| data                 | type                   | enum     | JSON:API type for Flaky Tests Management policies response. The value must always be `test_optimization_flaky_tests_management_policies`. Allowed enum values: `test_optimization_flaky_tests_management_policies`. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "attempt_to_fix": {
        "retries": 3
      },
      "disabled": {
        "auto_disable_rule": {
          "enabled": false,
          "status": "active",
          "window_seconds": 3600
        },
        "branch_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "excluded_branches": [
            []
          ],
          "excluded_test_services": [
            []
          ]
        },
        "enabled": false,
        "failure_rate_rule": {
          "branches": [
            []
          ],
          "enabled": false,
          "min_runs": 10,
          "status": "active",
          "threshold": 0.5
        }
      },
      "quarantined": {
        "auto_quarantine_rule": {
          "enabled": true,
          "window_seconds": 3600
        },
        "branch_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "excluded_branches": [
            []
          ],
          "excluded_test_services": [
            []
          ]
        },
        "enabled": true,
        "failure_rate_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "min_runs": 10,
          "threshold": 0.5
        }
      },
      "repository_id": "github.com/datadog/shopist"
    },
    "id": "github.com/datadog/shopist",
    "type": "test_optimization_flaky_tests_management_policies"
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Not Authorized

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="404" %}
Not Found

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X PATCH "https://api.${DD_SITE}/api/v2/ci/test-optimization/settings/policies" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "attempt_to_fix": {
        "retries": 3
      },
      "disabled": {
        "enabled": false
      },
      "quarantined": {
        "auto_quarantine_rule": {
          "enabled": true,
          "window_seconds": 3600
        },
        "branch_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "excluded_branches": [],
          "excluded_test_services": []
        },
        "enabled": true,
        "failure_rate_rule": {
          "branches": [
            "main"
          ],
          "enabled": true,
          "min_runs": 10,
          "threshold": 0.5
        }
      },
      "repository_id": "github.com/example-org/example-repo"
    },
    "type": "test_optimization_update_flaky_tests_management_policies_request"
  }
}
EOF
```
{% /tab %}

{% tab label="Go" %}
```go
// Update Flaky Tests Management policies returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	body := datadogV2.TestOptimizationFlakyTestsManagementPoliciesUpdateRequest{
		Data: datadogV2.TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData{
			Attributes: datadogV2.TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes{
				AttemptToFix: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesAttemptToFix{
					Retries: datadog.PtrInt64(3),
				},
				Disabled: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesDisabled{
					AutoDisableRule: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule{
						Enabled:       datadog.PtrBool(false),
						Status:        datadogV2.TESTOPTIMIZATIONFLAKYTESTSMANAGEMENTPOLICIESDISABLEDSTATUS_ACTIVE.Ptr(),
						WindowSeconds: datadog.PtrInt64(3600),
					},
					BranchRule: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesBranchRule{
						Branches: []string{
							"main",
						},
						Enabled:              datadog.PtrBool(true),
						ExcludedBranches:     []string{},
						ExcludedTestServices: []string{},
					},
					Enabled: datadog.PtrBool(false),
					FailureRateRule: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule{
						Branches:  []string{},
						Enabled:   datadog.PtrBool(false),
						MinRuns:   datadog.PtrInt64(10),
						Status:    datadogV2.TESTOPTIMIZATIONFLAKYTESTSMANAGEMENTPOLICIESDISABLEDSTATUS_ACTIVE.Ptr(),
						Threshold: datadog.PtrFloat64(0.5),
					},
				},
				Quarantined: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesQuarantined{
					AutoQuarantineRule: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule{
						Enabled:       datadog.PtrBool(true),
						WindowSeconds: datadog.PtrInt64(3600),
					},
					BranchRule: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesBranchRule{
						Branches: []string{
							"main",
						},
						Enabled:              datadog.PtrBool(true),
						ExcludedBranches:     []string{},
						ExcludedTestServices: []string{},
					},
					Enabled: datadog.PtrBool(true),
					FailureRateRule: &datadogV2.TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule{
						Branches: []string{
							"main",
						},
						Enabled:   datadog.PtrBool(true),
						MinRuns:   datadog.PtrInt64(10),
						Threshold: datadog.PtrFloat64(0.5),
					},
				},
				RepositoryId: "github.com/datadog/shopist",
			},
			Type: datadogV2.TESTOPTIMIZATIONUPDATEFLAKYTESTSMANAGEMENTPOLICIESREQUESTDATATYPE_TEST_OPTIMIZATION_UPDATE_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewTestOptimizationApi(apiClient)
	resp, r, err := api.UpdateFlakyTestsManagementPolicies(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `TestOptimizationApi.UpdateFlakyTestsManagementPolicies`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `TestOptimizationApi.UpdateFlakyTestsManagementPolicies`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Update Flaky Tests Management policies returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.TestOptimizationApi;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesAttemptToFix;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesBranchRule;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesDisabled;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesDisabledStatus;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesQuarantined;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesResponse;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesUpdateRequest;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes;
import com.datadog.api.client.v2.model.TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData;
import com.datadog.api.client.v2.model.TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    TestOptimizationApi apiInstance = new TestOptimizationApi(defaultClient);

    TestOptimizationFlakyTestsManagementPoliciesUpdateRequest body =
        new TestOptimizationFlakyTestsManagementPoliciesUpdateRequest()
            .data(
                new TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData()
                    .attributes(
                        new TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes()
                            .attemptToFix(
                                new TestOptimizationFlakyTestsManagementPoliciesAttemptToFix()
                                    .retries(3L))
                            .disabled(
                                new TestOptimizationFlakyTestsManagementPoliciesDisabled()
                                    .autoDisableRule(
                                        new TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule()
                                            .enabled(false)
                                            .status(
                                                TestOptimizationFlakyTestsManagementPoliciesDisabledStatus
                                                    .ACTIVE)
                                            .windowSeconds(3600L))
                                    .branchRule(
                                        new TestOptimizationFlakyTestsManagementPoliciesBranchRule()
                                            .branches(Collections.singletonList("main"))
                                            .enabled(true))
                                    .enabled(false)
                                    .failureRateRule(
                                        new TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule()
                                            .enabled(false)
                                            .minRuns(10L)
                                            .status(
                                                TestOptimizationFlakyTestsManagementPoliciesDisabledStatus
                                                    .ACTIVE)
                                            .threshold(0.5)))
                            .quarantined(
                                new TestOptimizationFlakyTestsManagementPoliciesQuarantined()
                                    .autoQuarantineRule(
                                        new TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule()
                                            .enabled(true)
                                            .windowSeconds(3600L))
                                    .branchRule(
                                        new TestOptimizationFlakyTestsManagementPoliciesBranchRule()
                                            .branches(Collections.singletonList("main"))
                                            .enabled(true))
                                    .enabled(true)
                                    .failureRateRule(
                                        new TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule()
                                            .branches(Collections.singletonList("main"))
                                            .enabled(true)
                                            .minRuns(10L)
                                            .threshold(0.5)))
                            .repositoryId("github.com/datadog/shopist"))
                    .type(
                        TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType
                            .TEST_OPTIMIZATION_UPDATE_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST));

    try {
      TestOptimizationFlakyTestsManagementPoliciesResponse result =
          apiInstance.updateFlakyTestsManagementPolicies(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println(
          "Exception when calling TestOptimizationApi#updateFlakyTestsManagementPolicies");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Update Flaky Tests Management policies returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.test_optimization_api import TestOptimizationApi
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_attempt_to_fix import (
    TestOptimizationFlakyTestsManagementPoliciesAttemptToFix,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_auto_disable_rule import (
    TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_auto_quarantine_rule import (
    TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_branch_rule import (
    TestOptimizationFlakyTestsManagementPoliciesBranchRule,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_disabled import (
    TestOptimizationFlakyTestsManagementPoliciesDisabled,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_disabled_failure_rate_rule import (
    TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_disabled_status import (
    TestOptimizationFlakyTestsManagementPoliciesDisabledStatus,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_quarantined import (
    TestOptimizationFlakyTestsManagementPoliciesQuarantined,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_quarantined_failure_rate_rule import (
    TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_update_request import (
    TestOptimizationFlakyTestsManagementPoliciesUpdateRequest,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_update_request_attributes import (
    TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes,
)
from datadog_api_client.v2.model.test_optimization_flaky_tests_management_policies_update_request_data import (
    TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData,
)
from datadog_api_client.v2.model.test_optimization_update_flaky_tests_management_policies_request_data_type import (
    TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType,
)

body = TestOptimizationFlakyTestsManagementPoliciesUpdateRequest(
    data=TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData(
        attributes=TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes(
            attempt_to_fix=TestOptimizationFlakyTestsManagementPoliciesAttemptToFix(
                retries=3,
            ),
            disabled=TestOptimizationFlakyTestsManagementPoliciesDisabled(
                auto_disable_rule=TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule(
                    enabled=False,
                    status=TestOptimizationFlakyTestsManagementPoliciesDisabledStatus.ACTIVE,
                    window_seconds=3600,
                ),
                branch_rule=TestOptimizationFlakyTestsManagementPoliciesBranchRule(
                    branches=[
                        "main",
                    ],
                    enabled=True,
                    excluded_branches=[],
                    excluded_test_services=[],
                ),
                enabled=False,
                failure_rate_rule=TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule(
                    branches=[],
                    enabled=False,
                    min_runs=10,
                    status=TestOptimizationFlakyTestsManagementPoliciesDisabledStatus.ACTIVE,
                    threshold=0.5,
                ),
            ),
            quarantined=TestOptimizationFlakyTestsManagementPoliciesQuarantined(
                auto_quarantine_rule=TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule(
                    enabled=True,
                    window_seconds=3600,
                ),
                branch_rule=TestOptimizationFlakyTestsManagementPoliciesBranchRule(
                    branches=[
                        "main",
                    ],
                    enabled=True,
                    excluded_branches=[],
                    excluded_test_services=[],
                ),
                enabled=True,
                failure_rate_rule=TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule(
                    branches=[
                        "main",
                    ],
                    enabled=True,
                    min_runs=10,
                    threshold=0.5,
                ),
            ),
            repository_id="github.com/datadog/shopist",
        ),
        type=TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType.TEST_OPTIMIZATION_UPDATE_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST,
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = TestOptimizationApi(api_client)
    response = api_instance.update_flaky_tests_management_policies(body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Update Flaky Tests Management policies returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::TestOptimizationAPI.new

body = DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesUpdateRequest.new({
  data: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData.new({
    attributes: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes.new({
      attempt_to_fix: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesAttemptToFix.new({
        retries: 3,
      }),
      disabled: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesDisabled.new({
        auto_disable_rule: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule.new({
          enabled: false,
          status: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesDisabledStatus::ACTIVE,
          window_seconds: 3600,
        }),
        branch_rule: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesBranchRule.new({
          branches: [
            "main",
          ],
          enabled: true,
          excluded_branches: [],
          excluded_test_services: [],
        }),
        enabled: false,
        failure_rate_rule: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule.new({
          branches: [],
          enabled: false,
          min_runs: 10,
          status: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesDisabledStatus::ACTIVE,
          threshold: 0.5,
        }),
      }),
      quarantined: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesQuarantined.new({
        auto_quarantine_rule: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule.new({
          enabled: true,
          window_seconds: 3600,
        }),
        branch_rule: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesBranchRule.new({
          branches: [
            "main",
          ],
          enabled: true,
          excluded_branches: [],
          excluded_test_services: [],
        }),
        enabled: true,
        failure_rate_rule: DatadogAPIClient::V2::TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule.new({
          branches: [
            "main",
          ],
          enabled: true,
          min_runs: 10,
          threshold: 0.5,
        }),
      }),
      repository_id: "github.com/datadog/shopist",
    }),
    type: DatadogAPIClient::V2::TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType::TEST_OPTIMIZATION_UPDATE_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST,
  }),
})
p api_instance.update_flaky_tests_management_policies(body)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Update Flaky Tests Management policies returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_test_optimization::TestOptimizationAPI;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesAttemptToFix;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesBranchRule;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesDisabled;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesDisabledStatus;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesQuarantined;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesUpdateRequest;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes;
use datadog_api_client::datadogV2::model::TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData;
use datadog_api_client::datadogV2::model::TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType;

#[tokio::main]
async fn main() {
    let body =
        TestOptimizationFlakyTestsManagementPoliciesUpdateRequest::new(
            TestOptimizationFlakyTestsManagementPoliciesUpdateRequestData::new(
                TestOptimizationFlakyTestsManagementPoliciesUpdateRequestAttributes::new(
                    "github.com/datadog/shopist".to_string(),
                )
                    .attempt_to_fix(TestOptimizationFlakyTestsManagementPoliciesAttemptToFix::new().retries(3))
                    .disabled(
                        TestOptimizationFlakyTestsManagementPoliciesDisabled::new()
                            .auto_disable_rule(
                                TestOptimizationFlakyTestsManagementPoliciesAutoDisableRule::new()
                                    .enabled(false)
                                    .status(TestOptimizationFlakyTestsManagementPoliciesDisabledStatus::ACTIVE)
                                    .window_seconds(3600),
                            )
                            .branch_rule(
                                TestOptimizationFlakyTestsManagementPoliciesBranchRule::new()
                                    .branches(vec!["main".to_string()])
                                    .enabled(true)
                                    .excluded_branches(vec![])
                                    .excluded_test_services(vec![]),
                            )
                            .enabled(false)
                            .failure_rate_rule(
                                TestOptimizationFlakyTestsManagementPoliciesDisabledFailureRateRule::new()
                                    .branches(vec![])
                                    .enabled(false)
                                    .min_runs(10)
                                    .status(TestOptimizationFlakyTestsManagementPoliciesDisabledStatus::ACTIVE)
                                    .threshold(0.5 as f64),
                            ),
                    )
                    .quarantined(
                        TestOptimizationFlakyTestsManagementPoliciesQuarantined::new()
                            .auto_quarantine_rule(
                                TestOptimizationFlakyTestsManagementPoliciesAutoQuarantineRule::new()
                                    .enabled(true)
                                    .window_seconds(3600),
                            )
                            .branch_rule(
                                TestOptimizationFlakyTestsManagementPoliciesBranchRule::new()
                                    .branches(vec!["main".to_string()])
                                    .enabled(true)
                                    .excluded_branches(vec![])
                                    .excluded_test_services(vec![]),
                            )
                            .enabled(true)
                            .failure_rate_rule(
                                TestOptimizationFlakyTestsManagementPoliciesQuarantinedFailureRateRule::new()
                                    .branches(vec!["main".to_string()])
                                    .enabled(true)
                                    .min_runs(10)
                                    .threshold(0.5 as f64),
                            ),
                    ),
                TestOptimizationUpdateFlakyTestsManagementPoliciesRequestDataType
                ::TEST_OPTIMIZATION_UPDATE_FLAKY_TESTS_MANAGEMENT_POLICIES_REQUEST,
            ),
        );
    let configuration = datadog::Configuration::new();
    let api = TestOptimizationAPI::with_config(configuration);
    let resp = api.update_flaky_tests_management_policies(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Update Flaky Tests Management policies returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.TestOptimizationApi(configuration);

const params: v2.TestOptimizationApiUpdateFlakyTestsManagementPoliciesRequest =
  {
    body: {
      data: {
        attributes: {
          attemptToFix: {
            retries: 3,
          },
          disabled: {
            autoDisableRule: {
              enabled: false,
              status: "active",
              windowSeconds: 3600,
            },
            branchRule: {
              branches: ["main"],
              enabled: true,
              excludedBranches: [],
              excludedTestServices: [],
            },
            enabled: false,
            failureRateRule: {
              branches: [],
              enabled: false,
              minRuns: 10,
              status: "active",
              threshold: 0.5,
            },
          },
          quarantined: {
            autoQuarantineRule: {
              enabled: true,
              windowSeconds: 3600,
            },
            branchRule: {
              branches: ["main"],
              enabled: true,
              excludedBranches: [],
              excludedTestServices: [],
            },
            enabled: true,
            failureRateRule: {
              branches: ["main"],
              enabled: true,
              minRuns: 10,
              threshold: 0.5,
            },
          },
          repositoryId: "github.com/datadog/shopist",
        },
        type: "test_optimization_update_flaky_tests_management_policies_request",
      },
    },
  };

apiInstance
  .updateFlakyTestsManagementPolicies(params)
  .then((data: v2.TestOptimizationFlakyTestsManagementPoliciesResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"
```
{% /tab %}
{% /tabs %}
