diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index dbd876c34d7..05c8e0af8aa 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -4317,8 +4317,16 @@ components: type: array namespace_filters: $ref: "#/components/schemas/AWSNamespaceFilters" + resource_type_tag_filters: + description: AWS Metrics collection resource type tag filters list. Defaults to `[]`. + items: + $ref: "#/components/schemas/AWSResourceTypeTagFilter" + type: array tag_filters: - description: AWS Metrics collection tag filters list. Defaults to `[]`. + deprecated: true + description: |- + AWS Metrics collection tag filters list. Defaults to `[]`. + Deprecated in favor of `resource_type_tag_filters`. The two fields are mutually exclusive on an account. items: $ref: "#/components/schemas/AWSNamespaceTagFilter" type: array @@ -4512,6 +4520,38 @@ components: required: - include_only type: object + AWSResourceTypeTagFilter: + description: |- + AWS Metrics Collection resource type tag filter. + Each filter targets either a specific AWS service's resource types (`service` and + `resource_types`) or custom metrics (`custom`). These two modes are mutually exclusive. + The `expression` defines a tag filter that Datadog uses when collecting metrics from the + resource types of a specified service. Wildcards, such as `?` (match a single character) + and `*` (match multiple characters), and exclusion using `!` before the tag are supported. + For example, `env:production AND instance-type:c?.* AND !region:us-east-1`. + properties: + custom: + description: Whether the tag filter applies to custom metrics. When `true`, `service` and `resource_types` must be omitted. + example: false + type: boolean + expression: + description: The tag filter expression to apply when collecting metrics for the matching resource types. + example: "env:production" + type: string + resource_types: + description: The AWS resource types of the service to which the tag filter applies. Required when `service` is set. Use `*` as the only entry to match all resource types of the service; `*` cannot be combined with specific resource types. + items: + description: An AWS resource type of the service. + example: "instance" + type: string + type: array + service: + description: The AWS service for which the tag filter defined in `expression` will be applied. Required unless `custom` is `true`, and must be set together with `resource_types`. + example: "ec2" + type: string + required: + - expression + type: object AWSResourcesConfig: description: AWS Resources Collection config. properties: @@ -187941,8 +187981,11 @@ paths: - include_only: - aws.ec2.network_in namespace: AWS/EC2 - tag_filters: - - namespace: AWS/EC2 + resource_type_tag_filters: + - expression: env:production + resource_types: + - instance + service: ec2 resources_config: cloud_security_posture_management_collection: false extended_collection: true @@ -188084,8 +188127,11 @@ paths: - include_only: - aws.ec2.network_in namespace: AWS/EC2 - tag_filters: - - namespace: AWS/EC2 + resource_type_tag_filters: + - expression: env:production + resource_types: + - instance + service: ec2 resources_config: cloud_security_posture_management_collection: false extended_collection: true diff --git a/examples/v2/aws-integration/UpdateAWSAccount.java b/examples/v2/aws-integration/UpdateAWSAccount.java index bd754e7ad11..274f81ce6d8 100644 --- a/examples/v2/aws-integration/UpdateAWSAccount.java +++ b/examples/v2/aws-integration/UpdateAWSAccount.java @@ -16,7 +16,7 @@ import com.datadog.api.client.v2.model.AWSLogSourceTagFilter; import com.datadog.api.client.v2.model.AWSLogsConfig; import com.datadog.api.client.v2.model.AWSMetricsConfig; -import com.datadog.api.client.v2.model.AWSNamespaceTagFilter; +import com.datadog.api.client.v2.model.AWSResourceTypeTagFilter; import com.datadog.api.client.v2.model.AWSResourcesConfig; import com.datadog.api.client.v2.model.AWSTracesConfig; import java.util.Collections; @@ -65,11 +65,13 @@ public static void main(String[] args) { .collectCloudwatchAlarms(true) .collectCustomMetrics(true) .enabled(true) - .tagFilters( + .resourceTypeTagFilters( Collections.singletonList( - new AWSNamespaceTagFilter() - .namespace("AWS/EC2") - .tags(Collections.singletonList("key:value"))))) + new AWSResourceTypeTagFilter() + .service("ec2") + .resourceTypes( + Collections.singletonList("instance")) + .expression("env:staging")))) .resourcesConfig( new AWSResourcesConfig() .cloudSecurityPostureManagementCollection(false) diff --git a/src/main/java/com/datadog/api/client/v2/model/AWSMetricsConfig.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricsConfig.java index 1817f85511d..790b0e18404 100644 --- a/src/main/java/com/datadog/api/client/v2/model/AWSMetricsConfig.java +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricsConfig.java @@ -27,6 +27,7 @@ AWSMetricsConfig.JSON_PROPERTY_ENABLED, AWSMetricsConfig.JSON_PROPERTY_METRIC_NAME_FILTERS, AWSMetricsConfig.JSON_PROPERTY_NAMESPACE_FILTERS, + AWSMetricsConfig.JSON_PROPERTY_RESOURCE_TYPE_TAG_FILTERS, AWSMetricsConfig.JSON_PROPERTY_TAG_FILTERS }) @jakarta.annotation.Generated( @@ -54,6 +55,9 @@ public class AWSMetricsConfig { public static final String JSON_PROPERTY_NAMESPACE_FILTERS = "namespace_filters"; private AWSNamespaceFilters namespaceFilters; + public static final String JSON_PROPERTY_RESOURCE_TYPE_TAG_FILTERS = "resource_type_tag_filters"; + private List resourceTypeTagFilters = null; + public static final String JSON_PROPERTY_TAG_FILTERS = "tag_filters"; private List tagFilters = null; @@ -228,6 +232,48 @@ public void setNamespaceFilters(AWSNamespaceFilters namespaceFilters) { } } + public AWSMetricsConfig resourceTypeTagFilters( + List resourceTypeTagFilters) { + this.resourceTypeTagFilters = resourceTypeTagFilters; + if (resourceTypeTagFilters != null) { + for (AWSResourceTypeTagFilter item : resourceTypeTagFilters) { + this.unparsed |= item.unparsed; + } + } + return this; + } + + public AWSMetricsConfig addResourceTypeTagFiltersItem( + AWSResourceTypeTagFilter resourceTypeTagFiltersItem) { + if (this.resourceTypeTagFilters == null) { + this.resourceTypeTagFilters = new ArrayList<>(); + } + this.resourceTypeTagFilters.add(resourceTypeTagFiltersItem); + this.unparsed |= resourceTypeTagFiltersItem.unparsed; + return this; + } + + /** + * AWS Metrics collection resource type tag filters list. Defaults to []. + * + * @return resourceTypeTagFilters + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RESOURCE_TYPE_TAG_FILTERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getResourceTypeTagFilters() { + return resourceTypeTagFilters; + } + + public void setResourceTypeTagFilters(List resourceTypeTagFilters) { + this.resourceTypeTagFilters = resourceTypeTagFilters; + if (resourceTypeTagFilters != null) { + for (AWSResourceTypeTagFilter item : resourceTypeTagFilters) { + this.unparsed |= item.unparsed; + } + } + } + public AWSMetricsConfig tagFilters(List tagFilters) { this.tagFilters = tagFilters; if (tagFilters != null) { @@ -248,10 +294,13 @@ public AWSMetricsConfig addTagFiltersItem(AWSNamespaceTagFilter tagFiltersItem) } /** - * AWS Metrics collection tag filters list. Defaults to []. + * AWS Metrics collection tag filters list. Defaults to []. Deprecated in favor of + * resource_type_tag_filters. The two fields are mutually exclusive on an account. * * @return tagFilters + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_TAG_FILTERS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -259,6 +308,7 @@ public List getTagFilters() { return tagFilters; } + @Deprecated public void setTagFilters(List tagFilters) { this.tagFilters = tagFilters; if (tagFilters != null) { @@ -331,6 +381,7 @@ public boolean equals(Object o) { && Objects.equals(this.enabled, awsMetricsConfig.enabled) && Objects.equals(this.metricNameFilters, awsMetricsConfig.metricNameFilters) && Objects.equals(this.namespaceFilters, awsMetricsConfig.namespaceFilters) + && Objects.equals(this.resourceTypeTagFilters, awsMetricsConfig.resourceTypeTagFilters) && Objects.equals(this.tagFilters, awsMetricsConfig.tagFilters) && Objects.equals(this.additionalProperties, awsMetricsConfig.additionalProperties); } @@ -345,6 +396,7 @@ public int hashCode() { enabled, metricNameFilters, namespaceFilters, + resourceTypeTagFilters, tagFilters, additionalProperties); } @@ -366,6 +418,9 @@ public String toString() { sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" metricNameFilters: ").append(toIndentedString(metricNameFilters)).append("\n"); sb.append(" namespaceFilters: ").append(toIndentedString(namespaceFilters)).append("\n"); + sb.append(" resourceTypeTagFilters: ") + .append(toIndentedString(resourceTypeTagFilters)) + .append("\n"); sb.append(" tagFilters: ").append(toIndentedString(tagFilters)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) diff --git a/src/main/java/com/datadog/api/client/v2/model/AWSResourceTypeTagFilter.java b/src/main/java/com/datadog/api/client/v2/model/AWSResourceTypeTagFilter.java new file mode 100644 index 00000000000..0a72953ddce --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSResourceTypeTagFilter.java @@ -0,0 +1,249 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * AWS Metrics Collection resource type tag filter. Each filter targets either a specific AWS + * service's resource types (service and resource_types) or custom metrics + * (custom). These two modes are mutually exclusive. The expression + * defines a tag filter that Datadog uses when collecting metrics from the resource types of a + * specified service. Wildcards, such as ? (match a single character) and * + * (match multiple characters), and exclusion using ! before the tag are + * supported. For example, env:production AND instance-type:c?.* AND !region:us-east-1. + */ +@JsonPropertyOrder({ + AWSResourceTypeTagFilter.JSON_PROPERTY_CUSTOM, + AWSResourceTypeTagFilter.JSON_PROPERTY_EXPRESSION, + AWSResourceTypeTagFilter.JSON_PROPERTY_RESOURCE_TYPES, + AWSResourceTypeTagFilter.JSON_PROPERTY_SERVICE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSResourceTypeTagFilter { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CUSTOM = "custom"; + private Boolean custom; + + public static final String JSON_PROPERTY_EXPRESSION = "expression"; + private String expression; + + public static final String JSON_PROPERTY_RESOURCE_TYPES = "resource_types"; + private List resourceTypes = null; + + public static final String JSON_PROPERTY_SERVICE = "service"; + private String service; + + public AWSResourceTypeTagFilter() {} + + @JsonCreator + public AWSResourceTypeTagFilter( + @JsonProperty(required = true, value = JSON_PROPERTY_EXPRESSION) String expression) { + this.expression = expression; + } + + public AWSResourceTypeTagFilter custom(Boolean custom) { + this.custom = custom; + return this; + } + + /** + * Whether the tag filter applies to custom metrics. When true, service + * and resource_types must be omitted. + * + * @return custom + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CUSTOM) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getCustom() { + return custom; + } + + public void setCustom(Boolean custom) { + this.custom = custom; + } + + public AWSResourceTypeTagFilter expression(String expression) { + this.expression = expression; + return this; + } + + /** + * The tag filter expression to apply when collecting metrics for the matching resource types. + * + * @return expression + */ + @JsonProperty(JSON_PROPERTY_EXPRESSION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getExpression() { + return expression; + } + + public void setExpression(String expression) { + this.expression = expression; + } + + public AWSResourceTypeTagFilter resourceTypes(List resourceTypes) { + this.resourceTypes = resourceTypes; + return this; + } + + public AWSResourceTypeTagFilter addResourceTypesItem(String resourceTypesItem) { + if (this.resourceTypes == null) { + this.resourceTypes = new ArrayList<>(); + } + this.resourceTypes.add(resourceTypesItem); + return this; + } + + /** + * The AWS resource types of the service to which the tag filter applies. Required when + * service is set. Use * as the only entry to match all resource types of the + * service; * cannot be combined with specific resource types. + * + * @return resourceTypes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RESOURCE_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getResourceTypes() { + return resourceTypes; + } + + public void setResourceTypes(List resourceTypes) { + this.resourceTypes = resourceTypes; + } + + public AWSResourceTypeTagFilter service(String service) { + this.service = service; + return this; + } + + /** + * The AWS service for which the tag filter defined in expression will be applied. + * Required unless custom is true, and must be set together with + * resource_types. + * + * @return service + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SERVICE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getService() { + return service; + } + + public void setService(String service) { + this.service = service; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return AWSResourceTypeTagFilter + */ + @JsonAnySetter + public AWSResourceTypeTagFilter putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this AWSResourceTypeTagFilter object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSResourceTypeTagFilter awsResourceTypeTagFilter = (AWSResourceTypeTagFilter) o; + return Objects.equals(this.custom, awsResourceTypeTagFilter.custom) + && Objects.equals(this.expression, awsResourceTypeTagFilter.expression) + && Objects.equals(this.resourceTypes, awsResourceTypeTagFilter.resourceTypes) + && Objects.equals(this.service, awsResourceTypeTagFilter.service) + && Objects.equals(this.additionalProperties, awsResourceTypeTagFilter.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(custom, expression, resourceTypes, service, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSResourceTypeTagFilter {\n"); + sb.append(" custom: ").append(toIndentedString(custom)).append("\n"); + sb.append(" expression: ").append(toIndentedString(expression)).append("\n"); + sb.append(" resourceTypes: ").append(toIndentedString(resourceTypes)).append("\n"); + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature b/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature index ed35928deb3..d24d50e471c 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature @@ -315,7 +315,7 @@ Feature: AWS Integration Given there is a valid "aws_account_v2" in the system And new "UpdateAWSAccount" request And request contains "aws_account_config_id" parameter from "aws_account_v2.data.id" - And body with value {"data": {"attributes": {"account_tags": ["key:value"], "auth_config": {"role_name": "DatadogIntegrationRole"}, "aws_account_id": "123456789012", "aws_partition": "aws", "logs_config": {"lambda_forwarder": {"lambdas": ["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"], "log_source_config": {"tag_filters": [{"source": "s3", "tags": ["test:test"]}]}, "sources": ["s3"]}}, "metrics_config": {"automute_enabled": true, "collect_cloudwatch_alarms": true, "collect_custom_metrics": true, "enabled": true, "tag_filters": [{"namespace": "AWS/EC2", "tags": ["key:value"]}]}, "resources_config": {"cloud_security_posture_management_collection": false, "extended_collection": false}, "traces_config": {}}, "type": "account"}} + And body with value {"data": {"attributes": {"account_tags": ["key:value"], "auth_config": {"role_name": "DatadogIntegrationRole"}, "aws_account_id": "123456789012", "aws_partition": "aws", "logs_config": {"lambda_forwarder": {"lambdas": ["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"], "log_source_config": {"tag_filters": [{"source": "s3", "tags": ["test:test"]}]}, "sources": ["s3"]}}, "metrics_config": {"automute_enabled": true, "collect_cloudwatch_alarms": true, "collect_custom_metrics": true, "enabled": true, "resource_type_tag_filters": [{"service": "ec2", "resource_types": ["instance"], "expression": "env:staging"}]}, "resources_config": {"cloud_security_posture_management_collection": false, "extended_collection": false}, "traces_config": {}}, "type": "account"}} When the request is sent Then the response status is 200 AWS Account object diff --git a/src/test/resources/com/datadog/api/client/v2/api/given.json b/src/test/resources/com/datadog/api/client/v2/api/given.json index 133777e08d8..1ad94b96931 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/given.json +++ b/src/test/resources/com/datadog/api/client/v2/api/given.json @@ -854,7 +854,7 @@ "parameters": [ { "name": "body", - "value": "{\n \"data\": {\n \"type\": \"account\",\n \"attributes\": {\n \"account_tags\": [\n \"key:value\"\n ],\n \"auth_config\": {\n \"role_name\": \"DatadogIntegrationRole\"\n },\n \"aws_account_id\": \"123456789012\",\n \"aws_partition\": \"aws\",\n \"aws_regions\": {\n \"include_only\": [\n \"us-east-1\"\n ]\n },\n \"logs_config\": {\n \"lambda_forwarder\": {\n \"lambdas\": [\n \"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"\n ],\n \"sources\": [\n \"s3\"\n ],\n \"log_source_config\": {\n \"tag_filters\": [\n {\n \"source\": \"s3\",\n \"tags\": [\"test:test\"]\n }\n ]\n }\n }\n },\n \"metrics_config\": {\n \"enabled\": true,\n \"automute_enabled\": true,\n \"collect_custom_metrics\": false,\n \"collect_cloudwatch_alarms\": false,\n \"tag_filters\": [\n {\n \"namespace\": \"AWS/EC2\",\n \"tags\": [\n \"key:value\"\n ]\n }\n ],\n \"namespace_filters\": {\n \"include_only\": [\n \"AWS/EC2\"\n ]\n }\n },\n \"resources_config\": {\n \"cloud_security_posture_management_collection\": false,\n \"extended_collection\": false\n },\n \"traces_config\": {\n \"xray_services\": {\n \"include_only\": [\n \"AWS/AppSync\"\n ]\n }\n }\n }\n }\n}" + "value": "{\n \"data\": {\n \"type\": \"account\",\n \"attributes\": {\n \"account_tags\": [\n \"key:value\"\n ],\n \"auth_config\": {\n \"role_name\": \"DatadogIntegrationRole\"\n },\n \"aws_account_id\": \"123456789012\",\n \"aws_partition\": \"aws\",\n \"aws_regions\": {\n \"include_only\": [\n \"us-east-1\"\n ]\n },\n \"logs_config\": {\n \"lambda_forwarder\": {\n \"lambdas\": [\n \"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"\n ],\n \"sources\": [\n \"s3\"\n ],\n \"log_source_config\": {\n \"tag_filters\": [\n {\n \"source\": \"s3\",\n \"tags\": [\"test:test\"]\n }\n ]\n }\n }\n },\n \"metrics_config\": {\n \"enabled\": true,\n \"automute_enabled\": true,\n \"collect_custom_metrics\": false,\n \"collect_cloudwatch_alarms\": false,\n \"resource_type_tag_filters\": [\n {\n \"service\": \"ec2\",\n \"resource_types\": [\n \"instance\"\n ],\n \"expression\": \"env:production\"\n }\n ],\n \"namespace_filters\": {\n \"include_only\": [\n \"AWS/EC2\"\n ]\n }\n },\n \"resources_config\": {\n \"cloud_security_posture_management_collection\": false,\n \"extended_collection\": false\n },\n \"traces_config\": {\n \"xray_services\": {\n \"include_only\": [\n \"AWS/AppSync\"\n ]\n }\n }\n }\n }\n}" } ], "step": "there is a valid \"aws_account_v2\" in the system", diff --git a/src/test/resources/generated-test/test-runner-data/v2/aws-integration/update-an-aws-integration-returns-aws-account-object-response.json b/src/test/resources/generated-test/test-runner-data/v2/aws-integration/update-an-aws-integration-returns-aws-account-object-response.json index 702d8a5f9ad..89f4975d66e 100644 --- a/src/test/resources/generated-test/test-runner-data/v2/aws-integration/update-an-aws-integration-returns-aws-account-object-response.json +++ b/src/test/resources/generated-test/test-runner-data/v2/aws-integration/update-an-aws-integration-returns-aws-account-object-response.json @@ -48,12 +48,13 @@ "collect_cloudwatch_alarms": true, "collect_custom_metrics": true, "enabled": true, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:staging", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, diff --git a/src/test/resources/generated-test/test-server-data/v2/aws-integration.json b/src/test/resources/generated-test/test-server-data/v2/aws-integration.json index 251228d560a..f3c2688fd6e 100644 --- a/src/test/resources/generated-test/test-server-data/v2/aws-integration.json +++ b/src/test/resources/generated-test/test-server-data/v2/aws-integration.json @@ -2322,7 +2322,7 @@ }, { "feature": "AWS Integration", - "frozen_at": "2025-08-06T17:41:41.817Z", + "frozen_at": "2026-10-29T18:42:37.045Z", "interactions": [ { "request": { @@ -2374,12 +2374,13 @@ "AWS/EC2" ] }, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:production", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, @@ -2407,7 +2408,7 @@ "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"9bb08fa5-18b0-49fd-a5d7-b74f930e52b0\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"ef76163b26b04aa2a4d4d6f7be1738f3\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:42.675508202Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:42.675508202Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"b7e6adf3-50b6-40c9-8507-bef4c8b1340a\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"572f3fa14a3c4e75b207a8b3b42f52ef\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:38.167354103Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:production\"}]},\"modified_at\":\"2026-10-29T18:42:38.167354103Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -2500,7 +2501,7 @@ }, "content_type": "", "method": "DELETE", - "path": "/api/v2/integration/aws/accounts/9bb08fa5-18b0-49fd-a5d7-b74f930e52b0", + "path": "/api/v2/integration/aws/accounts/b7e6adf3-50b6-40c9-8507-bef4c8b1340a", "query": [] }, "response": { @@ -2610,7 +2611,7 @@ }, { "feature": "AWS Integration", - "frozen_at": "2025-08-06T17:41:44.707Z", + "frozen_at": "2026-10-29T18:42:40.083Z", "interactions": [ { "request": { @@ -2662,12 +2663,13 @@ "AWS/EC2" ] }, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:production", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, @@ -2695,7 +2697,7 @@ "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"f45e01d8-2cc4-45b6-af71-6b3d3bb18dd2\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"9ae7407fac894f8fb2d25bac85a55a89\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:45.592435491Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:45.592435491Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"d8600d61-4d74-40c5-9982-d4cd9c6bbdb0\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"0efc79142195402490b08f0f0f8bad06\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:40.811596716Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:production\"}]},\"modified_at\":\"2026-10-29T18:42:40.811596716Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -2712,7 +2714,7 @@ }, "content_type": "", "method": "DELETE", - "path": "/api/v2/integration/aws/accounts/f45e01d8-2cc4-45b6-af71-6b3d3bb18dd2", + "path": "/api/v2/integration/aws/accounts/d8600d61-4d74-40c5-9982-d4cd9c6bbdb0", "query": [] }, "response": { @@ -2733,7 +2735,7 @@ }, "content_type": "", "method": "DELETE", - "path": "/api/v2/integration/aws/accounts/f45e01d8-2cc4-45b6-af71-6b3d3bb18dd2", + "path": "/api/v2/integration/aws/accounts/d8600d61-4d74-40c5-9982-d4cd9c6bbdb0", "query": [] }, "response": { @@ -2754,7 +2756,7 @@ }, { "feature": "AWS Integration", - "frozen_at": "2025-08-06T17:41:46.023Z", + "frozen_at": "2026-10-29T18:42:42.739Z", "interactions": [ { "request": { @@ -2806,12 +2808,13 @@ "AWS/EC2" ] }, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:production", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, @@ -2839,7 +2842,7 @@ "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"b995026f-036d-4303-b2b1-fe6003893f2e\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"707dcccdd8424fb999d08d39a108a593\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:46.926789123Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:46.926789123Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"0f22a1d7-6e4d-4ba7-9930-25844924bea2\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"188e0cebbe854837993669bbf8730fc3\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:43.501578785Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:production\"}]},\"modified_at\":\"2026-10-29T18:42:43.501578785Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -2879,7 +2882,7 @@ }, "content_type": "", "method": "DELETE", - "path": "/api/v2/integration/aws/accounts/b995026f-036d-4303-b2b1-fe6003893f2e", + "path": "/api/v2/integration/aws/accounts/0f22a1d7-6e4d-4ba7-9930-25844924bea2", "query": [] }, "response": { @@ -3022,7 +3025,7 @@ }, { "feature": "AWS Integration", - "frozen_at": "2025-08-06T17:41:49.517Z", + "frozen_at": "2026-10-29T18:42:45.078Z", "interactions": [ { "request": { @@ -3074,12 +3077,13 @@ "AWS/EC2" ] }, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:production", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, @@ -3107,7 +3111,7 @@ "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"957a9f7c-72ec-4946-baf4-42f00420f299\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"329146b44caa4f4fa7d0b6478f392c9e\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:50.383382183Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:50.383382183Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"ccbf1424-0fdc-43f4-9917-2b1bba5afbad\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"c1b841679391431daadd656d8212812e\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:45.773027248Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:production\"}]},\"modified_at\":\"2026-10-29T18:42:45.773027248Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -3124,13 +3128,13 @@ }, "content_type": "", "method": "GET", - "path": "/api/v2/integration/aws/accounts/957a9f7c-72ec-4946-baf4-42f00420f299", + "path": "/api/v2/integration/aws/accounts/ccbf1424-0fdc-43f4-9917-2b1bba5afbad", "query": [] }, "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"957a9f7c-72ec-4946-baf4-42f00420f299\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"329146b44caa4f4fa7d0b6478f392c9e\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:50.383382Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:50.383382Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"ccbf1424-0fdc-43f4-9917-2b1bba5afbad\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"c1b841679391431daadd656d8212812e\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:45.773027Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:production\"}]},\"modified_at\":\"2026-10-29T18:42:45.773027Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -3147,7 +3151,7 @@ }, "content_type": "", "method": "DELETE", - "path": "/api/v2/integration/aws/accounts/957a9f7c-72ec-4946-baf4-42f00420f299", + "path": "/api/v2/integration/aws/accounts/ccbf1424-0fdc-43f4-9917-2b1bba5afbad", "query": [] }, "response": { @@ -3479,7 +3483,7 @@ }, { "feature": "AWS Integration", - "frozen_at": "2025-08-06T17:41:51.622Z", + "frozen_at": "2026-10-29T18:42:47.661Z", "interactions": [ { "request": { @@ -3531,12 +3535,13 @@ "AWS/EC2" ] }, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:production", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, @@ -3564,7 +3569,7 @@ "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"ab6528e3-5dab-4375-ae47-4ce93d1216e2\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"36416390710445e7be511e1622ee4149\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:52.510132689Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:52.510132689Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"89f9a444-6fde-4200-bf1e-207f670656a3\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"ea006b0bcebe41b0b7b75b4ad3488012\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:48.309834895Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:production\"}]},\"modified_at\":\"2026-10-29T18:42:48.309834895Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -3613,12 +3618,13 @@ "collect_cloudwatch_alarms": true, "collect_custom_metrics": true, "enabled": true, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:staging", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, @@ -3634,13 +3640,13 @@ }, "content_type": "application/json", "method": "PATCH", - "path": "/api/v2/integration/aws/accounts/ab6528e3-5dab-4375-ae47-4ce93d1216e2", + "path": "/api/v2/integration/aws/accounts/89f9a444-6fde-4200-bf1e-207f670656a3", "query": [] }, "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"ab6528e3-5dab-4375-ae47-4ce93d1216e2\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"36416390710445e7be511e1622ee4149\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:52.510132Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":true,\"collect_cloudwatch_alarms\":true,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:52.717094345Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"89f9a444-6fde-4200-bf1e-207f670656a3\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"ea006b0bcebe41b0b7b75b4ad3488012\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:48.309834Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":true,\"collect_cloudwatch_alarms\":true,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:staging\"}]},\"modified_at\":\"2026-10-29T18:42:48.988788064Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -3657,7 +3663,7 @@ }, "content_type": "", "method": "DELETE", - "path": "/api/v2/integration/aws/accounts/ab6528e3-5dab-4375-ae47-4ce93d1216e2", + "path": "/api/v2/integration/aws/accounts/89f9a444-6fde-4200-bf1e-207f670656a3", "query": [] }, "response": { @@ -3676,7 +3682,7 @@ }, { "feature": "AWS Integration", - "frozen_at": "2025-08-06T17:41:53.059Z", + "frozen_at": "2026-10-29T18:42:50.129Z", "interactions": [ { "request": { @@ -3728,12 +3734,13 @@ "AWS/EC2" ] }, - "tag_filters": [ + "resource_type_tag_filters": [ { - "namespace": "AWS/EC2", - "tags": [ - "key:value" - ] + "expression": "env:production", + "resource_types": [ + "instance" + ], + "service": "ec2" } ] }, @@ -3761,7 +3768,7 @@ "response": { "body": { "encoding": "text", - "value": "{\"data\":{\"id\":\"dff6d3ee-e90a-4df1-b0d7-6f4e1ed35acc\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"f3f5392d608c448ca4910d7adcefa849\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2025-08-06T17:41:54.148895503Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[{\"namespace\":\"AWS/EC2\",\"tags\":[\"key:value\"]}],\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]}},\"modified_at\":\"2025-08-06T17:41:54.148895503Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" + "value": "{\"data\":{\"id\":\"c318ab3d-8268-4569-a1cc-6a34377538c5\",\"type\":\"account\",\"attributes\":{\"account_tags\":[\"key:value\"],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"1a82f333c4244ead862c3cb871a427cf\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_only\":[\"us-east-1\"]},\"created_at\":\"2026-10-29T18:42:50.811303572Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[\"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"],\"sources\":[\"s3\"],\"log_source_config\":{\"tag_filters\":[{\"source\":\"s3\",\"tags\":[\"test:test\"]}]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"namespace_filters\":{\"include_only\":[\"AWS/EC2\"]},\"resource_type_tag_filters\":[{\"service\":\"ec2\",\"resource_types\":[\"instance\"],\"expression\":\"env:production\"}]},\"modified_at\":\"2026-10-29T18:42:50.811303572Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":false},\"traces_config\":{\"xray_services\":{\"include_only\":[\"AWS/AppSync\"]}}}}}" }, "headers": { "content-type": "application/vnd.api+json" @@ -3832,7 +3839,7 @@ }, "content_type": "application/json", "method": "PATCH", - "path": "/api/v2/integration/aws/accounts/dff6d3ee-e90a-4df1-b0d7-6f4e1ed35acc", + "path": "/api/v2/integration/aws/accounts/c318ab3d-8268-4569-a1cc-6a34377538c5", "query": [] }, "response": { @@ -3855,7 +3862,7 @@ }, "content_type": "", "method": "DELETE", - "path": "/api/v2/integration/aws/accounts/dff6d3ee-e90a-4df1-b0d7-6f4e1ed35acc", + "path": "/api/v2/integration/aws/accounts/c318ab3d-8268-4569-a1cc-6a34377538c5", "query": [] }, "response": {