diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 2d470c8f2f0..1e960b60bb1 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -1772,6 +1772,14 @@ components:
required: false
schema:
type: boolean
+ SlackUserUuidQueryParameter:
+ description: The UUID of the Datadog user to list Slack bindings for.
+ in: query
+ name: user_uuid
+ required: true
+ schema:
+ format: uuid
+ type: string
SloID:
description: The ID of the SLO.
in: path
@@ -86535,6 +86543,37 @@ components:
required:
- slackTrigger
type: object
+ SlackUserBindingData:
+ description: Slack team ID data from a response.
+ properties:
+ id:
+ description: The Slack team ID.
+ example: "T01234567"
+ type: string
+ type:
+ $ref: "#/components/schemas/SlackUserBindingType"
+ type: object
+ SlackUserBindingType:
+ default: team_id
+ description: Slack user binding resource type.
+ enum:
+ - team_id
+ example: team_id
+ type: string
+ x-enum-varnames:
+ - TEAM_ID
+ SlackUserBindingsResponse:
+ description: Response with a list of Slack user bindings.
+ properties:
+ data:
+ description: An array of Slack user bindings.
+ example: [{"id": "T01234567", "type": "team_id"}, {"id": "T09876543", "type": "team_id"}]
+ items:
+ $ref: "#/components/schemas/SlackUserBindingData"
+ type: array
+ required:
+ - data
+ type: object
SloDataSource:
default: slo
description: A data source for SLO queries.
@@ -132237,6 +132276,36 @@ paths:
summary: List ServiceNow users
tags:
- ServiceNow Integration
+ /api/v2/integration/slack/user-bindings:
+ get:
+ description: List all Slack user bindings for a given Datadog user from the Datadog Slack integration.
+ operationId: ListSlackUserBindings
+ parameters:
+ - $ref: "#/components/parameters/SlackUserUuidQueryParameter"
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - id: T01234567
+ type: team_id
+ - id: T09876543
+ type: team_id
+ schema:
+ $ref: "#/components/schemas/SlackUserBindingsResponse"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: List Slack user bindings
+ tags:
+ - Slack Integration
/api/v2/integration/statuspage/account:
delete:
description: Delete the Statuspage account configured for your organization.
@@ -181539,6 +181608,13 @@ tags:
name: Service Level Objectives
- description: Manage your ServiceNow Integration. ServiceNow is a cloud-based platform that helps organizations manage digital workflows for enterprise operations.
name: ServiceNow Integration
+ - description: |-
+ Configure your [Datadog Slack integration](https://docs.datadoghq.com/integrations/slack/)
+ directly through the Datadog API.
+ externalDocs:
+ description: For more information about the Datadog Slack integration, see the integration page.
+ url: https://docs.datadoghq.com/integrations/slack/
+ name: Slack Integration
- description: |-
API to create, update, retrieve, and delete Software Catalog entities.
externalDocs:
diff --git a/examples/v2/slack-integration/ListSlackUserBindings.java b/examples/v2/slack-integration/ListSlackUserBindings.java
new file mode 100644
index 00000000000..fc6278d3b90
--- /dev/null
+++ b/examples/v2/slack-integration/ListSlackUserBindings.java
@@ -0,0 +1,27 @@
+// List Slack user bindings returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SlackIntegrationApi;
+import com.datadog.api.client.v2.model.SlackUserBindingsResponse;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SlackIntegrationApi apiInstance = new SlackIntegrationApi(defaultClient);
+
+ try {
+ SlackUserBindingsResponse result =
+ apiInstance.listSlackUserBindings(
+ UUID.fromString("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"));
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SlackIntegrationApi#listSlackUserBindings");
+ 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/SlackIntegrationApi.java b/src/main/java/com/datadog/api/client/v2/api/SlackIntegrationApi.java
new file mode 100644
index 00000000000..9fb94d3e6ea
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/SlackIntegrationApi.java
@@ -0,0 +1,184 @@
+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.SlackUserBindingsResponse;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SlackIntegrationApi {
+ private ApiClient apiClient;
+
+ public SlackIntegrationApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public SlackIntegrationApi(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;
+ }
+
+ /**
+ * List Slack user bindings.
+ *
+ *
See {@link #listSlackUserBindingsWithHttpInfo}.
+ *
+ * @param userUuid The UUID of the Datadog user to list Slack bindings for. (required)
+ * @return SlackUserBindingsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public SlackUserBindingsResponse listSlackUserBindings(UUID userUuid) throws ApiException {
+ return listSlackUserBindingsWithHttpInfo(userUuid).getData();
+ }
+
+ /**
+ * List Slack user bindings.
+ *
+ *
See {@link #listSlackUserBindingsWithHttpInfoAsync}.
+ *
+ * @param userUuid The UUID of the Datadog user to list Slack bindings for. (required)
+ * @return CompletableFuture<SlackUserBindingsResponse>
+ */
+ public CompletableFuture listSlackUserBindingsAsync(UUID userUuid) {
+ return listSlackUserBindingsWithHttpInfoAsync(userUuid)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List all Slack user bindings for a given Datadog user from the Datadog Slack integration.
+ *
+ * @param userUuid The UUID of the Datadog user to list Slack bindings for. (required)
+ * @return ApiResponse<SlackUserBindingsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listSlackUserBindingsWithHttpInfo(UUID userUuid)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'userUuid' is set
+ if (userUuid == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'userUuid' when calling listSlackUserBindings");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/slack/user-bindings";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "user_uuid", userUuid));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SlackIntegrationApi.listSlackUserBindings",
+ localVarPath,
+ localVarQueryParams,
+ 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 Slack user bindings.
+ *
+ * See {@link #listSlackUserBindingsWithHttpInfo}.
+ *
+ * @param userUuid The UUID of the Datadog user to list Slack bindings for. (required)
+ * @return CompletableFuture<ApiResponse<SlackUserBindingsResponse>>
+ */
+ public CompletableFuture>
+ listSlackUserBindingsWithHttpInfoAsync(UUID userUuid) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'userUuid' is set
+ if (userUuid == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'userUuid' when calling listSlackUserBindings"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/slack/user-bindings";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "user_uuid", userUuid));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SlackIntegrationApi.listSlackUserBindings",
+ localVarPath,
+ localVarQueryParams,
+ 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() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingData.java b/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingData.java
new file mode 100644
index 00000000000..2ba08e2a1a1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingData.java
@@ -0,0 +1,165 @@
+/*
+ * 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;
+
+/** Slack team ID data from a response. */
+@JsonPropertyOrder({SlackUserBindingData.JSON_PROPERTY_ID, SlackUserBindingData.JSON_PROPERTY_TYPE})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SlackUserBindingData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private SlackUserBindingType type = SlackUserBindingType.TEAM_ID;
+
+ public SlackUserBindingData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The Slack team ID.
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public SlackUserBindingData type(SlackUserBindingType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Slack user binding resource type.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public SlackUserBindingType getType() {
+ return type;
+ }
+
+ public void setType(SlackUserBindingType 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 SlackUserBindingData
+ */
+ @JsonAnySetter
+ public SlackUserBindingData 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 SlackUserBindingData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SlackUserBindingData slackUserBindingData = (SlackUserBindingData) o;
+ return Objects.equals(this.id, slackUserBindingData.id)
+ && Objects.equals(this.type, slackUserBindingData.type)
+ && Objects.equals(this.additionalProperties, slackUserBindingData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SlackUserBindingData {\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/SlackUserBindingType.java b/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingType.java
new file mode 100644
index 00000000000..8e550ba03f1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingType.java
@@ -0,0 +1,54 @@
+/*
+ * 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;
+
+/** Slack user binding resource type. */
+@JsonSerialize(using = SlackUserBindingType.SlackUserBindingTypeSerializer.class)
+public class SlackUserBindingType extends ModelEnum {
+
+ private static final Set allowedValues = new HashSet(Arrays.asList("team_id"));
+
+ public static final SlackUserBindingType TEAM_ID = new SlackUserBindingType("team_id");
+
+ SlackUserBindingType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class SlackUserBindingTypeSerializer extends StdSerializer {
+ public SlackUserBindingTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public SlackUserBindingTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ SlackUserBindingType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static SlackUserBindingType fromValue(String value) {
+ return new SlackUserBindingType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingsResponse.java b/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingsResponse.java
new file mode 100644
index 00000000000..ef85fb7d405
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SlackUserBindingsResponse.java
@@ -0,0 +1,155 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** Response with a list of Slack user bindings. */
+@JsonPropertyOrder({SlackUserBindingsResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SlackUserBindingsResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private List data = new ArrayList<>();
+
+ public SlackUserBindingsResponse() {}
+
+ @JsonCreator
+ public SlackUserBindingsResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data) {
+ this.data = data;
+ }
+
+ public SlackUserBindingsResponse data(List data) {
+ this.data = data;
+ for (SlackUserBindingData item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public SlackUserBindingsResponse addDataItem(SlackUserBindingData dataItem) {
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * An array of Slack user bindings.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ 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 SlackUserBindingsResponse
+ */
+ @JsonAnySetter
+ public SlackUserBindingsResponse 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 SlackUserBindingsResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SlackUserBindingsResponse slackUserBindingsResponse = (SlackUserBindingsResponse) o;
+ return Objects.equals(this.data, slackUserBindingsResponse.data)
+ && Objects.equals(
+ this.additionalProperties, slackUserBindingsResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SlackUserBindingsResponse {\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/slack_integration.feature b/src/test/resources/com/datadog/api/client/v2/api/slack_integration.feature
new file mode 100644
index 00000000000..0ef645a642a
--- /dev/null
+++ b/src/test/resources/com/datadog/api/client/v2/api/slack_integration.feature
@@ -0,0 +1,23 @@
+@endpoint(slack-integration) @endpoint(slack-integration-v2)
+Feature: Slack Integration
+ Configure your [Datadog Slack
+ integration](https://docs.datadoghq.com/integrations/slack/) directly
+ through the Datadog API.
+
+ Background:
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "SlackIntegration" API
+ And new "ListSlackUserBindings" request
+
+ @generated @skip @team:DataDog/chat-integrations
+ Scenario: List Slack user bindings returns "Bad Request" response
+ Given request contains "user_uuid" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/chat-integrations
+ Scenario: List Slack user bindings returns "OK" response
+ Given request contains "user_uuid" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json
index 9101d0155cb..7588d4d2d32 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
@@ -3634,6 +3634,12 @@
"type": "safe"
}
},
+ "ListSlackUserBindings": {
+ "tag": "Slack Integration",
+ "undo": {
+ "type": "safe"
+ }
+ },
"DeleteStatuspageAccount": {
"tag": "Statuspage Integration",
"undo": {