---
title: Update a tag indexing rule
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > API Reference > Metrics
---

# Update a tag indexing rule{% #update-a-tag-indexing-rule %}
Copy pageCopied
{% tab title="v2" %}

| Datadog site      | API endpoint                                                             |
| ----------------- | ------------------------------------------------------------------------ |
| ap1.datadoghq.com | PUT https://api.ap1.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id} |
| ap2.datadoghq.com | PUT https://api.ap2.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id} |
| app.datadoghq.eu  | PUT https://api.datadoghq.eu/api/v2/metrics/tag-indexing-rules/{id}      |
| app.ddog-gov.com  | PUT https://api.ddog-gov.com/api/v2/metrics/tag-indexing-rules/{id}      |
| us2.ddog-gov.com  | PUT https://api.us2.ddog-gov.com/api/v2/metrics/tag-indexing-rules/{id}  |
| app.datadoghq.com | PUT https://api.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id}     |
| us3.datadoghq.com | PUT https://api.us3.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id} |
| us5.datadoghq.com | PUT https://api.us5.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id} |

### Overview

Partially update a tag indexing rule. Fields omitted from the request body are left unchanged. Setting `rule_order` to a value already used by another rule returns 409; use the reorder endpoint for atomic re-sequencing. Requires the `Manage Tags for Metrics` permission. This endpoint requires the `metric_tags_write` permission.

OAuth apps require the `metric_tags_write` authorization [scope](https://docs.datadoghq.com/api/latest/scopes.md#metrics) to access this endpoint.



### Arguments

#### Path Parameters

| Name                 | Type   | Description                  |
| -------------------- | ------ | ---------------------------- |
| id [*required*] | string | ID of the tag indexing rule. |

### Request

#### Body Data (required)



{% tab title="Model" %}

| Parent field | Field                       | Type     | Description                                                                                                                                                      |
| ------------ | --------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]      | object   | Data object for updating a tag indexing rule.                                                                                                                    |
| data         | attributes                  | object   | Attributes for updating a tag indexing rule. All fields are optional; omitted fields are unchanged.                                                              |
| attributes   | exclude_tags_mode           | boolean  | When true, the rule excludes the listed tags and indexes all others.                                                                                             |
| attributes   | ignored_metric_name_matches | [string] | Metric name prefixes excluded from the rule's scope.                                                                                                             |
| attributes   | metric_name_matches         | [string] | Metric name prefixes (glob patterns) this rule applies to.                                                                                                       |
| attributes   | name                        | string   | Human-readable name for the rule.                                                                                                                                |
| attributes   | options                     | object   | Versioned configuration options for a tag indexing rule.                                                                                                         |
| options      | data                        | object   | Data payload for tag indexing rule options.                                                                                                                      |
| data         | dynamic_tags                | object   | Configuration for including dynamically queried tags.                                                                                                            |
| dynamic_tags | queried_tags_window_seconds | int64    | Window in seconds for evaluating queried tags.                                                                                                                   |
| dynamic_tags | related_asset_tags          | boolean  | When true, tags from related assets are included.                                                                                                                |
| data         | manage_preexisting_metrics  | boolean  | When true, the rule applies to metrics that were ingested before the rule was created.                                                                           |
| data         | metric_match                | object   | Criteria for matching metrics based on query state.                                                                                                              |
| metric_match | is_queried                  | boolean  | Match metrics that are being queried.                                                                                                                            |
| metric_match | not_queried                 | boolean  | Match metrics that are not being queried.                                                                                                                        |
| metric_match | not_used_in_assets          | boolean  | Match metrics not used in any dashboards or monitors.                                                                                                            |
| metric_match | queried_window_seconds      | int64    | Window in seconds for evaluating query state.                                                                                                                    |
| metric_match | used_in_assets              | boolean  | Match metrics used in dashboards or monitors.                                                                                                                    |
| data         | override_previous_rules     | boolean  | When true, this rule's tag list overrides tags configured by earlier rules for the same metric. When false (default), tags from all matching rules are combined. |
| options      | version                     | int64    | Options schema version. Only `1` is supported.                                                                                                                   |
| attributes   | rule_order                  | int64    | Desired evaluation order. Returns 409 if the value conflicts with another rule; use POST /api/v2/metrics/tag-indexing-rules/order for atomic re-sequencing.      |
| attributes   | tags                        | [string] | Tag keys managed by this rule.                                                                                                                                   |
| data         | type [*required*]      | enum     | The tag indexing rule resource type. Allowed enum values: `tag_indexing_rules`                                                                                   |

{% /tab %}

{% tab title="Example" %}

```json
{
  "data": {
    "attributes": {
      "ignored_metric_name_matches": [],
      "metric_name_matches": [
        "dd.test.*"
      ],
      "name": "my-indexing-rule",
      "options": {
        "data": {
          "dynamic_tags": {
            "queried_tags_window_seconds": 3600,
            "related_asset_tags": false
          },
          "manage_preexisting_metrics": true,
          "metric_match": {
            "queried_window_seconds": 3600
          },
          "override_previous_rules": false
        },
        "version": 1
      },
      "rule_order": 2,
      "tags": [
        "env",
        "service"
      ]
    },
    "type": "tag_indexing_rules"
  }
}
```

{% /tab %}

### Response

{% tab title="200" %}
OK
{% tab title="Model" %}
Response containing a single tag indexing rule.

| Parent field | Field                       | Type      | Description                                                                                                                                                      |
| ------------ | --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data                        | object    | A tag indexing rule resource object.                                                                                                                             |
| data         | attributes                  | object    | Attributes of a tag indexing rule.                                                                                                                               |
| attributes   | created_at                  | date-time | Timestamp when the rule was created.                                                                                                                             |
| attributes   | created_by_handle           | string    | Handle of the user who created the rule.                                                                                                                         |
| attributes   | exclude_tags_mode           | boolean   | When true, the rule excludes the listed tags and indexes all others. When false (default), the rule includes only the listed tags.                               |
| attributes   | ignored_metric_name_matches | [string]  | Metric name prefixes excluded from the rule's scope.                                                                                                             |
| attributes   | metric_name_matches         | [string]  | Metric name prefixes (glob patterns) this rule applies to.                                                                                                       |
| attributes   | modified_at                 | date-time | Timestamp when the rule was last modified.                                                                                                                       |
| attributes   | modified_by_handle          | string    | Handle of the user who last modified the rule.                                                                                                                   |
| attributes   | name                        | string    | Human-readable name for the rule.                                                                                                                                |
| attributes   | options                     | object    | Versioned configuration options for a tag indexing rule.                                                                                                         |
| options      | data                        | object    | Data payload for tag indexing rule options.                                                                                                                      |
| data         | dynamic_tags                | object    | Configuration for including dynamically queried tags.                                                                                                            |
| dynamic_tags | queried_tags_window_seconds | int64     | Window in seconds for evaluating queried tags.                                                                                                                   |
| dynamic_tags | related_asset_tags          | boolean   | When true, tags from related assets are included.                                                                                                                |
| data         | manage_preexisting_metrics  | boolean   | When true, the rule applies to metrics that were ingested before the rule was created.                                                                           |
| data         | metric_match                | object    | Criteria for matching metrics based on query state.                                                                                                              |
| metric_match | is_queried                  | boolean   | Match metrics that are being queried.                                                                                                                            |
| metric_match | not_queried                 | boolean   | Match metrics that are not being queried.                                                                                                                        |
| metric_match | not_used_in_assets          | boolean   | Match metrics not used in any dashboards or monitors.                                                                                                            |
| metric_match | queried_window_seconds      | int64     | Window in seconds for evaluating query state.                                                                                                                    |
| metric_match | used_in_assets              | boolean   | Match metrics used in dashboards or monitors.                                                                                                                    |
| data         | override_previous_rules     | boolean   | When true, this rule's tag list overrides tags configured by earlier rules for the same metric. When false (default), tags from all matching rules are combined. |
| options      | version                     | int64     | Options schema version. Only `1` is supported.                                                                                                                   |
| attributes   | rule_order                  | int64     | Evaluation order within the org. Lower values are evaluated first. Assigned server-side on create (max+1); pass on update to change the rule's position.         |
| attributes   | tags                        | [string]  | Tag keys managed by this rule.                                                                                                                                   |
| data         | id                          | string    | The unique identifier (UUID) of the tag indexing rule.                                                                                                           |
| data         | type                        | enum      | The tag indexing rule resource type. Allowed enum values: `tag_indexing_rules`                                                                                   |

{% /tab %}

{% tab title="Example" %}

```json
{
  "data": {
    "attributes": {
      "created_at": "2024-01-15T12:00:00.000Z",
      "created_by_handle": "user@datadoghq.com",
      "exclude_tags_mode": false,
      "ignored_metric_name_matches": [
        "dd.test.excluded.*"
      ],
      "metric_name_matches": [
        "dd.test.*"
      ],
      "modified_at": "2024-01-15T12:00:00.000Z",
      "modified_by_handle": "user@datadoghq.com",
      "name": "my-indexing-rule",
      "options": {
        "data": {
          "dynamic_tags": {
            "queried_tags_window_seconds": 3600,
            "related_asset_tags": false
          },
          "manage_preexisting_metrics": true,
          "metric_match": {
            "is_queried": false,
            "not_queried": false,
            "not_used_in_assets": false,
            "queried_window_seconds": 3600,
            "used_in_assets": false
          },
          "override_previous_rules": false
        },
        "version": 1
      },
      "rule_order": 1,
      "tags": [
        "env",
        "service"
      ]
    },
    "id": "00000000-0000-0000-0000-000000000001",
    "type": "tag_indexing_rules"
  }
}
```

{% /tab %}

{% /tab %}

{% tab title="400" %}
Bad Request
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="403" %}
Forbidden
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="404" %}
Not Found
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="409" %}
Conflict
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="429" %}
Too Many Requests
{% tab title="Model" %}
API error response.

| Parent field | Field                    | Type     | Description                                                                     |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail                   | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                     | object   | Non-standard meta-information about the error                                   |
| errors       | source                   | object   | References to the source of the error.                                          |
| source       | header                   | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter                | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer                  | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status                   | string   | Status code of the response.                                                    |
| errors       | title                    | string   | Short human-readable summary of the error.                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```

{% /tab %}

{% /tab %}

### Code Example

##### 
                          \## default
# 
 \# Path parameters export id="00000000-0000-0000-0000-000000000001" \# Curl command curl -X PUT "https://api.datadoghq.com/api/v2/metrics/tag-indexing-rules/${id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "name": "my-updated-rule",
      "tags": [
        "env",
        "service",
        "version"
      ]
    },
    "type": "tag_indexing_rules"
  }
}
EOF 
                        
##### 

```go
// Update a tag indexing rule 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() {
	// there is a valid "tag_indexing_rule" in the system
	TagIndexingRuleDataID := os.Getenv("TAG_INDEXING_RULE_DATA_ID")

	body := datadogV2.TagIndexingRuleUpdateRequest{
		Data: datadogV2.TagIndexingRuleUpdateData{
			Attributes: &datadogV2.TagIndexingRuleUpdateAttributes{
				IgnoredMetricNameMatches: []string{},
				MetricNameMatches: []string{
					"dd.test.*",
				},
				Name: datadog.PtrString("my-indexing-rule"),
				Options: &datadogV2.TagIndexingRuleOptions{
					Data: &datadogV2.TagIndexingRuleOptionsData{
						DynamicTags: &datadogV2.TagIndexingRuleDynamicTags{
							QueriedTagsWindowSeconds: datadog.PtrInt64(3600),
							RelatedAssetTags:         datadog.PtrBool(false),
						},
						ManagePreexistingMetrics: datadog.PtrBool(true),
						MetricMatch: &datadogV2.TagIndexingRuleMetricMatch{
							QueriedWindowSeconds: datadog.PtrInt64(3600),
						},
						OverridePreviousRules: datadog.PtrBool(false),
					},
					Version: datadog.PtrInt64(1),
				},
				RuleOrder: datadog.PtrInt64(2),
				Tags: []string{
					"env",
					"service",
				},
			},
			Type: datadogV2.TAGINDEXINGRULETYPE_TAG_INDEXING_RULES,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewMetricsApi(apiClient)
	resp, r, err := api.UpdateTagIndexingRule(ctx, TagIndexingRuleDataID, body)

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

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

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
##### 

```java
// Update a tag indexing rule returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.MetricsApi;
import com.datadog.api.client.v2.model.TagIndexingRuleDynamicTags;
import com.datadog.api.client.v2.model.TagIndexingRuleMetricMatch;
import com.datadog.api.client.v2.model.TagIndexingRuleOptions;
import com.datadog.api.client.v2.model.TagIndexingRuleOptionsData;
import com.datadog.api.client.v2.model.TagIndexingRuleResponse;
import com.datadog.api.client.v2.model.TagIndexingRuleType;
import com.datadog.api.client.v2.model.TagIndexingRuleUpdateAttributes;
import com.datadog.api.client.v2.model.TagIndexingRuleUpdateData;
import com.datadog.api.client.v2.model.TagIndexingRuleUpdateRequest;
import java.util.Arrays;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    MetricsApi apiInstance = new MetricsApi(defaultClient);

    // there is a valid "tag_indexing_rule" in the system
    String TAG_INDEXING_RULE_DATA_ID = System.getenv("TAG_INDEXING_RULE_DATA_ID");

    TagIndexingRuleUpdateRequest body =
        new TagIndexingRuleUpdateRequest()
            .data(
                new TagIndexingRuleUpdateData()
                    .attributes(
                        new TagIndexingRuleUpdateAttributes()
                            .metricNameMatches(Collections.singletonList("dd.test.*"))
                            .name("my-indexing-rule")
                            .options(
                                new TagIndexingRuleOptions()
                                    .data(
                                        new TagIndexingRuleOptionsData()
                                            .dynamicTags(
                                                new TagIndexingRuleDynamicTags()
                                                    .queriedTagsWindowSeconds(3600L)
                                                    .relatedAssetTags(false))
                                            .managePreexistingMetrics(true)
                                            .metricMatch(
                                                new TagIndexingRuleMetricMatch()
                                                    .queriedWindowSeconds(3600L))
                                            .overridePreviousRules(false))
                                    .version(1L))
                            .ruleOrder(2L)
                            .tags(Arrays.asList("env", "service")))
                    .type(TagIndexingRuleType.TAG_INDEXING_RULES));

    try {
      TagIndexingRuleResponse result =
          apiInstance.updateTagIndexingRule(TAG_INDEXING_RULE_DATA_ID, body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling MetricsApi#updateTagIndexingRule");
      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://docs.datadoghq.com/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
##### 

```python
"""
Update a tag indexing rule returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.metrics_api import MetricsApi
from datadog_api_client.v2.model.tag_indexing_rule_dynamic_tags import TagIndexingRuleDynamicTags
from datadog_api_client.v2.model.tag_indexing_rule_metric_match import TagIndexingRuleMetricMatch
from datadog_api_client.v2.model.tag_indexing_rule_options import TagIndexingRuleOptions
from datadog_api_client.v2.model.tag_indexing_rule_options_data import TagIndexingRuleOptionsData
from datadog_api_client.v2.model.tag_indexing_rule_type import TagIndexingRuleType
from datadog_api_client.v2.model.tag_indexing_rule_update_attributes import TagIndexingRuleUpdateAttributes
from datadog_api_client.v2.model.tag_indexing_rule_update_data import TagIndexingRuleUpdateData
from datadog_api_client.v2.model.tag_indexing_rule_update_request import TagIndexingRuleUpdateRequest

# there is a valid "tag_indexing_rule" in the system
TAG_INDEXING_RULE_DATA_ID = environ["TAG_INDEXING_RULE_DATA_ID"]

body = TagIndexingRuleUpdateRequest(
    data=TagIndexingRuleUpdateData(
        attributes=TagIndexingRuleUpdateAttributes(
            ignored_metric_name_matches=[],
            metric_name_matches=[
                "dd.test.*",
            ],
            name="my-indexing-rule",
            options=TagIndexingRuleOptions(
                data=TagIndexingRuleOptionsData(
                    dynamic_tags=TagIndexingRuleDynamicTags(
                        queried_tags_window_seconds=3600,
                        related_asset_tags=False,
                    ),
                    manage_preexisting_metrics=True,
                    metric_match=TagIndexingRuleMetricMatch(
                        queried_window_seconds=3600,
                    ),
                    override_previous_rules=False,
                ),
                version=1,
            ),
            rule_order=2,
            tags=[
                "env",
                "service",
            ],
        ),
        type=TagIndexingRuleType.TAG_INDEXING_RULES,
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = MetricsApi(api_client)
    response = api_instance.update_tag_indexing_rule(id=TAG_INDEXING_RULE_DATA_ID, body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
##### 

```ruby
# Update a tag indexing rule returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::MetricsAPI.new

# there is a valid "tag_indexing_rule" in the system
TAG_INDEXING_RULE_DATA_ID = ENV["TAG_INDEXING_RULE_DATA_ID"]

body = DatadogAPIClient::V2::TagIndexingRuleUpdateRequest.new({
  data: DatadogAPIClient::V2::TagIndexingRuleUpdateData.new({
    attributes: DatadogAPIClient::V2::TagIndexingRuleUpdateAttributes.new({
      ignored_metric_name_matches: [],
      metric_name_matches: [
        "dd.test.*",
      ],
      name: "my-indexing-rule",
      options: DatadogAPIClient::V2::TagIndexingRuleOptions.new({
        data: DatadogAPIClient::V2::TagIndexingRuleOptionsData.new({
          dynamic_tags: DatadogAPIClient::V2::TagIndexingRuleDynamicTags.new({
            queried_tags_window_seconds: 3600,
            related_asset_tags: false,
          }),
          manage_preexisting_metrics: true,
          metric_match: DatadogAPIClient::V2::TagIndexingRuleMetricMatch.new({
            queried_window_seconds: 3600,
          }),
          override_previous_rules: false,
        }),
        version: 1,
      }),
      rule_order: 2,
      tags: [
        "env",
        "service",
      ],
    }),
    type: DatadogAPIClient::V2::TagIndexingRuleType::TAG_INDEXING_RULES,
  }),
})
p api_instance.update_tag_indexing_rule(TAG_INDEXING_RULE_DATA_ID, body)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
##### 

```rust
// Update a tag indexing rule returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_metrics::MetricsAPI;
use datadog_api_client::datadogV2::model::TagIndexingRuleDynamicTags;
use datadog_api_client::datadogV2::model::TagIndexingRuleMetricMatch;
use datadog_api_client::datadogV2::model::TagIndexingRuleOptions;
use datadog_api_client::datadogV2::model::TagIndexingRuleOptionsData;
use datadog_api_client::datadogV2::model::TagIndexingRuleType;
use datadog_api_client::datadogV2::model::TagIndexingRuleUpdateAttributes;
use datadog_api_client::datadogV2::model::TagIndexingRuleUpdateData;
use datadog_api_client::datadogV2::model::TagIndexingRuleUpdateRequest;

#[tokio::main]
async fn main() {
    // there is a valid "tag_indexing_rule" in the system
    let tag_indexing_rule_data_id = std::env::var("TAG_INDEXING_RULE_DATA_ID").unwrap();
    let body = TagIndexingRuleUpdateRequest::new(
        TagIndexingRuleUpdateData::new(TagIndexingRuleType::TAG_INDEXING_RULES).attributes(
            TagIndexingRuleUpdateAttributes::new()
                .ignored_metric_name_matches(vec![])
                .metric_name_matches(vec!["dd.test.*".to_string()])
                .name("my-indexing-rule".to_string())
                .options(
                    TagIndexingRuleOptions::new()
                        .data(
                            TagIndexingRuleOptionsData::new()
                                .dynamic_tags(
                                    TagIndexingRuleDynamicTags::new()
                                        .queried_tags_window_seconds(3600)
                                        .related_asset_tags(false),
                                )
                                .manage_preexisting_metrics(true)
                                .metric_match(
                                    TagIndexingRuleMetricMatch::new().queried_window_seconds(3600),
                                )
                                .override_previous_rules(false),
                        )
                        .version(1),
                )
                .rule_order(2)
                .tags(vec!["env".to_string(), "service".to_string()]),
        ),
    );
    let configuration = datadog::Configuration::new();
    let api = MetricsAPI::with_config(configuration);
    let resp = api
        .update_tag_indexing_rule(tag_indexing_rule_data_id.clone(), body)
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
##### 

```typescript
/**
 * Update a tag indexing rule returns "OK" response
 */

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

const configuration = client.createConfiguration();
const apiInstance = new v2.MetricsApi(configuration);

// there is a valid "tag_indexing_rule" in the system
const TAG_INDEXING_RULE_DATA_ID = process.env
  .TAG_INDEXING_RULE_DATA_ID as string;

const params: v2.MetricsApiUpdateTagIndexingRuleRequest = {
  body: {
    data: {
      attributes: {
        ignoredMetricNameMatches: [],
        metricNameMatches: ["dd.test.*"],
        name: "my-indexing-rule",
        options: {
          data: {
            dynamicTags: {
              queriedTagsWindowSeconds: 3600,
              relatedAssetTags: false,
            },
            managePreexistingMetrics: true,
            metricMatch: {
              queriedWindowSeconds: 3600,
            },
            overridePreviousRules: false,
          },
          version: 1,
        },
        ruleOrder: 2,
        tags: ["env", "service"],
      },
      type: "tag_indexing_rules",
    },
  },
  id: TAG_INDEXING_RULE_DATA_ID,
};

apiInstance
  .updateTagIndexingRule(params)
  .then((data: v2.TagIndexingRuleResponse) => {
    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://docs.datadoghq.com/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"
{% /tab %}
