diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 8bd7f75292f..692ab25bd41 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -4045,6 +4045,101 @@ components:
type: string
x-enum-varnames:
- CCM_CONFIG_VALIDATION
+ AWSCloudAuthIntakeMappingAttributesResponse:
+ description: Attributes for AWS cloud authentication intake mapping response.
+ properties:
+ arn_pattern:
+ description: AWS caller ARN pattern allowed to authenticate for telemetry submission. ARN syntax and AWS integration membership are validated by the server. For an assumed role, use the STS assumed-role ARN with a trailing /* wildcard to match its sessions.
+ example: arn:aws:sts::123456789012:assumed-role/DatadogAgentRole/*
+ type: string
+ par_enrollment_enabled:
+ description: Whether the mapping allows Private Action Runner enrollment. This attribute may be omitted when enrollment is disabled. Enrollment permission is managed separately from the ARN pattern.
+ example: true
+ readOnly: true
+ type: boolean
+ required:
+ - arn_pattern
+ type: object
+ AWSCloudAuthIntakeMappingCreateAttributes:
+ description: Attributes for creating an AWS cloud authentication intake mapping.
+ properties:
+ arn_pattern:
+ description: AWS caller ARN pattern allowed to authenticate for telemetry submission. ARN syntax and AWS integration membership are validated by the server. For an assumed role, use the STS assumed-role ARN with a trailing /* wildcard to match its sessions.
+ example: arn:aws:sts::123456789012:assumed-role/DatadogAgentRole/*
+ minLength: 1
+ type: string
+ required:
+ - arn_pattern
+ type: object
+ AWSCloudAuthIntakeMappingCreateData:
+ description: Data for creating an AWS cloud authentication intake mapping.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingCreateAttributes"
+ type:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingType"
+ required:
+ - type
+ - attributes
+ type: object
+ AWSCloudAuthIntakeMappingCreateRequest:
+ description: Request used to create an AWS cloud authentication intake mapping.
+ properties:
+ data:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingCreateData"
+ required:
+ - data
+ type: object
+ AWSCloudAuthIntakeMappingDataResponse:
+ description: Data for AWS cloud authentication intake mapping response.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingAttributesResponse"
+ id:
+ description: Unique identifier for the intake mapping.
+ example: c5c758c6-18c2-4484-ae3f-46b84128404a
+ type: string
+ type:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ AWSCloudAuthIntakeMappingResponse:
+ description: Response containing a single AWS cloud authentication intake mapping.
+ properties:
+ data:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingDataResponse"
+ required:
+ - data
+ type: object
+ AWSCloudAuthIntakeMappingType:
+ description: Type identifier for AWS cloud authentication intake mapping.
+ enum:
+ - aws_cloud_auth_intake_mapping
+ example: aws_cloud_auth_intake_mapping
+ type: string
+ x-enum-varnames:
+ - AWS_CLOUD_AUTH_INTAKE_MAPPING
+ AWSCloudAuthIntakeMappingsData:
+ description: List of AWS cloud authentication intake mappings.
+ items:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingDataResponse"
+ type: array
+ AWSCloudAuthIntakeMappingsResponse:
+ description: Response containing a list of AWS cloud authentication intake mappings.
+ properties:
+ data:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingsData"
+ example:
+ - attributes:
+ arn_pattern: arn:aws:sts::123456789012:assumed-role/DatadogAgentRole/*
+ id: c5c758c6-18c2-4484-ae3f-46b84128404a
+ type: aws_cloud_auth_intake_mapping
+ required:
+ - data
+ type: object
AWSCloudAuthPersonaMappingAttributesResponse:
description: Attributes for AWS cloud authentication persona mapping response
properties:
@@ -256919,6 +257014,164 @@ paths:
- generate_log_reports
- manage_log_reports
- product_analytics_saved_widgets_write
+ /api/v2/wif/aws/intake_mapping:
+ get:
+ description: List AWS cloud authentication intake mappings configured for the organization.
+ operationId: ListAWSCloudAuthIntakeMappings
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ arn_pattern: arn:aws:sts::123456789012:assumed-role/DatadogAgentRole/*
+ id: c5c758c6-18c2-4484-ae3f-46b84128404a
+ type: aws_cloud_auth_intake_mapping
+ schema:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingsResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: List AWS cloud authentication intake mappings
+ tags:
+ - Cloud Authentication
+ x-unstable: "**Note**: This endpoint is in public beta and is subject to change.\nIf you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/)."
+ post:
+ description: Create an AWS cloud authentication intake mapping to authorize an AWS ARN pattern for Agent authentication. The AWS account must already be integrated with Datadog, and managed API key rotation must be enabled for the organization. Patterns that conflict with existing intake or persona mappings are rejected.
+ operationId: CreateAWSCloudAuthIntakeMapping
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ arn_pattern: arn:aws:sts::123456789012:assumed-role/DatadogAgentRole/*
+ type: aws_cloud_auth_intake_mapping
+ schema:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingCreateRequest"
+ required: true
+ responses:
+ "201":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ arn_pattern: arn:aws:sts::123456789012:assumed-role/DatadogAgentRole/*
+ id: c5c758c6-18c2-4484-ae3f-46b84128404a
+ type: aws_cloud_auth_intake_mapping
+ schema:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingResponse"
+ description: Created
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Conflict
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Create an AWS cloud authentication intake mapping
+ tags:
+ - Cloud Authentication
+ x-codegen-request-body-name: body
+ x-unstable: "**Note**: This endpoint is in public beta and is subject to change.\nIf you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/)."
+ /api/v2/wif/aws/intake_mapping/{intake_mapping_id}:
+ delete:
+ description: Delete an AWS cloud authentication intake mapping by ID.
+ operationId: DeleteAWSCloudAuthIntakeMapping
+ parameters:
+ - $ref: "#/components/parameters/IntakeMappingID"
+ responses:
+ "204":
+ description: No Content
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Delete an AWS cloud authentication intake mapping
+ tags:
+ - Cloud Authentication
+ x-unstable: "**Note**: This endpoint is in public beta and is subject to change.\nIf you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/)."
+ get:
+ description: Get an AWS cloud authentication intake mapping by ID.
+ operationId: GetAWSCloudAuthIntakeMapping
+ parameters:
+ - $ref: "#/components/parameters/IntakeMappingID"
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ arn_pattern: arn:aws:sts::123456789012:assumed-role/DatadogAgentRole/*
+ id: c5c758c6-18c2-4484-ae3f-46b84128404a
+ type: aws_cloud_auth_intake_mapping
+ schema:
+ $ref: "#/components/schemas/AWSCloudAuthIntakeMappingResponse"
+ description: OK
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get an AWS cloud authentication intake mapping
+ tags:
+ - Cloud Authentication
+ x-unstable: "**Note**: This endpoint is in public beta and is subject to change.\nIf you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/)."
/api/v2/wif/aws/persona_mapping:
get:
description: List all AWS cloud authentication persona mappings. This endpoint retrieves all configured persona mappings that associate AWS IAM principals with Datadog users.
diff --git a/examples/v2/cloud-authentication/CreateAWSCloudAuthIntakeMapping.java b/examples/v2/cloud-authentication/CreateAWSCloudAuthIntakeMapping.java
new file mode 100644
index 00000000000..099878ebc88
--- /dev/null
+++ b/examples/v2/cloud-authentication/CreateAWSCloudAuthIntakeMapping.java
@@ -0,0 +1,45 @@
+// Create an AWS cloud authentication intake mapping returns "Created" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CloudAuthenticationApi;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingCreateAttributes;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingCreateData;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingCreateRequest;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingResponse;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
+ defaultClient.setUnstableOperationEnabled("v2.createAWSCloudAuthIntakeMapping", true);
+ CloudAuthenticationApi apiInstance = new CloudAuthenticationApi(defaultClient);
+
+ // there is an integrated AWS test account for WIF
+ String AWS_WIF_ACCOUNT_V2_DATA_0_ATTRIBUTES_AWS_ACCOUNT_ID =
+ System.getenv("AWS_WIF_ACCOUNT_V2_DATA_0_ATTRIBUTES_AWS_ACCOUNT_ID");
+
+ AWSCloudAuthIntakeMappingCreateRequest body =
+ new AWSCloudAuthIntakeMappingCreateRequest()
+ .data(
+ new AWSCloudAuthIntakeMappingCreateData()
+ .type(AWSCloudAuthIntakeMappingType.AWS_CLOUD_AUTH_INTAKE_MAPPING)
+ .attributes(
+ new AWSCloudAuthIntakeMappingCreateAttributes()
+ .arnPattern(
+ "arn:aws:sts::123456789012:assumed-role/DatadogAgent-de20b7e944abfac3/*")));
+
+ try {
+ AWSCloudAuthIntakeMappingResponse result = apiInstance.createAWSCloudAuthIntakeMapping(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling CloudAuthenticationApi#createAWSCloudAuthIntakeMapping");
+ 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/cloud-authentication/DeleteAWSCloudAuthIntakeMapping.java b/examples/v2/cloud-authentication/DeleteAWSCloudAuthIntakeMapping.java
new file mode 100644
index 00000000000..9d5fa55d6fc
--- /dev/null
+++ b/examples/v2/cloud-authentication/DeleteAWSCloudAuthIntakeMapping.java
@@ -0,0 +1,29 @@
+// Delete an AWS cloud authentication intake mapping returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CloudAuthenticationApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
+ defaultClient.setUnstableOperationEnabled("v2.deleteAWSCloudAuthIntakeMapping", true);
+ CloudAuthenticationApi apiInstance = new CloudAuthenticationApi(defaultClient);
+
+ // there is a valid "aws_cloud_auth_intake_mapping" in the system
+ String AWS_CLOUD_AUTH_INTAKE_MAPPING_DATA_ID =
+ System.getenv("AWS_CLOUD_AUTH_INTAKE_MAPPING_DATA_ID");
+
+ try {
+ apiInstance.deleteAWSCloudAuthIntakeMapping(AWS_CLOUD_AUTH_INTAKE_MAPPING_DATA_ID);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling CloudAuthenticationApi#deleteAWSCloudAuthIntakeMapping");
+ 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/cloud-authentication/GetAWSCloudAuthIntakeMapping.java b/examples/v2/cloud-authentication/GetAWSCloudAuthIntakeMapping.java
new file mode 100644
index 00000000000..1762077b7dd
--- /dev/null
+++ b/examples/v2/cloud-authentication/GetAWSCloudAuthIntakeMapping.java
@@ -0,0 +1,32 @@
+// Get an AWS cloud authentication intake mapping returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CloudAuthenticationApi;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
+ defaultClient.setUnstableOperationEnabled("v2.getAWSCloudAuthIntakeMapping", true);
+ CloudAuthenticationApi apiInstance = new CloudAuthenticationApi(defaultClient);
+
+ // there is a valid "aws_cloud_auth_intake_mapping" in the system
+ String AWS_CLOUD_AUTH_INTAKE_MAPPING_DATA_ID =
+ System.getenv("AWS_CLOUD_AUTH_INTAKE_MAPPING_DATA_ID");
+
+ try {
+ AWSCloudAuthIntakeMappingResponse result =
+ apiInstance.getAWSCloudAuthIntakeMapping(AWS_CLOUD_AUTH_INTAKE_MAPPING_DATA_ID);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling CloudAuthenticationApi#getAWSCloudAuthIntakeMapping");
+ 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/cloud-authentication/ListAWSCloudAuthIntakeMappings.java b/examples/v2/cloud-authentication/ListAWSCloudAuthIntakeMappings.java
new file mode 100644
index 00000000000..71f419cd076
--- /dev/null
+++ b/examples/v2/cloud-authentication/ListAWSCloudAuthIntakeMappings.java
@@ -0,0 +1,27 @@
+// List AWS cloud authentication intake mappings returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CloudAuthenticationApi;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingsResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
+ defaultClient.setUnstableOperationEnabled("v2.listAWSCloudAuthIntakeMappings", true);
+ CloudAuthenticationApi apiInstance = new CloudAuthenticationApi(defaultClient);
+
+ try {
+ AWSCloudAuthIntakeMappingsResponse result = apiInstance.listAWSCloudAuthIntakeMappings();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling CloudAuthenticationApi#listAWSCloudAuthIntakeMappings");
+ 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/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java
index a3d2c5876f2..2ad77cccc31 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -1692,15 +1692,19 @@ public class ApiClient {
put("v2.getWebIntegrationAccount", false);
put("v2.listWebIntegrationAccounts", false);
put("v2.updateWebIntegrationAccount", false);
+ put("v2.createAWSCloudAuthIntakeMapping", false);
put("v2.createAWSCloudAuthPersonaMapping", false);
put("v2.createGitHubCloudAuthIntakeMapping", false);
put("v2.createGitHubCloudAuthPersonaMapping", false);
+ put("v2.deleteAWSCloudAuthIntakeMapping", false);
put("v2.deleteAWSCloudAuthPersonaMapping", false);
put("v2.deleteGitHubCloudAuthIntakeMapping", false);
put("v2.deleteGitHubCloudAuthPersonaMapping", false);
+ put("v2.getAWSCloudAuthIntakeMapping", false);
put("v2.getAWSCloudAuthPersonaMapping", false);
put("v2.getGitHubCloudAuthIntakeMapping", false);
put("v2.getGitHubCloudAuthPersonaMapping", false);
+ put("v2.listAWSCloudAuthIntakeMappings", false);
put("v2.listAWSCloudAuthPersonaMappings", false);
put("v2.listGitHubCloudAuthIntakeMappings", false);
put("v2.listGitHubCloudAuthPersonaMappings", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/CloudAuthenticationApi.java b/src/main/java/com/datadog/api/client/v2/api/CloudAuthenticationApi.java
index 8598d466173..e2b79a97ae3 100644
--- a/src/main/java/com/datadog/api/client/v2/api/CloudAuthenticationApi.java
+++ b/src/main/java/com/datadog/api/client/v2/api/CloudAuthenticationApi.java
@@ -4,6 +4,9 @@
import com.datadog.api.client.ApiException;
import com.datadog.api.client.ApiResponse;
import com.datadog.api.client.Pair;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingCreateRequest;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingResponse;
+import com.datadog.api.client.v2.model.AWSCloudAuthIntakeMappingsResponse;
import com.datadog.api.client.v2.model.AWSCloudAuthPersonaMappingCreateRequest;
import com.datadog.api.client.v2.model.AWSCloudAuthPersonaMappingResponse;
import com.datadog.api.client.v2.model.AWSCloudAuthPersonaMappingsResponse;
@@ -51,6 +54,167 @@ public void setApiClient(ApiClient apiClient) {
this.apiClient = apiClient;
}
+ /**
+ * Create an AWS cloud authentication intake mapping.
+ *
+ *
See {@link #createAWSCloudAuthIntakeMappingWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return AWSCloudAuthIntakeMappingResponse
+ * @throws ApiException if fails to make API call
+ */
+ public AWSCloudAuthIntakeMappingResponse createAWSCloudAuthIntakeMapping(
+ AWSCloudAuthIntakeMappingCreateRequest body) throws ApiException {
+ return createAWSCloudAuthIntakeMappingWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create an AWS cloud authentication intake mapping.
+ *
+ *
See {@link #createAWSCloudAuthIntakeMappingWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<AWSCloudAuthIntakeMappingResponse>
+ */
+ public CompletableFuture createAWSCloudAuthIntakeMappingAsync(
+ AWSCloudAuthIntakeMappingCreateRequest body) {
+ return createAWSCloudAuthIntakeMappingWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create an AWS cloud authentication intake mapping to authorize an AWS ARN pattern for Agent
+ * authentication. The AWS account must already be integrated with Datadog, and managed API key
+ * rotation must be enabled for the organization. Patterns that conflict with existing intake or
+ * persona mappings are rejected.
+ *
+ * @param body (required)
+ * @return ApiResponse<AWSCloudAuthIntakeMappingResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 201 | Created | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Forbidden | - |
+ * | 409 | Conflict | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createAWSCloudAuthIntakeMappingWithHttpInfo(
+ AWSCloudAuthIntakeMappingCreateRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createAWSCloudAuthIntakeMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling createAWSCloudAuthIntakeMapping");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/wif/aws/intake_mapping";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.createAWSCloudAuthIntakeMapping",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create an AWS cloud authentication intake mapping.
+ *
+ * See {@link #createAWSCloudAuthIntakeMappingWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<AWSCloudAuthIntakeMappingResponse>>
+ */
+ public CompletableFuture>
+ createAWSCloudAuthIntakeMappingWithHttpInfoAsync(
+ AWSCloudAuthIntakeMappingCreateRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createAWSCloudAuthIntakeMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling"
+ + " createAWSCloudAuthIntakeMapping"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/wif/aws/intake_mapping";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.createAWSCloudAuthIntakeMapping",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
/**
* Create an AWS cloud authentication persona mapping.
*
@@ -531,6 +695,165 @@ public GitHubCloudAuthPersonaMappingResponse createGitHubCloudAuthPersonaMapping
new GenericType() {});
}
+ /**
+ * Delete an AWS cloud authentication intake mapping.
+ *
+ * See {@link #deleteAWSCloudAuthIntakeMappingWithHttpInfo}.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteAWSCloudAuthIntakeMapping(String intakeMappingId) throws ApiException {
+ deleteAWSCloudAuthIntakeMappingWithHttpInfo(intakeMappingId);
+ }
+
+ /**
+ * Delete an AWS cloud authentication intake mapping.
+ *
+ *
See {@link #deleteAWSCloudAuthIntakeMappingWithHttpInfoAsync}.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteAWSCloudAuthIntakeMappingAsync(String intakeMappingId) {
+ return deleteAWSCloudAuthIntakeMappingWithHttpInfoAsync(intakeMappingId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete an AWS cloud authentication intake mapping by ID.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteAWSCloudAuthIntakeMappingWithHttpInfo(String intakeMappingId)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteAWSCloudAuthIntakeMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'intakeMappingId' is set
+ if (intakeMappingId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'intakeMappingId' when calling"
+ + " deleteAWSCloudAuthIntakeMapping");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ .replaceAll(
+ "\\{" + "intake_mapping_id" + "\\}",
+ apiClient.escapeString(intakeMappingId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.deleteAWSCloudAuthIntakeMapping",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete an AWS cloud authentication intake mapping.
+ *
+ * See {@link #deleteAWSCloudAuthIntakeMappingWithHttpInfo}.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteAWSCloudAuthIntakeMappingWithHttpInfoAsync(
+ String intakeMappingId) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteAWSCloudAuthIntakeMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'intakeMappingId' is set
+ if (intakeMappingId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'intakeMappingId' when calling"
+ + " deleteAWSCloudAuthIntakeMapping"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ .replaceAll(
+ "\\{" + "intake_mapping_id" + "\\}",
+ apiClient.escapeString(intakeMappingId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.deleteAWSCloudAuthIntakeMapping",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
/**
* Delete an AWS cloud authentication persona mapping.
*
@@ -1011,6 +1334,171 @@ public CompletableFuture> deleteGitHubCloudAuthPersonaMappingW
null);
}
+ /**
+ * Get an AWS cloud authentication intake mapping.
+ *
+ * See {@link #getAWSCloudAuthIntakeMappingWithHttpInfo}.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @return AWSCloudAuthIntakeMappingResponse
+ * @throws ApiException if fails to make API call
+ */
+ public AWSCloudAuthIntakeMappingResponse getAWSCloudAuthIntakeMapping(String intakeMappingId)
+ throws ApiException {
+ return getAWSCloudAuthIntakeMappingWithHttpInfo(intakeMappingId).getData();
+ }
+
+ /**
+ * Get an AWS cloud authentication intake mapping.
+ *
+ *
See {@link #getAWSCloudAuthIntakeMappingWithHttpInfoAsync}.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @return CompletableFuture<AWSCloudAuthIntakeMappingResponse>
+ */
+ public CompletableFuture getAWSCloudAuthIntakeMappingAsync(
+ String intakeMappingId) {
+ return getAWSCloudAuthIntakeMappingWithHttpInfoAsync(intakeMappingId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get an AWS cloud authentication intake mapping by ID.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @return ApiResponse<AWSCloudAuthIntakeMappingResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getAWSCloudAuthIntakeMappingWithHttpInfo(
+ String intakeMappingId) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getAWSCloudAuthIntakeMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'intakeMappingId' is set
+ if (intakeMappingId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'intakeMappingId' when calling"
+ + " getAWSCloudAuthIntakeMapping");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ .replaceAll(
+ "\\{" + "intake_mapping_id" + "\\}",
+ apiClient.escapeString(intakeMappingId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.getAWSCloudAuthIntakeMapping",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get an AWS cloud authentication intake mapping.
+ *
+ * See {@link #getAWSCloudAuthIntakeMappingWithHttpInfo}.
+ *
+ * @param intakeMappingId The ID of the intake mapping (required)
+ * @return CompletableFuture<ApiResponse<AWSCloudAuthIntakeMappingResponse>>
+ */
+ public CompletableFuture>
+ getAWSCloudAuthIntakeMappingWithHttpInfoAsync(String intakeMappingId) {
+ // Check if unstable operation is enabled
+ String operationId = "getAWSCloudAuthIntakeMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'intakeMappingId' is set
+ if (intakeMappingId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'intakeMappingId' when calling"
+ + " getAWSCloudAuthIntakeMapping"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ .replaceAll(
+ "\\{" + "intake_mapping_id" + "\\}",
+ apiClient.escapeString(intakeMappingId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.getAWSCloudAuthIntakeMapping",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
/**
* Get an AWS cloud authentication persona mapping.
*
@@ -1511,6 +1999,138 @@ public GitHubCloudAuthPersonaMappingResponse getGitHubCloudAuthPersonaMapping(
new GenericType() {});
}
+ /**
+ * List AWS cloud authentication intake mappings.
+ *
+ * See {@link #listAWSCloudAuthIntakeMappingsWithHttpInfo}.
+ *
+ * @return AWSCloudAuthIntakeMappingsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public AWSCloudAuthIntakeMappingsResponse listAWSCloudAuthIntakeMappings() throws ApiException {
+ return listAWSCloudAuthIntakeMappingsWithHttpInfo().getData();
+ }
+
+ /**
+ * List AWS cloud authentication intake mappings.
+ *
+ *
See {@link #listAWSCloudAuthIntakeMappingsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<AWSCloudAuthIntakeMappingsResponse>
+ */
+ public CompletableFuture
+ listAWSCloudAuthIntakeMappingsAsync() {
+ return listAWSCloudAuthIntakeMappingsWithHttpInfoAsync()
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List AWS cloud authentication intake mappings configured for the organization.
+ *
+ * @return ApiResponse<AWSCloudAuthIntakeMappingsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse
+ listAWSCloudAuthIntakeMappingsWithHttpInfo() throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listAWSCloudAuthIntakeMappings";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+ // create path and map variables
+ String localVarPath = "/api/v2/wif/aws/intake_mapping";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.listAWSCloudAuthIntakeMappings",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List AWS cloud authentication intake mappings.
+ *
+ * See {@link #listAWSCloudAuthIntakeMappingsWithHttpInfo}.
+ *
+ * @return CompletableFuture<ApiResponse<AWSCloudAuthIntakeMappingsResponse>>
+ */
+ public CompletableFuture>
+ listAWSCloudAuthIntakeMappingsWithHttpInfoAsync() {
+ // Check if unstable operation is enabled
+ String operationId = "listAWSCloudAuthIntakeMappings";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+ // create path and map variables
+ String localVarPath = "/api/v2/wif/aws/intake_mapping";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.CloudAuthenticationApi.listAWSCloudAuthIntakeMappings",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
/**
* List AWS cloud authentication persona mappings.
*
diff --git a/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingAttributesResponse.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingAttributesResponse.java
new file mode 100644
index 00000000000..22159af7038
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingAttributesResponse.java
@@ -0,0 +1,174 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes for AWS cloud authentication intake mapping response. */
+@JsonPropertyOrder({
+ AWSCloudAuthIntakeMappingAttributesResponse.JSON_PROPERTY_ARN_PATTERN,
+ AWSCloudAuthIntakeMappingAttributesResponse.JSON_PROPERTY_PAR_ENROLLMENT_ENABLED
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AWSCloudAuthIntakeMappingAttributesResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ARN_PATTERN = "arn_pattern";
+ private String arnPattern;
+
+ public static final String JSON_PROPERTY_PAR_ENROLLMENT_ENABLED = "par_enrollment_enabled";
+ private Boolean parEnrollmentEnabled;
+
+ public AWSCloudAuthIntakeMappingAttributesResponse() {}
+
+ @JsonCreator
+ public AWSCloudAuthIntakeMappingAttributesResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ARN_PATTERN) String arnPattern) {
+ this.arnPattern = arnPattern;
+ }
+
+ public AWSCloudAuthIntakeMappingAttributesResponse arnPattern(String arnPattern) {
+ this.arnPattern = arnPattern;
+ return this;
+ }
+
+ /**
+ * AWS caller ARN pattern allowed to authenticate for telemetry submission. ARN syntax and AWS
+ * integration membership are validated by the server. For an assumed role, use the STS
+ * assumed-role ARN with a trailing /* wildcard to match its sessions.
+ *
+ * @return arnPattern
+ */
+ @JsonProperty(JSON_PROPERTY_ARN_PATTERN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getArnPattern() {
+ return arnPattern;
+ }
+
+ public void setArnPattern(String arnPattern) {
+ this.arnPattern = arnPattern;
+ }
+
+ /**
+ * Whether the mapping allows Private Action Runner enrollment. This attribute may be omitted when
+ * enrollment is disabled. Enrollment permission is managed separately from the ARN pattern.
+ *
+ * @return parEnrollmentEnabled
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PAR_ENROLLMENT_ENABLED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getParEnrollmentEnabled() {
+ return parEnrollmentEnabled;
+ }
+
+ /**
+ * 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 AWSCloudAuthIntakeMappingAttributesResponse
+ */
+ @JsonAnySetter
+ public AWSCloudAuthIntakeMappingAttributesResponse 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 AWSCloudAuthIntakeMappingAttributesResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AWSCloudAuthIntakeMappingAttributesResponse awsCloudAuthIntakeMappingAttributesResponse =
+ (AWSCloudAuthIntakeMappingAttributesResponse) o;
+ return Objects.equals(this.arnPattern, awsCloudAuthIntakeMappingAttributesResponse.arnPattern)
+ && Objects.equals(
+ this.parEnrollmentEnabled,
+ awsCloudAuthIntakeMappingAttributesResponse.parEnrollmentEnabled)
+ && Objects.equals(
+ this.additionalProperties,
+ awsCloudAuthIntakeMappingAttributesResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(arnPattern, parEnrollmentEnabled, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AWSCloudAuthIntakeMappingAttributesResponse {\n");
+ sb.append(" arnPattern: ").append(toIndentedString(arnPattern)).append("\n");
+ sb.append(" parEnrollmentEnabled: ")
+ .append(toIndentedString(parEnrollmentEnabled))
+ .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/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateAttributes.java
new file mode 100644
index 00000000000..9e214e4b981
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateAttributes.java
@@ -0,0 +1,148 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes for creating an AWS cloud authentication intake mapping. */
+@JsonPropertyOrder({AWSCloudAuthIntakeMappingCreateAttributes.JSON_PROPERTY_ARN_PATTERN})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AWSCloudAuthIntakeMappingCreateAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ARN_PATTERN = "arn_pattern";
+ private String arnPattern;
+
+ public AWSCloudAuthIntakeMappingCreateAttributes() {}
+
+ @JsonCreator
+ public AWSCloudAuthIntakeMappingCreateAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ARN_PATTERN) String arnPattern) {
+ this.arnPattern = arnPattern;
+ }
+
+ public AWSCloudAuthIntakeMappingCreateAttributes arnPattern(String arnPattern) {
+ this.arnPattern = arnPattern;
+ return this;
+ }
+
+ /**
+ * AWS caller ARN pattern allowed to authenticate for telemetry submission. ARN syntax and AWS
+ * integration membership are validated by the server. For an assumed role, use the STS
+ * assumed-role ARN with a trailing /* wildcard to match its sessions.
+ *
+ * @return arnPattern
+ */
+ @JsonProperty(JSON_PROPERTY_ARN_PATTERN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getArnPattern() {
+ return arnPattern;
+ }
+
+ public void setArnPattern(String arnPattern) {
+ this.arnPattern = arnPattern;
+ }
+
+ /**
+ * 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 AWSCloudAuthIntakeMappingCreateAttributes
+ */
+ @JsonAnySetter
+ public AWSCloudAuthIntakeMappingCreateAttributes 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 AWSCloudAuthIntakeMappingCreateAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AWSCloudAuthIntakeMappingCreateAttributes awsCloudAuthIntakeMappingCreateAttributes =
+ (AWSCloudAuthIntakeMappingCreateAttributes) o;
+ return Objects.equals(this.arnPattern, awsCloudAuthIntakeMappingCreateAttributes.arnPattern)
+ && Objects.equals(
+ this.additionalProperties,
+ awsCloudAuthIntakeMappingCreateAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(arnPattern, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AWSCloudAuthIntakeMappingCreateAttributes {\n");
+ sb.append(" arnPattern: ").append(toIndentedString(arnPattern)).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/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateData.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateData.java
new file mode 100644
index 00000000000..894dd3d1a67
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateData.java
@@ -0,0 +1,188 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Data for creating an AWS cloud authentication intake mapping. */
+@JsonPropertyOrder({
+ AWSCloudAuthIntakeMappingCreateData.JSON_PROPERTY_ATTRIBUTES,
+ AWSCloudAuthIntakeMappingCreateData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AWSCloudAuthIntakeMappingCreateData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private AWSCloudAuthIntakeMappingCreateAttributes attributes;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private AWSCloudAuthIntakeMappingType type;
+
+ public AWSCloudAuthIntakeMappingCreateData() {}
+
+ @JsonCreator
+ public AWSCloudAuthIntakeMappingCreateData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ AWSCloudAuthIntakeMappingCreateAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE)
+ AWSCloudAuthIntakeMappingType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public AWSCloudAuthIntakeMappingCreateData attributes(
+ AWSCloudAuthIntakeMappingCreateAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes for creating an AWS cloud authentication intake mapping.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AWSCloudAuthIntakeMappingCreateAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AWSCloudAuthIntakeMappingCreateAttributes attributes) {
+ this.attributes = attributes;
+ if (attributes != null) {
+ this.unparsed |= attributes.unparsed;
+ }
+ }
+
+ public AWSCloudAuthIntakeMappingCreateData type(AWSCloudAuthIntakeMappingType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Type identifier for AWS cloud authentication intake mapping.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AWSCloudAuthIntakeMappingType getType() {
+ return type;
+ }
+
+ public void setType(AWSCloudAuthIntakeMappingType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * 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 AWSCloudAuthIntakeMappingCreateData
+ */
+ @JsonAnySetter
+ public AWSCloudAuthIntakeMappingCreateData 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 AWSCloudAuthIntakeMappingCreateData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AWSCloudAuthIntakeMappingCreateData awsCloudAuthIntakeMappingCreateData =
+ (AWSCloudAuthIntakeMappingCreateData) o;
+ return Objects.equals(this.attributes, awsCloudAuthIntakeMappingCreateData.attributes)
+ && Objects.equals(this.type, awsCloudAuthIntakeMappingCreateData.type)
+ && Objects.equals(
+ this.additionalProperties, awsCloudAuthIntakeMappingCreateData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AWSCloudAuthIntakeMappingCreateData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).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/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateRequest.java
new file mode 100644
index 00000000000..13f76c3cc2f
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingCreateRequest.java
@@ -0,0 +1,151 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Request used to create an AWS cloud authentication intake mapping. */
+@JsonPropertyOrder({AWSCloudAuthIntakeMappingCreateRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AWSCloudAuthIntakeMappingCreateRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private AWSCloudAuthIntakeMappingCreateData data;
+
+ public AWSCloudAuthIntakeMappingCreateRequest() {}
+
+ @JsonCreator
+ public AWSCloudAuthIntakeMappingCreateRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA)
+ AWSCloudAuthIntakeMappingCreateData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public AWSCloudAuthIntakeMappingCreateRequest data(AWSCloudAuthIntakeMappingCreateData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data for creating an AWS cloud authentication intake mapping.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AWSCloudAuthIntakeMappingCreateData getData() {
+ return data;
+ }
+
+ public void setData(AWSCloudAuthIntakeMappingCreateData data) {
+ this.data = data;
+ if (data != null) {
+ this.unparsed |= data.unparsed;
+ }
+ }
+
+ /**
+ * 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 AWSCloudAuthIntakeMappingCreateRequest
+ */
+ @JsonAnySetter
+ public AWSCloudAuthIntakeMappingCreateRequest 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 AWSCloudAuthIntakeMappingCreateRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AWSCloudAuthIntakeMappingCreateRequest awsCloudAuthIntakeMappingCreateRequest =
+ (AWSCloudAuthIntakeMappingCreateRequest) o;
+ return Objects.equals(this.data, awsCloudAuthIntakeMappingCreateRequest.data)
+ && Objects.equals(
+ this.additionalProperties, awsCloudAuthIntakeMappingCreateRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AWSCloudAuthIntakeMappingCreateRequest {\n");
+ sb.append(" data: ").append(toIndentedString(data)).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/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingDataResponse.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingDataResponse.java
new file mode 100644
index 00000000000..d11a3817751
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingDataResponse.java
@@ -0,0 +1,216 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Data for AWS cloud authentication intake mapping response. */
+@JsonPropertyOrder({
+ AWSCloudAuthIntakeMappingDataResponse.JSON_PROPERTY_ATTRIBUTES,
+ AWSCloudAuthIntakeMappingDataResponse.JSON_PROPERTY_ID,
+ AWSCloudAuthIntakeMappingDataResponse.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AWSCloudAuthIntakeMappingDataResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private AWSCloudAuthIntakeMappingAttributesResponse attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private AWSCloudAuthIntakeMappingType type;
+
+ public AWSCloudAuthIntakeMappingDataResponse() {}
+
+ @JsonCreator
+ public AWSCloudAuthIntakeMappingDataResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ AWSCloudAuthIntakeMappingAttributesResponse attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE)
+ AWSCloudAuthIntakeMappingType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public AWSCloudAuthIntakeMappingDataResponse attributes(
+ AWSCloudAuthIntakeMappingAttributesResponse attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes for AWS cloud authentication intake mapping response.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AWSCloudAuthIntakeMappingAttributesResponse getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AWSCloudAuthIntakeMappingAttributesResponse attributes) {
+ this.attributes = attributes;
+ if (attributes != null) {
+ this.unparsed |= attributes.unparsed;
+ }
+ }
+
+ public AWSCloudAuthIntakeMappingDataResponse id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the intake mapping.
+ *
+ * @return id
+ */
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public AWSCloudAuthIntakeMappingDataResponse type(AWSCloudAuthIntakeMappingType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Type identifier for AWS cloud authentication intake mapping.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AWSCloudAuthIntakeMappingType getType() {
+ return type;
+ }
+
+ public void setType(AWSCloudAuthIntakeMappingType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * 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 AWSCloudAuthIntakeMappingDataResponse
+ */
+ @JsonAnySetter
+ public AWSCloudAuthIntakeMappingDataResponse 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 AWSCloudAuthIntakeMappingDataResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AWSCloudAuthIntakeMappingDataResponse awsCloudAuthIntakeMappingDataResponse =
+ (AWSCloudAuthIntakeMappingDataResponse) o;
+ return Objects.equals(this.attributes, awsCloudAuthIntakeMappingDataResponse.attributes)
+ && Objects.equals(this.id, awsCloudAuthIntakeMappingDataResponse.id)
+ && Objects.equals(this.type, awsCloudAuthIntakeMappingDataResponse.type)
+ && Objects.equals(
+ this.additionalProperties, awsCloudAuthIntakeMappingDataResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AWSCloudAuthIntakeMappingDataResponse {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).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/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingResponse.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingResponse.java
new file mode 100644
index 00000000000..1b8014dd68a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingResponse.java
@@ -0,0 +1,151 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Response containing a single AWS cloud authentication intake mapping. */
+@JsonPropertyOrder({AWSCloudAuthIntakeMappingResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AWSCloudAuthIntakeMappingResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private AWSCloudAuthIntakeMappingDataResponse data;
+
+ public AWSCloudAuthIntakeMappingResponse() {}
+
+ @JsonCreator
+ public AWSCloudAuthIntakeMappingResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA)
+ AWSCloudAuthIntakeMappingDataResponse data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public AWSCloudAuthIntakeMappingResponse data(AWSCloudAuthIntakeMappingDataResponse data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data for AWS cloud authentication intake mapping response.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AWSCloudAuthIntakeMappingDataResponse getData() {
+ return data;
+ }
+
+ public void setData(AWSCloudAuthIntakeMappingDataResponse data) {
+ this.data = data;
+ if (data != null) {
+ this.unparsed |= data.unparsed;
+ }
+ }
+
+ /**
+ * 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 AWSCloudAuthIntakeMappingResponse
+ */
+ @JsonAnySetter
+ public AWSCloudAuthIntakeMappingResponse 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 AWSCloudAuthIntakeMappingResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AWSCloudAuthIntakeMappingResponse awsCloudAuthIntakeMappingResponse =
+ (AWSCloudAuthIntakeMappingResponse) o;
+ return Objects.equals(this.data, awsCloudAuthIntakeMappingResponse.data)
+ && Objects.equals(
+ this.additionalProperties, awsCloudAuthIntakeMappingResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AWSCloudAuthIntakeMappingResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).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/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingType.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingType.java
new file mode 100644
index 00000000000..875d6eb3578
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingType.java
@@ -0,0 +1,57 @@
+/*
+ * 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.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** Type identifier for AWS cloud authentication intake mapping. */
+@JsonSerialize(using = AWSCloudAuthIntakeMappingType.AWSCloudAuthIntakeMappingTypeSerializer.class)
+public class AWSCloudAuthIntakeMappingType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("aws_cloud_auth_intake_mapping"));
+
+ public static final AWSCloudAuthIntakeMappingType AWS_CLOUD_AUTH_INTAKE_MAPPING =
+ new AWSCloudAuthIntakeMappingType("aws_cloud_auth_intake_mapping");
+
+ AWSCloudAuthIntakeMappingType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class AWSCloudAuthIntakeMappingTypeSerializer
+ extends StdSerializer {
+ public AWSCloudAuthIntakeMappingTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public AWSCloudAuthIntakeMappingTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ AWSCloudAuthIntakeMappingType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static AWSCloudAuthIntakeMappingType fromValue(String value) {
+ return new AWSCloudAuthIntakeMappingType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingsResponse.java b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingsResponse.java
new file mode 100644
index 00000000000..038ac1ef29d
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AWSCloudAuthIntakeMappingsResponse.java
@@ -0,0 +1,166 @@
+/*
+ * 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;
+
+/** Response containing a list of AWS cloud authentication intake mappings. */
+@JsonPropertyOrder({AWSCloudAuthIntakeMappingsResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AWSCloudAuthIntakeMappingsResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private List data = new ArrayList<>();
+
+ public AWSCloudAuthIntakeMappingsResponse() {}
+
+ @JsonCreator
+ public AWSCloudAuthIntakeMappingsResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA)
+ List data) {
+ this.data = data;
+ for (AWSCloudAuthIntakeMappingDataResponse item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ }
+
+ public AWSCloudAuthIntakeMappingsResponse data(List data) {
+ this.data = data;
+ for (AWSCloudAuthIntakeMappingDataResponse item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public AWSCloudAuthIntakeMappingsResponse addDataItem(
+ AWSCloudAuthIntakeMappingDataResponse dataItem) {
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * List of AWS cloud authentication intake mappings.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ if (data != null) {
+ for (AWSCloudAuthIntakeMappingDataResponse item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ }
+ }
+
+ /**
+ * 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 AWSCloudAuthIntakeMappingsResponse
+ */
+ @JsonAnySetter
+ public AWSCloudAuthIntakeMappingsResponse 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 AWSCloudAuthIntakeMappingsResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AWSCloudAuthIntakeMappingsResponse awsCloudAuthIntakeMappingsResponse =
+ (AWSCloudAuthIntakeMappingsResponse) o;
+ return Objects.equals(this.data, awsCloudAuthIntakeMappingsResponse.data)
+ && Objects.equals(
+ this.additionalProperties, awsCloudAuthIntakeMappingsResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AWSCloudAuthIntakeMappingsResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).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/cloud_authentication.feature b/src/test/resources/com/datadog/api/client/v2/api/cloud_authentication.feature
index 6debf5b1d04..02d93adbd2c 100644
--- a/src/test/resources/com/datadog/api/client/v2/api/cloud_authentication.feature
+++ b/src/test/resources/com/datadog/api/client/v2/api/cloud_authentication.feature
@@ -56,6 +56,36 @@ Feature: Cloud Authentication
When the request is sent
Then the response status is 201 Created
+ @team:ddoghq/team-aaaauthn
+ Scenario: Create an AWS cloud authentication intake mapping returns "Bad Request" response
+ Given operation "CreateAWSCloudAuthIntakeMapping" enabled
+ And new "CreateAWSCloudAuthIntakeMapping" request
+ And body with value {"data": {"attributes": {"arn_pattern": "not-an-arn"}, "type": "aws_cloud_auth_intake_mapping"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @team:ddoghq/team-aaaauthn
+ Scenario: Create an AWS cloud authentication intake mapping returns "Conflict" response
+ Given there is an integrated AWS test account for WIF
+ And there is a valid "aws_cloud_auth_intake_mapping" in the system
+ And operation "CreateAWSCloudAuthIntakeMapping" enabled
+ And new "CreateAWSCloudAuthIntakeMapping" request
+ And body with value {"data":{"type":"aws_cloud_auth_intake_mapping","attributes":{"arn_pattern":"arn:aws:sts::{{ aws_wif_account_v2.data[0].attributes.aws_account_id }}:assumed-role/DatadogAgent-{{ unique_hash }}/*"}}}
+ When the request is sent
+ Then the response status is 409 Conflict
+
+ @team:ddoghq/team-aaaauthn
+ Scenario: Create an AWS cloud authentication intake mapping returns "Created" response
+ Given there is an integrated AWS test account for WIF
+ And operation "CreateAWSCloudAuthIntakeMapping" enabled
+ And new "CreateAWSCloudAuthIntakeMapping" request
+ And body with value {"data":{"type":"aws_cloud_auth_intake_mapping","attributes":{"arn_pattern":"arn:aws:sts::{{ aws_wif_account_v2.data[0].attributes.aws_account_id }}:assumed-role/DatadogAgent-{{ unique_hash }}/*"}}}
+ When the request is sent
+ Then the response status is 201 Created
+ And the response "data.type" is equal to "aws_cloud_auth_intake_mapping"
+ And the response "data" has field "id"
+ And the response "data.attributes.arn_pattern" is equal to "arn:aws:sts::{{ aws_wif_account_v2.data[0].attributes.aws_account_id }}:assumed-role/DatadogAgent-{{ unique_hash }}/*"
+
@generated @skip @team:ddoghq/team-aaaauthn
Scenario: Create an AWS cloud authentication persona mapping returns "Bad Request" response
Given operation "CreateAWSCloudAuthPersonaMapping" enabled
@@ -112,6 +142,24 @@ Feature: Cloud Authentication
When the request is sent
Then the response status is 404 Not Found
+ @team:ddoghq/team-aaaauthn
+ Scenario: Delete an AWS cloud authentication intake mapping returns "No Content" response
+ Given there is an integrated AWS test account for WIF
+ And there is a valid "aws_cloud_auth_intake_mapping" in the system
+ And operation "DeleteAWSCloudAuthIntakeMapping" enabled
+ And new "DeleteAWSCloudAuthIntakeMapping" request
+ And request contains "intake_mapping_id" parameter from "aws_cloud_auth_intake_mapping.data.id"
+ When the request is sent
+ Then the response status is 204 No Content
+
+ @team:ddoghq/team-aaaauthn
+ Scenario: Delete an AWS cloud authentication intake mapping returns "Not Found" response
+ Given operation "DeleteAWSCloudAuthIntakeMapping" enabled
+ And new "DeleteAWSCloudAuthIntakeMapping" request
+ And request contains "intake_mapping_id" parameter with value "00000000-0000-0000-0000-000000000000"
+ When the request is sent
+ Then the response status is 404 Not Found
+
@generated @skip @team:ddoghq/team-aaaauthn
Scenario: Delete an AWS cloud authentication persona mapping returns "No Content" response
Given operation "DeleteAWSCloudAuthPersonaMapping" enabled
@@ -160,6 +208,26 @@ Feature: Cloud Authentication
When the request is sent
Then the response status is 200 OK
+ @team:ddoghq/team-aaaauthn
+ Scenario: Get an AWS cloud authentication intake mapping returns "Not Found" response
+ Given operation "GetAWSCloudAuthIntakeMapping" enabled
+ And new "GetAWSCloudAuthIntakeMapping" request
+ And request contains "intake_mapping_id" parameter with value "00000000-0000-0000-0000-000000000000"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @team:ddoghq/team-aaaauthn
+ Scenario: Get an AWS cloud authentication intake mapping returns "OK" response
+ Given there is an integrated AWS test account for WIF
+ And there is a valid "aws_cloud_auth_intake_mapping" in the system
+ And operation "GetAWSCloudAuthIntakeMapping" enabled
+ And new "GetAWSCloudAuthIntakeMapping" request
+ And request contains "intake_mapping_id" parameter from "aws_cloud_auth_intake_mapping.data.id"
+ When the request is sent
+ Then the response status is 200 OK
+ And the response "data.id" has the same value as "aws_cloud_auth_intake_mapping.data.id"
+ And the response "data.attributes.arn_pattern" is equal to "arn:aws:sts::{{ aws_wif_account_v2.data[0].attributes.aws_account_id }}:assumed-role/DatadogAgent-{{ unique_hash }}/*"
+
@generated @skip @team:ddoghq/team-aaaauthn
Scenario: Get an AWS cloud authentication persona mapping returns "Not Found" response
Given operation "GetAWSCloudAuthPersonaMapping" enabled
@@ -176,6 +244,23 @@ Feature: Cloud Authentication
When the request is sent
Then the response status is 200 OK
+ @generated @skip @team:ddoghq/team-aaaauthn
+ Scenario: List AWS cloud authentication intake mappings returns "Bad Request" response
+ Given operation "ListAWSCloudAuthIntakeMappings" enabled
+ And new "ListAWSCloudAuthIntakeMappings" request
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @team:ddoghq/team-aaaauthn
+ Scenario: List AWS cloud authentication intake mappings returns "OK" response
+ Given there is an integrated AWS test account for WIF
+ And there is a valid "aws_cloud_auth_intake_mapping" in the system
+ And operation "ListAWSCloudAuthIntakeMappings" enabled
+ And new "ListAWSCloudAuthIntakeMappings" request
+ When the request is sent
+ Then the response status is 200 OK
+ And the response "data" has item with field "id" with value "{{ aws_cloud_auth_intake_mapping.data.id }}"
+
@generated @skip @team:ddoghq/team-aaaauthn
Scenario: List AWS cloud authentication persona mappings returns "Bad Request" response
Given operation "ListAWSCloudAuthPersonaMappings" enabled
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 860416b2d94..859600cfb7b 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
@@ -850,6 +850,12 @@
"tag": "Incidents",
"operationId": "CreateIncidentTodo"
},
+ {
+ "step": "there is an integrated AWS test account for WIF",
+ "key": "aws_wif_account_v2",
+ "tag": "AWS Integration",
+ "operationId": "ListAWSAccounts"
+ },
{
"parameters": [
{
@@ -2191,6 +2197,18 @@
"tag": "Web Integrations",
"operationId": "CreateWebIntegrationAccount"
},
+ {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\"data\":{\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::{{ aws_wif_account_v2.data[0].attributes.aws_account_id }}:assumed-role/DatadogAgent-{{ unique_hash }}/*\"}}}"
+ }
+ ],
+ "step": "there is a valid \"aws_cloud_auth_intake_mapping\" in the system",
+ "key": "aws_cloud_auth_intake_mapping",
+ "tag": "Cloud Authentication",
+ "operationId": "CreateAWSCloudAuthIntakeMapping"
+ },
{
"parameters": [
{
diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json
index 4c993af33b3..41a80bf646d 100644
--- a/src/test/resources/com/datadog/api/client/v2/api/undo.json
+++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json
@@ -11513,6 +11513,37 @@
"type": "safe"
}
},
+ "ListAWSCloudAuthIntakeMappings": {
+ "tag": "Cloud Authentication",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "CreateAWSCloudAuthIntakeMapping": {
+ "tag": "Cloud Authentication",
+ "undo": {
+ "operationId": "DeleteAWSCloudAuthIntakeMapping",
+ "parameters": [
+ {
+ "name": "intake_mapping_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
+ "DeleteAWSCloudAuthIntakeMapping": {
+ "tag": "Cloud Authentication",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "GetAWSCloudAuthIntakeMapping": {
+ "tag": "Cloud Authentication",
+ "undo": {
+ "type": "safe"
+ }
+ },
"ListAWSCloudAuthPersonaMappings": {
"tag": "Cloud Authentication",
"undo": {
diff --git a/src/test/resources/generated-test/test-runner-data/manifest.json b/src/test/resources/generated-test/test-runner-data/manifest.json
index 173a14d1e03..79334fa3a43 100644
--- a/src/test/resources/generated-test/test-runner-data/manifest.json
+++ b/src/test/resources/generated-test/test-runner-data/manifest.json
@@ -4011,6 +4011,62 @@
"scenario": "Search tests events returns \"OK\" response with pagination",
"version": "v2"
},
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-bad-request-response.json",
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Bad Request\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-conflict-response.json",
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Conflict\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-created-response.json",
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Created\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-no-content-response.json",
+ "scenario": "Delete an AWS cloud authentication intake mapping returns \"No Content\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json",
+ "scenario": "Delete an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json",
+ "scenario": "Get an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-ok-response.json",
+ "scenario": "Get an AWS cloud authentication intake mapping returns \"OK\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "feature_file": "../../com/datadog/api/client/v2/api/cloud_authentication.feature",
+ "file": "v2/cloud-authentication/list-aws-cloud-authentication-intake-mappings-returns-ok-response.json",
+ "scenario": "List AWS cloud authentication intake mappings returns \"OK\" response",
+ "version": "v2"
+ },
{
"feature": "Cloud Cost Management",
"feature_file": "../../com/datadog/api/client/v2/api/cloud_cost_management.feature",
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-bad-request-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-bad-request-response.json
new file mode 100644
index 00000000000..9707fc01906
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-bad-request-response.json
@@ -0,0 +1,33 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 400,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/Create an AWS cloud authentication intake mapping returns \"Bad Request\" response",
+ "operation_id": "CreateAWSCloudAuthIntakeMapping",
+ "request": {
+ "body": {
+ "schema": {
+ "format": null,
+ "ref": "AWSCloudAuthIntakeMappingCreateRequest",
+ "type": "object"
+ },
+ "source": "inline",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "not-an-arn"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "pagination": false,
+ "parameters": [],
+ "path": "/api/v2/wif/aws/intake_mapping"
+ },
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Bad Request\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-conflict-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-conflict-response.json
new file mode 100644
index 00000000000..9e7b31e1ee4
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-conflict-response.json
@@ -0,0 +1,33 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 409,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/Create an AWS cloud authentication intake mapping returns \"Conflict\" response",
+ "operation_id": "CreateAWSCloudAuthIntakeMapping",
+ "request": {
+ "body": {
+ "schema": {
+ "format": null,
+ "ref": "AWSCloudAuthIntakeMappingCreateRequest",
+ "type": "object"
+ },
+ "source": "inline",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::{{ aws_wif_account_v2.data[0].attributes.aws_account_id }}:assumed-role/DatadogAgent-{{ unique_hash }}/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "pagination": false,
+ "parameters": [],
+ "path": "/api/v2/wif/aws/intake_mapping"
+ },
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Conflict\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-created-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-created-response.json
new file mode 100644
index 00000000000..74ef542fcbd
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/create-an-aws-cloud-authentication-intake-mapping-returns-created-response.json
@@ -0,0 +1,33 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 201,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/Create an AWS cloud authentication intake mapping returns \"Created\" response",
+ "operation_id": "CreateAWSCloudAuthIntakeMapping",
+ "request": {
+ "body": {
+ "schema": {
+ "format": null,
+ "ref": "AWSCloudAuthIntakeMappingCreateRequest",
+ "type": "object"
+ },
+ "source": "inline",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::{{ aws_wif_account_v2.data[0].attributes.aws_account_id }}:assumed-role/DatadogAgent-{{ unique_hash }}/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "pagination": false,
+ "parameters": [],
+ "path": "/api/v2/wif/aws/intake_mapping"
+ },
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Created\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-no-content-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-no-content-response.json
new file mode 100644
index 00000000000..d75dbf71349
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-no-content-response.json
@@ -0,0 +1,35 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 204,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/Delete an AWS cloud authentication intake mapping returns \"No Content\" response",
+ "operation_id": "DeleteAWSCloudAuthIntakeMapping",
+ "request": {
+ "body": null,
+ "content_type": null,
+ "method": "DELETE",
+ "pagination": false,
+ "parameters": [
+ {
+ "explode": null,
+ "in": "path",
+ "name": "intake_mapping_id",
+ "required": true,
+ "schema": {
+ "format": null,
+ "ref": null,
+ "type": "string"
+ },
+ "source": {
+ "path": "aws_cloud_auth_intake_mapping.data.id",
+ "type": "fixture"
+ },
+ "style": null
+ }
+ ],
+ "path": "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ },
+ "scenario": "Delete an AWS cloud authentication intake mapping returns \"No Content\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json
new file mode 100644
index 00000000000..f1762ee3daa
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/delete-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json
@@ -0,0 +1,35 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 404,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/Delete an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "operation_id": "DeleteAWSCloudAuthIntakeMapping",
+ "request": {
+ "body": null,
+ "content_type": null,
+ "method": "DELETE",
+ "pagination": false,
+ "parameters": [
+ {
+ "explode": null,
+ "in": "path",
+ "name": "intake_mapping_id",
+ "required": true,
+ "schema": {
+ "format": null,
+ "ref": null,
+ "type": "string"
+ },
+ "source": {
+ "type": "literal",
+ "value": "00000000-0000-0000-0000-000000000000"
+ },
+ "style": null
+ }
+ ],
+ "path": "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ },
+ "scenario": "Delete an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json
new file mode 100644
index 00000000000..52242f9e73f
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-not-found-response.json
@@ -0,0 +1,35 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 404,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/Get an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "operation_id": "GetAWSCloudAuthIntakeMapping",
+ "request": {
+ "body": null,
+ "content_type": null,
+ "method": "GET",
+ "pagination": false,
+ "parameters": [
+ {
+ "explode": null,
+ "in": "path",
+ "name": "intake_mapping_id",
+ "required": true,
+ "schema": {
+ "format": null,
+ "ref": null,
+ "type": "string"
+ },
+ "source": {
+ "type": "literal",
+ "value": "00000000-0000-0000-0000-000000000000"
+ },
+ "style": null
+ }
+ ],
+ "path": "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ },
+ "scenario": "Get an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-ok-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-ok-response.json
new file mode 100644
index 00000000000..e58858a226f
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/get-an-aws-cloud-authentication-intake-mapping-returns-ok-response.json
@@ -0,0 +1,35 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 200,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/Get an AWS cloud authentication intake mapping returns \"OK\" response",
+ "operation_id": "GetAWSCloudAuthIntakeMapping",
+ "request": {
+ "body": null,
+ "content_type": null,
+ "method": "GET",
+ "pagination": false,
+ "parameters": [
+ {
+ "explode": null,
+ "in": "path",
+ "name": "intake_mapping_id",
+ "required": true,
+ "schema": {
+ "format": null,
+ "ref": null,
+ "type": "string"
+ },
+ "source": {
+ "path": "aws_cloud_auth_intake_mapping.data.id",
+ "type": "fixture"
+ },
+ "style": null
+ }
+ ],
+ "path": "/api/v2/wif/aws/intake_mapping/{intake_mapping_id}"
+ },
+ "scenario": "Get an AWS cloud authentication intake mapping returns \"OK\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/list-aws-cloud-authentication-intake-mappings-returns-ok-response.json b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/list-aws-cloud-authentication-intake-mappings-returns-ok-response.json
new file mode 100644
index 00000000000..33411a24606
--- /dev/null
+++ b/src/test/resources/generated-test/test-runner-data/v2/cloud-authentication/list-aws-cloud-authentication-intake-mappings-returns-ok-response.json
@@ -0,0 +1,18 @@
+{
+ "api": "CloudAuthentication",
+ "expected_status": 200,
+ "feature": "Cloud Authentication",
+ "id": "v2/Cloud Authentication/List AWS cloud authentication intake mappings returns \"OK\" response",
+ "operation_id": "ListAWSCloudAuthIntakeMappings",
+ "request": {
+ "body": null,
+ "content_type": null,
+ "method": "GET",
+ "pagination": false,
+ "parameters": [],
+ "path": "/api/v2/wif/aws/intake_mapping"
+ },
+ "scenario": "List AWS cloud authentication intake mappings returns \"OK\" response",
+ "schema_version": 1,
+ "version": "v2"
+}
diff --git a/src/test/resources/generated-test/test-server-data/manifest.json b/src/test/resources/generated-test/test-server-data/manifest.json
index 563b35eb133..ad02abee0b2 100644
--- a/src/test/resources/generated-test/test-server-data/manifest.json
+++ b/src/test/resources/generated-test/test-server-data/manifest.json
@@ -220,6 +220,11 @@
"file": "v2/case-management-type.json",
"version": "v2"
},
+ {
+ "feature": "Cloud Authentication",
+ "file": "v2/cloud-authentication.json",
+ "version": "v2"
+ },
{
"feature": "Cloud Cost Management",
"file": "v2/cloud-cost-management.json",
diff --git a/src/test/resources/generated-test/test-server-data/v2/cloud-authentication.json b/src/test/resources/generated-test/test-server-data/v2/cloud-authentication.json
new file mode 100644
index 00000000000..51afb51e7dc
--- /dev/null
+++ b/src/test/resources/generated-test/test-server-data/v2/cloud-authentication.json
@@ -0,0 +1,616 @@
+{
+ "feature": "Cloud Authentication",
+ "recordings": [
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:41:58.788Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "json",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "not-an-arn"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid ARN pattern format\"}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Bad Request",
+ "status": 400
+ }
+ }
+ ],
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Bad Request\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:41:58.958Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/integration/aws/accounts",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":[{\"id\":\"00000000-0000-4000-8000-000000000001\",\"type\":\"account\",\"attributes\":{\"account_tags\":[],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"00000000000000000000000000000000\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_all\":true},\"created_at\":\"2026-07-29T13:00:24.231898Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[],\"sources\":[],\"log_source_config\":{\"tag_filters\":[]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[],\"namespace_filters\":{\"exclude_only\":[\"AWS/SQS\",\"AWS/ElasticMapReduce\",\"AWS/Usage\"]}},\"modified_at\":\"2026-07-29T13:00:24.231898Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":true},\"traces_config\":{\"xray_services\":{\"include_only\":[]}}}}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "OK",
+ "status": 200
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "json",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::123456789012:assumed-role/DatadogAgent-1577729b51a75aae/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":{\"id\":\"f4f3ca19-91bf-4e21-9424-ade6e1f26ff5\",\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::123456789012:assumed-role/DatadogAgent-1577729b51a75aae/*\"}}}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Created",
+ "status": 201
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "json",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::123456789012:assumed-role/DatadogAgent-1577729b51a75aae/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"ARN pattern already exists in intake mapping\"}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Conflict",
+ "status": 409
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "DELETE",
+ "path": "/api/v2/wif/aws/intake_mapping/f4f3ca19-91bf-4e21-9424-ade6e1f26ff5",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": ""
+ },
+ "headers": {},
+ "reason": "No Content",
+ "status": 204
+ }
+ }
+ ],
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Conflict\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:41:59.581Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/integration/aws/accounts",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":[{\"id\":\"00000000-0000-4000-8000-000000000001\",\"type\":\"account\",\"attributes\":{\"account_tags\":[],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"00000000000000000000000000000000\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_all\":true},\"created_at\":\"2026-07-29T13:00:24.231898Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[],\"sources\":[],\"log_source_config\":{\"tag_filters\":[]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[],\"namespace_filters\":{\"exclude_only\":[\"AWS/SQS\",\"AWS/ElasticMapReduce\",\"AWS/Usage\"]}},\"modified_at\":\"2026-07-29T13:00:24.231898Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":true},\"traces_config\":{\"xray_services\":{\"include_only\":[]}}}}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "OK",
+ "status": 200
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "json",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::123456789012:assumed-role/DatadogAgent-484d2c17a502b020/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":{\"id\":\"6b882892-4b24-48cc-ae5a-951a868cf4f1\",\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::123456789012:assumed-role/DatadogAgent-484d2c17a502b020/*\"}}}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Created",
+ "status": 201
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "DELETE",
+ "path": "/api/v2/wif/aws/intake_mapping/6b882892-4b24-48cc-ae5a-951a868cf4f1",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": ""
+ },
+ "headers": {},
+ "reason": "No Content",
+ "status": 204
+ }
+ }
+ ],
+ "scenario": "Create an AWS cloud authentication intake mapping returns \"Created\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:42:00.102Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/integration/aws/accounts",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":[{\"id\":\"00000000-0000-4000-8000-000000000001\",\"type\":\"account\",\"attributes\":{\"account_tags\":[],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"00000000000000000000000000000000\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_all\":true},\"created_at\":\"2026-07-29T13:00:24.231898Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[],\"sources\":[],\"log_source_config\":{\"tag_filters\":[]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[],\"namespace_filters\":{\"exclude_only\":[\"AWS/SQS\",\"AWS/ElasticMapReduce\",\"AWS/Usage\"]}},\"modified_at\":\"2026-07-29T13:00:24.231898Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":true},\"traces_config\":{\"xray_services\":{\"include_only\":[]}}}}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "OK",
+ "status": 200
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "json",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::123456789012:assumed-role/DatadogAgent-e42cabb82e76a0b0/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":{\"id\":\"5f939215-97b2-41e9-930e-f0527336b0aa\",\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::123456789012:assumed-role/DatadogAgent-e42cabb82e76a0b0/*\"}}}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Created",
+ "status": 201
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "DELETE",
+ "path": "/api/v2/wif/aws/intake_mapping/5f939215-97b2-41e9-930e-f0527336b0aa",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": ""
+ },
+ "headers": {},
+ "reason": "No Content",
+ "status": 204
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "DELETE",
+ "path": "/api/v2/wif/aws/intake_mapping/5f939215-97b2-41e9-930e-f0527336b0aa",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\"}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Not Found",
+ "status": 404
+ }
+ }
+ ],
+ "scenario": "Delete an AWS cloud authentication intake mapping returns \"No Content\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:42:00.690Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "DELETE",
+ "path": "/api/v2/wif/aws/intake_mapping/00000000-0000-0000-0000-000000000000",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\"}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Not Found",
+ "status": 404
+ }
+ }
+ ],
+ "scenario": "Delete an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:42:00.815Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/wif/aws/intake_mapping/00000000-0000-0000-0000-000000000000",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\"}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Not Found",
+ "status": 404
+ }
+ }
+ ],
+ "scenario": "Get an AWS cloud authentication intake mapping returns \"Not Found\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:42:00.943Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/integration/aws/accounts",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":[{\"id\":\"00000000-0000-4000-8000-000000000001\",\"type\":\"account\",\"attributes\":{\"account_tags\":[],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"00000000000000000000000000000000\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_all\":true},\"created_at\":\"2026-07-29T13:00:24.231898Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[],\"sources\":[],\"log_source_config\":{\"tag_filters\":[]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[],\"namespace_filters\":{\"exclude_only\":[\"AWS/SQS\",\"AWS/ElasticMapReduce\",\"AWS/Usage\"]}},\"modified_at\":\"2026-07-29T13:00:24.231898Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":true},\"traces_config\":{\"xray_services\":{\"include_only\":[]}}}}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "OK",
+ "status": 200
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "json",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::123456789012:assumed-role/DatadogAgent-9f53d5ba800a7fdb/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":{\"id\":\"5283249d-a3a6-4291-88b6-e155bda4ab65\",\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::123456789012:assumed-role/DatadogAgent-9f53d5ba800a7fdb/*\"}}}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Created",
+ "status": 201
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/wif/aws/intake_mapping/5283249d-a3a6-4291-88b6-e155bda4ab65",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":{\"id\":\"5283249d-a3a6-4291-88b6-e155bda4ab65\",\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::123456789012:assumed-role/DatadogAgent-9f53d5ba800a7fdb/*\"}}}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "OK",
+ "status": 200
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "DELETE",
+ "path": "/api/v2/wif/aws/intake_mapping/5283249d-a3a6-4291-88b6-e155bda4ab65",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": ""
+ },
+ "headers": {},
+ "reason": "No Content",
+ "status": 204
+ }
+ }
+ ],
+ "scenario": "Get an AWS cloud authentication intake mapping returns \"OK\" response",
+ "version": "v2"
+ },
+ {
+ "feature": "Cloud Authentication",
+ "frozen_at": "2026-10-29T17:42:01.510Z",
+ "interactions": [
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/integration/aws/accounts",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":[{\"id\":\"00000000-0000-4000-8000-000000000001\",\"type\":\"account\",\"attributes\":{\"account_tags\":[],\"auth_config\":{\"role_name\":\"DatadogIntegrationRole\",\"external_id\":\"00000000000000000000000000000000\"},\"aws_account_id\":\"123456789012\",\"aws_partition\":\"aws\",\"aws_regions\":{\"include_all\":true},\"created_at\":\"2026-07-29T13:00:24.231898Z\",\"logs_config\":{\"lambda_forwarder\":{\"lambdas\":[],\"sources\":[],\"log_source_config\":{\"tag_filters\":[]}}},\"metrics_config\":{\"enabled\":true,\"automute_enabled\":true,\"collect_custom_metrics\":false,\"collect_cloudwatch_alarms\":false,\"tag_filters\":[],\"namespace_filters\":{\"exclude_only\":[\"AWS/SQS\",\"AWS/ElasticMapReduce\",\"AWS/Usage\"]}},\"modified_at\":\"2026-07-29T13:00:24.231898Z\",\"resources_config\":{\"cloud_security_posture_management_collection\":false,\"extended_collection\":true},\"traces_config\":{\"xray_services\":{\"include_only\":[]}}}}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "OK",
+ "status": 200
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "json",
+ "value": {
+ "data": {
+ "attributes": {
+ "arn_pattern": "arn:aws:sts::123456789012:assumed-role/DatadogAgent-ddf9858670106ffb/*"
+ },
+ "type": "aws_cloud_auth_intake_mapping"
+ }
+ }
+ },
+ "content_type": "application/json",
+ "method": "POST",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":{\"id\":\"80586b57-c847-4a6d-8e02-2e2c185996d0\",\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::123456789012:assumed-role/DatadogAgent-ddf9858670106ffb/*\"}}}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "Created",
+ "status": 201
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "GET",
+ "path": "/api/v2/wif/aws/intake_mapping",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": "{\"data\":[{\"id\":\"80586b57-c847-4a6d-8e02-2e2c185996d0\",\"type\":\"aws_cloud_auth_intake_mapping\",\"attributes\":{\"arn_pattern\":\"arn:aws:sts::123456789012:assumed-role/DatadogAgent-ddf9858670106ffb/*\"}}]}"
+ },
+ "headers": {
+ "content-type": "application/vnd.api+json"
+ },
+ "reason": "OK",
+ "status": 200
+ }
+ },
+ {
+ "request": {
+ "body": {
+ "type": "empty",
+ "value": null
+ },
+ "content_type": "",
+ "method": "DELETE",
+ "path": "/api/v2/wif/aws/intake_mapping/80586b57-c847-4a6d-8e02-2e2c185996d0",
+ "query": []
+ },
+ "response": {
+ "body": {
+ "encoding": "text",
+ "value": ""
+ },
+ "headers": {},
+ "reason": "No Content",
+ "status": 204
+ }
+ }
+ ],
+ "scenario": "List AWS cloud authentication intake mappings returns \"OK\" response",
+ "version": "v2"
+ }
+ ],
+ "schema_version": 1,
+ "version": "v2"
+}