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.