diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 97213ec2fe9..aa59f26ddf7 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -435,6 +435,14 @@ components:
schema:
example: "service:myservice"
type: string
+ EntityIntegrationConfigID:
+ description: The identifier of the integration whose configuration is being managed. Supported values are `github`, `jira`, and `pagerduty`.
+ in: path
+ name: integration_id
+ required: true
+ schema:
+ example: github
+ type: string
FastlyAccountID:
description: Fastly Account id.
in: path
@@ -27199,6 +27207,103 @@ components:
description: Entity.
type: string
type: object
+ EntityIntegrationConfigAttributes:
+ description: The organization ID, integration identifier, and integration-specific configuration payload for an entity integration configuration.
+ properties:
+ config:
+ $ref: "#/components/schemas/EntityIntegrationConfigPayload"
+ integration_id:
+ description: The identifier of the integration this configuration applies to (for example, `github`, `jira`, or `pagerduty`).
+ example: github
+ type: string
+ org_id:
+ description: The Datadog organization identifier that owns this configuration.
+ example: 1234
+ format: int64
+ type: integer
+ required:
+ - org_id
+ - integration_id
+ - config
+ type: object
+ EntityIntegrationConfigData:
+ description: JSON:API resource object for an entity integration configuration.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/EntityIntegrationConfigAttributes"
+ id:
+ description: Unique identifier of the entity integration configuration.
+ example: 01HJABCD12345678ABCDEFGHIJ
+ type: string
+ type:
+ $ref: "#/components/schemas/EntityIntegrationConfigType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ EntityIntegrationConfigPayload:
+ additionalProperties: {}
+ description: Integration-specific configuration payload. The shape of this object depends on the integration identified by the path parameter. For `github`, the object must contain an `enabled_repos` array. For `jira`, it must contain an `enabled_projects` array. For `pagerduty`, it must contain an `accounts` array.
+ example:
+ enabled_repos:
+ - github_org_name: myorg
+ hostname: github.com
+ repo_name: myrepo
+ type: object
+ EntityIntegrationConfigRequest:
+ description: Request body used to create or replace the configuration for a given integration.
+ properties:
+ data:
+ $ref: "#/components/schemas/EntityIntegrationConfigRequestData"
+ required:
+ - data
+ type: object
+ EntityIntegrationConfigRequestAttributes:
+ description: Attributes used to create or update an entity integration configuration.
+ properties:
+ config:
+ $ref: "#/components/schemas/EntityIntegrationConfigPayload"
+ required:
+ - config
+ type: object
+ EntityIntegrationConfigRequestData:
+ description: JSON:API resource object used in a request to create or update an entity integration configuration.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/EntityIntegrationConfigRequestAttributes"
+ type:
+ $ref: "#/components/schemas/EntityIntegrationConfigRequestType"
+ required:
+ - type
+ - attributes
+ type: object
+ EntityIntegrationConfigRequestType:
+ default: entity_integration_config_requests
+ description: JSON:API resource type for the entity integration configuration create or update request. Always `entity_integration_config_requests`.
+ enum:
+ - entity_integration_config_requests
+ example: entity_integration_config_requests
+ type: string
+ x-enum-varnames:
+ - ENTITY_INTEGRATION_CONFIG_REQUESTS
+ EntityIntegrationConfigResponse:
+ description: JSON:API document containing a single entity integration configuration resource.
+ properties:
+ data:
+ $ref: "#/components/schemas/EntityIntegrationConfigData"
+ required:
+ - data
+ type: object
+ EntityIntegrationConfigType:
+ default: entity_integration_configs
+ description: JSON:API resource type for an entity integration configuration. Always `entity_integration_configs`.
+ enum:
+ - entity_integration_configs
+ example: entity_integration_configs
+ type: string
+ x-enum-varnames:
+ - ENTITY_INTEGRATION_CONFIGS
EntityMeta:
description: Entity metadata.
properties:
@@ -114501,6 +114606,180 @@ paths:
x-unstable: |-
**Note**: This endpoint is in public beta and is subject to change.
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
+ /api/v2/idp/entity_integrations/{integration_id}:
+ delete:
+ description: Delete the configuration stored for a given integration in the caller's organization.
+ operationId: DeleteEntityIntegrationConfig
+ parameters:
+ - $ref: "#/components/parameters/EntityIntegrationConfigID"
+ responses:
+ "204":
+ description: No Content
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Delete an entity integration configuration
+ tags:
+ - Entity Integration Configs
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ x-unstable: |-
+ **Note**: This endpoint is in preview and is subject to change.
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
+ get:
+ description: Retrieve the configuration currently stored for a given integration in the caller's organization.
+ operationId: GetEntityIntegrationConfig
+ parameters:
+ - $ref: "#/components/parameters/EntityIntegrationConfigID"
+ responses:
+ "200":
+ content:
+ application/json:
+ example:
+ data:
+ attributes:
+ config:
+ enabled_repos:
+ - github_org_name: myorg
+ hostname: github.com
+ repo_name: myrepo
+ integration_id: github
+ org_id: 1234
+ id: 01HJABCD12345678ABCDEFGHIJ
+ type: entity_integration_configs
+ schema:
+ $ref: "#/components/schemas/EntityIntegrationConfigResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get an entity integration configuration
+ tags:
+ - Entity Integration Configs
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ x-unstable: |-
+ **Note**: This endpoint is in preview and is subject to change.
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
+ put:
+ description: |-
+ Create or replace the configuration for a given integration in the caller's organization. The shape of `data.attributes.config` depends on the integration:
+
+ - For `github`: `config` must contain an `enabled_repos` array of objects with `hostname`, `github_org_name`, and `repo_name`.
+ - For `jira`: `config` must contain an `enabled_projects` array of objects with `hostname`, `account_id`, and `project_key`.
+ - For `pagerduty`: `config` must contain an `accounts` array of objects with a required `enabled` boolean and an optional `subdomain` string.
+ operationId: UpdateEntityIntegrationConfig
+ parameters:
+ - $ref: "#/components/parameters/EntityIntegrationConfigID"
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ summary: GitHub integration configuration
+ value:
+ data:
+ attributes:
+ config:
+ enabled_repos:
+ - github_org_name: myorg
+ hostname: github.com
+ repo_name: myrepo
+ type: entity_integration_config_requests
+ jira:
+ summary: Jira integration configuration
+ value:
+ data:
+ attributes:
+ config:
+ enabled_projects:
+ - account_id: "123456789"
+ hostname: mycompany.atlassian.net
+ project_key: AAA
+ type: entity_integration_config_requests
+ pagerduty:
+ summary: PagerDuty integration configuration
+ value:
+ data:
+ attributes:
+ config:
+ accounts:
+ - enabled: true
+ subdomain: mycompany
+ type: entity_integration_config_requests
+ schema:
+ $ref: "#/components/schemas/EntityIntegrationConfigRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ example:
+ data:
+ attributes:
+ config:
+ enabled_repos:
+ - github_org_name: myorg
+ hostname: github.com
+ repo_name: myrepo
+ integration_id: github
+ org_id: 1234
+ id: 01HJABCD12345678ABCDEFGHIJ
+ type: entity_integration_configs
+ schema:
+ $ref: "#/components/schemas/EntityIntegrationConfigResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Create or update entity integration configuration
+ tags:
+ - Entity Integration Configs
+ x-codegen-request-body-name: body
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ x-unstable: |-
+ **Note**: This endpoint is in preview and is subject to change.
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
/api/v2/incidents:
get:
description: >-
@@ -161782,6 +162061,8 @@ tags:
scopes from alerting. Downtime settings, which can be scheduled with start and
end times, prevent all alerting related to specified Datadog tags.
name: Downtimes
+ - description: Manage per-integration configurations for the Internal Developer Portal (IDP). These configurations control which external resources (for example, GitHub repositories, Jira projects, or PagerDuty services) are synced as entities into the Software Catalog.
+ name: Entity Integration Configs
- description: Retrieves security risk scores for entities in your organization.
name: Entity Risk Scores
- description: View and manage issues within Error Tracking. See the [Error Tracking page](https://docs.datadoghq.com/error_tracking/) for more information.
diff --git a/examples/v2/entity-integration-configs/DeleteEntityIntegrationConfig.java b/examples/v2/entity-integration-configs/DeleteEntityIntegrationConfig.java
new file mode 100644
index 00000000000..3568303098f
--- /dev/null
+++ b/examples/v2/entity-integration-configs/DeleteEntityIntegrationConfig.java
@@ -0,0 +1,24 @@
+// Delete an entity integration configuration returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.EntityIntegrationConfigsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteEntityIntegrationConfig", true);
+ EntityIntegrationConfigsApi apiInstance = new EntityIntegrationConfigsApi(defaultClient);
+
+ try {
+ apiInstance.deleteEntityIntegrationConfig("github");
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling EntityIntegrationConfigsApi#deleteEntityIntegrationConfig");
+ 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/entity-integration-configs/GetEntityIntegrationConfig.java b/examples/v2/entity-integration-configs/GetEntityIntegrationConfig.java
new file mode 100644
index 00000000000..2ec323cdd83
--- /dev/null
+++ b/examples/v2/entity-integration-configs/GetEntityIntegrationConfig.java
@@ -0,0 +1,26 @@
+// Get an entity integration configuration returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.EntityIntegrationConfigsApi;
+import com.datadog.api.client.v2.model.EntityIntegrationConfigResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getEntityIntegrationConfig", true);
+ EntityIntegrationConfigsApi apiInstance = new EntityIntegrationConfigsApi(defaultClient);
+
+ try {
+ EntityIntegrationConfigResponse result = apiInstance.getEntityIntegrationConfig("github");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling EntityIntegrationConfigsApi#getEntityIntegrationConfig");
+ 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/entity-integration-configs/UpdateEntityIntegrationConfig.java b/examples/v2/entity-integration-configs/UpdateEntityIntegrationConfig.java
new file mode 100644
index 00000000000..9437490c754
--- /dev/null
+++ b/examples/v2/entity-integration-configs/UpdateEntityIntegrationConfig.java
@@ -0,0 +1,46 @@
+// Create or update entity integration configuration returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.EntityIntegrationConfigsApi;
+import com.datadog.api.client.v2.model.EntityIntegrationConfigRequest;
+import com.datadog.api.client.v2.model.EntityIntegrationConfigRequestAttributes;
+import com.datadog.api.client.v2.model.EntityIntegrationConfigRequestData;
+import com.datadog.api.client.v2.model.EntityIntegrationConfigRequestType;
+import com.datadog.api.client.v2.model.EntityIntegrationConfigResponse;
+import java.util.Map;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateEntityIntegrationConfig", true);
+ EntityIntegrationConfigsApi apiInstance = new EntityIntegrationConfigsApi(defaultClient);
+
+ EntityIntegrationConfigRequest body =
+ new EntityIntegrationConfigRequest()
+ .data(
+ new EntityIntegrationConfigRequestData()
+ .attributes(
+ new EntityIntegrationConfigRequestAttributes()
+ .config(
+ Map.ofEntries(
+ Map.entry(
+ "enabled_repos",
+ "[{'github_org_name': 'myorg', 'hostname': 'github.com',"
+ + " 'repo_name': 'myrepo'}]"))))
+ .type(EntityIntegrationConfigRequestType.ENTITY_INTEGRATION_CONFIG_REQUESTS));
+
+ try {
+ EntityIntegrationConfigResponse result =
+ apiInstance.updateEntityIntegrationConfig("github", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling EntityIntegrationConfigsApi#updateEntityIntegrationConfig");
+ 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 089bfbd9e6d..d8203da272c 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -963,6 +963,9 @@ public class ApiClient {
put("v2.updateDeploymentRule", false);
put("v2.createHamrOrgConnection", false);
put("v2.getHamrOrgConnection", false);
+ put("v2.deleteEntityIntegrationConfig", false);
+ put("v2.getEntityIntegrationConfig", false);
+ put("v2.updateEntityIntegrationConfig", false);
put("v2.createGlobalIncidentHandle", false);
put("v2.createIncident", false);
put("v2.createIncidentAttachment", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/EntityIntegrationConfigsApi.java b/src/main/java/com/datadog/api/client/v2/api/EntityIntegrationConfigsApi.java
new file mode 100644
index 00000000000..9bb48c03a6a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/EntityIntegrationConfigsApi.java
@@ -0,0 +1,590 @@
+package com.datadog.api.client.v2.api;
+
+import com.datadog.api.client.ApiClient;
+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.EntityIntegrationConfigRequest;
+import com.datadog.api.client.v2.model.EntityIntegrationConfigResponse;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class EntityIntegrationConfigsApi {
+ private ApiClient apiClient;
+
+ public EntityIntegrationConfigsApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public EntityIntegrationConfigsApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Delete an entity integration configuration.
+ *
+ *
See {@link #deleteEntityIntegrationConfigWithHttpInfo}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteEntityIntegrationConfig(String integrationId) throws ApiException {
+ deleteEntityIntegrationConfigWithHttpInfo(integrationId);
+ }
+
+ /**
+ * Delete an entity integration configuration.
+ *
+ *
See {@link #deleteEntityIntegrationConfigWithHttpInfoAsync}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteEntityIntegrationConfigAsync(String integrationId) {
+ return deleteEntityIntegrationConfigWithHttpInfoAsync(integrationId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete the configuration stored for a given integration in the caller's organization.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (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 | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Not Authorized | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteEntityIntegrationConfigWithHttpInfo(String integrationId)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteEntityIntegrationConfig";
+ 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 'integrationId' is set
+ if (integrationId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationId' when calling"
+ + " deleteEntityIntegrationConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/idp/entity_integrations/{integration_id}"
+ .replaceAll(
+ "\\{" + "integration_id" + "\\}", apiClient.escapeString(integrationId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.EntityIntegrationConfigsApi.deleteEntityIntegrationConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete an entity integration configuration.
+ *
+ * See {@link #deleteEntityIntegrationConfigWithHttpInfo}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteEntityIntegrationConfigWithHttpInfoAsync(
+ String integrationId) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteEntityIntegrationConfig";
+ 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 'integrationId' is set
+ if (integrationId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationId' when calling"
+ + " deleteEntityIntegrationConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/idp/entity_integrations/{integration_id}"
+ .replaceAll(
+ "\\{" + "integration_id" + "\\}", apiClient.escapeString(integrationId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.EntityIntegrationConfigsApi.deleteEntityIntegrationConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } 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);
+ }
+
+ /**
+ * Get an entity integration configuration.
+ *
+ * See {@link #getEntityIntegrationConfigWithHttpInfo}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @return EntityIntegrationConfigResponse
+ * @throws ApiException if fails to make API call
+ */
+ public EntityIntegrationConfigResponse getEntityIntegrationConfig(String integrationId)
+ throws ApiException {
+ return getEntityIntegrationConfigWithHttpInfo(integrationId).getData();
+ }
+
+ /**
+ * Get an entity integration configuration.
+ *
+ *
See {@link #getEntityIntegrationConfigWithHttpInfoAsync}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @return CompletableFuture<EntityIntegrationConfigResponse>
+ */
+ public CompletableFuture getEntityIntegrationConfigAsync(
+ String integrationId) {
+ return getEntityIntegrationConfigWithHttpInfoAsync(integrationId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Retrieve the configuration currently stored for a given integration in the caller's
+ * organization.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @return ApiResponse<EntityIntegrationConfigResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Not Authorized | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getEntityIntegrationConfigWithHttpInfo(
+ String integrationId) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getEntityIntegrationConfig";
+ 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 'integrationId' is set
+ if (integrationId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationId' when calling getEntityIntegrationConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/idp/entity_integrations/{integration_id}"
+ .replaceAll(
+ "\\{" + "integration_id" + "\\}", apiClient.escapeString(integrationId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.EntityIntegrationConfigsApi.getEntityIntegrationConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get an entity integration configuration.
+ *
+ * See {@link #getEntityIntegrationConfigWithHttpInfo}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @return CompletableFuture<ApiResponse<EntityIntegrationConfigResponse>>
+ */
+ public CompletableFuture>
+ getEntityIntegrationConfigWithHttpInfoAsync(String integrationId) {
+ // Check if unstable operation is enabled
+ String operationId = "getEntityIntegrationConfig";
+ 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 'integrationId' is set
+ if (integrationId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationId' when calling"
+ + " getEntityIntegrationConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/idp/entity_integrations/{integration_id}"
+ .replaceAll(
+ "\\{" + "integration_id" + "\\}", apiClient.escapeString(integrationId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.EntityIntegrationConfigsApi.getEntityIntegrationConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } 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() {});
+ }
+
+ /**
+ * Create or update entity integration configuration.
+ *
+ * See {@link #updateEntityIntegrationConfigWithHttpInfo}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @param body (required)
+ * @return EntityIntegrationConfigResponse
+ * @throws ApiException if fails to make API call
+ */
+ public EntityIntegrationConfigResponse updateEntityIntegrationConfig(
+ String integrationId, EntityIntegrationConfigRequest body) throws ApiException {
+ return updateEntityIntegrationConfigWithHttpInfo(integrationId, body).getData();
+ }
+
+ /**
+ * Create or update entity integration configuration.
+ *
+ *
See {@link #updateEntityIntegrationConfigWithHttpInfoAsync}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @param body (required)
+ * @return CompletableFuture<EntityIntegrationConfigResponse>
+ */
+ public CompletableFuture updateEntityIntegrationConfigAsync(
+ String integrationId, EntityIntegrationConfigRequest body) {
+ return updateEntityIntegrationConfigWithHttpInfoAsync(integrationId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create or replace the configuration for a given integration in the caller's organization. The
+ * shape of data.attributes.config depends on the integration:
+ *
+ *
+ * - For
github: config must contain an enabled_repos
+ * array of objects with hostname, github_org_name, and
+ * repo_name.
+ * - For
jira: config must contain an enabled_projects
+ * array of objects with hostname, account_id, and
+ * project_key.
+ * - For
pagerduty: config must contain an accounts
+ * array of objects with a required enabled boolean and an optional
+ * subdomain string.
+ *
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @param body (required)
+ * @return ApiResponse<EntityIntegrationConfigResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Not Authorized | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateEntityIntegrationConfigWithHttpInfo(
+ String integrationId, EntityIntegrationConfigRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "updateEntityIntegrationConfig";
+ 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 'integrationId' is set
+ if (integrationId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationId' when calling"
+ + " updateEntityIntegrationConfig");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateEntityIntegrationConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/idp/entity_integrations/{integration_id}"
+ .replaceAll(
+ "\\{" + "integration_id" + "\\}", apiClient.escapeString(integrationId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.EntityIntegrationConfigsApi.updateEntityIntegrationConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create or update entity integration configuration.
+ *
+ * See {@link #updateEntityIntegrationConfigWithHttpInfo}.
+ *
+ * @param integrationId The identifier of the integration whose configuration is being managed.
+ * Supported values are github, jira, and pagerduty.
+ * (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<EntityIntegrationConfigResponse>>
+ */
+ public CompletableFuture>
+ updateEntityIntegrationConfigWithHttpInfoAsync(
+ String integrationId, EntityIntegrationConfigRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "updateEntityIntegrationConfig";
+ 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 'integrationId' is set
+ if (integrationId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationId' when calling"
+ + " updateEntityIntegrationConfig"));
+ return result;
+ }
+
+ // 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 updateEntityIntegrationConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/idp/entity_integrations/{integration_id}"
+ .replaceAll(
+ "\\{" + "integration_id" + "\\}", apiClient.escapeString(integrationId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.EntityIntegrationConfigsApi.updateEntityIntegrationConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigAttributes.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigAttributes.java
new file mode 100644
index 00000000000..553c07c2bf8
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigAttributes.java
@@ -0,0 +1,215 @@
+/*
+ * 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;
+
+/**
+ * The organization ID, integration identifier, and integration-specific configuration payload for
+ * an entity integration configuration.
+ */
+@JsonPropertyOrder({
+ EntityIntegrationConfigAttributes.JSON_PROPERTY_CONFIG,
+ EntityIntegrationConfigAttributes.JSON_PROPERTY_INTEGRATION_ID,
+ EntityIntegrationConfigAttributes.JSON_PROPERTY_ORG_ID
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class EntityIntegrationConfigAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CONFIG = "config";
+ private Map config = new HashMap();
+
+ public static final String JSON_PROPERTY_INTEGRATION_ID = "integration_id";
+ private String integrationId;
+
+ public static final String JSON_PROPERTY_ORG_ID = "org_id";
+ private Long orgId;
+
+ public EntityIntegrationConfigAttributes() {}
+
+ @JsonCreator
+ public EntityIntegrationConfigAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_CONFIG) Map config,
+ @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_ID) String integrationId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ORG_ID) Long orgId) {
+ this.config = config;
+ this.integrationId = integrationId;
+ this.orgId = orgId;
+ }
+
+ public EntityIntegrationConfigAttributes config(Map config) {
+ this.config = config;
+ return this;
+ }
+
+ public EntityIntegrationConfigAttributes putConfigItem(String key, Object configItem) {
+ this.config.put(key, configItem);
+ return this;
+ }
+
+ /**
+ * Integration-specific configuration payload. The shape of this object depends on the integration
+ * identified by the path parameter. For github, the object must contain an
+ * enabled_repos array. For jira, it must contain an enabled_projects
+ * array. For pagerduty, it must contain an accounts array.
+ *
+ * @return config
+ */
+ @JsonProperty(JSON_PROPERTY_CONFIG)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Map getConfig() {
+ return config;
+ }
+
+ public void setConfig(Map config) {
+ this.config = config;
+ }
+
+ public EntityIntegrationConfigAttributes integrationId(String integrationId) {
+ this.integrationId = integrationId;
+ return this;
+ }
+
+ /**
+ * The identifier of the integration this configuration applies to (for example, github
+ * , jira, or pagerduty).
+ *
+ * @return integrationId
+ */
+ @JsonProperty(JSON_PROPERTY_INTEGRATION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getIntegrationId() {
+ return integrationId;
+ }
+
+ public void setIntegrationId(String integrationId) {
+ this.integrationId = integrationId;
+ }
+
+ public EntityIntegrationConfigAttributes orgId(Long orgId) {
+ this.orgId = orgId;
+ return this;
+ }
+
+ /**
+ * The Datadog organization identifier that owns this configuration.
+ *
+ * @return orgId
+ */
+ @JsonProperty(JSON_PROPERTY_ORG_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getOrgId() {
+ return orgId;
+ }
+
+ public void setOrgId(Long orgId) {
+ this.orgId = orgId;
+ }
+
+ /**
+ * 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 EntityIntegrationConfigAttributes
+ */
+ @JsonAnySetter
+ public EntityIntegrationConfigAttributes 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 EntityIntegrationConfigAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EntityIntegrationConfigAttributes entityIntegrationConfigAttributes =
+ (EntityIntegrationConfigAttributes) o;
+ return Objects.equals(this.config, entityIntegrationConfigAttributes.config)
+ && Objects.equals(this.integrationId, entityIntegrationConfigAttributes.integrationId)
+ && Objects.equals(this.orgId, entityIntegrationConfigAttributes.orgId)
+ && Objects.equals(
+ this.additionalProperties, entityIntegrationConfigAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(config, integrationId, orgId, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EntityIntegrationConfigAttributes {\n");
+ sb.append(" config: ").append(toIndentedString(config)).append("\n");
+ sb.append(" integrationId: ").append(toIndentedString(integrationId)).append("\n");
+ sb.append(" orgId: ").append(toIndentedString(orgId)).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/EntityIntegrationConfigData.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigData.java
new file mode 100644
index 00000000000..e007f61d90e
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigData.java
@@ -0,0 +1,212 @@
+/*
+ * 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;
+
+/** JSON:API resource object for an entity integration configuration. */
+@JsonPropertyOrder({
+ EntityIntegrationConfigData.JSON_PROPERTY_ATTRIBUTES,
+ EntityIntegrationConfigData.JSON_PROPERTY_ID,
+ EntityIntegrationConfigData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class EntityIntegrationConfigData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private EntityIntegrationConfigAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private EntityIntegrationConfigType type = EntityIntegrationConfigType.ENTITY_INTEGRATION_CONFIGS;
+
+ public EntityIntegrationConfigData() {}
+
+ @JsonCreator
+ public EntityIntegrationConfigData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ EntityIntegrationConfigAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) EntityIntegrationConfigType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public EntityIntegrationConfigData attributes(EntityIntegrationConfigAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * The organization ID, integration identifier, and integration-specific configuration payload for
+ * an entity integration configuration.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EntityIntegrationConfigAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(EntityIntegrationConfigAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public EntityIntegrationConfigData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Unique identifier of the entity integration configuration.
+ *
+ * @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 EntityIntegrationConfigData type(EntityIntegrationConfigType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * JSON:API resource type for an entity integration configuration. Always
+ * entity_integration_configs.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EntityIntegrationConfigType getType() {
+ return type;
+ }
+
+ public void setType(EntityIntegrationConfigType 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 EntityIntegrationConfigData
+ */
+ @JsonAnySetter
+ public EntityIntegrationConfigData 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 EntityIntegrationConfigData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EntityIntegrationConfigData entityIntegrationConfigData = (EntityIntegrationConfigData) o;
+ return Objects.equals(this.attributes, entityIntegrationConfigData.attributes)
+ && Objects.equals(this.id, entityIntegrationConfigData.id)
+ && Objects.equals(this.type, entityIntegrationConfigData.type)
+ && Objects.equals(
+ this.additionalProperties, entityIntegrationConfigData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EntityIntegrationConfigData {\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/EntityIntegrationConfigRequest.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequest.java
new file mode 100644
index 00000000000..4226c17f8e1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequest.java
@@ -0,0 +1,149 @@
+/*
+ * 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 body used to create or replace the configuration for a given integration. */
+@JsonPropertyOrder({EntityIntegrationConfigRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class EntityIntegrationConfigRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private EntityIntegrationConfigRequestData data;
+
+ public EntityIntegrationConfigRequest() {}
+
+ @JsonCreator
+ public EntityIntegrationConfigRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA)
+ EntityIntegrationConfigRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public EntityIntegrationConfigRequest data(EntityIntegrationConfigRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * JSON:API resource object used in a request to create or update an entity integration
+ * configuration.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EntityIntegrationConfigRequestData getData() {
+ return data;
+ }
+
+ public void setData(EntityIntegrationConfigRequestData data) {
+ this.data = data;
+ }
+
+ /**
+ * 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 EntityIntegrationConfigRequest
+ */
+ @JsonAnySetter
+ public EntityIntegrationConfigRequest 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 EntityIntegrationConfigRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EntityIntegrationConfigRequest entityIntegrationConfigRequest =
+ (EntityIntegrationConfigRequest) o;
+ return Objects.equals(this.data, entityIntegrationConfigRequest.data)
+ && Objects.equals(
+ this.additionalProperties, entityIntegrationConfigRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EntityIntegrationConfigRequest {\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/EntityIntegrationConfigRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequestAttributes.java
new file mode 100644
index 00000000000..d10608da779
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequestAttributes.java
@@ -0,0 +1,154 @@
+/*
+ * 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 used to create or update an entity integration configuration. */
+@JsonPropertyOrder({EntityIntegrationConfigRequestAttributes.JSON_PROPERTY_CONFIG})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class EntityIntegrationConfigRequestAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CONFIG = "config";
+ private Map config = new HashMap();
+
+ public EntityIntegrationConfigRequestAttributes() {}
+
+ @JsonCreator
+ public EntityIntegrationConfigRequestAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_CONFIG) Map config) {
+ this.config = config;
+ }
+
+ public EntityIntegrationConfigRequestAttributes config(Map config) {
+ this.config = config;
+ return this;
+ }
+
+ public EntityIntegrationConfigRequestAttributes putConfigItem(String key, Object configItem) {
+ this.config.put(key, configItem);
+ return this;
+ }
+
+ /**
+ * Integration-specific configuration payload. The shape of this object depends on the integration
+ * identified by the path parameter. For github, the object must contain an
+ * enabled_repos array. For jira, it must contain an enabled_projects
+ * array. For pagerduty, it must contain an accounts array.
+ *
+ * @return config
+ */
+ @JsonProperty(JSON_PROPERTY_CONFIG)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Map getConfig() {
+ return config;
+ }
+
+ public void setConfig(Map config) {
+ this.config = config;
+ }
+
+ /**
+ * 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 EntityIntegrationConfigRequestAttributes
+ */
+ @JsonAnySetter
+ public EntityIntegrationConfigRequestAttributes 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 EntityIntegrationConfigRequestAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EntityIntegrationConfigRequestAttributes entityIntegrationConfigRequestAttributes =
+ (EntityIntegrationConfigRequestAttributes) o;
+ return Objects.equals(this.config, entityIntegrationConfigRequestAttributes.config)
+ && Objects.equals(
+ this.additionalProperties,
+ entityIntegrationConfigRequestAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(config, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EntityIntegrationConfigRequestAttributes {\n");
+ sb.append(" config: ").append(toIndentedString(config)).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/EntityIntegrationConfigRequestData.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequestData.java
new file mode 100644
index 00000000000..182ff493284
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequestData.java
@@ -0,0 +1,190 @@
+/*
+ * 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;
+
+/**
+ * JSON:API resource object used in a request to create or update an entity integration
+ * configuration.
+ */
+@JsonPropertyOrder({
+ EntityIntegrationConfigRequestData.JSON_PROPERTY_ATTRIBUTES,
+ EntityIntegrationConfigRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class EntityIntegrationConfigRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private EntityIntegrationConfigRequestAttributes attributes;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private EntityIntegrationConfigRequestType type =
+ EntityIntegrationConfigRequestType.ENTITY_INTEGRATION_CONFIG_REQUESTS;
+
+ public EntityIntegrationConfigRequestData() {}
+
+ @JsonCreator
+ public EntityIntegrationConfigRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ EntityIntegrationConfigRequestAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE)
+ EntityIntegrationConfigRequestType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public EntityIntegrationConfigRequestData attributes(
+ EntityIntegrationConfigRequestAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes used to create or update an entity integration configuration.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EntityIntegrationConfigRequestAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(EntityIntegrationConfigRequestAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public EntityIntegrationConfigRequestData type(EntityIntegrationConfigRequestType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * JSON:API resource type for the entity integration configuration create or update request.
+ * Always entity_integration_config_requests.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EntityIntegrationConfigRequestType getType() {
+ return type;
+ }
+
+ public void setType(EntityIntegrationConfigRequestType 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 EntityIntegrationConfigRequestData
+ */
+ @JsonAnySetter
+ public EntityIntegrationConfigRequestData 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 EntityIntegrationConfigRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EntityIntegrationConfigRequestData entityIntegrationConfigRequestData =
+ (EntityIntegrationConfigRequestData) o;
+ return Objects.equals(this.attributes, entityIntegrationConfigRequestData.attributes)
+ && Objects.equals(this.type, entityIntegrationConfigRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, entityIntegrationConfigRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EntityIntegrationConfigRequestData {\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/EntityIntegrationConfigRequestType.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequestType.java
new file mode 100644
index 00000000000..c3b9944fb88
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigRequestType.java
@@ -0,0 +1,62 @@
+/*
+ * 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;
+
+/**
+ * JSON:API resource type for the entity integration configuration create or update request. Always
+ * entity_integration_config_requests.
+ */
+@JsonSerialize(
+ using = EntityIntegrationConfigRequestType.EntityIntegrationConfigRequestTypeSerializer.class)
+public class EntityIntegrationConfigRequestType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("entity_integration_config_requests"));
+
+ public static final EntityIntegrationConfigRequestType ENTITY_INTEGRATION_CONFIG_REQUESTS =
+ new EntityIntegrationConfigRequestType("entity_integration_config_requests");
+
+ EntityIntegrationConfigRequestType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class EntityIntegrationConfigRequestTypeSerializer
+ extends StdSerializer {
+ public EntityIntegrationConfigRequestTypeSerializer(
+ Class t) {
+ super(t);
+ }
+
+ public EntityIntegrationConfigRequestTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ EntityIntegrationConfigRequestType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static EntityIntegrationConfigRequestType fromValue(String value) {
+ return new EntityIntegrationConfigRequestType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigResponse.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigResponse.java
new file mode 100644
index 00000000000..9eec7070864
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigResponse.java
@@ -0,0 +1,147 @@
+/*
+ * 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;
+
+/** JSON:API document containing a single entity integration configuration resource. */
+@JsonPropertyOrder({EntityIntegrationConfigResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class EntityIntegrationConfigResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private EntityIntegrationConfigData data;
+
+ public EntityIntegrationConfigResponse() {}
+
+ @JsonCreator
+ public EntityIntegrationConfigResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) EntityIntegrationConfigData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public EntityIntegrationConfigResponse data(EntityIntegrationConfigData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * JSON:API resource object for an entity integration configuration.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EntityIntegrationConfigData getData() {
+ return data;
+ }
+
+ public void setData(EntityIntegrationConfigData data) {
+ this.data = data;
+ }
+
+ /**
+ * 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 EntityIntegrationConfigResponse
+ */
+ @JsonAnySetter
+ public EntityIntegrationConfigResponse 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 EntityIntegrationConfigResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EntityIntegrationConfigResponse entityIntegrationConfigResponse =
+ (EntityIntegrationConfigResponse) o;
+ return Objects.equals(this.data, entityIntegrationConfigResponse.data)
+ && Objects.equals(
+ this.additionalProperties, entityIntegrationConfigResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EntityIntegrationConfigResponse {\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/EntityIntegrationConfigType.java b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigType.java
new file mode 100644
index 00000000000..8239211ba20
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/EntityIntegrationConfigType.java
@@ -0,0 +1,60 @@
+/*
+ * 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;
+
+/**
+ * JSON:API resource type for an entity integration configuration. Always
+ * entity_integration_configs.
+ */
+@JsonSerialize(using = EntityIntegrationConfigType.EntityIntegrationConfigTypeSerializer.class)
+public class EntityIntegrationConfigType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("entity_integration_configs"));
+
+ public static final EntityIntegrationConfigType ENTITY_INTEGRATION_CONFIGS =
+ new EntityIntegrationConfigType("entity_integration_configs");
+
+ EntityIntegrationConfigType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class EntityIntegrationConfigTypeSerializer
+ extends StdSerializer {
+ public EntityIntegrationConfigTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public EntityIntegrationConfigTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ EntityIntegrationConfigType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static EntityIntegrationConfigType fromValue(String value) {
+ return new EntityIntegrationConfigType(value);
+ }
+}
diff --git a/src/test/resources/com/datadog/api/client/v2/api/entity_integration_configs.feature b/src/test/resources/com/datadog/api/client/v2/api/entity_integration_configs.feature
new file mode 100644
index 00000000000..3a672f8e40c
--- /dev/null
+++ b/src/test/resources/com/datadog/api/client/v2/api/entity_integration_configs.feature
@@ -0,0 +1,77 @@
+@endpoint(entity-integration-configs) @endpoint(entity-integration-configs-v2)
+Feature: Entity Integration Configs
+ Manage per-integration configurations for the Internal Developer Portal
+ (IDP). These configurations control which external resources (for example,
+ GitHub repositories, Jira projects, or PagerDuty services) are synced as
+ entities into the Software Catalog.
+
+ Background:
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "EntityIntegrationConfigs" API
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Create or update entity integration configuration returns "Bad Request" response
+ Given operation "UpdateEntityIntegrationConfig" enabled
+ And new "UpdateEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"config": {"enabled_repos": [{"github_org_name": "myorg", "hostname": "github.com", "repo_name": "myrepo"}]}}, "type": "entity_integration_config_requests"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Create or update entity integration configuration returns "OK" response
+ Given operation "UpdateEntityIntegrationConfig" enabled
+ And new "UpdateEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"config": {"enabled_repos": [{"github_org_name": "myorg", "hostname": "github.com", "repo_name": "myrepo"}]}}, "type": "entity_integration_config_requests"}}
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Delete an entity integration configuration returns "Bad Request" response
+ Given operation "DeleteEntityIntegrationConfig" enabled
+ And new "DeleteEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Delete an entity integration configuration returns "No Content" response
+ Given operation "DeleteEntityIntegrationConfig" enabled
+ And new "DeleteEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 204 No Content
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Delete an entity integration configuration returns "Not Found" response
+ Given operation "DeleteEntityIntegrationConfig" enabled
+ And new "DeleteEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Get an entity integration configuration returns "Bad Request" response
+ Given operation "GetEntityIntegrationConfig" enabled
+ And new "GetEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Get an entity integration configuration returns "Not Found" response
+ Given operation "GetEntityIntegrationConfig" enabled
+ And new "GetEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/idp
+ Scenario: Get an entity integration configuration returns "OK" response
+ Given operation "GetEntityIntegrationConfig" enabled
+ And new "GetEntityIntegrationConfig" request
+ And request contains "integration_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
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 7a8309d2cef..239b1a7a03f 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
@@ -2550,6 +2550,24 @@
"type": "unsafe"
}
},
+ "DeleteEntityIntegrationConfig": {
+ "tag": "Entity Integration Configs",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "GetEntityIntegrationConfig": {
+ "tag": "Entity Integration Configs",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "UpdateEntityIntegrationConfig": {
+ "tag": "Entity Integration Configs",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
"ListIncidents": {
"tag": "Incidents",
"undo": {