diff --git a/.apigentools-info b/.apigentools-info
index 9bed47d6742..1caf2340ccd 100644
--- a/.apigentools-info
+++ b/.apigentools-info
@@ -4,13 +4,13 @@
"spec_versions": {
"v1": {
"apigentools_version": "1.6.6",
- "regenerated": "2024-02-14 10:50:02.144778",
- "spec_repo_commit": "9348385b"
+ "regenerated": "2024-02-20 12:21:56.548581",
+ "spec_repo_commit": "7e467650"
},
"v2": {
"apigentools_version": "1.6.6",
- "regenerated": "2024-02-14 10:50:02.160000",
- "spec_repo_commit": "9348385b"
+ "regenerated": "2024-02-20 12:21:56.563229",
+ "spec_repo_commit": "7e467650"
}
}
}
\ No newline at end of file
diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml
index 99631ba18dc..89e57a83cb6 100644
--- a/.generator/schemas/v1/openapi.yaml
+++ b/.generator/schemas/v1/openapi.yaml
@@ -3207,6 +3207,18 @@ components:
key.'
example: https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL
type: string
+ cloud_run_revision_filters:
+ description: 'Limit the Cloud Run revisions that are pulled into Datadog
+ by using tags.
+
+ Only Cloud Run revision resources that apply to specified filters are
+ imported into Datadog.'
+ example:
+ - $KEY:$VALUE
+ items:
+ description: Cloud Run Filters
+ type: string
+ type: array
errors:
description: An array of errors.
example:
@@ -13213,10 +13225,12 @@ components:
only supporting `http`.
enum:
- http
+ - grpc
example: http
type: string
x-enum-varnames:
- HTTP
+ - GRPC
SyntheticsAPITest:
description: Object containing details about a Synthetic API test.
properties:
diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 3a7820429e6..5d118d9175c 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -2039,7 +2039,8 @@ components:
type: number
type: object
CIAppAggregateSort:
- description: A sort rule.
+ description: A sort rule. The `aggregation` field is required when `type` is
+ `measure`.
example:
aggregation: count
order: asc
@@ -7388,6 +7389,18 @@ components:
description: Your service account email address.
example: datadog-service-account@test-project.iam.gserviceaccount.com
type: string
+ cloud_run_revision_filters:
+ description: 'List of filters to limit the Cloud Run revisions that are
+ pulled into Datadog by using tags.
+
+ Only Cloud Run revision resources that apply to specified filters are
+ imported into Datadog.'
+ example:
+ - $KEY:$VALUE
+ items:
+ description: Cloud Run Filters
+ type: string
+ type: array
host_filters:
description: Your Host Filters.
items:
@@ -24052,7 +24065,7 @@ paths:
/api/v2/cost_by_tag/active_billing_dimensions:
get:
description: Get active billing dimensions for cost attribution. Cost data for
- a given month becomes available no later than the 17th of the following month.
+ a given month becomes available no later than the 19th of the following month.
operationId: GetActiveBillingDimensions
responses:
'200':
@@ -24094,7 +24107,7 @@ paths:
get:
description: "Get monthly cost attribution by tag across multi-org and single
root-org accounts.\nCost Attribution data for a given month becomes available
- no later than the 17th of the following month.\nThis API endpoint is paginated.
+ no later than the 19th of the following month.\nThis API endpoint is paginated.
To make sure you receive all records, check if the value of `next_record_id`
is\nset in the response. If it is, make another request and pass `next_record_id`
as a parameter.\nPseudo code example:\n```\nresponse := GetMonthlyCostAttribution(start_month,
diff --git a/examples/v1/gcp-integration/CreateGCPIntegration.java b/examples/v1/gcp-integration/CreateGCPIntegration.java
index 146c3df0d20..26a4b937896 100644
--- a/examples/v1/gcp-integration/CreateGCPIntegration.java
+++ b/examples/v1/gcp-integration/CreateGCPIntegration.java
@@ -4,6 +4,7 @@
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.GcpIntegrationApi;
import com.datadog.api.client.v1.model.GCPAccount;
+import java.util.Collections;
public class Example {
public static void main(String[] args) {
@@ -18,6 +19,7 @@ public static void main(String[] args) {
.clientId("163662907116366290710")
.clientX509CertUrl("https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL")
.hostFilters("key:value,filter:example")
+ .cloudRunRevisionFilters(Collections.singletonList("dr:dre"))
.isCspmEnabled(true)
.isSecurityCommandCenterEnabled(true)
.privateKey("private_key")
diff --git a/examples/v1/gcp-integration/UpdateGCPIntegration_3544259255.java b/examples/v1/gcp-integration/UpdateGCPIntegration_3544259255.java
new file mode 100644
index 00000000000..6d5f8a6692f
--- /dev/null
+++ b/examples/v1/gcp-integration/UpdateGCPIntegration_3544259255.java
@@ -0,0 +1,42 @@
+// Update a GCP integration cloud run revision filters returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v1.api.GcpIntegrationApi;
+import com.datadog.api.client.v1.model.GCPAccount;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ GcpIntegrationApi apiInstance = new GcpIntegrationApi(defaultClient);
+
+ GCPAccount body =
+ new GCPAccount()
+ .authProviderX509CertUrl("https://www.googleapis.com/oauth2/v1/certs")
+ .authUri("https://accounts.google.com/o/oauth2/auth")
+ .clientEmail("252bf553ef04b351@example.com")
+ .clientId("163662907116366290710")
+ .clientX509CertUrl("https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL")
+ .hostFilters("key:value,filter:example")
+ .cloudRunRevisionFilters(Collections.singletonList("merp:derp"))
+ .isCspmEnabled(true)
+ .isSecurityCommandCenterEnabled(true)
+ .privateKey("private_key")
+ .privateKeyId("123456789abcdefghi123456789abcdefghijklm")
+ .projectId("datadog-apitest")
+ .resourceCollectionEnabled(true)
+ .tokenUri("https://accounts.google.com/o/oauth2/token")
+ .type("service_account");
+
+ try {
+ apiInstance.updateGCPIntegration(body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling GcpIntegrationApi#updateGCPIntegration");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v1/synthetics/CreateSyntheticsAPITest_1279271422.java b/examples/v1/synthetics/CreateSyntheticsAPITest_1279271422.java
index e7ecf9ed6ee..fc1ada47045 100644
--- a/examples/v1/synthetics/CreateSyntheticsAPITest_1279271422.java
+++ b/examples/v1/synthetics/CreateSyntheticsAPITest_1279271422.java
@@ -17,12 +17,15 @@
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableParseTestOptionsType;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableParserType;
import com.datadog.api.client.v1.model.SyntheticsParsingOptions;
+import com.datadog.api.client.v1.model.SyntheticsTestCallType;
import com.datadog.api.client.v1.model.SyntheticsTestDetailsSubType;
import com.datadog.api.client.v1.model.SyntheticsTestOptions;
import com.datadog.api.client.v1.model.SyntheticsTestOptionsRetry;
import com.datadog.api.client.v1.model.SyntheticsTestRequest;
import com.datadog.api.client.v1.model.SyntheticsVariableParser;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.Map;
public class Example {
public static void main(String[] args) {
@@ -41,7 +44,7 @@ public static void main(String[] args) {
.pattern("content-type")
.type(SyntheticsConfigVariableType.TEXT)))
.steps(
- Collections.singletonList(
+ Arrays.asList(
new SyntheticsAPIStep()
.allowFailure(true)
.assertions(
@@ -71,7 +74,31 @@ public static void main(String[] args) {
.timeout(10.0)
.url("https://datadoghq.com"))
.retry(new SyntheticsTestOptionsRetry().count(5L).interval(1000.0))
- .subtype(SyntheticsAPIStepSubtype.HTTP))))
+ .subtype(SyntheticsAPIStepSubtype.HTTP),
+ new SyntheticsAPIStep()
+ .name("GRPC CALL")
+ .subtype(SyntheticsAPIStepSubtype.GRPC)
+ .allowFailure(false)
+ .isCritical(true)
+ .retry(new SyntheticsTestOptionsRetry().count(0L).interval(300.0))
+ .assertions(
+ Collections.singletonList(
+ new SyntheticsAssertion(
+ new SyntheticsAssertionTarget()
+ .operator(SyntheticsAssertionOperator.LESS_THAN)
+ .type(SyntheticsAssertionType.RESPONSE_TIME)
+ .target(1000))))
+ .request(
+ new SyntheticsTestRequest()
+ .host("grpcbin.test.k6.io")
+ .port(9000L)
+ .service("grpcbin.GRPCBin")
+ .method("Index")
+ .message("{}")
+ .compressedJsonDescriptor(
+ "eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==")
+ .metadata(Map.ofEntries())
+ .callType(SyntheticsTestCallType.UNARY)))))
.locations(Collections.singletonList("aws:us-east-2"))
.message("BDD test payload: synthetics_api_test_multi_step_payload.json")
.name("Example-Synthetic")
diff --git a/examples/v2/gcp-integration/CreateGCPSTSAccount_194782945.java b/examples/v2/gcp-integration/CreateGCPSTSAccount_194782945.java
new file mode 100644
index 00000000000..e24a22f1a32
--- /dev/null
+++ b/examples/v2/gcp-integration/CreateGCPSTSAccount_194782945.java
@@ -0,0 +1,40 @@
+// Create a new entry for your service account with cloud run revision filters enabled returns "OK"
+// response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.GcpIntegrationApi;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountAttributes;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountCreateRequest;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountData;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountResponse;
+import com.datadog.api.client.v2.model.GCPServiceAccountType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ GcpIntegrationApi apiInstance = new GcpIntegrationApi(defaultClient);
+
+ GCPSTSServiceAccountCreateRequest body =
+ new GCPSTSServiceAccountCreateRequest()
+ .data(
+ new GCPSTSServiceAccountData()
+ .attributes(
+ new GCPSTSServiceAccountAttributes()
+ .cloudRunRevisionFilters(Collections.singletonList("meh:bleh"))
+ .clientEmail("252bf553ef04b351@test-project.iam.gserviceaccount.com"))
+ .type(GCPServiceAccountType.GCP_SERVICE_ACCOUNT));
+
+ try {
+ GCPSTSServiceAccountResponse result = apiInstance.createGCPSTSAccount(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling GcpIntegrationApi#createGCPSTSAccount");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/gcp-integration/UpdateGCPSTSAccount_2241994060.java b/examples/v2/gcp-integration/UpdateGCPSTSAccount_2241994060.java
new file mode 100644
index 00000000000..30cb985f3d7
--- /dev/null
+++ b/examples/v2/gcp-integration/UpdateGCPSTSAccount_2241994060.java
@@ -0,0 +1,44 @@
+// Update STS Service Account returns "OK" response with cloud run revision filters
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.GcpIntegrationApi;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountAttributes;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountResponse;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountUpdateRequest;
+import com.datadog.api.client.v2.model.GCPSTSServiceAccountUpdateRequestData;
+import com.datadog.api.client.v2.model.GCPServiceAccountType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ GcpIntegrationApi apiInstance = new GcpIntegrationApi(defaultClient);
+
+ // there is a valid "gcp_sts_account" in the system
+ String GCP_STS_ACCOUNT_DATA_ID = System.getenv("GCP_STS_ACCOUNT_DATA_ID");
+
+ GCPSTSServiceAccountUpdateRequest body =
+ new GCPSTSServiceAccountUpdateRequest()
+ .data(
+ new GCPSTSServiceAccountUpdateRequestData()
+ .attributes(
+ new GCPSTSServiceAccountAttributes()
+ .clientEmail("252bf553ef04b351@example.com")
+ .cloudRunRevisionFilters(Collections.singletonList("merp:derp")))
+ .id(GCP_STS_ACCOUNT_DATA_ID)
+ .type(GCPServiceAccountType.GCP_SERVICE_ACCOUNT));
+
+ try {
+ GCPSTSServiceAccountResponse result =
+ apiInstance.updateGCPSTSAccount(GCP_STS_ACCOUNT_DATA_ID, body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling GcpIntegrationApi#updateGCPSTSAccount");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/pom.xml b/pom.xml
index e7975798b04..e3d93391dd1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -323,6 +323,9 @@
META-INF/*.MF
META-INF/LICENSE*
META-INF/NOTICE*
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
diff --git a/src/main/java/com/datadog/api/client/v1/model/GCPAccount.java b/src/main/java/com/datadog/api/client/v1/model/GCPAccount.java
index f4078c1da75..1cb80398c58 100644
--- a/src/main/java/com/datadog/api/client/v1/model/GCPAccount.java
+++ b/src/main/java/com/datadog/api/client/v1/model/GCPAccount.java
@@ -26,6 +26,7 @@
GCPAccount.JSON_PROPERTY_CLIENT_EMAIL,
GCPAccount.JSON_PROPERTY_CLIENT_ID,
GCPAccount.JSON_PROPERTY_CLIENT_X509_CERT_URL,
+ GCPAccount.JSON_PROPERTY_CLOUD_RUN_REVISION_FILTERS,
GCPAccount.JSON_PROPERTY_ERRORS,
GCPAccount.JSON_PROPERTY_HOST_FILTERS,
GCPAccount.JSON_PROPERTY_IS_CSPM_ENABLED,
@@ -60,6 +61,10 @@ public class GCPAccount {
public static final String JSON_PROPERTY_CLIENT_X509_CERT_URL = "client_x509_cert_url";
private String clientX509CertUrl;
+ public static final String JSON_PROPERTY_CLOUD_RUN_REVISION_FILTERS =
+ "cloud_run_revision_filters";
+ private List cloudRunRevisionFilters = null;
+
public static final String JSON_PROPERTY_ERRORS = "errors";
private List errors = null;
@@ -219,6 +224,36 @@ public void setClientX509CertUrl(String clientX509CertUrl) {
this.clientX509CertUrl = clientX509CertUrl;
}
+ public GCPAccount cloudRunRevisionFilters(List cloudRunRevisionFilters) {
+ this.cloudRunRevisionFilters = cloudRunRevisionFilters;
+ return this;
+ }
+
+ public GCPAccount addCloudRunRevisionFiltersItem(String cloudRunRevisionFiltersItem) {
+ if (this.cloudRunRevisionFilters == null) {
+ this.cloudRunRevisionFilters = new ArrayList<>();
+ }
+ this.cloudRunRevisionFilters.add(cloudRunRevisionFiltersItem);
+ return this;
+ }
+
+ /**
+ * Limit the Cloud Run revisions that are pulled into Datadog by using tags. Only Cloud Run
+ * revision resources that apply to specified filters are imported into Datadog.
+ *
+ * @return cloudRunRevisionFilters
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CLOUD_RUN_REVISION_FILTERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getCloudRunRevisionFilters() {
+ return cloudRunRevisionFilters;
+ }
+
+ public void setCloudRunRevisionFilters(List cloudRunRevisionFilters) {
+ this.cloudRunRevisionFilters = cloudRunRevisionFilters;
+ }
+
public GCPAccount errors(List errors) {
this.errors = errors;
return this;
@@ -502,6 +537,7 @@ public boolean equals(Object o) {
&& Objects.equals(this.clientEmail, gcpAccount.clientEmail)
&& Objects.equals(this.clientId, gcpAccount.clientId)
&& Objects.equals(this.clientX509CertUrl, gcpAccount.clientX509CertUrl)
+ && Objects.equals(this.cloudRunRevisionFilters, gcpAccount.cloudRunRevisionFilters)
&& Objects.equals(this.errors, gcpAccount.errors)
&& Objects.equals(this.hostFilters, gcpAccount.hostFilters)
&& Objects.equals(this.isCspmEnabled, gcpAccount.isCspmEnabled)
@@ -525,6 +561,7 @@ public int hashCode() {
clientEmail,
clientId,
clientX509CertUrl,
+ cloudRunRevisionFilters,
errors,
hostFilters,
isCspmEnabled,
@@ -550,6 +587,9 @@ public String toString() {
sb.append(" clientEmail: ").append(toIndentedString(clientEmail)).append("\n");
sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n");
sb.append(" clientX509CertUrl: ").append(toIndentedString(clientX509CertUrl)).append("\n");
+ sb.append(" cloudRunRevisionFilters: ")
+ .append(toIndentedString(cloudRunRevisionFilters))
+ .append("\n");
sb.append(" errors: ").append(toIndentedString(errors)).append("\n");
sb.append(" hostFilters: ").append(toIndentedString(hostFilters)).append("\n");
sb.append(" isCspmEnabled: ").append(toIndentedString(isCspmEnabled)).append("\n");
diff --git a/src/main/java/com/datadog/api/client/v1/model/SyntheticsAPIStepSubtype.java b/src/main/java/com/datadog/api/client/v1/model/SyntheticsAPIStepSubtype.java
index c549e7f9c91..dff317ca5d3 100644
--- a/src/main/java/com/datadog/api/client/v1/model/SyntheticsAPIStepSubtype.java
+++ b/src/main/java/com/datadog/api/client/v1/model/SyntheticsAPIStepSubtype.java
@@ -25,9 +25,11 @@
@JsonSerialize(using = SyntheticsAPIStepSubtype.SyntheticsAPIStepSubtypeSerializer.class)
public class SyntheticsAPIStepSubtype extends ModelEnum {
- private static final Set allowedValues = new HashSet(Arrays.asList("http"));
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("http", "grpc"));
public static final SyntheticsAPIStepSubtype HTTP = new SyntheticsAPIStepSubtype("http");
+ public static final SyntheticsAPIStepSubtype GRPC = new SyntheticsAPIStepSubtype("grpc");
SyntheticsAPIStepSubtype(String value) {
super(value, allowedValues);
diff --git a/src/main/java/com/datadog/api/client/v2/api/UsageMeteringApi.java b/src/main/java/com/datadog/api/client/v2/api/UsageMeteringApi.java
index a9130f1a0f1..41bfe7c350a 100644
--- a/src/main/java/com/datadog/api/client/v2/api/UsageMeteringApi.java
+++ b/src/main/java/com/datadog/api/client/v2/api/UsageMeteringApi.java
@@ -82,7 +82,7 @@ public CompletableFuture getActiveBillingDimens
/**
* Get active billing dimensions for cost attribution. Cost data for a given month becomes
- * available no later than the 17th of the following month.
+ * available no later than the 19th of the following month.
*
* @return ApiResponse<ActiveBillingDimensionsResponse>
* @throws ApiException if fails to make API call
@@ -1503,7 +1503,7 @@ public CompletableFuture getMonthlyCostAttributi
/**
* Get monthly cost attribution by tag across multi-org and single root-org accounts. Cost
- * Attribution data for a given month becomes available no later than the 17th of the following
+ * Attribution data for a given month becomes available no later than the 19th of the following
* month. This API endpoint is paginated. To make sure you receive all records, check if the value
* of next_record_id
is set in the response. If it is, make another request and pass
* next_record_id
as a parameter. Pseudo code example:
diff --git a/src/main/java/com/datadog/api/client/v2/model/CIAppAggregateSort.java b/src/main/java/com/datadog/api/client/v2/model/CIAppAggregateSort.java
index 8a35e01ac16..b7e677cf97c 100644
--- a/src/main/java/com/datadog/api/client/v2/model/CIAppAggregateSort.java
+++ b/src/main/java/com/datadog/api/client/v2/model/CIAppAggregateSort.java
@@ -16,7 +16,10 @@
import java.util.Map;
import java.util.Objects;
-/** A sort rule. */
+/**
+ * A sort rule. The aggregation
field is required when type
is
+ * measure
.
+ */
@JsonPropertyOrder({
CIAppAggregateSort.JSON_PROPERTY_AGGREGATION,
CIAppAggregateSort.JSON_PROPERTY_METRIC,
diff --git a/src/main/java/com/datadog/api/client/v2/model/CIAppPipelinesGroupBy.java b/src/main/java/com/datadog/api/client/v2/model/CIAppPipelinesGroupBy.java
index abe176b9f46..6062c2b4670 100644
--- a/src/main/java/com/datadog/api/client/v2/model/CIAppPipelinesGroupBy.java
+++ b/src/main/java/com/datadog/api/client/v2/model/CIAppPipelinesGroupBy.java
@@ -149,7 +149,8 @@ public CIAppPipelinesGroupBy sort(CIAppAggregateSort sort) {
}
/**
- * A sort rule.
+ * A sort rule. The aggregation
field is required when type
is
+ * measure
.
*
* @return sort
*/
diff --git a/src/main/java/com/datadog/api/client/v2/model/CIAppTestsGroupBy.java b/src/main/java/com/datadog/api/client/v2/model/CIAppTestsGroupBy.java
index f23809dfe26..02eb647b69e 100644
--- a/src/main/java/com/datadog/api/client/v2/model/CIAppTestsGroupBy.java
+++ b/src/main/java/com/datadog/api/client/v2/model/CIAppTestsGroupBy.java
@@ -149,7 +149,8 @@ public CIAppTestsGroupBy sort(CIAppAggregateSort sort) {
}
/**
- * A sort rule.
+ * A sort rule. The aggregation
field is required when type
is
+ * measure
.
*
* @return sort
*/
diff --git a/src/main/java/com/datadog/api/client/v2/model/GCPSTSServiceAccountAttributes.java b/src/main/java/com/datadog/api/client/v2/model/GCPSTSServiceAccountAttributes.java
index 94007627534..894b5ac7926 100644
--- a/src/main/java/com/datadog/api/client/v2/model/GCPSTSServiceAccountAttributes.java
+++ b/src/main/java/com/datadog/api/client/v2/model/GCPSTSServiceAccountAttributes.java
@@ -23,6 +23,7 @@
GCPSTSServiceAccountAttributes.JSON_PROPERTY_ACCOUNT_TAGS,
GCPSTSServiceAccountAttributes.JSON_PROPERTY_AUTOMUTE,
GCPSTSServiceAccountAttributes.JSON_PROPERTY_CLIENT_EMAIL,
+ GCPSTSServiceAccountAttributes.JSON_PROPERTY_CLOUD_RUN_REVISION_FILTERS,
GCPSTSServiceAccountAttributes.JSON_PROPERTY_HOST_FILTERS,
GCPSTSServiceAccountAttributes.JSON_PROPERTY_IS_CSPM_ENABLED,
GCPSTSServiceAccountAttributes.JSON_PROPERTY_IS_SECURITY_COMMAND_CENTER_ENABLED,
@@ -41,6 +42,10 @@ public class GCPSTSServiceAccountAttributes {
public static final String JSON_PROPERTY_CLIENT_EMAIL = "client_email";
private String clientEmail;
+ public static final String JSON_PROPERTY_CLOUD_RUN_REVISION_FILTERS =
+ "cloud_run_revision_filters";
+ private List cloudRunRevisionFilters = null;
+
public static final String JSON_PROPERTY_HOST_FILTERS = "host_filters";
private List hostFilters = null;
@@ -126,6 +131,38 @@ public void setClientEmail(String clientEmail) {
this.clientEmail = clientEmail;
}
+ public GCPSTSServiceAccountAttributes cloudRunRevisionFilters(
+ List cloudRunRevisionFilters) {
+ this.cloudRunRevisionFilters = cloudRunRevisionFilters;
+ return this;
+ }
+
+ public GCPSTSServiceAccountAttributes addCloudRunRevisionFiltersItem(
+ String cloudRunRevisionFiltersItem) {
+ if (this.cloudRunRevisionFilters == null) {
+ this.cloudRunRevisionFilters = new ArrayList<>();
+ }
+ this.cloudRunRevisionFilters.add(cloudRunRevisionFiltersItem);
+ return this;
+ }
+
+ /**
+ * List of filters to limit the Cloud Run revisions that are pulled into Datadog by using tags.
+ * Only Cloud Run revision resources that apply to specified filters are imported into Datadog.
+ *
+ * @return cloudRunRevisionFilters
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CLOUD_RUN_REVISION_FILTERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getCloudRunRevisionFilters() {
+ return cloudRunRevisionFilters;
+ }
+
+ public void setCloudRunRevisionFilters(List cloudRunRevisionFilters) {
+ this.cloudRunRevisionFilters = cloudRunRevisionFilters;
+ }
+
public GCPSTSServiceAccountAttributes hostFilters(List hostFilters) {
this.hostFilters = hostFilters;
return this;
@@ -282,6 +319,8 @@ public boolean equals(Object o) {
return Objects.equals(this.accountTags, gcpstsServiceAccountAttributes.accountTags)
&& Objects.equals(this.automute, gcpstsServiceAccountAttributes.automute)
&& Objects.equals(this.clientEmail, gcpstsServiceAccountAttributes.clientEmail)
+ && Objects.equals(
+ this.cloudRunRevisionFilters, gcpstsServiceAccountAttributes.cloudRunRevisionFilters)
&& Objects.equals(this.hostFilters, gcpstsServiceAccountAttributes.hostFilters)
&& Objects.equals(this.isCspmEnabled, gcpstsServiceAccountAttributes.isCspmEnabled)
&& Objects.equals(
@@ -300,6 +339,7 @@ public int hashCode() {
accountTags,
automute,
clientEmail,
+ cloudRunRevisionFilters,
hostFilters,
isCspmEnabled,
isSecurityCommandCenterEnabled,
@@ -314,6 +354,9 @@ public String toString() {
sb.append(" accountTags: ").append(toIndentedString(accountTags)).append("\n");
sb.append(" automute: ").append(toIndentedString(automute)).append("\n");
sb.append(" clientEmail: ").append(toIndentedString(clientEmail)).append("\n");
+ sb.append(" cloudRunRevisionFilters: ")
+ .append(toIndentedString(cloudRunRevisionFilters))
+ .append("\n");
sb.append(" hostFilters: ").append(toIndentedString(hostFilters)).append("\n");
sb.append(" isCspmEnabled: ").append(toIndentedString(isCspmEnabled)).append("\n");
sb.append(" isSecurityCommandCenterEnabled: ")
diff --git a/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.freeze b/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.freeze
index 3677f3cb1d1..3898833e13c 100644
--- a/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.freeze
+++ b/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.freeze
@@ -1 +1 @@
-2023-12-20T13:18:07.717Z
\ No newline at end of file
+2024-01-31T21:16:03.254Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.json b/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.json
index 63cb634e4d2..47560166ce7 100644
--- a/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.json
+++ b/src/test/resources/cassettes/features/v1/Create_a_GCP_integration_returns_OK_response.json
@@ -3,7 +3,7 @@
"httpRequest": {
"body": {
"type": "JSON",
- "json": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"e5bbc86fb86ab202@example.com\",\"client_id\":\"170307828717030782870\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}"
+ "json": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"3af93b0f1c973838@example.com\",\"client_id\":\"170673576317067357630\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"cloud_run_revision_filters\":[\"dr:dre\"],\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}"
},
"headers": {},
"method": "POST",
@@ -27,13 +27,13 @@
"timeToLive": {
"unlimited": true
},
- "id": "b2cb47eb-6ade-915c-2537-254b4d580891"
+ "id": "39099d42-0474-c609-6e87-c89c0c161c61"
},
{
"httpRequest": {
"body": {
"type": "JSON",
- "json": "{\"client_email\":\"e5bbc86fb86ab202@example.com\",\"client_id\":\"170307828717030782870\",\"project_id\":\"datadog-apitest\"}"
+ "json": "{\"client_email\":\"3af93b0f1c973838@example.com\",\"client_id\":\"170673576317067357630\",\"project_id\":\"datadog-apitest\"}"
},
"headers": {},
"method": "DELETE",
@@ -57,6 +57,6 @@
"timeToLive": {
"unlimited": true
},
- "id": "ec417b17-fee2-cfb4-bfe3-bcf49d0d30e7"
+ "id": "06f3a965-9732-2f41-7987-0a809aaab104"
}
]
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.freeze b/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.freeze
index d9857f82457..5a6248b6359 100644
--- a/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.freeze
+++ b/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.freeze
@@ -1 +1 @@
-2024-01-26T10:20:27.109Z
\ No newline at end of file
+2024-02-14T09:56:55.385Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.json b/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.json
index df6a7dcecd2..d228bf30e6c 100644
--- a/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.json
+++ b/src/test/resources/cassettes/features/v1/Create_a_global_variable_from_test_returns_OK_response.json
@@ -3,7 +3,7 @@
"httpRequest": {
"body": {
"type": "JSON",
- "json": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1706264427\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1706264427\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}"
+ "json": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1707904615\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1707904615\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}"
},
"headers": {},
"method": "POST",
@@ -12,7 +12,7 @@
"secure": true
},
"httpResponse": {
- "body": "{\"public_id\":\"izb-9gc-92w\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1706264427\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:27.717659+00:00\",\"modified_at\":\"2024-01-26T10:20:27.717659+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"79d-ysr-wwj\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1706264427\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446065,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}",
+ "body": "{\"public_id\":\"6td-hmb-t6f\",\"name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1707904615\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-02-14T09:56:55.729504+00:00\",\"modified_at\":\"2024-02-14T09:56:55.729504+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"7g9-x3d-mid\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\",\"id\":\"xnr-5zr-293\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_a_global_variable_from_test_returns_OK_response-1707904615\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":139518955,\"org_id\":321813,\"modified_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\"}}",
"headers": {
"Content-Type": [
"application/json"
@@ -27,13 +27,13 @@
"timeToLive": {
"unlimited": true
},
- "id": "6f009174-df89-cdc1-a7f6-59377b3e4c0f"
+ "id": "4726b482-6095-9663-751f-d8e1e5058a6d"
},
{
"httpRequest": {
"body": {
"type": "JSON",
- "json": "{\"description\":\"\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1706264427\",\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_public_id\":\"izb-9gc-92w\",\"tags\":[],\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}"
+ "json": "{\"description\":\"\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1707904615\",\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_public_id\":\"6td-hmb-t6f\",\"tags\":[],\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}"
},
"headers": {},
"method": "POST",
@@ -42,7 +42,7 @@
"secure": true
},
"httpResponse": {
- "body": "{\"id\":\"a586a64d-cd9f-4983-8d00-81dcefb919ac\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1706264427\",\"description\":\"\",\"type\":\"variable\",\"tags\":[],\"parse_test_public_id\":\"izb-9gc-92w\",\"parse_test_name\":null,\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_extracted_at\":null,\"is_totp\":null,\"is_fido\":null,\"last_error\":null,\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}\n",
+ "body": "{\"id\":\"b8daafc5-09e1-4f63-9f44-c973b2ec57dc\",\"name\":\"GLOBAL_VARIABLE_PAYLOAD_TESTCREATEAGLOBALVARIABLEFROMTESTRETURNSOKRESPONSE1707904615\",\"description\":\"\",\"type\":\"variable\",\"tags\":[],\"parse_test_public_id\":\"6td-hmb-t6f\",\"parse_test_name\":null,\"parse_test_options\":{\"localVariableName\":\"EXTRACTED_VALUE\",\"type\":\"local_variable\"},\"parse_test_extracted_at\":null,\"is_totp\":null,\"is_fido\":null,\"last_error\":null,\"value\":{\"options\":{\"totp_parameters\":{\"digits\":6,\"refresh_interval\":30}},\"secure\":false,\"value\":\"\"}}\n",
"headers": {
"Content-Type": [
"application/json"
@@ -57,13 +57,13 @@
"timeToLive": {
"unlimited": true
},
- "id": "0d92c2e4-7792-06e8-c45c-02f652cb21e4"
+ "id": "847424fb-dd46-9b07-8c91-3a9b3f81056e"
},
{
"httpRequest": {
"headers": {},
"method": "DELETE",
- "path": "/api/v1/synthetics/variables/a586a64d-cd9f-4983-8d00-81dcefb919ac",
+ "path": "/api/v1/synthetics/variables/b8daafc5-09e1-4f63-9f44-c973b2ec57dc",
"keepAlive": false,
"secure": true
},
@@ -82,13 +82,13 @@
"timeToLive": {
"unlimited": true
},
- "id": "dcaa0b38-3566-7c0a-688e-7b90e24d285e"
+ "id": "171e1644-a37e-1d95-7f11-cf7d90cef236"
},
{
"httpRequest": {
"body": {
"type": "JSON",
- "json": "{\"public_ids\":[\"izb-9gc-92w\"]}"
+ "json": "{\"public_ids\":[\"6td-hmb-t6f\"]}"
},
"headers": {},
"method": "POST",
@@ -97,7 +97,7 @@
"secure": true
},
"httpResponse": {
- "body": "{\"deleted_tests\":[{\"public_id\":\"izb-9gc-92w\",\"deleted_at\":\"2024-01-26T10:20:29.374347+00:00\"}]}\n",
+ "body": "{\"deleted_tests\":[{\"public_id\":\"6td-hmb-t6f\",\"deleted_at\":\"2024-02-14T09:56:56.985642+00:00\"}]}\n",
"headers": {
"Content-Type": [
"application/json"
@@ -112,6 +112,6 @@
"timeToLive": {
"unlimited": true
},
- "id": "86267211-1e7e-ed0d-259e-2f235ae804a3"
+ "id": "0e9cc95d-8a70-460b-3da2-08961d72ca43"
}
]
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.freeze b/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.freeze
index 8113d86f364..5786b386acd 100644
--- a/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.freeze
+++ b/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.freeze
@@ -1 +1 @@
-2024-01-26T10:20:47.505Z
\ No newline at end of file
+2024-02-14T09:52:43.647Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.json b/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.json
index e7b60ba52b3..8f8064d7385 100644
--- a/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.json
+++ b/src/test/resources/cassettes/features/v1/Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response.json
@@ -3,7 +3,7 @@
"httpRequest": {
"body": {
"type": "JSON",
- "json": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1706264447\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1706264447\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}"
+ "json": "{\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\"}]},\"locations\":[\"aws:us-east-2\"],\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1707904363\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1707904363\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"subtype\":\"multi\",\"tags\":[\"testing:api\"],\"type\":\"api\"}"
},
"headers": {},
"method": "POST",
@@ -12,7 +12,7 @@
"secure": true
},
"httpResponse": {
- "body": "{\"public_id\":\"gvd-8ek-8j4\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1706264447\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-01-26T10:20:47.990304+00:00\",\"modified_at\":\"2024-01-26T10:20:47.990304+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"tj8-64v-kmn\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1706264447\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":138446072,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}",
+ "body": "{\"public_id\":\"49h-gaa-dte\",\"name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1707904363\",\"status\":\"live\",\"type\":\"api\",\"tags\":[\"testing:api\"],\"created_at\":\"2024-02-14T09:52:44.302597+00:00\",\"modified_at\":\"2024-02-14T09:52:44.302597+00:00\",\"config\":{\"configVariables\":[{\"example\":\"content-type\",\"name\":\"PROPERTY\",\"pattern\":\"content-type\",\"type\":\"text\"}],\"steps\":[{\"allowFailure\":true,\"assertions\":[{\"operator\":\"is\",\"target\":200,\"type\":\"statusCode\"}],\"extractedValues\":[{\"field\":\"server\",\"name\":\"EXTRACTED_VALUE\",\"parser\":{\"type\":\"raw\"},\"secure\":true,\"type\":\"http_header\"}],\"isCritical\":true,\"name\":\"request is sent\",\"request\":{\"method\":\"GET\",\"timeout\":10,\"url\":\"https://datadoghq.com\"},\"retry\":{\"count\":5,\"interval\":1000},\"subtype\":\"http\",\"id\":\"nt6-mfm-kis\"},{\"allowFailure\":false,\"assertions\":[{\"operator\":\"lessThan\",\"target\":1000,\"type\":\"responseTime\"}],\"extractedValues\":[],\"isCritical\":true,\"name\":\"GRPC CALL\",\"request\":{\"callType\":\"unary\",\"compressedJsonDescriptor\":\"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\"host\":\"grpcbin.test.k6.io\",\"message\":\"{}\",\"metadata\":{},\"method\":\"Index\",\"port\":9000,\"service\":\"grpcbin.GRPCBin\"},\"retry\":{\"count\":0,\"interval\":300},\"subtype\":\"grpc\",\"id\":\"ksz-bri-vu5\"}]},\"message\":\"BDD test payload: synthetics_api_test_multi_step_payload.json\",\"options\":{\"accept_self_signed\":false,\"allow_insecure\":true,\"follow_redirects\":true,\"min_failure_duration\":10,\"min_location_failed\":1,\"monitor_name\":\"Test-Create_an_API_test_with_multi_subtype_returns_OK_Returns_the_created_test_details_response-1707904363\",\"monitor_priority\":5,\"retry\":{\"count\":3,\"interval\":1000},\"tick_every\":60},\"locations\":[\"aws:us-east-2\"],\"subtype\":\"multi\",\"created_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"},\"deleted_at\":null,\"monitor_id\":139518783,\"org_id\":569509,\"modified_by\":{\"name\":\"Frog\",\"handle\":\"frog@datadoghq.com\",\"email\":\"frog@datadoghq.com\"}}",
"headers": {
"Content-Type": [
"application/json"
@@ -27,13 +27,13 @@
"timeToLive": {
"unlimited": true
},
- "id": "16b71032-f529-c6bd-020d-ab1b921b5307"
+ "id": "f71c7ca7-9265-b019-27f0-1c9f8f766912"
},
{
"httpRequest": {
"body": {
"type": "JSON",
- "json": "{\"public_ids\":[\"gvd-8ek-8j4\"]}"
+ "json": "{\"public_ids\":[\"49h-gaa-dte\"]}"
},
"headers": {},
"method": "POST",
@@ -42,7 +42,7 @@
"secure": true
},
"httpResponse": {
- "body": "{\"deleted_tests\":[{\"public_id\":\"gvd-8ek-8j4\",\"deleted_at\":\"2024-01-26T10:20:48.529333+00:00\"}]}\n",
+ "body": "{\"deleted_tests\":[{\"public_id\":\"49h-gaa-dte\",\"deleted_at\":\"2024-02-14T09:52:44.978031+00:00\"}]}\n",
"headers": {
"Content-Type": [
"application/json"
@@ -57,6 +57,6 @@
"timeToLive": {
"unlimited": true
},
- "id": "1ccaa9c7-993a-7509-c179-1a7b61c7f3b6"
+ "id": "5bdd6ed7-88b8-23f3-e96b-63759879ebeb"
}
]
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v1/Update_a_GCP_integration_cloud_run_revision_filters_returns_OK_response.freeze b/src/test/resources/cassettes/features/v1/Update_a_GCP_integration_cloud_run_revision_filters_returns_OK_response.freeze
new file mode 100644
index 00000000000..6f951f6ba55
--- /dev/null
+++ b/src/test/resources/cassettes/features/v1/Update_a_GCP_integration_cloud_run_revision_filters_returns_OK_response.freeze
@@ -0,0 +1 @@
+2024-01-31T21:16:03.829Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v1/Update_a_GCP_integration_cloud_run_revision_filters_returns_OK_response.json b/src/test/resources/cassettes/features/v1/Update_a_GCP_integration_cloud_run_revision_filters_returns_OK_response.json
new file mode 100644
index 00000000000..fecb06c658e
--- /dev/null
+++ b/src/test/resources/cassettes/features/v1/Update_a_GCP_integration_cloud_run_revision_filters_returns_OK_response.json
@@ -0,0 +1,92 @@
+[
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"edcdf6542ac6e6b6@example.com\",\"client_id\":\"170673576317067357630\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}"
+ },
+ "headers": {},
+ "method": "POST",
+ "path": "/api/v1/integration/gcp",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{}\n",
+ "headers": {
+ "Content-Type": [
+ "application/json"
+ ]
+ },
+ "statusCode": 200,
+ "reasonPhrase": "OK"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "d5af362c-fd17-a774-8951-26db7016b73d"
+ },
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"client_email\":\"edcdf6542ac6e6b6@example.com\",\"client_id\":\"170673576317067357630\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL\",\"cloud_run_revision_filters\":[\"merp:derp\"],\"host_filters\":\"key:value,filter:example\",\"is_cspm_enabled\":true,\"is_security_command_center_enabled\":true,\"private_key\":\"private_key\",\"private_key_id\":\"123456789abcdefghi123456789abcdefghijklm\",\"project_id\":\"datadog-apitest\",\"resource_collection_enabled\":true,\"token_uri\":\"https://accounts.google.com/o/oauth2/token\",\"type\":\"service_account\"}"
+ },
+ "headers": {},
+ "method": "PUT",
+ "path": "/api/v1/integration/gcp",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{}\n",
+ "headers": {
+ "Content-Type": [
+ "application/json"
+ ]
+ },
+ "statusCode": 200,
+ "reasonPhrase": "OK"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "b6bc74a2-d4a7-d7dc-d8c4-a4480213d777"
+ },
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"client_email\":\"edcdf6542ac6e6b6@example.com\",\"client_id\":\"170673576317067357630\",\"project_id\":\"datadog-apitest\"}"
+ },
+ "headers": {},
+ "method": "DELETE",
+ "path": "/api/v1/integration/gcp",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{}\n",
+ "headers": {
+ "Content-Type": [
+ "application/json"
+ ]
+ },
+ "statusCode": 200,
+ "reasonPhrase": "OK"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "a91e4fae-e284-89f6-9bbc-f410954d7806"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Create_a_new_entry_for_your_service_account_with_cloud_run_revision_filters_enabled_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_new_entry_for_your_service_account_with_cloud_run_revision_filters_enabled_returns_OK_response.freeze
new file mode 100644
index 00000000000..5078f78fe6d
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Create_a_new_entry_for_your_service_account_with_cloud_run_revision_filters_enabled_returns_OK_response.freeze
@@ -0,0 +1 @@
+2024-01-31T21:16:04.924Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Create_a_new_entry_for_your_service_account_with_cloud_run_revision_filters_enabled_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_a_new_entry_for_your_service_account_with_cloud_run_revision_filters_enabled_returns_OK_response.json
new file mode 100644
index 00000000000..3de251f3887
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Create_a_new_entry_for_your_service_account_with_cloud_run_revision_filters_enabled_returns_OK_response.json
@@ -0,0 +1,57 @@
+[
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"data\":{\"attributes\":{\"client_email\":\"feb37f50ee7be467@test-project.iam.gserviceaccount.com\",\"cloud_run_revision_filters\":[\"meh:bleh\"],\"host_filters\":[]},\"type\":\"gcp_service_account\"}}"
+ },
+ "headers": {},
+ "method": "POST",
+ "path": "/api/v2/integration/gcp/accounts",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"data\":{\"type\":\"gcp_service_account\",\"attributes\":{\"cloud_run_revision_filters\":[\"meh:bleh\"],\"resource_collection_enabled\":false,\"host_filters\":[],\"automute\":false,\"is_cspm_enabled\":false,\"account_tags\":[],\"client_email\":\"feb37f50ee7be467@test-project.iam.gserviceaccount.com\",\"is_security_command_center_enabled\":false},\"id\":\"e1157377-8d5c-4a94-9730-10c3fa9d6ff5\"}}\n",
+ "headers": {
+ "Content-Type": [
+ "application/json"
+ ]
+ },
+ "statusCode": 201,
+ "reasonPhrase": "Created"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "47a66398-572b-0d1d-83f9-556e64ce5555"
+ },
+ {
+ "httpRequest": {
+ "headers": {},
+ "method": "DELETE",
+ "path": "/api/v2/integration/gcp/accounts/e1157377-8d5c-4a94-9730-10c3fa9d6ff5",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "headers": {
+ "Content-Type": [
+ "text/html; charset=utf-8"
+ ]
+ },
+ "statusCode": 204,
+ "reasonPhrase": "No Content"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "1a91e883-4df7-6cf0-f341-faea9cbad7e6"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Update_STS_Service_Account_returns_OK_response_with_cloud_run_revision_filters.freeze b/src/test/resources/cassettes/features/v2/Update_STS_Service_Account_returns_OK_response_with_cloud_run_revision_filters.freeze
new file mode 100644
index 00000000000..92757ea39aa
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Update_STS_Service_Account_returns_OK_response_with_cloud_run_revision_filters.freeze
@@ -0,0 +1 @@
+2024-01-31T21:16:05.705Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Update_STS_Service_Account_returns_OK_response_with_cloud_run_revision_filters.json b/src/test/resources/cassettes/features/v2/Update_STS_Service_Account_returns_OK_response_with_cloud_run_revision_filters.json
new file mode 100644
index 00000000000..dfb03b623d7
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Update_STS_Service_Account_returns_OK_response_with_cloud_run_revision_filters.json
@@ -0,0 +1,87 @@
+[
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"data\":{\"attributes\":{\"client_email\":\"a8e08a7fa29a1adb@example.com\",\"host_filters\":[]},\"type\":\"gcp_service_account\"}}"
+ },
+ "headers": {},
+ "method": "POST",
+ "path": "/api/v2/integration/gcp/accounts",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"data\":{\"type\":\"gcp_service_account\",\"id\":\"3e6ad31b-2da5-4ad4-878a-4d290520173b\",\"attributes\":{\"account_tags\":[],\"resource_collection_enabled\":false,\"is_cspm_enabled\":false,\"automute\":false,\"host_filters\":[],\"is_security_command_center_enabled\":false,\"cloud_run_revision_filters\":[],\"client_email\":\"a8e08a7fa29a1adb@example.com\"}}}\n",
+ "headers": {
+ "Content-Type": [
+ "application/json"
+ ]
+ },
+ "statusCode": 201,
+ "reasonPhrase": "Created"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "2c875aa6-d8b2-2095-3d2b-892ece8be85c"
+ },
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"data\":{\"attributes\":{\"client_email\":\"a8e08a7fa29a1adb@example.com\",\"cloud_run_revision_filters\":[\"merp:derp\"]},\"id\":\"3e6ad31b-2da5-4ad4-878a-4d290520173b\",\"type\":\"gcp_service_account\"}}"
+ },
+ "headers": {},
+ "method": "PATCH",
+ "path": "/api/v2/integration/gcp/accounts/3e6ad31b-2da5-4ad4-878a-4d290520173b",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"data\":{\"type\":\"gcp_service_account\",\"id\":\"3e6ad31b-2da5-4ad4-878a-4d290520173b\",\"attributes\":{\"cloud_run_revision_filters\":[\"merp:derp\"],\"host_filters\":[],\"automute\":false,\"is_security_command_center_enabled\":false,\"account_tags\":[],\"client_email\":\"a8e08a7fa29a1adb@example.com\",\"is_cspm_enabled\":false,\"resource_collection_enabled\":false}}}\n",
+ "headers": {
+ "Content-Type": [
+ "application/json"
+ ]
+ },
+ "statusCode": 201,
+ "reasonPhrase": "Created"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "c442f49c-76e2-3033-c03e-a5ff456fe64a"
+ },
+ {
+ "httpRequest": {
+ "headers": {},
+ "method": "DELETE",
+ "path": "/api/v2/integration/gcp/accounts/3e6ad31b-2da5-4ad4-878a-4d290520173b",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "headers": {
+ "Content-Type": [
+ "text/html; charset=utf-8"
+ ]
+ },
+ "statusCode": 204,
+ "reasonPhrase": "No Content"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "749dee69-7030-13d2-fdb2-a6627dea1d7f"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/com/datadog/api/client/v1/api/gcp_integration.feature b/src/test/resources/com/datadog/api/client/v1/api/gcp_integration.feature
index cc078be2f03..2b656ab2023 100644
--- a/src/test/resources/com/datadog/api/client/v1/api/gcp_integration.feature
+++ b/src/test/resources/com/datadog/api/client/v1/api/gcp_integration.feature
@@ -13,21 +13,21 @@ Feature: GCP Integration
@generated @skip @team:DataDog/gcp-integrations
Scenario: Create a GCP integration returns "Bad Request" response
Given new "CreateGCPIntegration" request
- And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
+ And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "cloud_run_revision_filters": ["$KEY:$VALUE"], "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
When the request is sent
Then the response status is 400 Bad Request
@team:DataDog/gcp-integrations
Scenario: Create a GCP integration returns "OK" response
Given new "CreateGCPIntegration" request
- And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "{{unique_hash}}@example.com", "client_id": "{{ timestamp("now") }}{{ timestamp("now") }}0", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
+ And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "{{unique_hash}}@example.com", "client_id": "{{ timestamp("now") }}{{ timestamp("now") }}0", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "host_filters": "key:value,filter:example", "cloud_run_revision_filters": ["dr:dre"], "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
When the request is sent
Then the response status is 200 OK
@generated @skip @team:DataDog/gcp-integrations
Scenario: Delete a GCP integration returns "Bad Request" response
Given new "DeleteGCPIntegration" request
- And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
+ And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "cloud_run_revision_filters": ["$KEY:$VALUE"], "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
When the request is sent
Then the response status is 400 Bad Request
@@ -51,10 +51,18 @@ Feature: GCP Integration
When the request is sent
Then the response status is 200 OK
+ @team:DataDog/gcp-integrations
+ Scenario: Update a GCP integration cloud run revision filters returns "OK" response
+ Given there is a valid "gcp_account" in the system
+ And new "UpdateGCPIntegration" request
+ And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "{{unique_hash}}@example.com", "client_id": "{{ timestamp("now") }}{{ timestamp("now") }}0", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "host_filters": "key:value,filter:example", "cloud_run_revision_filters": ["merp:derp"], "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
+ When the request is sent
+ Then the response status is 200 OK
+
@generated @skip @team:DataDog/gcp-integrations
Scenario: Update a GCP integration returns "Bad Request" response
Given new "UpdateGCPIntegration" request
- And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
+ And body with value {"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "client_email": "api-dev@datadog-sandbox.iam.gserviceaccount.com", "client_id": "123456712345671234567", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/$CLIENT_EMAIL", "cloud_run_revision_filters": ["$KEY:$VALUE"], "errors": ["*"], "host_filters": "key:value,filter:example", "is_cspm_enabled": true, "is_security_command_center_enabled": true, "private_key": "private_key", "private_key_id": "123456789abcdefghi123456789abcdefghijklm", "project_id": "datadog-apitest", "resource_collection_enabled": true, "token_uri": "https://accounts.google.com/o/oauth2/token", "type": "service_account"}
When the request is sent
Then the response status is 400 Bad Request
diff --git a/src/test/resources/com/datadog/api/client/v1/api/given.json b/src/test/resources/com/datadog/api/client/v1/api/given.json
index 205b1ecb2f1..6ba2f4e62d0 100644
--- a/src/test/resources/com/datadog/api/client/v1/api/given.json
+++ b/src/test/resources/com/datadog/api/client/v1/api/given.json
@@ -250,7 +250,7 @@
"parameters": [
{
"name": "body",
- "value": "{\n \"config\": {\n \"configVariables\": [\n {\n \"example\": \"content-type\",\n \"name\": \"PROPERTY\",\n \"pattern\": \"content-type\",\n \"type\": \"text\"\n }\n ],\n \"steps\": [\n {\n \"allowFailure\": true,\n \"assertions\": [\n {\n \"operator\": \"is\",\n \"type\": \"statusCode\",\n \"target\": 200\n }\n ],\n \"extractedValues\": [\n {\n \"field\": \"server\",\n \"name\": \"EXTRACTED_VALUE\",\n \"parser\": {\n \"type\": \"raw\"\n },\n \"type\": \"http_header\",\n \"secure\": true\n }\n ],\n \"isCritical\": true,\n \"name\": \"request is sent\",\n \"request\": {\n \"method\": \"GET\",\n \"timeout\": 10,\n \"url\": \"https://datadoghq.com\"\n },\n \"retry\": {\n \"count\": 5,\n \"interval\": 1000\n },\n \"subtype\": \"http\"\n }\n ]\n },\n \"locations\": [\"aws:us-east-2\"],\n \"message\": \"BDD test payload: synthetics_api_test_multi_step_payload.json\",\n \"name\": \"{{ unique }}\",\n \"options\": {\n \"accept_self_signed\": false,\n \"allow_insecure\": true,\n \"follow_redirects\": true,\n \"min_failure_duration\": 10,\n \"min_location_failed\": 1,\n \"monitor_name\": \"{{ unique }}\",\n \"monitor_priority\": 5,\n \"retry\": { \"count\": 3, \"interval\": 1000 },\n \"tick_every\": 60\n },\n \"subtype\": \"multi\",\n \"tags\": [\"testing:api\"],\n \"type\": \"api\"\n}\n"
+ "value": "{\n \"config\": {\n \"configVariables\": [\n {\n \"example\": \"content-type\",\n \"name\": \"PROPERTY\",\n \"pattern\": \"content-type\",\n \"type\": \"text\"\n }\n ],\n \"steps\": [\n {\n \"allowFailure\": true,\n \"assertions\": [\n {\n \"operator\": \"is\",\n \"type\": \"statusCode\",\n \"target\": 200\n }\n ],\n \"extractedValues\": [\n {\n \"field\": \"server\",\n \"name\": \"EXTRACTED_VALUE\",\n \"parser\": {\n \"type\": \"raw\"\n },\n \"type\": \"http_header\",\n \"secure\": true\n }\n ],\n \"isCritical\": true,\n \"name\": \"request is sent\",\n \"request\": {\n \"method\": \"GET\",\n \"timeout\": 10,\n \"url\": \"https://datadoghq.com\"\n },\n \"retry\": {\n \"count\": 5,\n \"interval\": 1000\n },\n \"subtype\": \"http\"\n },\n {\n \"name\": \"GRPC CALL\",\n \"subtype\": \"grpc\",\n \"extractedValues\": [],\n \"allowFailure\": false,\n \"isCritical\": true,\n \"retry\": {\n \"count\": 0,\n \"interval\": 300\n },\n \"assertions\": [\n {\n \"operator\": \"lessThan\",\n \"type\": \"responseTime\",\n \"target\": 1000\n }\n ],\n \"request\": {\n \"host\": \"grpcbin.test.k6.io\",\n \"port\": 9000,\n \"service\": \"grpcbin.GRPCBin\",\n \"method\": \"Index\",\n \"message\": \"{}\",\n \"compressedJsonDescriptor\": \"eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==\",\n \"metadata\": {},\n \"callType\": \"unary\"\n }\n }\n ]\n },\n \"locations\": [\"aws:us-east-2\"],\n \"message\": \"BDD test payload: synthetics_api_test_multi_step_payload.json\",\n \"name\": \"{{ unique }}\",\n \"options\": {\n \"accept_self_signed\": false,\n \"allow_insecure\": true,\n \"follow_redirects\": true,\n \"min_failure_duration\": 10,\n \"min_location_failed\": 1,\n \"monitor_name\": \"{{ unique }}\",\n \"monitor_priority\": 5,\n \"retry\": { \"count\": 3, \"interval\": 1000 },\n \"tick_every\": 60\n },\n \"subtype\": \"multi\",\n \"tags\": [\"testing:api\"],\n \"type\": \"api\"\n}\n"
}
],
"step": "there is a valid \"synthetics_api_test_multi_step\" in the system",
diff --git a/src/test/resources/com/datadog/api/client/v1/api/synthetics.feature b/src/test/resources/com/datadog/api/client/v1/api/synthetics.feature
index 9b9722550cc..36f74743154 100644
--- a/src/test/resources/com/datadog/api/client/v1/api/synthetics.feature
+++ b/src/test/resources/com/datadog/api/client/v1/api/synthetics.feature
@@ -203,6 +203,7 @@ Feature: Synthetics
And the response "config.steps[0].retry.count" is equal to 5
And the response "config.steps[0].retry.interval" is equal to 1000
And the response "config.steps[0].extractedValues[0].secure" is equal to true
+ And the response "config.steps[1].request.host" is equal to "grpcbin.test.k6.io"
@generated @skip @team:DataDog/synthetics-app
Scenario: Delete a global variable returns "JSON format is wrong" response
diff --git a/src/test/resources/com/datadog/api/client/v1/api/synthetics_api_test_multi_step_payload.json b/src/test/resources/com/datadog/api/client/v1/api/synthetics_api_test_multi_step_payload.json
index f514958caa2..28778436156 100644
--- a/src/test/resources/com/datadog/api/client/v1/api/synthetics_api_test_multi_step_payload.json
+++ b/src/test/resources/com/datadog/api/client/v1/api/synthetics_api_test_multi_step_payload.json
@@ -41,6 +41,34 @@
"interval": 1000
},
"subtype": "http"
+ },
+ {
+ "name": "GRPC CALL",
+ "subtype": "grpc",
+ "extractedValues": [],
+ "allowFailure": false,
+ "isCritical": true,
+ "retry": {
+ "count": 0,
+ "interval": 300
+ },
+ "assertions": [
+ {
+ "operator": "lessThan",
+ "type": "responseTime",
+ "target": 1000
+ }
+ ],
+ "request": {
+ "host": "grpcbin.test.k6.io",
+ "port": 9000,
+ "service": "grpcbin.GRPCBin",
+ "method": "Index",
+ "message": "{}",
+ "compressedJsonDescriptor": "eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==",
+ "metadata": {},
+ "callType": "unary"
+ }
}
]
},
diff --git a/src/test/resources/com/datadog/api/client/v2/api/gcp_integration.feature b/src/test/resources/com/datadog/api/client/v2/api/gcp_integration.feature
index e18714ba2e8..6085d6ed2f8 100644
--- a/src/test/resources/com/datadog/api/client/v2/api/gcp_integration.feature
+++ b/src/test/resources/com/datadog/api/client/v2/api/gcp_integration.feature
@@ -34,14 +34,14 @@ Feature: GCP Integration
@generated @skip @team:DataDog/gcp-integrations
Scenario: Create a new entry for your service account returns "Bad Request" response
Given new "CreateGCPSTSAccount" request
- And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}}
+ And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}}
When the request is sent
Then the response status is 400 Bad Request
@generated @skip @team:DataDog/gcp-integrations
Scenario: Create a new entry for your service account returns "Conflict" response
Given new "CreateGCPSTSAccount" request
- And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}}
+ And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "type": "gcp_service_account"}}
When the request is sent
Then the response status is 409 Conflict
@@ -64,6 +64,16 @@ Feature: GCP Integration
And the response "data.attributes.client_email" is equal to "{{ unique_hash }}@test-project.iam.gserviceaccount.com"
And the response "data.attributes.account_tags" is equal to ["lorem", "ipsum"]
+ @team:DataDog/gcp-integrations
+ Scenario: Create a new entry for your service account with cloud run revision filters enabled returns "OK" response
+ Given new "CreateGCPSTSAccount" request
+ And body with value {"data": {"attributes": {"cloud_run_revision_filters": ["meh:bleh"], "client_email": "{{ unique_hash }}@test-project.iam.gserviceaccount.com", "host_filters": []}, "type": "gcp_service_account"}}
+ When the request is sent
+ Then the response status is 201 OK
+ And the response "data.type" is equal to "gcp_service_account"
+ And the response "data.attributes.client_email" is equal to "{{ unique_hash }}@test-project.iam.gserviceaccount.com"
+ And the response "data.attributes.cloud_run_revision_filters" is equal to ["meh:bleh"]
+
@team:DataDog/gcp-integrations
Scenario: Create a new entry for your service account with cspm enabled returns "OK" response
Given new "CreateGCPSTSAccount" request
@@ -140,7 +150,7 @@ Feature: GCP Integration
Scenario: Update STS Service Account returns "Bad Request" response
Given new "UpdateGCPSTSAccount" request
And request contains "account_id" parameter from "REPLACE.ME"
- And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}}
+ And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}}
When the request is sent
Then the response status is 400 Bad Request
@@ -148,7 +158,7 @@ Feature: GCP Integration
Scenario: Update STS Service Account returns "Not Found" response
Given new "UpdateGCPSTSAccount" request
And request contains "account_id" parameter from "REPLACE.ME"
- And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}}
+ And body with value {"data": {"attributes": {"account_tags": [], "client_email": "datadog-service-account@test-project.iam.gserviceaccount.com", "cloud_run_revision_filters": ["$KEY:$VALUE"], "host_filters": [], "is_security_command_center_enabled": true}, "id": "d291291f-12c2-22g4-j290-123456678897", "type": "gcp_service_account"}}
When the request is sent
Then the response status is 404 Not Found
@@ -161,6 +171,15 @@ Feature: GCP Integration
When the request is sent
Then the response status is 201 OK
+ @team:DataDog/gcp-integrations
+ Scenario: Update STS Service Account returns "OK" response with cloud run revision filters
+ Given there is a valid "gcp_sts_account" in the system
+ And new "UpdateGCPSTSAccount" request
+ And request contains "account_id" parameter from "gcp_sts_account.data.id"
+ And body with value {"data": {"attributes": {"client_email": "{{ unique_hash }}@example.com", "cloud_run_revision_filters": ["merp:derp"]}, "id": "{{ gcp_sts_account.data.id }}", "type": "gcp_service_account"}}
+ When the request is sent
+ Then the response status is 201 OK
+
@team:DataDog/gcp-integrations
Scenario: Update STS Service Account returns "OK" response with enable resource collection turned on
Given there is a valid "gcp_sts_account" in the system