diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 440627d7e6b..e4ecc5ad902 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -82763,6 +82763,139 @@ components:
type: string
x-enum-varnames:
- RUM_REPLAY_WATCHER
+ WebIntegrationAccountCreateRequest:
+ description: Payload schema when adding a web integration account.
+ properties:
+ data:
+ $ref: "#/components/schemas/WebIntegrationAccountCreateRequestData"
+ required:
+ - data
+ type: object
+ WebIntegrationAccountCreateRequestAttributes:
+ description: Attributes object for creating a web integration account.
+ properties:
+ name:
+ description: A human-readable name for the account. Must be unique among accounts of the same integration.
+ example: my-databricks-account
+ type: string
+ secrets:
+ $ref: "#/components/schemas/WebIntegrationAccountSecrets"
+ settings:
+ $ref: "#/components/schemas/WebIntegrationAccountSettings"
+ required:
+ - name
+ - settings
+ - secrets
+ type: object
+ WebIntegrationAccountCreateRequestData:
+ description: Data object for creating a web integration account.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/WebIntegrationAccountCreateRequestAttributes"
+ type:
+ $ref: "#/components/schemas/WebIntegrationAccountType"
+ required:
+ - attributes
+ - type
+ type: object
+ WebIntegrationAccountResponse:
+ description: The expected response schema when getting a single web integration account.
+ properties:
+ data:
+ $ref: "#/components/schemas/WebIntegrationAccountResponseData"
+ type: object
+ WebIntegrationAccountResponseAttributes:
+ description: Attributes object of a web integration account. Secrets are never returned.
+ properties:
+ name:
+ description: A human-readable name for the account.
+ example: my-databricks-account
+ type: string
+ settings:
+ $ref: "#/components/schemas/WebIntegrationAccountSettings"
+ required:
+ - name
+ type: object
+ WebIntegrationAccountResponseData:
+ description: Data object of a web integration account.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/WebIntegrationAccountResponseAttributes"
+ id:
+ description: The unique identifier of the web integration account.
+ example: "abc123def456"
+ type: string
+ type:
+ $ref: "#/components/schemas/WebIntegrationAccountType"
+ required:
+ - attributes
+ - id
+ - type
+ type: object
+ WebIntegrationAccountSecrets:
+ additionalProperties: {}
+ description: |-
+ Integration-specific secrets. The shape of this object varies by integration. Secrets
+ are write-only and never returned by the API.
+ example:
+ client_secret: my-client-secret
+ type: object
+ WebIntegrationAccountSettings:
+ additionalProperties: {}
+ description: |-
+ Integration-specific settings. The shape of this object varies by integration.
+ example:
+ workspace_url: https://example.azuredatabricks.net
+ type: object
+ WebIntegrationAccountType:
+ default: Account
+ description: Account resource type.
+ enum:
+ - Account
+ example: Account
+ type: string
+ x-enum-varnames:
+ - ACCOUNT
+ WebIntegrationAccountUpdateRequest:
+ description: Payload schema when updating a web integration account.
+ properties:
+ data:
+ $ref: "#/components/schemas/WebIntegrationAccountUpdateRequestData"
+ required:
+ - data
+ type: object
+ WebIntegrationAccountUpdateRequestAttributes:
+ description: Attributes object for updating a web integration account.
+ properties:
+ name:
+ description: A human-readable name for the account.
+ example: my-databricks-account
+ type: string
+ secrets:
+ $ref: "#/components/schemas/WebIntegrationAccountSecrets"
+ settings:
+ $ref: "#/components/schemas/WebIntegrationAccountSettings"
+ type: object
+ WebIntegrationAccountUpdateRequestData:
+ description: Data object for updating a web integration account.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/WebIntegrationAccountUpdateRequestAttributes"
+ type:
+ $ref: "#/components/schemas/WebIntegrationAccountType"
+ required:
+ - attributes
+ - type
+ type: object
+ WebIntegrationAccountsResponse:
+ description: The expected response schema when listing web integration accounts.
+ properties:
+ data:
+ description: The JSON:API data array.
+ items:
+ $ref: "#/components/schemas/WebIntegrationAccountResponseData"
+ type: array
+ type: object
Weekday:
description: A day of the week.
enum:
@@ -144492,6 +144625,262 @@ paths:
operator: OR
permissions:
- teams_read
+ /api/v2/web-integrations/{integration_name}/accounts:
+ get:
+ description: List accounts for a given web integration.
+ operationId: ListWebIntegrationAccounts
+ parameters:
+ - description: The name of the integration (for example, `databricks`).
+ in: path
+ name: integration_name
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ name: my-databricks-account
+ settings:
+ workspace_url: https://example.azuredatabricks.net
+ id: abc123def456
+ type: Account
+ schema:
+ $ref: "#/components/schemas/WebIntegrationAccountsResponse"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: List web integration accounts
+ tags:
+ - Web Integrations
+ "x-permission":
+ operator: OR
+ permissions:
+ - integrations_read
+ post:
+ description: Create a new account for a given web integration.
+ operationId: CreateWebIntegrationAccount
+ parameters:
+ - description: The name of the integration (for example, `databricks`).
+ in: path
+ name: integration_name
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ name: my-databricks-account
+ secrets:
+ client_secret: my-client-secret
+ settings:
+ workspace_url: https://example.azuredatabricks.net
+ type: Account
+ schema:
+ $ref: "#/components/schemas/WebIntegrationAccountCreateRequest"
+ required: true
+ responses:
+ "201":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ name: my-databricks-account
+ settings:
+ workspace_url: https://example.azuredatabricks.net
+ id: abc123def456
+ type: Account
+ schema:
+ $ref: "#/components/schemas/WebIntegrationAccountResponse"
+ description: CREATED
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "422":
+ $ref: "#/components/responses/UnprocessableEntityResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Create a web integration account
+ tags:
+ - Web Integrations
+ x-codegen-request-body-name: body
+ "x-permission":
+ operator: OR
+ permissions:
+ - manage_integrations
+ /api/v2/web-integrations/{integration_name}/accounts/{account_id}:
+ delete:
+ description: Delete an account for a given web integration.
+ operationId: DeleteWebIntegrationAccount
+ parameters:
+ - description: The name of the integration (for example, `databricks`).
+ in: path
+ name: integration_name
+ required: true
+ schema:
+ type: string
+ - description: The unique identifier of the web integration account.
+ in: path
+ name: account_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "204":
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Delete a web integration account
+ tags:
+ - Web Integrations
+ "x-permission":
+ operator: OR
+ permissions:
+ - manage_integrations
+ get:
+ description: Get a single account for a given web integration.
+ operationId: GetWebIntegrationAccount
+ parameters:
+ - description: The name of the integration (for example, `databricks`).
+ in: path
+ name: integration_name
+ required: true
+ schema:
+ type: string
+ - description: The unique identifier of the web integration account.
+ in: path
+ name: account_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ name: my-databricks-account
+ settings:
+ workspace_url: https://example.azuredatabricks.net
+ id: abc123def456
+ type: Account
+ schema:
+ $ref: "#/components/schemas/WebIntegrationAccountResponse"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get a web integration account
+ tags:
+ - Web Integrations
+ "x-permission":
+ operator: OR
+ permissions:
+ - integrations_read
+ patch:
+ description: Update an existing account for a given web integration.
+ operationId: UpdateWebIntegrationAccount
+ parameters:
+ - description: The name of the integration (for example, `databricks`).
+ in: path
+ name: integration_name
+ required: true
+ schema:
+ type: string
+ - description: The unique identifier of the web integration account.
+ in: path
+ name: account_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ name: my-databricks-account
+ secrets:
+ client_secret: my-new-client-secret
+ settings:
+ workspace_url: https://updated.azuredatabricks.net
+ type: Account
+ schema:
+ $ref: "#/components/schemas/WebIntegrationAccountUpdateRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ name: my-databricks-account
+ settings:
+ workspace_url: https://updated.azuredatabricks.net
+ id: abc123def456
+ type: Account
+ schema:
+ $ref: "#/components/schemas/WebIntegrationAccountResponse"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "422":
+ $ref: "#/components/responses/UnprocessableEntityResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Update a web integration account
+ tags:
+ - Web Integrations
+ x-codegen-request-body-name: body
+ "x-permission":
+ operator: OR
+ permissions:
+ - manage_integrations
/api/v2/widgets/{experience_type}:
get:
description: |-
@@ -146005,6 +146394,9 @@ tags:
externalDocs:
url: https://docs.datadoghq.com/account_management/users
name: Users
+ - description: |-
+ Manage web integration accounts programmatically through the Datadog API. See the [Web Integrations page](https://app.datadoghq.com/integrations) for more information.
+ name: Web Integrations
- description: |-
Create, read, update, and delete saved widgets. Widgets are reusable
visualization components stored independently from any dashboard or notebook,
diff --git a/examples/v2/web-integrations/CreateWebIntegrationAccount.java b/examples/v2/web-integrations/CreateWebIntegrationAccount.java
new file mode 100644
index 00000000000..78c19b178a8
--- /dev/null
+++ b/examples/v2/web-integrations/CreateWebIntegrationAccount.java
@@ -0,0 +1,44 @@
+// Create a web integration account returns "CREATED" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.WebIntegrationsApi;
+import com.datadog.api.client.v2.model.WebIntegrationAccountCreateRequest;
+import com.datadog.api.client.v2.model.WebIntegrationAccountCreateRequestAttributes;
+import com.datadog.api.client.v2.model.WebIntegrationAccountCreateRequestData;
+import com.datadog.api.client.v2.model.WebIntegrationAccountResponse;
+import com.datadog.api.client.v2.model.WebIntegrationAccountType;
+import java.util.Map;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ WebIntegrationsApi apiInstance = new WebIntegrationsApi(defaultClient);
+
+ WebIntegrationAccountCreateRequest body =
+ new WebIntegrationAccountCreateRequest()
+ .data(
+ new WebIntegrationAccountCreateRequestData()
+ .attributes(
+ new WebIntegrationAccountCreateRequestAttributes()
+ .name("my-databricks-account")
+ .secrets(Map.ofEntries(Map.entry("client_secret", "my-client-secret")))
+ .settings(
+ Map.ofEntries(
+ Map.entry(
+ "workspace_url", "https://example.azuredatabricks.net"))))
+ .type(WebIntegrationAccountType.ACCOUNT));
+
+ try {
+ WebIntegrationAccountResponse result =
+ apiInstance.createWebIntegrationAccount("integration_name", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling WebIntegrationsApi#createWebIntegrationAccount");
+ 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/web-integrations/DeleteWebIntegrationAccount.java b/examples/v2/web-integrations/DeleteWebIntegrationAccount.java
new file mode 100644
index 00000000000..882647a78c0
--- /dev/null
+++ b/examples/v2/web-integrations/DeleteWebIntegrationAccount.java
@@ -0,0 +1,22 @@
+// Delete a web integration account returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.WebIntegrationsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ WebIntegrationsApi apiInstance = new WebIntegrationsApi(defaultClient);
+
+ try {
+ apiInstance.deleteWebIntegrationAccount("integration_name", "account_id");
+ } catch (ApiException e) {
+ System.err.println("Exception when calling WebIntegrationsApi#deleteWebIntegrationAccount");
+ 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/web-integrations/GetWebIntegrationAccount.java b/examples/v2/web-integrations/GetWebIntegrationAccount.java
new file mode 100644
index 00000000000..1b7364468bf
--- /dev/null
+++ b/examples/v2/web-integrations/GetWebIntegrationAccount.java
@@ -0,0 +1,25 @@
+// Get a web integration account returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.WebIntegrationsApi;
+import com.datadog.api.client.v2.model.WebIntegrationAccountResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ WebIntegrationsApi apiInstance = new WebIntegrationsApi(defaultClient);
+
+ try {
+ WebIntegrationAccountResponse result =
+ apiInstance.getWebIntegrationAccount("integration_name", "account_id");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling WebIntegrationsApi#getWebIntegrationAccount");
+ 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/web-integrations/ListWebIntegrationAccounts.java b/examples/v2/web-integrations/ListWebIntegrationAccounts.java
new file mode 100644
index 00000000000..93bf06b83ca
--- /dev/null
+++ b/examples/v2/web-integrations/ListWebIntegrationAccounts.java
@@ -0,0 +1,25 @@
+// List web integration accounts returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.WebIntegrationsApi;
+import com.datadog.api.client.v2.model.WebIntegrationAccountsResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ WebIntegrationsApi apiInstance = new WebIntegrationsApi(defaultClient);
+
+ try {
+ WebIntegrationAccountsResponse result =
+ apiInstance.listWebIntegrationAccounts("integration_name");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling WebIntegrationsApi#listWebIntegrationAccounts");
+ 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/web-integrations/UpdateWebIntegrationAccount.java b/examples/v2/web-integrations/UpdateWebIntegrationAccount.java
new file mode 100644
index 00000000000..07ceca5331b
--- /dev/null
+++ b/examples/v2/web-integrations/UpdateWebIntegrationAccount.java
@@ -0,0 +1,44 @@
+// Update a web integration account returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.WebIntegrationsApi;
+import com.datadog.api.client.v2.model.WebIntegrationAccountResponse;
+import com.datadog.api.client.v2.model.WebIntegrationAccountType;
+import com.datadog.api.client.v2.model.WebIntegrationAccountUpdateRequest;
+import com.datadog.api.client.v2.model.WebIntegrationAccountUpdateRequestAttributes;
+import com.datadog.api.client.v2.model.WebIntegrationAccountUpdateRequestData;
+import java.util.Map;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ WebIntegrationsApi apiInstance = new WebIntegrationsApi(defaultClient);
+
+ WebIntegrationAccountUpdateRequest body =
+ new WebIntegrationAccountUpdateRequest()
+ .data(
+ new WebIntegrationAccountUpdateRequestData()
+ .attributes(
+ new WebIntegrationAccountUpdateRequestAttributes()
+ .name("my-databricks-account")
+ .secrets(Map.ofEntries(Map.entry("client_secret", "my-client-secret")))
+ .settings(
+ Map.ofEntries(
+ Map.entry(
+ "workspace_url", "https://example.azuredatabricks.net"))))
+ .type(WebIntegrationAccountType.ACCOUNT));
+
+ try {
+ WebIntegrationAccountResponse result =
+ apiInstance.updateWebIntegrationAccount("integration_name", "account_id", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling WebIntegrationsApi#updateWebIntegrationAccount");
+ 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/v2/api/WebIntegrationsApi.java b/src/main/java/com/datadog/api/client/v2/api/WebIntegrationsApi.java
new file mode 100644
index 00000000000..e25900e5b7f
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/WebIntegrationsApi.java
@@ -0,0 +1,924 @@
+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.WebIntegrationAccountCreateRequest;
+import com.datadog.api.client.v2.model.WebIntegrationAccountResponse;
+import com.datadog.api.client.v2.model.WebIntegrationAccountUpdateRequest;
+import com.datadog.api.client.v2.model.WebIntegrationAccountsResponse;
+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 WebIntegrationsApi {
+ private ApiClient apiClient;
+
+ public WebIntegrationsApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public WebIntegrationsApi(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;
+ }
+
+ /**
+ * Create a web integration account.
+ *
+ *
See {@link #createWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param body (required)
+ * @return WebIntegrationAccountResponse
+ * @throws ApiException if fails to make API call
+ */
+ public WebIntegrationAccountResponse createWebIntegrationAccount(
+ String integrationName, WebIntegrationAccountCreateRequest body) throws ApiException {
+ return createWebIntegrationAccountWithHttpInfo(integrationName, body).getData();
+ }
+
+ /**
+ * Create a web integration account.
+ *
+ *
See {@link #createWebIntegrationAccountWithHttpInfoAsync}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param body (required)
+ * @return CompletableFuture<WebIntegrationAccountResponse>
+ */
+ public CompletableFuture createWebIntegrationAccountAsync(
+ String integrationName, WebIntegrationAccountCreateRequest body) {
+ return createWebIntegrationAccountWithHttpInfoAsync(integrationName, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new account for a given web integration.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param body (required)
+ * @return ApiResponse<WebIntegrationAccountResponse>
+ * @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 | - |
+ * | 404 | Not Found | - |
+ * | 422 | The server cannot process the request because it contains invalid data. | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createWebIntegrationAccountWithHttpInfo(
+ String integrationName, WebIntegrationAccountCreateRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " createWebIntegrationAccount");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createWebIntegrationAccount");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.createWebIntegrationAccount",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create a web integration account.
+ *
+ * See {@link #createWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<WebIntegrationAccountResponse>>
+ */
+ public CompletableFuture>
+ createWebIntegrationAccountWithHttpInfoAsync(
+ String integrationName, WebIntegrationAccountCreateRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " createWebIntegrationAccount"));
+ 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 createWebIntegrationAccount"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.createWebIntegrationAccount",
+ 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(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Delete a web integration account.
+ *
+ * See {@link #deleteWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteWebIntegrationAccount(String integrationName, String accountId)
+ throws ApiException {
+ deleteWebIntegrationAccountWithHttpInfo(integrationName, accountId);
+ }
+
+ /**
+ * Delete a web integration account.
+ *
+ *
See {@link #deleteWebIntegrationAccountWithHttpInfoAsync}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteWebIntegrationAccountAsync(
+ String integrationName, String accountId) {
+ return deleteWebIntegrationAccountWithHttpInfoAsync(integrationName, accountId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete an account for a given web integration.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteWebIntegrationAccountWithHttpInfo(
+ String integrationName, String accountId) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " deleteWebIntegrationAccount");
+ }
+
+ // verify the required parameter 'accountId' is set
+ if (accountId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'accountId' when calling deleteWebIntegrationAccount");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts/{account_id}"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()))
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.deleteWebIntegrationAccount",
+ 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 a web integration account.
+ *
+ * See {@link #deleteWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteWebIntegrationAccountWithHttpInfoAsync(
+ String integrationName, String accountId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " deleteWebIntegrationAccount"));
+ return result;
+ }
+
+ // verify the required parameter 'accountId' is set
+ if (accountId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'accountId' when calling"
+ + " deleteWebIntegrationAccount"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts/{account_id}"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()))
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.deleteWebIntegrationAccount",
+ 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 a web integration account.
+ *
+ * See {@link #getWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @return WebIntegrationAccountResponse
+ * @throws ApiException if fails to make API call
+ */
+ public WebIntegrationAccountResponse getWebIntegrationAccount(
+ String integrationName, String accountId) throws ApiException {
+ return getWebIntegrationAccountWithHttpInfo(integrationName, accountId).getData();
+ }
+
+ /**
+ * Get a web integration account.
+ *
+ *
See {@link #getWebIntegrationAccountWithHttpInfoAsync}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @return CompletableFuture<WebIntegrationAccountResponse>
+ */
+ public CompletableFuture getWebIntegrationAccountAsync(
+ String integrationName, String accountId) {
+ return getWebIntegrationAccountWithHttpInfoAsync(integrationName, accountId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get a single account for a given web integration.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @return ApiResponse<WebIntegrationAccountResponse>
+ * @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 | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getWebIntegrationAccountWithHttpInfo(
+ String integrationName, String accountId) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling getWebIntegrationAccount");
+ }
+
+ // verify the required parameter 'accountId' is set
+ if (accountId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'accountId' when calling getWebIntegrationAccount");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts/{account_id}"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()))
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.getWebIntegrationAccount",
+ 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 a web integration account.
+ *
+ * See {@link #getWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @return CompletableFuture<ApiResponse<WebIntegrationAccountResponse>>
+ */
+ public CompletableFuture>
+ getWebIntegrationAccountWithHttpInfoAsync(String integrationName, String accountId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " getWebIntegrationAccount"));
+ return result;
+ }
+
+ // verify the required parameter 'accountId' is set
+ if (accountId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'accountId' when calling getWebIntegrationAccount"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts/{account_id}"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()))
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.getWebIntegrationAccount",
+ 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() {});
+ }
+
+ /**
+ * List web integration accounts.
+ *
+ * See {@link #listWebIntegrationAccountsWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @return WebIntegrationAccountsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public WebIntegrationAccountsResponse listWebIntegrationAccounts(String integrationName)
+ throws ApiException {
+ return listWebIntegrationAccountsWithHttpInfo(integrationName).getData();
+ }
+
+ /**
+ * List web integration accounts.
+ *
+ *
See {@link #listWebIntegrationAccountsWithHttpInfoAsync}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @return CompletableFuture<WebIntegrationAccountsResponse>
+ */
+ public CompletableFuture listWebIntegrationAccountsAsync(
+ String integrationName) {
+ return listWebIntegrationAccountsWithHttpInfoAsync(integrationName)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List accounts for a given web integration.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @return ApiResponse<WebIntegrationAccountsResponse>
+ * @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 | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listWebIntegrationAccountsWithHttpInfo(
+ String integrationName) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " listWebIntegrationAccounts");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.listWebIntegrationAccounts",
+ 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() {});
+ }
+
+ /**
+ * List web integration accounts.
+ *
+ * See {@link #listWebIntegrationAccountsWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @return CompletableFuture<ApiResponse<WebIntegrationAccountsResponse>>
+ */
+ public CompletableFuture>
+ listWebIntegrationAccountsWithHttpInfoAsync(String integrationName) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " listWebIntegrationAccounts"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.listWebIntegrationAccounts",
+ 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() {});
+ }
+
+ /**
+ * Update a web integration account.
+ *
+ * See {@link #updateWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @param body (required)
+ * @return WebIntegrationAccountResponse
+ * @throws ApiException if fails to make API call
+ */
+ public WebIntegrationAccountResponse updateWebIntegrationAccount(
+ String integrationName, String accountId, WebIntegrationAccountUpdateRequest body)
+ throws ApiException {
+ return updateWebIntegrationAccountWithHttpInfo(integrationName, accountId, body).getData();
+ }
+
+ /**
+ * Update a web integration account.
+ *
+ *
See {@link #updateWebIntegrationAccountWithHttpInfoAsync}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @param body (required)
+ * @return CompletableFuture<WebIntegrationAccountResponse>
+ */
+ public CompletableFuture updateWebIntegrationAccountAsync(
+ String integrationName, String accountId, WebIntegrationAccountUpdateRequest body) {
+ return updateWebIntegrationAccountWithHttpInfoAsync(integrationName, accountId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Update an existing account for a given web integration.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @param body (required)
+ * @return ApiResponse<WebIntegrationAccountResponse>
+ * @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 | - |
+ * | 404 | Not Found | - |
+ * | 422 | The server cannot process the request because it contains invalid data. | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateWebIntegrationAccountWithHttpInfo(
+ String integrationName, String accountId, WebIntegrationAccountUpdateRequest body)
+ throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " updateWebIntegrationAccount");
+ }
+
+ // verify the required parameter 'accountId' is set
+ if (accountId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'accountId' when calling updateWebIntegrationAccount");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateWebIntegrationAccount");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts/{account_id}"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()))
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.updateWebIntegrationAccount",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "PATCH",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update a web integration account.
+ *
+ * See {@link #updateWebIntegrationAccountWithHttpInfo}.
+ *
+ * @param integrationName The name of the integration (for example, databricks).
+ * (required)
+ * @param accountId The unique identifier of the web integration account. (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<WebIntegrationAccountResponse>>
+ */
+ public CompletableFuture>
+ updateWebIntegrationAccountWithHttpInfoAsync(
+ String integrationName, String accountId, WebIntegrationAccountUpdateRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'integrationName' is set
+ if (integrationName == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'integrationName' when calling"
+ + " updateWebIntegrationAccount"));
+ return result;
+ }
+
+ // verify the required parameter 'accountId' is set
+ if (accountId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'accountId' when calling"
+ + " updateWebIntegrationAccount"));
+ 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 updateWebIntegrationAccount"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/web-integrations/{integration_name}/accounts/{account_id}"
+ .replaceAll(
+ "\\{" + "integration_name" + "\\}",
+ apiClient.escapeString(integrationName.toString()))
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.WebIntegrationsApi.updateWebIntegrationAccount",
+ 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(
+ "PATCH",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountCreateRequest.java
new file mode 100644
index 00000000000..6de7c5a89f7
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountCreateRequest.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;
+
+/** Payload schema when adding a web integration account. */
+@JsonPropertyOrder({WebIntegrationAccountCreateRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountCreateRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private WebIntegrationAccountCreateRequestData data;
+
+ public WebIntegrationAccountCreateRequest() {}
+
+ @JsonCreator
+ public WebIntegrationAccountCreateRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA)
+ WebIntegrationAccountCreateRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public WebIntegrationAccountCreateRequest data(WebIntegrationAccountCreateRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data object for creating a web integration account.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountCreateRequestData getData() {
+ return data;
+ }
+
+ public void setData(WebIntegrationAccountCreateRequestData 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 WebIntegrationAccountCreateRequest
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountCreateRequest 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 WebIntegrationAccountCreateRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountCreateRequest webIntegrationAccountCreateRequest =
+ (WebIntegrationAccountCreateRequest) o;
+ return Objects.equals(this.data, webIntegrationAccountCreateRequest.data)
+ && Objects.equals(
+ this.additionalProperties, webIntegrationAccountCreateRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountCreateRequest {\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/WebIntegrationAccountCreateRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountCreateRequestAttributes.java
new file mode 100644
index 00000000000..bb98a2fe249
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountCreateRequestAttributes.java
@@ -0,0 +1,218 @@
+/*
+ * 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 object for creating a web integration account. */
+@JsonPropertyOrder({
+ WebIntegrationAccountCreateRequestAttributes.JSON_PROPERTY_NAME,
+ WebIntegrationAccountCreateRequestAttributes.JSON_PROPERTY_SECRETS,
+ WebIntegrationAccountCreateRequestAttributes.JSON_PROPERTY_SETTINGS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountCreateRequestAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public static final String JSON_PROPERTY_SECRETS = "secrets";
+ private Map secrets = new HashMap();
+
+ public static final String JSON_PROPERTY_SETTINGS = "settings";
+ private Map settings = new HashMap();
+
+ public WebIntegrationAccountCreateRequestAttributes() {}
+
+ @JsonCreator
+ public WebIntegrationAccountCreateRequestAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SECRETS) Map secrets,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SETTINGS) Map settings) {
+ this.name = name;
+ this.secrets = secrets;
+ this.settings = settings;
+ }
+
+ public WebIntegrationAccountCreateRequestAttributes name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A human-readable name for the account. Must be unique among accounts of the same integration.
+ *
+ * @return name
+ */
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public WebIntegrationAccountCreateRequestAttributes secrets(Map secrets) {
+ this.secrets = secrets;
+ return this;
+ }
+
+ public WebIntegrationAccountCreateRequestAttributes putSecretsItem(
+ String key, Object secretsItem) {
+ this.secrets.put(key, secretsItem);
+ return this;
+ }
+
+ /**
+ * Integration-specific secrets. The shape of this object varies by integration. Secrets are
+ * write-only and never returned by the API.
+ *
+ * @return secrets
+ */
+ @JsonProperty(JSON_PROPERTY_SECRETS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Map getSecrets() {
+ return secrets;
+ }
+
+ public void setSecrets(Map secrets) {
+ this.secrets = secrets;
+ }
+
+ public WebIntegrationAccountCreateRequestAttributes settings(Map settings) {
+ this.settings = settings;
+ return this;
+ }
+
+ public WebIntegrationAccountCreateRequestAttributes putSettingsItem(
+ String key, Object settingsItem) {
+ this.settings.put(key, settingsItem);
+ return this;
+ }
+
+ /**
+ * Integration-specific settings. The shape of this object varies by integration.
+ *
+ * @return settings
+ */
+ @JsonProperty(JSON_PROPERTY_SETTINGS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Map getSettings() {
+ return settings;
+ }
+
+ public void setSettings(Map settings) {
+ this.settings = settings;
+ }
+
+ /**
+ * 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 WebIntegrationAccountCreateRequestAttributes
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountCreateRequestAttributes 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 WebIntegrationAccountCreateRequestAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountCreateRequestAttributes webIntegrationAccountCreateRequestAttributes =
+ (WebIntegrationAccountCreateRequestAttributes) o;
+ return Objects.equals(this.name, webIntegrationAccountCreateRequestAttributes.name)
+ && Objects.equals(this.secrets, webIntegrationAccountCreateRequestAttributes.secrets)
+ && Objects.equals(this.settings, webIntegrationAccountCreateRequestAttributes.settings)
+ && Objects.equals(
+ this.additionalProperties,
+ webIntegrationAccountCreateRequestAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, secrets, settings, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountCreateRequestAttributes {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" secrets: ").append(toIndentedString(secrets)).append("\n");
+ sb.append(" settings: ").append(toIndentedString(settings)).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/WebIntegrationAccountCreateRequestData.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountCreateRequestData.java
new file mode 100644
index 00000000000..551111f0862
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountCreateRequestData.java
@@ -0,0 +1,184 @@
+/*
+ * 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 object for creating a web integration account. */
+@JsonPropertyOrder({
+ WebIntegrationAccountCreateRequestData.JSON_PROPERTY_ATTRIBUTES,
+ WebIntegrationAccountCreateRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountCreateRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private WebIntegrationAccountCreateRequestAttributes attributes;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private WebIntegrationAccountType type = WebIntegrationAccountType.ACCOUNT;
+
+ public WebIntegrationAccountCreateRequestData() {}
+
+ @JsonCreator
+ public WebIntegrationAccountCreateRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ WebIntegrationAccountCreateRequestAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) WebIntegrationAccountType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public WebIntegrationAccountCreateRequestData attributes(
+ WebIntegrationAccountCreateRequestAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes object for creating a web integration account.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountCreateRequestAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(WebIntegrationAccountCreateRequestAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public WebIntegrationAccountCreateRequestData type(WebIntegrationAccountType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Account resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountType getType() {
+ return type;
+ }
+
+ public void setType(WebIntegrationAccountType 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 WebIntegrationAccountCreateRequestData
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountCreateRequestData 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 WebIntegrationAccountCreateRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountCreateRequestData webIntegrationAccountCreateRequestData =
+ (WebIntegrationAccountCreateRequestData) o;
+ return Objects.equals(this.attributes, webIntegrationAccountCreateRequestData.attributes)
+ && Objects.equals(this.type, webIntegrationAccountCreateRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, webIntegrationAccountCreateRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountCreateRequestData {\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/WebIntegrationAccountResponse.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountResponse.java
new file mode 100644
index 00000000000..27e45d1d2c1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountResponse.java
@@ -0,0 +1,137 @@
+/*
+ * 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.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 expected response schema when getting a single web integration account. */
+@JsonPropertyOrder({WebIntegrationAccountResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private WebIntegrationAccountResponseData data;
+
+ public WebIntegrationAccountResponse data(WebIntegrationAccountResponseData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data object of a web integration account.
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public WebIntegrationAccountResponseData getData() {
+ return data;
+ }
+
+ public void setData(WebIntegrationAccountResponseData 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 WebIntegrationAccountResponse
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountResponse 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 WebIntegrationAccountResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountResponse webIntegrationAccountResponse = (WebIntegrationAccountResponse) o;
+ return Objects.equals(this.data, webIntegrationAccountResponse.data)
+ && Objects.equals(
+ this.additionalProperties, webIntegrationAccountResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountResponse {\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/WebIntegrationAccountResponseAttributes.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountResponseAttributes.java
new file mode 100644
index 00000000000..f2959b82b84
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountResponseAttributes.java
@@ -0,0 +1,183 @@
+/*
+ * 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 object of a web integration account. Secrets are never returned. */
+@JsonPropertyOrder({
+ WebIntegrationAccountResponseAttributes.JSON_PROPERTY_NAME,
+ WebIntegrationAccountResponseAttributes.JSON_PROPERTY_SETTINGS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountResponseAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public static final String JSON_PROPERTY_SETTINGS = "settings";
+ private Map settings = null;
+
+ public WebIntegrationAccountResponseAttributes() {}
+
+ @JsonCreator
+ public WebIntegrationAccountResponseAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name) {
+ this.name = name;
+ }
+
+ public WebIntegrationAccountResponseAttributes name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A human-readable name for the account.
+ *
+ * @return name
+ */
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public WebIntegrationAccountResponseAttributes settings(Map settings) {
+ this.settings = settings;
+ return this;
+ }
+
+ public WebIntegrationAccountResponseAttributes putSettingsItem(String key, Object settingsItem) {
+ if (this.settings == null) {
+ this.settings = new HashMap<>();
+ }
+ this.settings.put(key, settingsItem);
+ return this;
+ }
+
+ /**
+ * Integration-specific settings. The shape of this object varies by integration.
+ *
+ * @return settings
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SETTINGS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getSettings() {
+ return settings;
+ }
+
+ public void setSettings(Map settings) {
+ this.settings = settings;
+ }
+
+ /**
+ * 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 WebIntegrationAccountResponseAttributes
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountResponseAttributes 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 WebIntegrationAccountResponseAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountResponseAttributes webIntegrationAccountResponseAttributes =
+ (WebIntegrationAccountResponseAttributes) o;
+ return Objects.equals(this.name, webIntegrationAccountResponseAttributes.name)
+ && Objects.equals(this.settings, webIntegrationAccountResponseAttributes.settings)
+ && Objects.equals(
+ this.additionalProperties,
+ webIntegrationAccountResponseAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, settings, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountResponseAttributes {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" settings: ").append(toIndentedString(settings)).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/WebIntegrationAccountResponseData.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountResponseData.java
new file mode 100644
index 00000000000..9c163caaba4
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountResponseData.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;
+
+/** Data object of a web integration account. */
+@JsonPropertyOrder({
+ WebIntegrationAccountResponseData.JSON_PROPERTY_ATTRIBUTES,
+ WebIntegrationAccountResponseData.JSON_PROPERTY_ID,
+ WebIntegrationAccountResponseData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountResponseData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private WebIntegrationAccountResponseAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private WebIntegrationAccountType type = WebIntegrationAccountType.ACCOUNT;
+
+ public WebIntegrationAccountResponseData() {}
+
+ @JsonCreator
+ public WebIntegrationAccountResponseData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ WebIntegrationAccountResponseAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) WebIntegrationAccountType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public WebIntegrationAccountResponseData attributes(
+ WebIntegrationAccountResponseAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes object of a web integration account. Secrets are never returned.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountResponseAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(WebIntegrationAccountResponseAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public WebIntegrationAccountResponseData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The unique identifier of the web integration account.
+ *
+ * @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 WebIntegrationAccountResponseData type(WebIntegrationAccountType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Account resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountType getType() {
+ return type;
+ }
+
+ public void setType(WebIntegrationAccountType 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 WebIntegrationAccountResponseData
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountResponseData 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 WebIntegrationAccountResponseData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountResponseData webIntegrationAccountResponseData =
+ (WebIntegrationAccountResponseData) o;
+ return Objects.equals(this.attributes, webIntegrationAccountResponseData.attributes)
+ && Objects.equals(this.id, webIntegrationAccountResponseData.id)
+ && Objects.equals(this.type, webIntegrationAccountResponseData.type)
+ && Objects.equals(
+ this.additionalProperties, webIntegrationAccountResponseData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountResponseData {\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/WebIntegrationAccountType.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountType.java
new file mode 100644
index 00000000000..d3ca1238b46
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountType.java
@@ -0,0 +1,55 @@
+/*
+ * 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;
+
+/** Account resource type. */
+@JsonSerialize(using = WebIntegrationAccountType.WebIntegrationAccountTypeSerializer.class)
+public class WebIntegrationAccountType extends ModelEnum {
+
+ private static final Set allowedValues = new HashSet(Arrays.asList("Account"));
+
+ public static final WebIntegrationAccountType ACCOUNT = new WebIntegrationAccountType("Account");
+
+ WebIntegrationAccountType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class WebIntegrationAccountTypeSerializer
+ extends StdSerializer {
+ public WebIntegrationAccountTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public WebIntegrationAccountTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ WebIntegrationAccountType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static WebIntegrationAccountType fromValue(String value) {
+ return new WebIntegrationAccountType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountUpdateRequest.java
new file mode 100644
index 00000000000..b6939074a0d
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountUpdateRequest.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;
+
+/** Payload schema when updating a web integration account. */
+@JsonPropertyOrder({WebIntegrationAccountUpdateRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountUpdateRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private WebIntegrationAccountUpdateRequestData data;
+
+ public WebIntegrationAccountUpdateRequest() {}
+
+ @JsonCreator
+ public WebIntegrationAccountUpdateRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA)
+ WebIntegrationAccountUpdateRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public WebIntegrationAccountUpdateRequest data(WebIntegrationAccountUpdateRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data object for updating a web integration account.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountUpdateRequestData getData() {
+ return data;
+ }
+
+ public void setData(WebIntegrationAccountUpdateRequestData 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 WebIntegrationAccountUpdateRequest
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountUpdateRequest 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 WebIntegrationAccountUpdateRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountUpdateRequest webIntegrationAccountUpdateRequest =
+ (WebIntegrationAccountUpdateRequest) o;
+ return Objects.equals(this.data, webIntegrationAccountUpdateRequest.data)
+ && Objects.equals(
+ this.additionalProperties, webIntegrationAccountUpdateRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountUpdateRequest {\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/WebIntegrationAccountUpdateRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountUpdateRequestAttributes.java
new file mode 100644
index 00000000000..5ccdec722a1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountUpdateRequestAttributes.java
@@ -0,0 +1,214 @@
+/*
+ * 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.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 object for updating a web integration account. */
+@JsonPropertyOrder({
+ WebIntegrationAccountUpdateRequestAttributes.JSON_PROPERTY_NAME,
+ WebIntegrationAccountUpdateRequestAttributes.JSON_PROPERTY_SECRETS,
+ WebIntegrationAccountUpdateRequestAttributes.JSON_PROPERTY_SETTINGS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountUpdateRequestAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public static final String JSON_PROPERTY_SECRETS = "secrets";
+ private Map secrets = null;
+
+ public static final String JSON_PROPERTY_SETTINGS = "settings";
+ private Map settings = null;
+
+ public WebIntegrationAccountUpdateRequestAttributes name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A human-readable name for the account.
+ *
+ * @return name
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public WebIntegrationAccountUpdateRequestAttributes secrets(Map secrets) {
+ this.secrets = secrets;
+ return this;
+ }
+
+ public WebIntegrationAccountUpdateRequestAttributes putSecretsItem(
+ String key, Object secretsItem) {
+ if (this.secrets == null) {
+ this.secrets = new HashMap<>();
+ }
+ this.secrets.put(key, secretsItem);
+ return this;
+ }
+
+ /**
+ * Integration-specific secrets. The shape of this object varies by integration. Secrets are
+ * write-only and never returned by the API.
+ *
+ * @return secrets
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SECRETS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getSecrets() {
+ return secrets;
+ }
+
+ public void setSecrets(Map secrets) {
+ this.secrets = secrets;
+ }
+
+ public WebIntegrationAccountUpdateRequestAttributes settings(Map settings) {
+ this.settings = settings;
+ return this;
+ }
+
+ public WebIntegrationAccountUpdateRequestAttributes putSettingsItem(
+ String key, Object settingsItem) {
+ if (this.settings == null) {
+ this.settings = new HashMap<>();
+ }
+ this.settings.put(key, settingsItem);
+ return this;
+ }
+
+ /**
+ * Integration-specific settings. The shape of this object varies by integration.
+ *
+ * @return settings
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SETTINGS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getSettings() {
+ return settings;
+ }
+
+ public void setSettings(Map settings) {
+ this.settings = settings;
+ }
+
+ /**
+ * 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 WebIntegrationAccountUpdateRequestAttributes
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountUpdateRequestAttributes 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 WebIntegrationAccountUpdateRequestAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountUpdateRequestAttributes webIntegrationAccountUpdateRequestAttributes =
+ (WebIntegrationAccountUpdateRequestAttributes) o;
+ return Objects.equals(this.name, webIntegrationAccountUpdateRequestAttributes.name)
+ && Objects.equals(this.secrets, webIntegrationAccountUpdateRequestAttributes.secrets)
+ && Objects.equals(this.settings, webIntegrationAccountUpdateRequestAttributes.settings)
+ && Objects.equals(
+ this.additionalProperties,
+ webIntegrationAccountUpdateRequestAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, secrets, settings, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountUpdateRequestAttributes {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" secrets: ").append(toIndentedString(secrets)).append("\n");
+ sb.append(" settings: ").append(toIndentedString(settings)).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/WebIntegrationAccountUpdateRequestData.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountUpdateRequestData.java
new file mode 100644
index 00000000000..96b3ec81cbb
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountUpdateRequestData.java
@@ -0,0 +1,184 @@
+/*
+ * 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 object for updating a web integration account. */
+@JsonPropertyOrder({
+ WebIntegrationAccountUpdateRequestData.JSON_PROPERTY_ATTRIBUTES,
+ WebIntegrationAccountUpdateRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountUpdateRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private WebIntegrationAccountUpdateRequestAttributes attributes;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private WebIntegrationAccountType type = WebIntegrationAccountType.ACCOUNT;
+
+ public WebIntegrationAccountUpdateRequestData() {}
+
+ @JsonCreator
+ public WebIntegrationAccountUpdateRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ WebIntegrationAccountUpdateRequestAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) WebIntegrationAccountType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public WebIntegrationAccountUpdateRequestData attributes(
+ WebIntegrationAccountUpdateRequestAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes object for updating a web integration account.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountUpdateRequestAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(WebIntegrationAccountUpdateRequestAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public WebIntegrationAccountUpdateRequestData type(WebIntegrationAccountType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Account resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebIntegrationAccountType getType() {
+ return type;
+ }
+
+ public void setType(WebIntegrationAccountType 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 WebIntegrationAccountUpdateRequestData
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountUpdateRequestData 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 WebIntegrationAccountUpdateRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountUpdateRequestData webIntegrationAccountUpdateRequestData =
+ (WebIntegrationAccountUpdateRequestData) o;
+ return Objects.equals(this.attributes, webIntegrationAccountUpdateRequestData.attributes)
+ && Objects.equals(this.type, webIntegrationAccountUpdateRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, webIntegrationAccountUpdateRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountUpdateRequestData {\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/WebIntegrationAccountsResponse.java b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountsResponse.java
new file mode 100644
index 00000000000..b5a794d115c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/WebIntegrationAccountsResponse.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.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;
+
+/** The expected response schema when listing web integration accounts. */
+@JsonPropertyOrder({WebIntegrationAccountsResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class WebIntegrationAccountsResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private List data = null;
+
+ public WebIntegrationAccountsResponse data(List data) {
+ this.data = data;
+ for (WebIntegrationAccountResponseData item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public WebIntegrationAccountsResponse addDataItem(WebIntegrationAccountResponseData dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * The JSON:API data array.
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List 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 WebIntegrationAccountsResponse
+ */
+ @JsonAnySetter
+ public WebIntegrationAccountsResponse 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 WebIntegrationAccountsResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebIntegrationAccountsResponse webIntegrationAccountsResponse =
+ (WebIntegrationAccountsResponse) o;
+ return Objects.equals(this.data, webIntegrationAccountsResponse.data)
+ && Objects.equals(
+ this.additionalProperties, webIntegrationAccountsResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebIntegrationAccountsResponse {\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/given.json b/src/test/resources/com/datadog/api/client/v2/api/given.json
index 98e2edab7a1..e6d7025d2f2 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
@@ -1570,6 +1570,22 @@
"tag": "Users",
"operationId": "CreateUser"
},
+ {
+ "parameters": [
+ {
+ "name": "integration_name",
+ "value": "\"databricks\""
+ },
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"type\": \"Account\",\n \"attributes\": {\n \"name\": \"{{ unique_lower_alnum }}\",\n \"settings\": {\n \"workspace_url\": \"https://example.azuredatabricks.net\"\n },\n \"secrets\": {\n \"client_secret\": \"fake-client-secret\"\n }\n }\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"web_integration_account\" in the system",
+ "key": "web_integration_account",
+ "tag": "Web Integrations",
+ "operationId": "CreateWebIntegrationAccount"
+ },
{
"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 d5a8323e270..af50bfd87a9 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
@@ -7140,6 +7140,47 @@
"type": "safe"
}
},
+ "ListWebIntegrationAccounts": {
+ "tag": "Web Integrations",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "CreateWebIntegrationAccount": {
+ "tag": "Web Integrations",
+ "undo": {
+ "operationId": "DeleteWebIntegrationAccount",
+ "parameters": [
+ {
+ "name": "integration_name",
+ "template": "\"{{ integration_name }}\""
+ },
+ {
+ "name": "account_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
+ "DeleteWebIntegrationAccount": {
+ "tag": "Web Integrations",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "GetWebIntegrationAccount": {
+ "tag": "Web Integrations",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "UpdateWebIntegrationAccount": {
+ "tag": "Web Integrations",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
"SearchWidgets": {
"tag": "Widgets",
"undo": {
diff --git a/src/test/resources/com/datadog/api/client/v2/api/web_integrations.feature b/src/test/resources/com/datadog/api/client/v2/api/web_integrations.feature
new file mode 100644
index 00000000000..46e4bdf4a60
--- /dev/null
+++ b/src/test/resources/com/datadog/api/client/v2/api/web_integrations.feature
@@ -0,0 +1,147 @@
+@endpoint(web-integrations) @endpoint(web-integrations-v2)
+Feature: Web Integrations
+ Manage web integration accounts programmatically through the Datadog API.
+ See the [Web Integrations page](https://app.datadoghq.com/integrations)
+ for more information.
+
+ Background:
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "WebIntegrations" API
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Create a web integration account returns "Bad Request" response
+ Given new "CreateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Create a web integration account returns "CREATED" response
+ Given new "CreateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 201 CREATED
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Create a web integration account returns "Not Found" response
+ Given new "CreateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Create a web integration account returns "The server cannot process the request because it contains invalid data." response
+ Given new "CreateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 422 The server cannot process the request because it contains invalid data.
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Delete a web integration account returns "Bad Request" response
+ Given new "DeleteWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Delete a web integration account returns "Not Found" response
+ Given new "DeleteWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Delete a web integration account returns "OK" response
+ Given new "DeleteWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 204 OK
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Get a web integration account returns "Bad Request" response
+ Given new "GetWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Get a web integration account returns "Not Found" response
+ Given new "GetWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Get a web integration account returns "OK" response
+ Given new "GetWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: List web integration accounts returns "Bad Request" response
+ Given new "ListWebIntegrationAccounts" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: List web integration accounts returns "Not Found" response
+ Given new "ListWebIntegrationAccounts" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: List web integration accounts returns "OK" response
+ Given new "ListWebIntegrationAccounts" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Update a web integration account returns "Bad Request" response
+ Given new "UpdateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Update a web integration account returns "Not Found" response
+ Given new "UpdateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Update a web integration account returns "OK" response
+ Given new "UpdateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/saas-integrations
+ Scenario: Update a web integration account returns "The server cannot process the request because it contains invalid data." response
+ Given new "UpdateWebIntegrationAccount" request
+ And request contains "integration_name" parameter from "REPLACE.ME"
+ And request contains "account_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "my-databricks-account", "secrets": {"client_secret": "my-client-secret"}, "settings": {"workspace_url": "https://example.azuredatabricks.net"}}, "type": "Account"}}
+ When the request is sent
+ Then the response status is 422 The server cannot process the request because it contains invalid data.