From 728b92a79832750595e9e652e38fc4b360db1f2f Mon Sep 17 00:00:00 2001 From: David Tapiador Date: Wed, 26 Aug 2026 11:37:33 +0200 Subject: [PATCH 1/2] Add tests for IaC managed-by header --- .../com/datadog/api/client/ApiClientTest.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/test/java/com/datadog/api/client/ApiClientTest.java diff --git a/src/test/java/com/datadog/api/client/ApiClientTest.java b/src/test/java/com/datadog/api/client/ApiClientTest.java new file mode 100644 index 00000000000..d78d773f87c --- /dev/null +++ b/src/test/java/com/datadog/api/client/ApiClientTest.java @@ -0,0 +1,54 @@ +package com.datadog.api.client; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class ApiClientTest { + + @Test + public void testIsIaCDisabledByDefault() { + ApiClient client = new ApiClient(); + assertFalse(client.getIsIaC()); + assertFalse(client.defaultHeaderMap.containsKey("X-Datadog-Managed-By")); + } + + @Test + public void testSetIsIaCTrueAddsManagedByHeaderToDefaultHeaders() { + ApiClient client = new ApiClient(); + + ApiClient returned = client.setIsIaC(true); + + assertSame(client, returned); + assertTrue(client.getIsIaC()); + // defaultHeaderMap is merged into the headers of every request made through this client, + // see ApiClient#createBuilder. + assertEquals("iac", client.defaultHeaderMap.get("X-Datadog-Managed-By")); + } + + @Test + public void testSetIsIaCFalseRemovesManagedByHeader() { + ApiClient client = new ApiClient(); + client.setIsIaC(true); + + client.setIsIaC(false); + + assertFalse(client.getIsIaC()); + assertFalse(client.defaultHeaderMap.containsKey("X-Datadog-Managed-By")); + } + + @Test + public void testSetIsIaCIsPerClientInstance() { + ApiClient iacClient = new ApiClient(); + ApiClient defaultClient = new ApiClient(); + + iacClient.setIsIaC(true); + + assertTrue(iacClient.getIsIaC()); + assertFalse(defaultClient.getIsIaC()); + assertFalse(defaultClient.defaultHeaderMap.containsKey("X-Datadog-Managed-By")); + } +} From 32604af93c858d156a3ba1395f8c809d21b8c80e Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 26 Aug 2026 13:44:04 +0000 Subject: [PATCH 2/2] Regenerate client from commit 9324879 of spec repo --- .../com/datadog/api/client/ApiClient.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 968a6c36fe4..b088e22db49 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -77,6 +77,7 @@ public class ApiClient { protected Map defaultCookieMap = new HashMap(); protected String basePath = "https://api.datadoghq.com"; protected String userAgent; + private boolean isIaC = false; private DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; protected List servers = @@ -1937,6 +1938,33 @@ public ApiClient addDefaultHeader(String key, String value) { return this; } + /** + * Set whether this API client is managed by Infrastructure as Code (IaC) tooling. When enabled, + * the {@code X-Datadog-Managed-By: iac} header is sent on every request made through this client + * (by adding to the default header map). + * + * @param isIaC Whether calls made with this client originate from IaC tooling + * @return API client + */ + public ApiClient setIsIaC(boolean isIaC) { + this.isIaC = isIaC; + if (isIaC) { + addDefaultHeader("X-Datadog-Managed-By", "iac"); + } else { + defaultHeaderMap.remove("X-Datadog-Managed-By"); + } + return this; + } + + /** + * Get whether this API client is managed by Infrastructure as Code (IaC) tooling. + * + * @return Whether this client is managed by IaC tooling + */ + public boolean getIsIaC() { + return isIaC; + } + /** * Add a default cookie. *