diff --git a/bolt-aws-lambda/pom.xml b/bolt-aws-lambda/pom.xml
index 725debea4..d73029116 100644
--- a/bolt-aws-lambda/pom.xml
+++ b/bolt-aws-lambda/pom.xml
@@ -6,7 +6,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
@@ -14,7 +14,7 @@
bolt-aws-lambda
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-docker-examples/echo-command-app/build.gradle b/bolt-docker-examples/echo-command-app/build.gradle
index df9aa45b0..5721afa5f 100644
--- a/bolt-docker-examples/echo-command-app/build.gradle
+++ b/bolt-docker-examples/echo-command-app/build.gradle
@@ -10,7 +10,7 @@ repositories {
dependencies {
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
- implementation("com.slack.api:bolt-jetty:1.39.3")
+ implementation("com.slack.api:bolt-jetty:1.40.0")
implementation("ch.qos.logback:logback-classic:1.2.11")
implementation('net.logstash.logback:logstash-logback-encoder:6.2')
}
diff --git a/bolt-google-cloud-functions/pom.xml b/bolt-google-cloud-functions/pom.xml
index 8901b0e72..51d275016 100644
--- a/bolt-google-cloud-functions/pom.xml
+++ b/bolt-google-cloud-functions/pom.xml
@@ -6,7 +6,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
@@ -17,7 +17,7 @@
bolt-google-cloud-functions
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-helidon/pom.xml b/bolt-helidon/pom.xml
index f11688659..6d9b66dc3 100644
--- a/bolt-helidon/pom.xml
+++ b/bolt-helidon/pom.xml
@@ -6,7 +6,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
@@ -18,7 +18,7 @@
bolt-helidon
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-http4k/pom.xml b/bolt-http4k/pom.xml
index 7cfc2e495..33e162193 100644
--- a/bolt-http4k/pom.xml
+++ b/bolt-http4k/pom.xml
@@ -6,15 +6,15 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
- 5.21.0.0
+ 5.23.0.0
bolt-http4k
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-jakarta-jetty/pom.xml b/bolt-jakarta-jetty/pom.xml
index 18ab12b6b..3812bc164 100644
--- a/bolt-jakarta-jetty/pom.xml
+++ b/bolt-jakarta-jetty/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
bolt-jakarta-jetty
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-jakarta-servlet/pom.xml b/bolt-jakarta-servlet/pom.xml
index 09f99efec..22619e15e 100644
--- a/bolt-jakarta-servlet/pom.xml
+++ b/bolt-jakarta-servlet/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
bolt-jakarta-servlet
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-jetty/pom.xml b/bolt-jetty/pom.xml
index e46e88292..15564cb10 100644
--- a/bolt-jetty/pom.xml
+++ b/bolt-jetty/pom.xml
@@ -6,7 +6,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
@@ -14,7 +14,7 @@
bolt-jetty
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-kotlin-examples/pom.xml b/bolt-kotlin-examples/pom.xml
index 9844f59b8..5eea537ce 100644
--- a/bolt-kotlin-examples/pom.xml
+++ b/bolt-kotlin-examples/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
bolt-kotlin-examples
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-ktor/pom.xml b/bolt-ktor/pom.xml
index e28d9dcd8..5bb7b374f 100644
--- a/bolt-ktor/pom.xml
+++ b/bolt-ktor/pom.xml
@@ -5,11 +5,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
bolt-ktor
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-micronaut/pom.xml b/bolt-micronaut/pom.xml
index 2bd546062..ac56780c7 100644
--- a/bolt-micronaut/pom.xml
+++ b/bolt-micronaut/pom.xml
@@ -6,13 +6,13 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
- 4.4.10
+ 4.5.3
4.3.0
- 3.3.0
+ 3.4.0
5.10.2
1.10.19
@@ -25,7 +25,7 @@
bolt-micronaut
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-quarkus-examples/pom.xml b/bolt-quarkus-examples/pom.xml
index 8d6265e37..6a3d1d4dd 100644
--- a/bolt-quarkus-examples/pom.xml
+++ b/bolt-quarkus-examples/pom.xml
@@ -6,7 +6,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
@@ -24,7 +24,7 @@
bolt-quarkus-examples
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-servlet/pom.xml b/bolt-servlet/pom.xml
index 24d99b88c..f05aa40b1 100644
--- a/bolt-servlet/pom.xml
+++ b/bolt-servlet/pom.xml
@@ -6,7 +6,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
@@ -15,7 +15,7 @@
bolt-servlet
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt-socket-mode/pom.xml b/bolt-socket-mode/pom.xml
index 4f20c07db..1eab43e0f 100644
--- a/bolt-socket-mode/pom.xml
+++ b/bolt-socket-mode/pom.xml
@@ -6,7 +6,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
@@ -17,7 +17,7 @@
bolt-socket-mode
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt/pom.xml b/bolt/pom.xml
index d4eaadf01..c1a51275d 100644
--- a/bolt/pom.xml
+++ b/bolt/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
bolt
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/bolt/src/main/java/com/slack/api/bolt/meta/BoltLibraryVersion.java b/bolt/src/main/java/com/slack/api/bolt/meta/BoltLibraryVersion.java
index 68259cae4..566e0c04f 100644
--- a/bolt/src/main/java/com/slack/api/bolt/meta/BoltLibraryVersion.java
+++ b/bolt/src/main/java/com/slack/api/bolt/meta/BoltLibraryVersion.java
@@ -5,7 +5,7 @@ private BoltLibraryVersion() {
}
public static final String get() {
- return "1.39.4-SNAPSHOT";
+ return "1.40.1-SNAPSHOT";
}
}
diff --git a/docs/_config.yml b/docs/_config.yml
index 404e01d59..1c53fde8b 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -6,7 +6,7 @@ markdown: kramdown
baseurl: /java-slack-sdk
url: https://slack.dev
-sdkLatestVersion: 1.39.3
+sdkLatestVersion: 1.40.0
okhttpVersion: 4.10.0
slf4jApiVersion: 1.7.36
kotlinVersion: 1.7.21
diff --git a/docs/_includes/sidebar-ja.md b/docs/_includes/sidebar-ja.md
index 3de092482..b702ab07a 100644
--- a/docs/_includes/sidebar-ja.md
+++ b/docs/_includes/sidebar-ja.md
@@ -20,7 +20,7 @@
Home タブ
スラッシュコマンド
イベント API
- ワークフローステップ
+ ワークフローステップ(非推奨)
アプリの配布 (OAuth)
Slack でログインする
対応 Web フレームワーク
diff --git a/docs/_includes/sidebar.md b/docs/_includes/sidebar.md
index 62d5d7f0e..edb5efec4 100644
--- a/docs/_includes/sidebar.md
+++ b/docs/_includes/sidebar.md
@@ -20,7 +20,7 @@
App Home
Slash Commands
Events API
- Workflow Steps
+ Workflow Steps (Deprecated)
App Distribution (OAuth)
Sign in with Slack
Supported Web Frameworks
diff --git a/docs/guides/ja/steps-from-apps.md b/docs/guides/ja/steps-from-apps.md
index f7ca453bd..934d34b25 100644
--- a/docs/guides/ja/steps-from-apps.md
+++ b/docs/guides/ja/steps-from-apps.md
@@ -1,10 +1,12 @@
---
layout: ja
-title: "ワークフローステップ"
+title: "ワークフローステップ(非推奨)"
lang: ja
---
-# ワークフローステップ
+# ワークフローステップ(非推奨)
+
+**ここで紹介されているワークフローステップの実装方法は非推奨となりました。 今後は[新しい方式(英語)](https://api.slack.com/automation/functions/custom-bolt)を利用してください。**
(アプリによる)ワークフローステップ(Workflow Steps from Apps) は、[ワークフロービルダー](https://api.slack.com/workflows)におけるワークフローに組み込み可能なカスタムのワークフローステップを任意の Slack アプリが提供することを可能とします。
diff --git a/docs/guides/steps-from-apps.md b/docs/guides/steps-from-apps.md
index 829d274ec..3085485d8 100644
--- a/docs/guides/steps-from-apps.md
+++ b/docs/guides/steps-from-apps.md
@@ -1,10 +1,12 @@
---
layout: default
-title: "Workflow Steps"
+title: "Workflow Steps (Deprecated)"
lang: en
---
-# Workflow Steps from Apps
+# Workflow Steps from Apps (Deprecated)
+
+**Steps from Apps for legacy workflows are now deprecated. Use [new custom steps](https://api.slack.com/automation/functions/custom-bolt).**
Workflow Steps from apps allow your app to create and process custom workflow steps that users can add using [Workflow Builder](https://api.slack.com/workflows).
diff --git a/json-logs/raw/audit/v1/actions.json b/json-logs/raw/audit/v1/actions.json
index ef243a8aa..30e547742 100644
--- a/json-logs/raw/audit/v1/actions.json
+++ b/json-logs/raw/audit/v1/actions.json
@@ -299,7 +299,12 @@
"external_shared_channel_access_downgraded",
"private_channel_converted_to_public",
"record_channel_archive",
- "record_channel_unarchive"
+ "record_channel_unarchive",
+ "channel_converted_to_record_channel",
+ "record_channel_converted_to_channel",
+ "external_shared_channel_invite_requested",
+ "external_shared_channel_invite_request_approved",
+ "external_shared_channel_invite_request_denied"
],
"app": [
"app_installed",
diff --git a/json-logs/samples/api/admin.conversations.search.json b/json-logs/samples/api/admin.conversations.search.json
index 526804f36..d4f3ced76 100644
--- a/json-logs/samples/api/admin.conversations.search.json
+++ b/json-logs/samples/api/admin.conversations.search.json
@@ -62,7 +62,16 @@
}
]
},
- "context_team_id": "T00000000"
+ "context_team_id": "T00000000",
+ "lists": {
+ "total_count": 12345,
+ "ownership_details": [
+ {
+ "count": 123,
+ "team_id": ""
+ }
+ ]
+ }
}
],
"next_cursor": "",
diff --git a/json-logs/samples/api/canvases.access.delete.json b/json-logs/samples/api/canvases.access.delete.json
new file mode 100644
index 000000000..49b68160f
--- /dev/null
+++ b/json-logs/samples/api/canvases.access.delete.json
@@ -0,0 +1,13 @@
+{
+ "ok": false,
+ "error": "",
+ "failed_to_update_channel_ids": [
+ ""
+ ],
+ "failed_to_update_user_ids": [
+ ""
+ ],
+ "response_metadata": {},
+ "needed": "",
+ "provided": ""
+}
\ No newline at end of file
diff --git a/json-logs/samples/api/canvases.access.set.json b/json-logs/samples/api/canvases.access.set.json
new file mode 100644
index 000000000..49b68160f
--- /dev/null
+++ b/json-logs/samples/api/canvases.access.set.json
@@ -0,0 +1,13 @@
+{
+ "ok": false,
+ "error": "",
+ "failed_to_update_channel_ids": [
+ ""
+ ],
+ "failed_to_update_user_ids": [
+ ""
+ ],
+ "response_metadata": {},
+ "needed": "",
+ "provided": ""
+}
\ No newline at end of file
diff --git a/json-logs/samples/api/canvases.create.json b/json-logs/samples/api/canvases.create.json
new file mode 100644
index 000000000..eab1b1956
--- /dev/null
+++ b/json-logs/samples/api/canvases.create.json
@@ -0,0 +1,13 @@
+{
+ "ok": false,
+ "canvas_id": "F00000000",
+ "detail": "",
+ "error": "",
+ "response_metadata": {
+ "messages": [
+ ""
+ ]
+ },
+ "needed": "",
+ "provided": ""
+}
\ No newline at end of file
diff --git a/json-logs/samples/api/canvases.delete.json b/json-logs/samples/api/canvases.delete.json
new file mode 100644
index 000000000..1ce4c58e9
--- /dev/null
+++ b/json-logs/samples/api/canvases.delete.json
@@ -0,0 +1,7 @@
+{
+ "ok": false,
+ "error": "",
+ "response_metadata": {},
+ "needed": "",
+ "provided": ""
+}
\ No newline at end of file
diff --git a/json-logs/samples/api/canvases.edit.json b/json-logs/samples/api/canvases.edit.json
new file mode 100644
index 000000000..aa68747f3
--- /dev/null
+++ b/json-logs/samples/api/canvases.edit.json
@@ -0,0 +1,12 @@
+{
+ "ok": false,
+ "detail": "",
+ "error": "",
+ "response_metadata": {
+ "messages": [
+ ""
+ ]
+ },
+ "needed": "",
+ "provided": ""
+}
\ No newline at end of file
diff --git a/json-logs/samples/api/canvases.sections.lookup.json b/json-logs/samples/api/canvases.sections.lookup.json
new file mode 100644
index 000000000..e2d2f9119
--- /dev/null
+++ b/json-logs/samples/api/canvases.sections.lookup.json
@@ -0,0 +1,16 @@
+{
+ "ok": false,
+ "error": "",
+ "sections": [
+ {
+ "id": ""
+ }
+ ],
+ "response_metadata": {
+ "messages": [
+ ""
+ ]
+ },
+ "needed": "",
+ "provided": ""
+}
\ No newline at end of file
diff --git a/json-logs/samples/api/chat.postMessage.json b/json-logs/samples/api/chat.postMessage.json
index 61888ef08..8deed9e0a 100644
--- a/json-logs/samples/api/chat.postMessage.json
+++ b/json-logs/samples/api/chat.postMessage.json
@@ -8353,6 +8353,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -12839,6 +12840,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -19707,6 +19709,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
diff --git a/json-logs/samples/api/chat.scheduleMessage.json b/json-logs/samples/api/chat.scheduleMessage.json
index cc124a174..116266946 100644
--- a/json-logs/samples/api/chat.scheduleMessage.json
+++ b/json-logs/samples/api/chat.scheduleMessage.json
@@ -2898,6 +2898,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
diff --git a/json-logs/samples/api/chat.update.json b/json-logs/samples/api/chat.update.json
index 93ea8c3fc..1d4df00b3 100644
--- a/json-logs/samples/api/chat.update.json
+++ b/json-logs/samples/api/chat.update.json
@@ -4316,6 +4316,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -7187,6 +7188,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
diff --git a/json-logs/samples/api/conversations.canvases.create.json b/json-logs/samples/api/conversations.canvases.create.json
new file mode 100644
index 000000000..eab1b1956
--- /dev/null
+++ b/json-logs/samples/api/conversations.canvases.create.json
@@ -0,0 +1,13 @@
+{
+ "ok": false,
+ "canvas_id": "F00000000",
+ "detail": "",
+ "error": "",
+ "response_metadata": {
+ "messages": [
+ ""
+ ]
+ },
+ "needed": "",
+ "provided": ""
+}
\ No newline at end of file
diff --git a/json-logs/samples/api/conversations.history.json b/json-logs/samples/api/conversations.history.json
index adfee79cc..bdc513a38 100644
--- a/json-logs/samples/api/conversations.history.json
+++ b/json-logs/samples/api/conversations.history.json
@@ -4317,6 +4317,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -7188,6 +7189,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -15856,6 +15858,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -20342,6 +20345,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/conversations.list.json b/json-logs/samples/api/conversations.list.json
index 213fa25db..0933d5b31 100644
--- a/json-logs/samples/api/conversations.list.json
+++ b/json-logs/samples/api/conversations.list.json
@@ -62,8 +62,7 @@
""
],
"user": [
- "W00000000",
- "U00000000"
+ "W00000000"
]
},
"threads_restricted_to": {
diff --git a/json-logs/samples/api/conversations.open.json b/json-logs/samples/api/conversations.open.json
index 9d26c2f4f..3f3d78361 100644
--- a/json-logs/samples/api/conversations.open.json
+++ b/json-logs/samples/api/conversations.open.json
@@ -2851,6 +2851,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
diff --git a/json-logs/samples/api/conversations.replies.json b/json-logs/samples/api/conversations.replies.json
index ae9657b31..e947fc5cd 100644
--- a/json-logs/samples/api/conversations.replies.json
+++ b/json-logs/samples/api/conversations.replies.json
@@ -2874,6 +2874,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -11542,6 +11543,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -16028,6 +16030,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -24305,6 +24308,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/files.remote.add.json b/json-logs/samples/api/files.remote.add.json
index 8318c619e..12d565b42 100644
--- a/json-logs/samples/api/files.remote.add.json
+++ b/json-logs/samples/api/files.remote.add.json
@@ -4228,6 +4228,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/files.remote.info.json b/json-logs/samples/api/files.remote.info.json
index 8318c619e..12d565b42 100644
--- a/json-logs/samples/api/files.remote.info.json
+++ b/json-logs/samples/api/files.remote.info.json
@@ -4228,6 +4228,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/files.remote.share.json b/json-logs/samples/api/files.remote.share.json
index 8318c619e..12d565b42 100644
--- a/json-logs/samples/api/files.remote.share.json
+++ b/json-logs/samples/api/files.remote.share.json
@@ -4228,6 +4228,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/files.remote.update.json b/json-logs/samples/api/files.remote.update.json
index 8318c619e..12d565b42 100644
--- a/json-logs/samples/api/files.remote.update.json
+++ b/json-logs/samples/api/files.remote.update.json
@@ -4228,6 +4228,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/files.revokePublicURL.json b/json-logs/samples/api/files.revokePublicURL.json
index 8318c619e..12d565b42 100644
--- a/json-logs/samples/api/files.revokePublicURL.json
+++ b/json-logs/samples/api/files.revokePublicURL.json
@@ -4228,6 +4228,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/files.sharedPublicURL.json b/json-logs/samples/api/files.sharedPublicURL.json
index 8318c619e..12d565b42 100644
--- a/json-logs/samples/api/files.sharedPublicURL.json
+++ b/json-logs/samples/api/files.sharedPublicURL.json
@@ -4228,6 +4228,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/files.upload.json b/json-logs/samples/api/files.upload.json
index 8318c619e..12d565b42 100644
--- a/json-logs/samples/api/files.upload.json
+++ b/json-logs/samples/api/files.upload.json
@@ -4228,6 +4228,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/pins.list.json b/json-logs/samples/api/pins.list.json
index e0bbedb28..938c68a98 100644
--- a/json-logs/samples/api/pins.list.json
+++ b/json-logs/samples/api/pins.list.json
@@ -4233,6 +4233,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/reactions.get.json b/json-logs/samples/api/reactions.get.json
index 79124ec35..03a008981 100644
--- a/json-logs/samples/api/reactions.get.json
+++ b/json-logs/samples/api/reactions.get.json
@@ -2904,6 +2904,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
diff --git a/json-logs/samples/api/reactions.list.json b/json-logs/samples/api/reactions.list.json
index 9fb5d677f..f4ad967ce 100644
--- a/json-logs/samples/api/reactions.list.json
+++ b/json-logs/samples/api/reactions.list.json
@@ -4343,6 +4343,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -7214,6 +7215,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -15882,6 +15884,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -20368,6 +20371,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/rtm.start.json b/json-logs/samples/api/rtm.start.json
index 9b0daa9be..6da8f600a 100644
--- a/json-logs/samples/api/rtm.start.json
+++ b/json-logs/samples/api/rtm.start.json
@@ -9314,6 +9314,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -13800,6 +13801,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -20668,6 +20670,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -25319,6 +25322,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -33800,6 +33804,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -38286,6 +38291,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -45154,6 +45160,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -49805,6 +49812,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/search.all.json b/json-logs/samples/api/search.all.json
index 8f51ebe36..fc3b0f5b0 100644
--- a/json-logs/samples/api/search.all.json
+++ b/json-logs/samples/api/search.all.json
@@ -8302,6 +8302,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -12788,6 +12789,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -19656,6 +19658,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -28333,6 +28336,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -32819,6 +32823,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -39687,6 +39692,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -42932,6 +42938,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -51600,6 +51607,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -56086,6 +56094,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -64363,6 +64372,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -72869,6 +72879,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -77355,6 +77366,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -84223,6 +84235,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
diff --git a/json-logs/samples/api/search.files.json b/json-logs/samples/api/search.files.json
index b97e63ca6..bb7df4104 100644
--- a/json-logs/samples/api/search.files.json
+++ b/json-logs/samples/api/search.files.json
@@ -8453,6 +8453,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -12939,6 +12940,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -19807,6 +19809,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
diff --git a/json-logs/samples/api/search.messages.json b/json-logs/samples/api/search.messages.json
index 8aec9ab80..a8218ea70 100644
--- a/json-logs/samples/api/search.messages.json
+++ b/json-logs/samples/api/search.messages.json
@@ -8301,6 +8301,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -12787,6 +12788,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -19655,6 +19657,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -28332,6 +28335,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -32818,6 +32822,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -39686,6 +39691,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -42931,6 +42937,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -51599,6 +51606,7 @@
"last_read": 123,
"title_blocks": [],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [],
"org_or_workspace_access": "",
"update_notification": 123,
@@ -56085,6 +56093,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
@@ -64362,6 +64371,7 @@
}
],
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"dm_mpdm_users_with_file_access": [
{
"user_id": "",
diff --git a/json-logs/samples/api/users.discoverableContacts.lookup.json b/json-logs/samples/api/users.discoverableContacts.lookup.json
new file mode 100644
index 000000000..6212d4e17
--- /dev/null
+++ b/json-logs/samples/api/users.discoverableContacts.lookup.json
@@ -0,0 +1,14 @@
+{
+ "ok": false,
+ "error": "",
+ "needed": "",
+ "provided": "",
+ "user": {
+ "is_discoverable": false
+ },
+ "response_metadata": {
+ "messages": [
+ ""
+ ]
+ }
+}
\ No newline at end of file
diff --git a/json-logs/samples/app-backend/interactive-components/BlockActionPayload.json b/json-logs/samples/app-backend/interactive-components/BlockActionPayload.json
index e7bf429a6..0a0ee0ffe 100644
--- a/json-logs/samples/app-backend/interactive-components/BlockActionPayload.json
+++ b/json-logs/samples/app-backend/interactive-components/BlockActionPayload.json
@@ -994,6 +994,7 @@
"access": "",
"last_read": 123,
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"org_or_workspace_access": "",
"update_notification": 123,
"canvas_template_mode": "",
@@ -1237,6 +1238,7 @@
"access": "",
"last_read": 123,
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"org_or_workspace_access": "",
"update_notification": 123,
"canvas_template_mode": "",
diff --git a/json-logs/samples/app-backend/interactive-components/MessageShortcutPayload.json b/json-logs/samples/app-backend/interactive-components/MessageShortcutPayload.json
index 119bdf173..9c79b7b24 100644
--- a/json-logs/samples/app-backend/interactive-components/MessageShortcutPayload.json
+++ b/json-logs/samples/app-backend/interactive-components/MessageShortcutPayload.json
@@ -963,6 +963,7 @@
"access": "",
"last_read": 123,
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"org_or_workspace_access": "",
"update_notification": 123,
"canvas_template_mode": "",
@@ -1206,6 +1207,7 @@
"access": "",
"last_read": 123,
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"org_or_workspace_access": "",
"update_notification": 123,
"canvas_template_mode": "",
diff --git a/json-logs/samples/events/MessageFileSharePayload.json b/json-logs/samples/events/MessageFileSharePayload.json
index 05d2e8dcf..5c6a2e030 100644
--- a/json-logs/samples/events/MessageFileSharePayload.json
+++ b/json-logs/samples/events/MessageFileSharePayload.json
@@ -863,6 +863,7 @@
"access": "",
"last_read": 123,
"private_channels_with_file_access_count": 123,
+ "private_file_with_access_count": 123,
"org_or_workspace_access": "",
"update_notification": 123,
"canvas_template_mode": "",
diff --git a/metadata/web-api/rate_limit_tiers.json b/metadata/web-api/rate_limit_tiers.json
index 6f3b05ed3..edc35975d 100644
--- a/metadata/web-api/rate_limit_tiers.json
+++ b/metadata/web-api/rate_limit_tiers.json
@@ -126,6 +126,12 @@
"calls.participants.add": "Tier2",
"calls.participants.remove": "Tier2",
"calls.update": "Tier2",
+ "canvases.access.delete": "Tier3",
+ "canvases.access.set": "Tier3",
+ "canvases.create": "Tier2",
+ "canvases.delete": "Tier3",
+ "canvases.edit": "Tier3",
+ "canvases.sections.lookup": "Tier3",
"channels.archive": "Tier2",
"channels.create": "Tier2",
"channels.history": "Tier2",
@@ -154,6 +160,7 @@
"conversations.acceptSharedInvite": "Tier1",
"conversations.approveSharedInvite": "Tier1",
"conversations.archive": "Tier2",
+ "conversations.canvases.create": "Tier2",
"conversations.close": "Tier2",
"conversations.create": "Tier2",
"conversations.declineSharedInvite": "Tier1",
@@ -270,6 +277,7 @@
"usergroups.users.update": "Tier2",
"users.conversations": "Tier2",
"users.deletePhoto": "Tier2",
+ "users.discoverableContacts.lookup": "Tier2",
"users.getPresence": "Tier3",
"users.identity": "Tier3",
"users.info": "Tier4",
diff --git a/pom.xml b/pom.xml
index 5d05ee0f4..b1dfa4f62 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
pom
Java Slack SDK Project
diff --git a/slack-api-client-kotlin-extension/pom.xml b/slack-api-client-kotlin-extension/pom.xml
index 59ffc3ddf..4a556aee0 100644
--- a/slack-api-client-kotlin-extension/pom.xml
+++ b/slack-api-client-kotlin-extension/pom.xml
@@ -5,11 +5,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
slack-api-client-kotlin-extension
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/slack-api-client/pom.xml b/slack-api-client/pom.xml
index 8daee45e7..07153b224 100644
--- a/slack-api-client/pom.xml
+++ b/slack-api-client/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
slack-api-client
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/slack-api-client/src/main/java/com/slack/api/audit/Actions.java b/slack-api-client/src/main/java/com/slack/api/audit/Actions.java
index 8d30a10e6..ff6690016 100644
--- a/slack-api-client/src/main/java/com/slack/api/audit/Actions.java
+++ b/slack-api-client/src/main/java/com/slack/api/audit/Actions.java
@@ -323,6 +323,11 @@ private Channel() {
public static final String private_channel_converted_to_public = "private_channel_converted_to_public";
public static final String record_channel_archive = "record_channel_archive";
public static final String record_channel_unarchive = "record_channel_unarchive";
+ public static final String channel_converted_to_record_channel = "channel_converted_to_record_channel";
+ public static final String record_channel_converted_to_channel = "record_channel_converted_to_channel";
+ public static final String external_shared_channel_invite_requested = "external_shared_channel_invite_requested";
+ public static final String external_shared_channel_invite_request_approved = "external_shared_channel_invite_request_approved";
+ public static final String external_shared_channel_invite_request_denied = "external_shared_channel_invite_request_denied";
}
public static class App {
diff --git a/slack-api-client/src/main/java/com/slack/api/meta/SlackApiClientLibraryVersion.java b/slack-api-client/src/main/java/com/slack/api/meta/SlackApiClientLibraryVersion.java
index 3e3bc8f46..ef6660f7a 100644
--- a/slack-api-client/src/main/java/com/slack/api/meta/SlackApiClientLibraryVersion.java
+++ b/slack-api-client/src/main/java/com/slack/api/meta/SlackApiClientLibraryVersion.java
@@ -5,7 +5,7 @@ private SlackApiClientLibraryVersion() {
}
public static final String get() {
- return "1.39.4-SNAPSHOT";
+ return "1.40.1-SNAPSHOT";
}
}
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java b/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java
index d45dc67f4..1f31190d0 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java
@@ -57,9 +57,16 @@
import com.slack.api.methods.request.calls.CallsUpdateRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsAddRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsRemoveRequest;
+import com.slack.api.methods.request.canvases.CanvasesCreateRequest;
+import com.slack.api.methods.request.canvases.CanvasesDeleteRequest;
+import com.slack.api.methods.request.canvases.CanvasesEditRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessDeleteRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessSetRequest;
+import com.slack.api.methods.request.canvases.sections.CanvasesSectionsLookupRequest;
import com.slack.api.methods.request.chat.*;
import com.slack.api.methods.request.chat.scheduled_messages.ChatScheduledMessagesListRequest;
import com.slack.api.methods.request.conversations.*;
+import com.slack.api.methods.request.conversations.canvases.ConversationsCanvasesCreateRequest;
import com.slack.api.methods.request.dialog.DialogOpenRequest;
import com.slack.api.methods.request.dnd.*;
import com.slack.api.methods.request.emoji.EmojiListRequest;
@@ -97,6 +104,7 @@
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersListRequest;
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersUpdateRequest;
import com.slack.api.methods.request.users.*;
+import com.slack.api.methods.request.users.discoverable_contacts.UsersDiscoverableContactsLookupRequest;
import com.slack.api.methods.request.users.profile.UsersProfileGetRequest;
import com.slack.api.methods.request.users.profile.UsersProfileSetRequest;
import com.slack.api.methods.request.views.ViewsOpenRequest;
@@ -162,9 +170,16 @@
import com.slack.api.methods.response.calls.CallsUpdateResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsAddResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsRemoveResponse;
+import com.slack.api.methods.response.canvases.CanvasesCreateResponse;
+import com.slack.api.methods.response.canvases.CanvasesDeleteResponse;
+import com.slack.api.methods.response.canvases.CanvasesEditResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessDeleteResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessSetResponse;
+import com.slack.api.methods.response.canvases.sections.CanvasesSectionsLookupResponse;
import com.slack.api.methods.response.chat.*;
import com.slack.api.methods.response.chat.scheduled_messages.ChatScheduledMessagesListResponse;
import com.slack.api.methods.response.conversations.*;
+import com.slack.api.methods.response.conversations.canvases.ConversationsCanvasesCreateResponse;
import com.slack.api.methods.response.dialog.DialogOpenResponse;
import com.slack.api.methods.response.dnd.*;
import com.slack.api.methods.response.emoji.EmojiListResponse;
@@ -202,6 +217,7 @@
import com.slack.api.methods.response.usergroups.users.UsergroupsUsersListResponse;
import com.slack.api.methods.response.usergroups.users.UsergroupsUsersUpdateResponse;
import com.slack.api.methods.response.users.*;
+import com.slack.api.methods.response.users.discoverable_contacts.UsersDiscoverableContactsLookupResponse;
import com.slack.api.methods.response.users.profile.UsersProfileGetResponse;
import com.slack.api.methods.response.users.profile.UsersProfileSetResponse;
import com.slack.api.methods.response.views.ViewsOpenResponse;
@@ -859,6 +875,34 @@ CompletableFuture
CompletableFuture callsParticipantsRemove(RequestConfigurator req);
+ // ------------------------------
+ // canvases
+ // ------------------------------
+
+ CompletableFuture canvasesCreate(CanvasesCreateRequest req);
+
+ CompletableFuture canvasesCreate(RequestConfigurator req);
+
+ CompletableFuture canvasesEdit(CanvasesEditRequest req);
+
+ CompletableFuture canvasesEdit(RequestConfigurator req);
+
+ CompletableFuture canvasesDelete(CanvasesDeleteRequest req);
+
+ CompletableFuture canvasesDelete(RequestConfigurator req);
+
+ CompletableFuture canvasesAccessSet(CanvasesAccessSetRequest req);
+
+ CompletableFuture canvasesAccessSet(RequestConfigurator req);
+
+ CompletableFuture canvasesAccessDelete(CanvasesAccessDeleteRequest req);
+
+ CompletableFuture canvasesAccessDelete(RequestConfigurator req);
+
+ CompletableFuture canvasesSectionsLookup(CanvasesSectionsLookupRequest req);
+
+ CompletableFuture canvasesSectionsLookup(RequestConfigurator req);
+
// ------------------------------
// chat
// ------------------------------
@@ -983,6 +1027,10 @@ CompletableFuture
CompletableFuture conversationsUnarchive(RequestConfigurator req);
+ CompletableFuture conversationsCanvasesCreate(ConversationsCanvasesCreateRequest req);
+
+ CompletableFuture conversationsCanvasesCreate(RequestConfigurator req);
+
// -------------
// Slack Connect
@@ -1070,10 +1118,12 @@ CompletableFuture
CompletableFuture filesSharedPublicURL(RequestConfigurator req);
- @Deprecated // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
CompletableFuture filesUpload(FilesUploadRequest req);
- @Deprecated // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
CompletableFuture filesUpload(RequestConfigurator req);
CompletableFuture filesGetUploadURLExternal(FilesGetUploadURLExternalRequest req);
@@ -1232,10 +1282,12 @@ CompletableFuture
// rtm
// ------------------------------
- @Deprecated // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
CompletableFuture rtmConnect(RTMConnectRequest req);
- @Deprecated // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
CompletableFuture rtmConnect(RequestConfigurator req);
@Deprecated
@@ -1264,22 +1316,28 @@ CompletableFuture
// stars
// ------------------------------
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
CompletableFuture starsAdd(StarsAddRequest req);
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
CompletableFuture starsAdd(RequestConfigurator req);
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
CompletableFuture starsList(StarsListRequest req);
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
CompletableFuture starsList(RequestConfigurator req);
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
CompletableFuture starsRemove(StarsRemoveRequest req);
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
CompletableFuture starsRemove(RequestConfigurator req);
// ------------------------------
@@ -1398,6 +1456,10 @@ CompletableFuture
CompletableFuture usersSetPresence(RequestConfigurator req);
+ CompletableFuture usersDiscoverableContactsLookup(UsersDiscoverableContactsLookupRequest req);
+
+ CompletableFuture usersDiscoverableContactsLookup(RequestConfigurator req);
+
// ------------------------------
// users.profile
// ------------------------------
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/Methods.java b/slack-api-client/src/main/java/com/slack/api/methods/Methods.java
index 79c94a1e0..946f71f8c 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/Methods.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/Methods.java
@@ -320,6 +320,17 @@ private Methods() {
public static final String CALLS_PARTICIPANTS_ADD = "calls.participants.add";
public static final String CALLS_PARTICIPANTS_REMOVE = "calls.participants.remove";
+ // ------------------------------
+ // canvases
+ // ------------------------------
+
+ public static final String CANVASES_ACCESS_DELETE = "canvases.access.delete";
+ public static final String CANVASES_ACCESS_SET = "canvases.access.set";
+ public static final String CANVASES_CREATE = "canvases.create";
+ public static final String CANVASES_DELETE = "canvases.delete";
+ public static final String CANVASES_EDIT = "canvases.edit";
+ public static final String CANVASES_SECTIONS_LOOKUP = "canvases.sections.lookup";
+
// ------------------------------
// channels
// ------------------------------
@@ -405,6 +416,8 @@ private Methods() {
public static final String CONVERSATIONS_DECLINE_SHARED_INVITE = "conversations.declineSharedInvite";
public static final String CONVERSATIONS_LIST_CONNECT_INVITES = "conversations.listConnectInvites";
+ public static final String CONVERSATIONS_CANVASES_CREATE = "conversations.canvases.create";
+
// ------------------------------
// dialog
// ------------------------------
@@ -668,6 +681,7 @@ private Methods() {
public static final String USERS_SET_ACTIVE = "users.setActive";
public static final String USERS_SET_PHOTO = "users.setPhoto";
public static final String USERS_SET_PRESENCE = "users.setPresence";
+ public static final String USERS_DISCOVERABLE_CONTACTS_LOOKUP = "users.discoverableContacts.lookup";
// ------------------------------
// users.profile
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java b/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java
index bf9f2f5b0..972107411 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java
@@ -63,10 +63,17 @@
import com.slack.api.methods.request.calls.CallsUpdateRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsAddRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsRemoveRequest;
+import com.slack.api.methods.request.canvases.CanvasesCreateRequest;
+import com.slack.api.methods.request.canvases.CanvasesDeleteRequest;
+import com.slack.api.methods.request.canvases.CanvasesEditRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessDeleteRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessSetRequest;
+import com.slack.api.methods.request.canvases.sections.CanvasesSectionsLookupRequest;
import com.slack.api.methods.request.channels.*;
import com.slack.api.methods.request.chat.*;
import com.slack.api.methods.request.chat.scheduled_messages.ChatScheduledMessagesListRequest;
import com.slack.api.methods.request.conversations.*;
+import com.slack.api.methods.request.conversations.canvases.ConversationsCanvasesCreateRequest;
import com.slack.api.methods.request.dialog.DialogOpenRequest;
import com.slack.api.methods.request.dnd.*;
import com.slack.api.methods.request.emoji.EmojiListRequest;
@@ -110,6 +117,7 @@
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersListRequest;
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersUpdateRequest;
import com.slack.api.methods.request.users.*;
+import com.slack.api.methods.request.users.discoverable_contacts.UsersDiscoverableContactsLookupRequest;
import com.slack.api.methods.request.users.profile.UsersProfileGetRequest;
import com.slack.api.methods.request.users.profile.UsersProfileSetRequest;
import com.slack.api.methods.request.views.ViewsOpenRequest;
@@ -181,10 +189,17 @@
import com.slack.api.methods.response.calls.CallsUpdateResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsAddResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsRemoveResponse;
+import com.slack.api.methods.response.canvases.CanvasesCreateResponse;
+import com.slack.api.methods.response.canvases.CanvasesDeleteResponse;
+import com.slack.api.methods.response.canvases.CanvasesEditResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessDeleteResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessSetResponse;
+import com.slack.api.methods.response.canvases.sections.CanvasesSectionsLookupResponse;
import com.slack.api.methods.response.channels.*;
import com.slack.api.methods.response.chat.*;
import com.slack.api.methods.response.chat.scheduled_messages.ChatScheduledMessagesListResponse;
import com.slack.api.methods.response.conversations.*;
+import com.slack.api.methods.response.conversations.canvases.ConversationsCanvasesCreateResponse;
import com.slack.api.methods.response.dialog.DialogOpenResponse;
import com.slack.api.methods.response.dnd.*;
import com.slack.api.methods.response.emoji.EmojiListResponse;
@@ -229,6 +244,7 @@
import com.slack.api.methods.response.usergroups.users.UsergroupsUsersUpdateResponse;
import com.slack.api.methods.response.users.UsersLookupByEmailResponse;
import com.slack.api.methods.response.users.*;
+import com.slack.api.methods.response.users.discoverable_contacts.UsersDiscoverableContactsLookupResponse;
import com.slack.api.methods.response.users.profile.UsersProfileGetResponse;
import com.slack.api.methods.response.users.profile.UsersProfileSetResponse;
import com.slack.api.methods.response.views.ViewsOpenResponse;
@@ -989,6 +1005,34 @@ AdminUsergroupsRemoveChannelsResponse adminUsergroupsRemoveChannels(
BotsInfoResponse botsInfo(RequestConfigurator req) throws IOException, SlackApiException;
+ // ------------------------------
+ // canvases
+ // ------------------------------
+
+ CanvasesCreateResponse canvasesCreate(CanvasesCreateRequest req) throws IOException, SlackApiException;
+
+ CanvasesCreateResponse canvasesCreate(RequestConfigurator req) throws IOException, SlackApiException;
+
+ CanvasesEditResponse canvasesEdit(CanvasesEditRequest req) throws IOException, SlackApiException;
+
+ CanvasesEditResponse canvasesEdit(RequestConfigurator req) throws IOException, SlackApiException;
+
+ CanvasesDeleteResponse canvasesDelete(CanvasesDeleteRequest req) throws IOException, SlackApiException;
+
+ CanvasesDeleteResponse canvasesDelete(RequestConfigurator req) throws IOException, SlackApiException;
+
+ CanvasesAccessSetResponse canvasesAccessSet(CanvasesAccessSetRequest req) throws IOException, SlackApiException;
+
+ CanvasesAccessSetResponse canvasesAccessSet(RequestConfigurator req) throws IOException, SlackApiException;
+
+ CanvasesAccessDeleteResponse canvasesAccessDelete(CanvasesAccessDeleteRequest req) throws IOException, SlackApiException;
+
+ CanvasesAccessDeleteResponse canvasesAccessDelete(RequestConfigurator req) throws IOException, SlackApiException;
+
+ CanvasesSectionsLookupResponse canvasesSectionsLookup(CanvasesSectionsLookupRequest req) throws IOException, SlackApiException;
+
+ CanvasesSectionsLookupResponse canvasesSectionsLookup(RequestConfigurator req) throws IOException, SlackApiException;
+
// ------------------------------
// calls
// ------------------------------
@@ -1292,6 +1336,10 @@ AdminUsergroupsRemoveChannelsResponse adminUsergroupsRemoveChannels(
ConversationsListConnectInvitesResponse conversationsListConnectInvites(RequestConfigurator req) throws IOException, SlackApiException;
+ ConversationsCanvasesCreateResponse conversationsCanvasesCreate(ConversationsCanvasesCreateRequest req) throws IOException, SlackApiException;
+
+ ConversationsCanvasesCreateResponse conversationsCanvasesCreate(RequestConfigurator req) throws IOException, SlackApiException;
+
// ------------------------------
// dialog
// ------------------------------
@@ -1356,10 +1404,12 @@ AdminUsergroupsRemoveChannelsResponse adminUsergroupsRemoveChannels(
FilesSharedPublicURLResponse filesSharedPublicURL(RequestConfigurator req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
FilesUploadResponse filesUpload(FilesUploadRequest req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay
FilesUploadResponse filesUpload(RequestConfigurator req) throws IOException, SlackApiException;
FilesGetUploadURLExternalResponse filesGetUploadURLExternal(FilesGetUploadURLExternalRequest req) throws IOException, SlackApiException;
@@ -1774,10 +1824,12 @@ AdminUsergroupsRemoveChannelsResponse adminUsergroupsRemoveChannels(
// rtm
// ------------------------------
- @Deprecated // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
RTMConnectResponse rtmConnect(RTMConnectRequest req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
+ @Deprecated
+ // https://api.slack.com/changelog/2024-04-discontinuing-new-creation-of-classic-slack-apps-and-custom-bots
RTMConnectResponse rtmConnect(RequestConfigurator req) throws IOException, SlackApiException;
@Deprecated
@@ -1806,22 +1858,28 @@ AdminUsergroupsRemoveChannelsResponse adminUsergroupsRemoveChannels(
// stars
// ------------------------------
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
StarsAddResponse starsAdd(StarsAddRequest req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
StarsAddResponse starsAdd(RequestConfigurator req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
StarsListResponse starsList(StarsListRequest req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
StarsListResponse starsList(RequestConfigurator req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
StarsRemoveResponse starsRemove(StarsRemoveRequest req) throws IOException, SlackApiException;
- @Deprecated // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
+ @Deprecated
+ // https://api.slack.com/changelog/2023-07-its-later-already-for-stars-and-reminders
StarsRemoveResponse starsRemove(RequestConfigurator req) throws IOException, SlackApiException;
// ------------------------------
@@ -1940,6 +1998,10 @@ AdminUsergroupsRemoveChannelsResponse adminUsergroupsRemoveChannels(
UsersSetPresenceResponse usersSetPresence(RequestConfigurator req) throws IOException, SlackApiException;
+ UsersDiscoverableContactsLookupResponse usersDiscoverableContactsLookup(UsersDiscoverableContactsLookupRequest req) throws IOException, SlackApiException;
+
+ UsersDiscoverableContactsLookupResponse usersDiscoverableContactsLookup(RequestConfigurator req) throws IOException, SlackApiException;
+
// ------------------------------
// users.profile
// ------------------------------
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java b/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java
index 3b91b5c63..23f355894 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java
@@ -245,6 +245,14 @@ public static void setRateLimitTier(String methodName, MethodsRateLimitTier tier
setRateLimitTier(CALLS_PARTICIPANTS_ADD, Tier2);
setRateLimitTier(CALLS_PARTICIPANTS_REMOVE, Tier2);
+ setRateLimitTier(CANVASES_ACCESS_DELETE, Tier3);
+ setRateLimitTier(CANVASES_ACCESS_SET, Tier3);
+ setRateLimitTier(CANVASES_CREATE, Tier2);
+ setRateLimitTier(CANVASES_DELETE, Tier3);
+ setRateLimitTier(CANVASES_EDIT, Tier3);
+ setRateLimitTier(CANVASES_SECTIONS_LOOKUP, Tier3);
+ setRateLimitTier(CONVERSATIONS_CANVASES_CREATE, Tier2);
+
setRateLimitTier(CHAT_DELETE, Tier3);
setRateLimitTier(CHAT_DELETE_SCHEDULED_MESSAGE, Tier3);
setRateLimitTier(CHAT_GET_PERMALINK, SpecialTier_chat_getPermalink);
@@ -436,6 +444,7 @@ public static void setRateLimitTier(String methodName, MethodsRateLimitTier tier
setRateLimitTier(USERS_SET_PRESENCE, Tier2);
setRateLimitTier(USERS_PROFILE_GET, Tier4);
setRateLimitTier(USERS_PROFILE_SET, Tier3);
+ setRateLimitTier(USERS_DISCOVERABLE_CONTACTS_LOOKUP, Tier2);
setRateLimitTier(VIEWS_OPEN, Tier4);
setRateLimitTier(VIEWS_PUBLISH, Tier4);
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java b/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java
index cf7aa8395..343d801aa 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java
@@ -19,7 +19,9 @@
import com.slack.api.methods.request.admin.conversations.whitelist.AdminConversationsWhitelistListGroupsLinkedToChannelRequest;
import com.slack.api.methods.request.admin.conversations.whitelist.AdminConversationsWhitelistRemoveRequest;
import com.slack.api.methods.request.admin.emoji.*;
-import com.slack.api.methods.request.admin.functions.*;
+import com.slack.api.methods.request.admin.functions.AdminFunctionsListRequest;
+import com.slack.api.methods.request.admin.functions.AdminFunctionsPermissionsLookupRequest;
+import com.slack.api.methods.request.admin.functions.AdminFunctionsPermissionsSetRequest;
import com.slack.api.methods.request.admin.invite_requests.*;
import com.slack.api.methods.request.admin.roles.AdminRolesAddAssignmentsRequest;
import com.slack.api.methods.request.admin.roles.AdminRolesListAssignmentsRequest;
@@ -61,10 +63,17 @@
import com.slack.api.methods.request.calls.CallsUpdateRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsAddRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsRemoveRequest;
+import com.slack.api.methods.request.canvases.CanvasesCreateRequest;
+import com.slack.api.methods.request.canvases.CanvasesDeleteRequest;
+import com.slack.api.methods.request.canvases.CanvasesEditRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessDeleteRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessSetRequest;
+import com.slack.api.methods.request.canvases.sections.CanvasesSectionsLookupRequest;
import com.slack.api.methods.request.channels.*;
import com.slack.api.methods.request.chat.*;
import com.slack.api.methods.request.chat.scheduled_messages.ChatScheduledMessagesListRequest;
import com.slack.api.methods.request.conversations.*;
+import com.slack.api.methods.request.conversations.canvases.ConversationsCanvasesCreateRequest;
import com.slack.api.methods.request.dialog.DialogOpenRequest;
import com.slack.api.methods.request.dnd.*;
import com.slack.api.methods.request.emoji.EmojiListRequest;
@@ -106,6 +115,7 @@
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersListRequest;
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersUpdateRequest;
import com.slack.api.methods.request.users.*;
+import com.slack.api.methods.request.users.discoverable_contacts.UsersDiscoverableContactsLookupRequest;
import com.slack.api.methods.request.users.profile.UsersProfileGetRequest;
import com.slack.api.methods.request.users.profile.UsersProfileSetRequest;
import com.slack.api.methods.request.views.ViewsOpenRequest;
@@ -117,6 +127,7 @@
import com.slack.api.methods.request.workflows.WorkflowsUpdateStepRequest;
import com.slack.api.model.Attachment;
import com.slack.api.model.ConversationType;
+import com.slack.api.model.canvas.CanvasDocumentContent;
import com.slack.api.util.json.GsonFactory;
import lombok.extern.slf4j.Slf4j;
import okhttp3.FormBody;
@@ -742,6 +753,7 @@ public static FormBody.Builder toForm(AdminRolesListAssignmentsRequest req) {
setIfNotNull("sort_dir", req.getSortDir(), form);
return form;
}
+
public static FormBody.Builder toForm(AdminRolesRemoveAssignmentsRequest req) {
FormBody.Builder form = new FormBody.Builder();
setIfNotNull("role_id", req.getRoleId(), form);
@@ -753,6 +765,7 @@ public static FormBody.Builder toForm(AdminRolesRemoveAssignmentsRequest req) {
}
return form;
}
+
public static FormBody.Builder toForm(AdminTeamsAdminsListRequest req) {
FormBody.Builder form = new FormBody.Builder();
setIfNotNull("cursor", req.getCursor(), form);
@@ -1168,6 +1181,70 @@ public static FormBody.Builder toForm(BotsInfoRequest req) {
return form;
}
+ public static FormBody.Builder toForm(CanvasesCreateRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("title", req.getTitle(), form);
+ if (req.getDocumentContent() != null) {
+ setIfNotNull("document_content", GSON.toJson(req.getDocumentContent()), form);
+ } else if (req.getMarkdown() != null) {
+ CanvasDocumentContent documentContent = CanvasDocumentContent.builder()
+ .type("markdown")
+ .markdown(req.getMarkdown())
+ .build();
+ setIfNotNull("document_content", GSON.toJson(documentContent), form);
+ }
+ return form;
+ }
+
+ public static FormBody.Builder toForm(CanvasesEditRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("canvas_id", req.getCanvasId(), form);
+ if (req.getChanges() != null) {
+ setIfNotNull("changes", getJsonWithGsonAnonymInnerClassHandling(req.getChanges()), form);
+ }
+ return form;
+ }
+
+ public static FormBody.Builder toForm(CanvasesDeleteRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("canvas_id", req.getCanvasId(), form);
+ return form;
+ }
+
+ public static FormBody.Builder toForm(CanvasesAccessSetRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("canvas_id", req.getCanvasId(), form);
+ setIfNotNull("access_level", req.getAccessLevel(), form);
+ if (req.getUserIds() != null) {
+ setIfNotNull("user_ids", getJsonWithGsonAnonymInnerClassHandling(req.getUserIds()), form);
+ }
+ if (req.getChannelIds() != null) {
+ setIfNotNull("channel_ids", getJsonWithGsonAnonymInnerClassHandling(req.getChannelIds()), form);
+ }
+ return form;
+ }
+
+ public static FormBody.Builder toForm(CanvasesAccessDeleteRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("canvas_id", req.getCanvasId(), form);
+ if (req.getUserIds() != null) {
+ setIfNotNull("user_ids", getJsonWithGsonAnonymInnerClassHandling(req.getUserIds()), form);
+ }
+ if (req.getChannelIds() != null) {
+ setIfNotNull("channel_ids", getJsonWithGsonAnonymInnerClassHandling(req.getChannelIds()), form);
+ }
+ return form;
+ }
+
+ public static FormBody.Builder toForm(CanvasesSectionsLookupRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("canvas_id", req.getCanvasId(), form);
+ if (req.getCriteria() != null) {
+ setIfNotNull("criteria", GSON.toJson(req.getCriteria()), form);
+ }
+ return form;
+ }
+
public static FormBody.Builder toForm(CallsAddRequest req) {
FormBody.Builder form = new FormBody.Builder();
setIfNotNull("external_unique_id", req.getExternalUniqueId(), form);
@@ -1774,6 +1851,21 @@ public static FormBody.Builder toForm(ConversationsListConnectInvitesRequest req
return form;
}
+ public static FormBody.Builder toForm(ConversationsCanvasesCreateRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("channel_id", req.getChannelId(), form);
+ if (req.getDocumentContent() != null) {
+ setIfNotNull("document_content", GSON.toJson(req.getDocumentContent()), form);
+ } else if (req.getMarkdown() != null) {
+ CanvasDocumentContent documentContent = CanvasDocumentContent.builder()
+ .type("markdown")
+ .markdown(req.getMarkdown())
+ .build();
+ setIfNotNull("document_content", GSON.toJson(documentContent), form);
+ }
+ return form;
+ }
+
public static FormBody.Builder toForm(DialogOpenRequest req) {
FormBody.Builder form = new FormBody.Builder();
setIfNotNull("trigger_id", req.getTriggerId(), form);
@@ -2690,6 +2782,12 @@ public static FormBody.Builder toForm(UsersSetPresenceRequest req) {
return form;
}
+ public static FormBody.Builder toForm(UsersDiscoverableContactsLookupRequest req) {
+ FormBody.Builder form = new FormBody.Builder();
+ setIfNotNull("email", req.getEmail(), form);
+ return form;
+ }
+
public static FormBody.Builder toForm(UsersProfileGetRequest req) {
FormBody.Builder form = new FormBody.Builder();
setIfNotNull("user", req.getUser(), form);
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java b/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java
index 8990d8f62..f253ace6a 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java
@@ -61,9 +61,16 @@
import com.slack.api.methods.request.calls.CallsUpdateRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsAddRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsRemoveRequest;
+import com.slack.api.methods.request.canvases.CanvasesCreateRequest;
+import com.slack.api.methods.request.canvases.CanvasesDeleteRequest;
+import com.slack.api.methods.request.canvases.CanvasesEditRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessDeleteRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessSetRequest;
+import com.slack.api.methods.request.canvases.sections.CanvasesSectionsLookupRequest;
import com.slack.api.methods.request.chat.*;
import com.slack.api.methods.request.chat.scheduled_messages.ChatScheduledMessagesListRequest;
import com.slack.api.methods.request.conversations.*;
+import com.slack.api.methods.request.conversations.canvases.ConversationsCanvasesCreateRequest;
import com.slack.api.methods.request.dialog.DialogOpenRequest;
import com.slack.api.methods.request.dnd.*;
import com.slack.api.methods.request.emoji.EmojiListRequest;
@@ -101,6 +108,7 @@
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersListRequest;
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersUpdateRequest;
import com.slack.api.methods.request.users.*;
+import com.slack.api.methods.request.users.discoverable_contacts.UsersDiscoverableContactsLookupRequest;
import com.slack.api.methods.request.users.profile.UsersProfileGetRequest;
import com.slack.api.methods.request.users.profile.UsersProfileSetRequest;
import com.slack.api.methods.request.views.ViewsOpenRequest;
@@ -166,9 +174,16 @@
import com.slack.api.methods.response.calls.CallsUpdateResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsAddResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsRemoveResponse;
+import com.slack.api.methods.response.canvases.CanvasesCreateResponse;
+import com.slack.api.methods.response.canvases.CanvasesDeleteResponse;
+import com.slack.api.methods.response.canvases.CanvasesEditResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessDeleteResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessSetResponse;
+import com.slack.api.methods.response.canvases.sections.CanvasesSectionsLookupResponse;
import com.slack.api.methods.response.chat.*;
import com.slack.api.methods.response.chat.scheduled_messages.ChatScheduledMessagesListResponse;
import com.slack.api.methods.response.conversations.*;
+import com.slack.api.methods.response.conversations.canvases.ConversationsCanvasesCreateResponse;
import com.slack.api.methods.response.dialog.DialogOpenResponse;
import com.slack.api.methods.response.dnd.*;
import com.slack.api.methods.response.emoji.EmojiListResponse;
@@ -206,6 +221,7 @@
import com.slack.api.methods.response.usergroups.users.UsergroupsUsersListResponse;
import com.slack.api.methods.response.usergroups.users.UsergroupsUsersUpdateResponse;
import com.slack.api.methods.response.users.*;
+import com.slack.api.methods.response.users.discoverable_contacts.UsersDiscoverableContactsLookupResponse;
import com.slack.api.methods.response.users.profile.UsersProfileGetResponse;
import com.slack.api.methods.response.users.profile.UsersProfileSetResponse;
import com.slack.api.methods.response.views.ViewsOpenResponse;
@@ -1469,6 +1485,66 @@ public CompletableFuture callsParticipantsRemov
return callsParticipantsRemove(req.configure(CallsParticipantsRemoveRequest.builder()).build());
}
+ @Override
+ public CompletableFuture canvasesCreate(CanvasesCreateRequest req) {
+ return executor.execute(CANVASES_CREATE, toMap(req), () -> methods.canvasesCreate(req));
+ }
+
+ @Override
+ public CompletableFuture canvasesCreate(RequestConfigurator req) {
+ return canvasesCreate(req.configure(CanvasesCreateRequest.builder()).build());
+ }
+
+ @Override
+ public CompletableFuture canvasesEdit(CanvasesEditRequest req) {
+ return executor.execute(CANVASES_EDIT, toMap(req), () -> methods.canvasesEdit(req));
+ }
+
+ @Override
+ public CompletableFuture canvasesEdit(RequestConfigurator req) {
+ return canvasesEdit(req.configure(CanvasesEditRequest.builder()).build());
+ }
+
+ @Override
+ public CompletableFuture canvasesDelete(CanvasesDeleteRequest req) {
+ return executor.execute(CANVASES_DELETE, toMap(req), () -> methods.canvasesDelete(req));
+ }
+
+ @Override
+ public CompletableFuture canvasesDelete(RequestConfigurator req) {
+ return canvasesDelete(req.configure(CanvasesDeleteRequest.builder()).build());
+ }
+
+ @Override
+ public CompletableFuture canvasesAccessSet(CanvasesAccessSetRequest req) {
+ return executor.execute(CANVASES_ACCESS_SET, toMap(req), () -> methods.canvasesAccessSet(req));
+ }
+
+ @Override
+ public CompletableFuture canvasesAccessSet(RequestConfigurator req) {
+ return canvasesAccessSet(req.configure(CanvasesAccessSetRequest.builder()).build());
+ }
+
+ @Override
+ public CompletableFuture canvasesAccessDelete(CanvasesAccessDeleteRequest req) {
+ return executor.execute(CANVASES_ACCESS_DELETE, toMap(req), () -> methods.canvasesAccessDelete(req));
+ }
+
+ @Override
+ public CompletableFuture canvasesAccessDelete(RequestConfigurator req) {
+ return canvasesAccessDelete(req.configure(CanvasesAccessDeleteRequest.builder()).build());
+ }
+
+ @Override
+ public CompletableFuture canvasesSectionsLookup(CanvasesSectionsLookupRequest req) {
+ return executor.execute(CANVASES_SECTIONS_LOOKUP, toMap(req), () -> methods.canvasesSectionsLookup(req));
+ }
+
+ @Override
+ public CompletableFuture canvasesSectionsLookup(RequestConfigurator req) {
+ return canvasesSectionsLookup(req.configure(CanvasesSectionsLookupRequest.builder()).build());
+ }
+
@Override
public CompletableFuture chatGetPermalink(ChatGetPermalinkRequest req) {
return executor.execute(CHAT_GET_PERMALINK, toMap(req), () -> methods.chatGetPermalink(req));
@@ -1752,6 +1828,16 @@ public CompletableFuture conversationsUnarchive(
return conversationsUnarchive(req.configure(ConversationsUnarchiveRequest.builder()).build());
}
+ @Override
+ public CompletableFuture conversationsCanvasesCreate(ConversationsCanvasesCreateRequest req) {
+ return executor.execute(CONVERSATIONS_CANVASES_CREATE, toMap(req), () -> methods.conversationsCanvasesCreate(req));
+ }
+
+ @Override
+ public CompletableFuture conversationsCanvasesCreate(RequestConfigurator req) {
+ return conversationsCanvasesCreate(req.configure(ConversationsCanvasesCreateRequest.builder()).build());
+ }
+
@Override
public CompletableFuture conversationsInviteShared(ConversationsInviteSharedRequest req) {
return executor.execute(CONVERSATIONS_INVITE_SHARED, toMap(req), () -> methods.conversationsInviteShared(req));
@@ -2578,6 +2664,16 @@ public CompletableFuture usersSetPresence(RequestConfi
return usersSetPresence(req.configure(UsersSetPresenceRequest.builder()).build());
}
+ @Override
+ public CompletableFuture usersDiscoverableContactsLookup(UsersDiscoverableContactsLookupRequest req) {
+ return executor.execute(USERS_DISCOVERABLE_CONTACTS_LOOKUP, toMap(req), () -> methods.usersDiscoverableContactsLookup(req));
+ }
+
+ @Override
+ public CompletableFuture usersDiscoverableContactsLookup(RequestConfigurator req) {
+ return usersDiscoverableContactsLookup(req.configure(UsersDiscoverableContactsLookupRequest.builder()).build());
+ }
+
@Override
public CompletableFuture usersProfileGet(UsersProfileGetRequest req) {
return executor.execute(USERS_PROFILE_GET, toMap(req), () -> methods.usersProfileGet(req));
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java b/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java
index 36f938fb8..57ddcb6ca 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/impl/MethodsClientImpl.java
@@ -65,10 +65,17 @@
import com.slack.api.methods.request.calls.CallsUpdateRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsAddRequest;
import com.slack.api.methods.request.calls.participants.CallsParticipantsRemoveRequest;
+import com.slack.api.methods.request.canvases.CanvasesCreateRequest;
+import com.slack.api.methods.request.canvases.CanvasesDeleteRequest;
+import com.slack.api.methods.request.canvases.CanvasesEditRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessDeleteRequest;
+import com.slack.api.methods.request.canvases.access.CanvasesAccessSetRequest;
+import com.slack.api.methods.request.canvases.sections.CanvasesSectionsLookupRequest;
import com.slack.api.methods.request.channels.*;
import com.slack.api.methods.request.chat.*;
import com.slack.api.methods.request.chat.scheduled_messages.ChatScheduledMessagesListRequest;
import com.slack.api.methods.request.conversations.*;
+import com.slack.api.methods.request.conversations.canvases.ConversationsCanvasesCreateRequest;
import com.slack.api.methods.request.dialog.DialogOpenRequest;
import com.slack.api.methods.request.dnd.*;
import com.slack.api.methods.request.emoji.EmojiListRequest;
@@ -112,6 +119,7 @@
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersListRequest;
import com.slack.api.methods.request.usergroups.users.UsergroupsUsersUpdateRequest;
import com.slack.api.methods.request.users.*;
+import com.slack.api.methods.request.users.discoverable_contacts.UsersDiscoverableContactsLookupRequest;
import com.slack.api.methods.request.users.profile.UsersProfileGetRequest;
import com.slack.api.methods.request.users.profile.UsersProfileSetRequest;
import com.slack.api.methods.request.views.ViewsOpenRequest;
@@ -183,10 +191,17 @@
import com.slack.api.methods.response.calls.CallsUpdateResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsAddResponse;
import com.slack.api.methods.response.calls.participants.CallsParticipantsRemoveResponse;
+import com.slack.api.methods.response.canvases.CanvasesCreateResponse;
+import com.slack.api.methods.response.canvases.CanvasesDeleteResponse;
+import com.slack.api.methods.response.canvases.CanvasesEditResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessDeleteResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessSetResponse;
+import com.slack.api.methods.response.canvases.sections.CanvasesSectionsLookupResponse;
import com.slack.api.methods.response.channels.*;
import com.slack.api.methods.response.chat.*;
import com.slack.api.methods.response.chat.scheduled_messages.ChatScheduledMessagesListResponse;
import com.slack.api.methods.response.conversations.*;
+import com.slack.api.methods.response.conversations.canvases.ConversationsCanvasesCreateResponse;
import com.slack.api.methods.response.dialog.DialogOpenResponse;
import com.slack.api.methods.response.dnd.*;
import com.slack.api.methods.response.emoji.EmojiListResponse;
@@ -231,6 +246,7 @@
import com.slack.api.methods.response.usergroups.users.UsergroupsUsersUpdateResponse;
import com.slack.api.methods.response.users.UsersLookupByEmailResponse;
import com.slack.api.methods.response.users.*;
+import com.slack.api.methods.response.users.discoverable_contacts.UsersDiscoverableContactsLookupResponse;
import com.slack.api.methods.response.users.profile.UsersProfileGetResponse;
import com.slack.api.methods.response.users.profile.UsersProfileSetResponse;
import com.slack.api.methods.response.views.ViewsOpenResponse;
@@ -1493,6 +1509,66 @@ public BotsInfoResponse botsInfo(RequestConfigurator req) throws IOException, SlackApiException {
+ return canvasesCreate(req.configure(CanvasesCreateRequest.builder()).build());
+ }
+
+ @Override
+ public CanvasesEditResponse canvasesEdit(CanvasesEditRequest req) throws IOException, SlackApiException {
+ return postFormWithTokenAndParseResponse(toForm(req), Methods.CANVASES_EDIT, getToken(req), CanvasesEditResponse.class);
+ }
+
+ @Override
+ public CanvasesEditResponse canvasesEdit(RequestConfigurator req) throws IOException, SlackApiException {
+ return canvasesEdit(req.configure(CanvasesEditRequest.builder()).build());
+ }
+
+ @Override
+ public CanvasesDeleteResponse canvasesDelete(CanvasesDeleteRequest req) throws IOException, SlackApiException {
+ return postFormWithTokenAndParseResponse(toForm(req), Methods.CANVASES_DELETE, getToken(req), CanvasesDeleteResponse.class);
+ }
+
+ @Override
+ public CanvasesDeleteResponse canvasesDelete(RequestConfigurator req) throws IOException, SlackApiException {
+ return canvasesDelete(req.configure(CanvasesDeleteRequest.builder()).build());
+ }
+
+ @Override
+ public CanvasesAccessSetResponse canvasesAccessSet(CanvasesAccessSetRequest req) throws IOException, SlackApiException {
+ return postFormWithTokenAndParseResponse(toForm(req), Methods.CANVASES_ACCESS_SET, getToken(req), CanvasesAccessSetResponse.class);
+ }
+
+ @Override
+ public CanvasesAccessSetResponse canvasesAccessSet(RequestConfigurator req) throws IOException, SlackApiException {
+ return canvasesAccessSet(req.configure(CanvasesAccessSetRequest.builder()).build());
+ }
+
+ @Override
+ public CanvasesAccessDeleteResponse canvasesAccessDelete(CanvasesAccessDeleteRequest req) throws IOException, SlackApiException {
+ return postFormWithTokenAndParseResponse(toForm(req), Methods.CANVASES_ACCESS_DELETE, getToken(req), CanvasesAccessDeleteResponse.class);
+ }
+
+ @Override
+ public CanvasesAccessDeleteResponse canvasesAccessDelete(RequestConfigurator req) throws IOException, SlackApiException {
+ return canvasesAccessDelete(req.configure(CanvasesAccessDeleteRequest.builder()).build());
+ }
+
+ @Override
+ public CanvasesSectionsLookupResponse canvasesSectionsLookup(CanvasesSectionsLookupRequest req) throws IOException, SlackApiException {
+ return postFormWithTokenAndParseResponse(toForm(req), Methods.CANVASES_SECTIONS_LOOKUP, getToken(req), CanvasesSectionsLookupResponse.class);
+ }
+
+ @Override
+ public CanvasesSectionsLookupResponse canvasesSectionsLookup(RequestConfigurator req) throws IOException, SlackApiException {
+ return canvasesSectionsLookup(req.configure(CanvasesSectionsLookupRequest.builder()).build());
+ }
+
@Override
public CallsAddResponse callsAdd(CallsAddRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.CALLS_ADD, getToken(req), CallsAddResponse.class);
@@ -2065,6 +2141,16 @@ public ConversationsListConnectInvitesResponse conversationsListConnectInvites(R
return conversationsListConnectInvites(req.configure(ConversationsListConnectInvitesRequest.builder()).build());
}
+ @Override
+ public ConversationsCanvasesCreateResponse conversationsCanvasesCreate(ConversationsCanvasesCreateRequest req) throws IOException, SlackApiException {
+ return postFormWithTokenAndParseResponse(toForm(req), Methods.CONVERSATIONS_CANVASES_CREATE, getToken(req), ConversationsCanvasesCreateResponse.class);
+ }
+
+ @Override
+ public ConversationsCanvasesCreateResponse conversationsCanvasesCreate(RequestConfigurator req) throws IOException, SlackApiException {
+ return conversationsCanvasesCreate(req.configure(ConversationsCanvasesCreateRequest.builder()).build());
+ }
+
@Override
public DialogOpenResponse dialogOpen(DialogOpenRequest req)
throws IOException, SlackApiException {
@@ -3275,6 +3361,16 @@ public UsersSetPresenceResponse usersSetPresence(RequestConfigurator req) throws IOException, SlackApiException {
+ return usersDiscoverableContactsLookup(req.configure(UsersDiscoverableContactsLookupRequest.builder()).build());
+ }
+
@Override
public UsersProfileGetResponse usersProfileGet(UsersProfileGetRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.USERS_PROFILE_GET, getToken(req), UsersProfileGetResponse.class);
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesCreateRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesCreateRequest.java
new file mode 100644
index 000000000..521d46f3e
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesCreateRequest.java
@@ -0,0 +1,30 @@
+package com.slack.api.methods.request.canvases;
+
+import com.slack.api.methods.SlackApiRequest;
+import com.slack.api.model.CallParticipant;
+import com.slack.api.model.canvas.CanvasDocumentContent;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * https://api.slack.com/methods/canvases.create
+ */
+@Data
+@Builder
+public class CanvasesCreateRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token bearing required scopes.
+ */
+ private String token;
+
+ private String title;
+
+ // You can pass either markdown or documentContent
+ private String markdown;
+ private CanvasDocumentContent documentContent;
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesDeleteRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesDeleteRequest.java
new file mode 100644
index 000000000..2821db05b
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesDeleteRequest.java
@@ -0,0 +1,20 @@
+package com.slack.api.methods.request.canvases;
+
+import com.slack.api.methods.SlackApiRequest;
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * https://api.slack.com/methods/canvases.delete
+ */
+@Data
+@Builder
+public class CanvasesDeleteRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token bearing required scopes.
+ */
+ private String token;
+
+ private String canvasId;
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesEditRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesEditRequest.java
new file mode 100644
index 000000000..d495a0ae0
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/CanvasesEditRequest.java
@@ -0,0 +1,24 @@
+package com.slack.api.methods.request.canvases;
+
+import com.slack.api.methods.SlackApiRequest;
+import com.slack.api.model.canvas.CanvasDocumentChange;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * https://api.slack.com/methods/canvases.edit
+ */
+@Data
+@Builder
+public class CanvasesEditRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token bearing required scopes.
+ */
+ private String token;
+
+ private String canvasId;
+ private List changes;
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/access/CanvasesAccessDeleteRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/access/CanvasesAccessDeleteRequest.java
new file mode 100644
index 000000000..c9f618928
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/access/CanvasesAccessDeleteRequest.java
@@ -0,0 +1,24 @@
+package com.slack.api.methods.request.canvases.access;
+
+import com.slack.api.methods.SlackApiRequest;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * https://api.slack.com/methods/canvases.access.delete
+ */
+@Data
+@Builder
+public class CanvasesAccessDeleteRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token bearing required scopes.
+ */
+ private String token;
+
+ private String canvasId;
+ private List channelIds;
+ private List userIds;
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/access/CanvasesAccessSetRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/access/CanvasesAccessSetRequest.java
new file mode 100644
index 000000000..4da34ded0
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/access/CanvasesAccessSetRequest.java
@@ -0,0 +1,25 @@
+package com.slack.api.methods.request.canvases.access;
+
+import com.slack.api.methods.SlackApiRequest;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * https://api.slack.com/methods/canvases.access.set
+ */
+@Data
+@Builder
+public class CanvasesAccessSetRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token bearing required scopes.
+ */
+ private String token;
+
+ private String canvasId;
+ private String accessLevel;
+ private List channelIds;
+ private List userIds;
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/sections/CanvasesSectionsLookupRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/sections/CanvasesSectionsLookupRequest.java
new file mode 100644
index 000000000..b413bf423
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/canvases/sections/CanvasesSectionsLookupRequest.java
@@ -0,0 +1,34 @@
+package com.slack.api.methods.request.canvases.sections;
+
+import com.slack.api.methods.SlackApiRequest;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * https://api.slack.com/methods/canvases.sections.lookup
+ */
+@Data
+@Builder
+public class CanvasesSectionsLookupRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token bearing required scopes.
+ */
+ private String token;
+
+ private String canvasId;
+ private Criteria criteria;
+
+ @Data
+ @Builder
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class Criteria {
+ private List sectionTypes; // "any_header" etc. See CanvasDocumentSectionType
+ private String containsText;
+ }
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/conversations/canvases/ConversationsCanvasesCreateRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/conversations/canvases/ConversationsCanvasesCreateRequest.java
new file mode 100644
index 000000000..a0740f2d2
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/conversations/canvases/ConversationsCanvasesCreateRequest.java
@@ -0,0 +1,24 @@
+package com.slack.api.methods.request.conversations.canvases;
+
+import com.slack.api.methods.SlackApiRequest;
+import com.slack.api.model.canvas.CanvasDocumentContent;
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * https://api.slack.com/methods/conversations.canvases.create
+ */
+@Data
+@Builder
+public class ConversationsCanvasesCreateRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token. Requires scope: `conversations:read`
+ */
+ private String token;
+
+ private String channelId;
+
+ private String markdown;
+ private CanvasDocumentContent documentContent;
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/request/users/discoverable_contacts/UsersDiscoverableContactsLookupRequest.java b/slack-api-client/src/main/java/com/slack/api/methods/request/users/discoverable_contacts/UsersDiscoverableContactsLookupRequest.java
new file mode 100644
index 000000000..091cf1cf0
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/request/users/discoverable_contacts/UsersDiscoverableContactsLookupRequest.java
@@ -0,0 +1,23 @@
+package com.slack.api.methods.request.users.discoverable_contacts;
+
+import com.slack.api.methods.SlackApiRequest;
+import com.slack.api.model.ConversationType;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * https://api.slack.com/methods/users.discoverableContacts.lookups
+ */
+@Data
+@Builder
+public class UsersDiscoverableContactsLookupRequest implements SlackApiRequest {
+
+ /**
+ * Authentication token. Requires scope: `conversations:read`
+ */
+ private String token;
+
+ private String email;
+}
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/admin/conversations/AdminConversationsSearchResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/admin/conversations/AdminConversationsSearchResponse.java
index e066bdad3..7ae1720fe 100644
--- a/slack-api-client/src/main/java/com/slack/api/methods/response/admin/conversations/AdminConversationsSearchResponse.java
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/admin/conversations/AdminConversationsSearchResponse.java
@@ -55,6 +55,7 @@ public static class Conversation {
private Boolean isDisconnectInProgress;
private String conversationHostId;
private Canvas canvas;
+ private Lists lists;
}
@Data
@@ -67,4 +68,15 @@ public static class CanvasOwnershipDetail {
private Integer count;
private String teamId;
}
+
+ @Data
+ public static class Lists {
+ private Integer totalCount;
+ private List ownershipDetails;
+ }
+ @Data
+ public static class ListsOwnershipDetail {
+ private Integer count;
+ private String teamId;
+ }
}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesCreateResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesCreateResponse.java
new file mode 100644
index 000000000..f7efe3d61
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesCreateResponse.java
@@ -0,0 +1,24 @@
+package com.slack.api.methods.response.canvases;
+
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class CanvasesCreateResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private String canvasId;
+
+ private ResponseMetadata responseMetadata;
+
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesDeleteResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesDeleteResponse.java
new file mode 100644
index 000000000..90aa49242
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesDeleteResponse.java
@@ -0,0 +1,22 @@
+package com.slack.api.methods.response.canvases;
+
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class CanvasesDeleteResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private ResponseMetadata responseMetadata;
+
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesEditResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesEditResponse.java
new file mode 100644
index 000000000..21ea50a61
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesEditResponse.java
@@ -0,0 +1,22 @@
+package com.slack.api.methods.response.canvases;
+
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class CanvasesEditResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private ResponseMetadata responseMetadata;
+
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/access/CanvasesAccessDeleteResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/access/CanvasesAccessDeleteResponse.java
new file mode 100644
index 000000000..ee0628930
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/access/CanvasesAccessDeleteResponse.java
@@ -0,0 +1,24 @@
+package com.slack.api.methods.response.canvases.access;
+
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class CanvasesAccessDeleteResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private List failedToUpdateChannelIds;
+ private List failedToUpdateUserIds;
+
+ private ResponseMetadata responseMetadata;
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/access/CanvasesAccessSetResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/access/CanvasesAccessSetResponse.java
new file mode 100644
index 000000000..db508436e
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/access/CanvasesAccessSetResponse.java
@@ -0,0 +1,25 @@
+package com.slack.api.methods.response.canvases.access;
+
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class CanvasesAccessSetResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private List failedToUpdateChannelIds;
+ private List failedToUpdateUserIds;
+
+ private ResponseMetadata responseMetadata;
+
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/sections/CanvasesSectionsLookupResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/sections/CanvasesSectionsLookupResponse.java
new file mode 100644
index 000000000..0cc2cae8f
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/canvases/sections/CanvasesSectionsLookupResponse.java
@@ -0,0 +1,25 @@
+package com.slack.api.methods.response.canvases.sections;
+
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import com.slack.api.model.canvas.CanvasDocumentSection;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class CanvasesSectionsLookupResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private List sections;
+
+ private ResponseMetadata responseMetadata;
+
+}
\ No newline at end of file
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/conversations/canvases/ConversationsCanvasesCreateResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/conversations/canvases/ConversationsCanvasesCreateResponse.java
new file mode 100644
index 000000000..885e15f8d
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/conversations/canvases/ConversationsCanvasesCreateResponse.java
@@ -0,0 +1,23 @@
+package com.slack.api.methods.response.conversations.canvases;
+
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class ConversationsCanvasesCreateResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private String canvasId;
+
+ private ResponseMetadata responseMetadata;
+}
diff --git a/slack-api-client/src/main/java/com/slack/api/methods/response/users/discoverable_contacts/UsersDiscoverableContactsLookupResponse.java b/slack-api-client/src/main/java/com/slack/api/methods/response/users/discoverable_contacts/UsersDiscoverableContactsLookupResponse.java
new file mode 100644
index 000000000..c2edf39a6
--- /dev/null
+++ b/slack-api-client/src/main/java/com/slack/api/methods/response/users/discoverable_contacts/UsersDiscoverableContactsLookupResponse.java
@@ -0,0 +1,30 @@
+package com.slack.api.methods.response.users.discoverable_contacts;
+
+import com.google.gson.annotations.SerializedName;
+import com.slack.api.methods.SlackApiTextResponse;
+import com.slack.api.model.ResponseMetadata;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class UsersDiscoverableContactsLookupResponse implements SlackApiTextResponse {
+
+ private boolean ok;
+ private String warning;
+ private String error;
+ private String needed;
+ private String provided;
+ private transient Map> httpResponseHeaders;
+
+ private UserContact user;
+
+ private ResponseMetadata responseMetadata;
+
+ @Data
+ public static class UserContact {
+ @SerializedName("is_discoverable")
+ private boolean discoverable;
+ }
+}
diff --git a/slack-api-client/src/test/java/test_locally/api/MethodsTest.java b/slack-api-client/src/test/java/test_locally/api/MethodsTest.java
index 4998a706a..9090f53ac 100644
--- a/slack-api-client/src/test/java/test_locally/api/MethodsTest.java
+++ b/slack-api-client/src/test/java/test_locally/api/MethodsTest.java
@@ -19,8 +19,8 @@ public class MethodsTest {
public void verifyTheCoverage() {
// https://api.slack.com/methods
// var methodNames = [].slice.call(document.getElementsByClassName('apiReferenceFilterableList__listItemLink')).map(e => e.href.replace("https://api.slack.com/methods/", ""));console.log(methodNames.toString());console.log(methodNames.length);
- // 276 endpoints as of March 18, 2024
- String methods = "admin.analytics.getFile,admin.apps.activities.list,admin.apps.approve,admin.apps.clearResolution,admin.apps.restrict,admin.apps.uninstall,admin.apps.approved.list,admin.apps.config.lookup,admin.apps.config.set,admin.apps.requests.cancel,admin.apps.requests.list,admin.apps.restricted.list,admin.audit.anomaly.allow.getItem,admin.audit.anomaly.allow.updateItem,admin.auth.policy.assignEntities,admin.auth.policy.getEntities,admin.auth.policy.removeEntities,admin.barriers.create,admin.barriers.delete,admin.barriers.list,admin.barriers.update,admin.conversations.archive,admin.conversations.bulkArchive,admin.conversations.bulkDelete,admin.conversations.bulkMove,admin.conversations.convertToPrivate,admin.conversations.convertToPublic,admin.conversations.create,admin.conversations.delete,admin.conversations.disconnectShared,admin.conversations.getConversationPrefs,admin.conversations.getCustomRetention,admin.conversations.getTeams,admin.conversations.invite,admin.conversations.lookup,admin.conversations.removeCustomRetention,admin.conversations.rename,admin.conversations.search,admin.conversations.setConversationPrefs,admin.conversations.setCustomRetention,admin.conversations.setTeams,admin.conversations.unarchive,admin.conversations.ekm.listOriginalConnectedChannelInfo,admin.conversations.restrictAccess.addGroup,admin.conversations.restrictAccess.listGroups,admin.conversations.restrictAccess.removeGroup,admin.emoji.add,admin.emoji.addAlias,admin.emoji.list,admin.emoji.remove,admin.emoji.rename,admin.functions.list,admin.functions.permissions.lookup,admin.functions.permissions.set,admin.inviteRequests.approve,admin.inviteRequests.deny,admin.inviteRequests.list,admin.inviteRequests.approved.list,admin.inviteRequests.denied.list,admin.roles.addAssignments,admin.roles.listAssignments,admin.roles.removeAssignments,admin.teams.admins.list,admin.teams.create,admin.teams.list,admin.teams.owners.list,admin.teams.settings.info,admin.teams.settings.setDefaultChannels,admin.teams.settings.setDescription,admin.teams.settings.setDiscoverability,admin.teams.settings.setIcon,admin.teams.settings.setName,admin.usergroups.addChannels,admin.usergroups.addTeams,admin.usergroups.listChannels,admin.usergroups.removeChannels,admin.users.assign,admin.users.invite,admin.users.list,admin.users.remove,admin.users.setAdmin,admin.users.setExpiration,admin.users.setOwner,admin.users.setRegular,admin.users.session.clearSettings,admin.users.session.getSettings,admin.users.session.invalidate,admin.users.session.list,admin.users.session.reset,admin.users.session.resetBulk,admin.users.session.setSettings,admin.users.unsupportedVersions.export,admin.workflows.collaborators.add,admin.workflows.collaborators.remove,admin.workflows.permissions.lookup,admin.workflows.search,admin.workflows.unpublish,admin.workflows.triggers.types.permissions.lookup,admin.workflows.triggers.types.permissions.set,api.test,apps.activities.list,apps.auth.external.delete,apps.auth.external.get,apps.connections.open,apps.datastore.bulkDelete,apps.datastore.bulkGet,apps.datastore.bulkPut,apps.datastore.count,apps.datastore.delete,apps.datastore.get,apps.datastore.put,apps.datastore.query,apps.datastore.update,apps.event.authorizations.list,apps.manifest.create,apps.manifest.delete,apps.manifest.export,apps.manifest.update,apps.manifest.validate,apps.uninstall,auth.revoke,auth.test,auth.teams.list,bookmarks.add,bookmarks.edit,bookmarks.list,bookmarks.remove,bots.info,calls.add,calls.end,calls.info,calls.update,calls.participants.add,calls.participants.remove,chat.delete,chat.deleteScheduledMessage,chat.getPermalink,chat.meMessage,chat.postEphemeral,chat.postMessage,chat.scheduleMessage,chat.unfurl,chat.update,chat.scheduledMessages.list,conversations.acceptSharedInvite,conversations.approveSharedInvite,conversations.archive,conversations.close,conversations.create,conversations.declineSharedInvite,conversations.history,conversations.info,conversations.invite,conversations.inviteShared,conversations.join,conversations.kick,conversations.leave,conversations.list,conversations.listConnectInvites,conversations.mark,conversations.members,conversations.open,conversations.rename,conversations.replies,conversations.setPurpose,conversations.setTopic,conversations.unarchive,dialog.open,dnd.endDnd,dnd.endSnooze,dnd.info,dnd.setSnooze,dnd.teamInfo,emoji.list,files.comments.delete,files.completeUploadExternal,files.delete,files.getUploadURLExternal,files.info,files.list,files.revokePublicURL,files.sharedPublicURL,files.upload,files.remote.add,files.remote.info,files.remote.list,files.remote.remove,files.remote.share,files.remote.update,functions.completeError,functions.completeSuccess,functions.distributions.permissions.add,functions.distributions.permissions.list,functions.distributions.permissions.remove,functions.distributions.permissions.set,functions.workflows.steps.list,functions.workflows.steps.responses.export,migration.exchange,oauth.access,oauth.v2.access,oauth.v2.exchange,openid.connect.token,openid.connect.userInfo,pins.add,pins.list,pins.remove,reactions.add,reactions.get,reactions.list,reactions.remove,reminders.add,reminders.complete,reminders.delete,reminders.info,reminders.list,rtm.connect,rtm.start,search.all,search.files,search.messages,stars.add,stars.list,stars.remove,team.accessLogs,team.billableInfo,team.info,team.integrationLogs,team.billing.info,team.preferences.list,team.profile.get,tooling.tokens.rotate,usergroups.create,usergroups.disable,usergroups.enable,usergroups.list,usergroups.update,usergroups.users.list,usergroups.users.update,users.conversations,users.deletePhoto,users.getPresence,users.identity,users.info,users.list,users.lookupByEmail,users.setActive,users.setPhoto,users.setPresence,users.profile.get,users.profile.set,views.open,views.publish,views.push,views.update,workflows.stepCompleted,workflows.stepFailed,workflows.updateStep,workflows.triggers.permissions.add,workflows.triggers.permissions.list,workflows.triggers.permissions.remove,workflows.triggers.permissions.set,channels.create,channels.info,channels.invite,channels.mark,groups.create,groups.info,groups.invite,groups.mark,groups.open,im.list,im.mark,im.open,mpim.list,mpim.mark,mpim.open";
+ // 284 endpoints as of June 12, 2024
+ String methods = "admin.analytics.getFile,admin.apps.activities.list,admin.apps.approve,admin.apps.clearResolution,admin.apps.restrict,admin.apps.uninstall,admin.apps.approved.list,admin.apps.config.lookup,admin.apps.config.set,admin.apps.requests.cancel,admin.apps.requests.list,admin.apps.restricted.list,admin.audit.anomaly.allow.getItem,admin.audit.anomaly.allow.updateItem,admin.auth.policy.assignEntities,admin.auth.policy.getEntities,admin.auth.policy.removeEntities,admin.barriers.create,admin.barriers.delete,admin.barriers.list,admin.barriers.update,admin.conversations.archive,admin.conversations.bulkArchive,admin.conversations.bulkDelete,admin.conversations.bulkMove,admin.conversations.convertToPrivate,admin.conversations.convertToPublic,admin.conversations.create,admin.conversations.delete,admin.conversations.disconnectShared,admin.conversations.getConversationPrefs,admin.conversations.getCustomRetention,admin.conversations.getTeams,admin.conversations.invite,admin.conversations.lookup,admin.conversations.removeCustomRetention,admin.conversations.rename,admin.conversations.search,admin.conversations.setConversationPrefs,admin.conversations.setCustomRetention,admin.conversations.setTeams,admin.conversations.unarchive,admin.conversations.ekm.listOriginalConnectedChannelInfo,admin.conversations.restrictAccess.addGroup,admin.conversations.restrictAccess.listGroups,admin.conversations.restrictAccess.removeGroup,admin.emoji.add,admin.emoji.addAlias,admin.emoji.list,admin.emoji.remove,admin.emoji.rename,admin.functions.list,admin.functions.permissions.lookup,admin.functions.permissions.set,admin.inviteRequests.approve,admin.inviteRequests.deny,admin.inviteRequests.list,admin.inviteRequests.approved.list,admin.inviteRequests.denied.list,admin.roles.addAssignments,admin.roles.listAssignments,admin.roles.removeAssignments,admin.teams.admins.list,admin.teams.create,admin.teams.list,admin.teams.owners.list,admin.teams.settings.info,admin.teams.settings.setDefaultChannels,admin.teams.settings.setDescription,admin.teams.settings.setDiscoverability,admin.teams.settings.setIcon,admin.teams.settings.setName,admin.usergroups.addChannels,admin.usergroups.addTeams,admin.usergroups.listChannels,admin.usergroups.removeChannels,admin.users.assign,admin.users.invite,admin.users.list,admin.users.remove,admin.users.setAdmin,admin.users.setExpiration,admin.users.setOwner,admin.users.setRegular,admin.users.session.clearSettings,admin.users.session.getSettings,admin.users.session.invalidate,admin.users.session.list,admin.users.session.reset,admin.users.session.resetBulk,admin.users.session.setSettings,admin.users.unsupportedVersions.export,admin.workflows.collaborators.add,admin.workflows.collaborators.remove,admin.workflows.permissions.lookup,admin.workflows.search,admin.workflows.unpublish,admin.workflows.triggers.types.permissions.lookup,admin.workflows.triggers.types.permissions.set,api.test,apps.activities.list,apps.auth.external.delete,apps.auth.external.get,apps.connections.open,apps.datastore.bulkDelete,apps.datastore.bulkGet,apps.datastore.bulkPut,apps.datastore.count,apps.datastore.delete,apps.datastore.get,apps.datastore.put,apps.datastore.query,apps.datastore.update,apps.event.authorizations.list,apps.manifest.create,apps.manifest.delete,apps.manifest.export,apps.manifest.update,apps.manifest.validate,apps.uninstall,auth.revoke,auth.test,auth.teams.list,bookmarks.add,bookmarks.edit,bookmarks.list,bookmarks.remove,bots.info,calls.add,calls.end,calls.info,calls.update,calls.participants.add,calls.participants.remove,canvases.access.delete,canvases.access.set,canvases.create,canvases.delete,canvases.edit,canvases.sections.lookup,chat.delete,chat.deleteScheduledMessage,chat.getPermalink,chat.meMessage,chat.postEphemeral,chat.postMessage,chat.scheduleMessage,chat.unfurl,chat.update,chat.scheduledMessages.list,conversations.acceptSharedInvite,conversations.approveSharedInvite,conversations.archive,conversations.close,conversations.create,conversations.declineSharedInvite,conversations.history,conversations.info,conversations.invite,conversations.inviteShared,conversations.join,conversations.kick,conversations.leave,conversations.list,conversations.listConnectInvites,conversations.mark,conversations.members,conversations.open,conversations.rename,conversations.replies,conversations.setPurpose,conversations.setTopic,conversations.unarchive,conversations.canvases.create,dialog.open,dnd.endDnd,dnd.endSnooze,dnd.info,dnd.setSnooze,dnd.teamInfo,emoji.list,files.comments.delete,files.completeUploadExternal,files.delete,files.getUploadURLExternal,files.info,files.list,files.revokePublicURL,files.sharedPublicURL,files.upload,files.remote.add,files.remote.info,files.remote.list,files.remote.remove,files.remote.share,files.remote.update,functions.completeError,functions.completeSuccess,functions.distributions.permissions.add,functions.distributions.permissions.list,functions.distributions.permissions.remove,functions.distributions.permissions.set,functions.workflows.steps.list,functions.workflows.steps.responses.export,migration.exchange,oauth.access,oauth.v2.access,oauth.v2.exchange,openid.connect.token,openid.connect.userInfo,pins.add,pins.list,pins.remove,reactions.add,reactions.get,reactions.list,reactions.remove,reminders.add,reminders.complete,reminders.delete,reminders.info,reminders.list,rtm.connect,rtm.start,search.all,search.files,search.messages,stars.add,stars.list,stars.remove,team.accessLogs,team.billableInfo,team.info,team.integrationLogs,team.billing.info,team.preferences.list,team.profile.get,tooling.tokens.rotate,usergroups.create,usergroups.disable,usergroups.enable,usergroups.list,usergroups.update,usergroups.users.list,usergroups.users.update,users.conversations,users.deletePhoto,users.getPresence,users.identity,users.info,users.list,users.lookupByEmail,users.setActive,users.setPhoto,users.setPresence,users.discoverableContacts.lookup,users.profile.get,users.profile.set,views.open,views.publish,views.push,views.update,workflows.stepCompleted,workflows.stepFailed,workflows.updateStep,workflows.triggers.permissions.add,workflows.triggers.permissions.list,workflows.triggers.permissions.remove,workflows.triggers.permissions.set,channels.create,channels.info,channels.invite,channels.mark,groups.create,groups.info,groups.invite,groups.mark,groups.open,im.list,im.mark,im.open,mpim.list,mpim.mark,mpim.open";
final List existingMethods = new ArrayList<>();
for (Field f : Methods.class.getDeclaredFields()) {
int modifiers = f.getModifiers();
diff --git a/slack-api-client/src/test/java/test_locally/api/methods/CanvasesTest.java b/slack-api-client/src/test/java/test_locally/api/methods/CanvasesTest.java
new file mode 100644
index 000000000..d179b71fa
--- /dev/null
+++ b/slack-api-client/src/test/java/test_locally/api/methods/CanvasesTest.java
@@ -0,0 +1,84 @@
+package test_locally.api.methods;
+
+import com.slack.api.Slack;
+import com.slack.api.SlackConfig;
+import com.slack.api.methods.request.canvases.sections.CanvasesSectionsLookupRequest;
+import com.slack.api.model.canvas.CanvasDocumentChange;
+import com.slack.api.model.canvas.CanvasDocumentContent;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import util.MockSlackApiServer;
+
+import java.util.Arrays;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static util.MockSlackApi.ValidToken;
+
+public class CanvasesTest {
+
+ MockSlackApiServer server = new MockSlackApiServer();
+ SlackConfig config = new SlackConfig();
+ Slack slack = Slack.getInstance(config);
+
+ @Before
+ public void setup() throws Exception {
+ server.start();
+ config.setMethodsEndpointUrlPrefix(server.getMethodsEndpointPrefix());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ server.stop();
+ }
+
+ @Test
+ public void canvases() throws Exception {
+ assertThat(slack.methods(ValidToken).canvasesCreate(r -> r.title("test").documentContent(new CanvasDocumentContent())).isOk(), is(true));
+ assertThat(slack.methods(ValidToken).canvasesCreate(r -> r.title("test").markdown(">hey")).isOk(), is(true));
+ assertThat(slack.methods(ValidToken).canvasesEdit(r -> r.canvasId("F1111").changes(Arrays.asList(
+ CanvasDocumentChange.builder().documentContent(new CanvasDocumentContent()).build()
+ ))).isOk(), is(true));
+ assertThat(slack.methods(ValidToken).canvasesDelete(r -> r.canvasId("F1111")).isOk(), is(true));
+ assertThat(slack.methods(ValidToken).canvasesAccessSet(r -> r
+ .canvasId("F1111")
+ .channelIds(Arrays.asList("C123"))
+ .userIds(Arrays.asList("U123"))
+ ).isOk(), is(true));
+ assertThat(slack.methods(ValidToken).canvasesAccessDelete(r -> r
+ .canvasId("F1111")
+ .channelIds(Arrays.asList("C123"))
+ .userIds(Arrays.asList("U123"))
+ ).isOk(), is(true));
+ assertThat(slack.methods(ValidToken).canvasesSectionsLookup(r -> r
+ .canvasId("F1111")
+ .criteria(CanvasesSectionsLookupRequest.Criteria.builder().sectionTypes(Arrays.asList("any_header")).containsText("foo").build())
+ ).isOk(), is(true));
+ }
+
+ @Test
+ public void canvases_async() throws Exception {
+ assertThat(slack.methodsAsync(ValidToken).canvasesCreate(r -> r.title("test").documentContent(new CanvasDocumentContent())).get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).canvasesCreate(r -> r.title("test").markdown(">hey")).get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).canvasesEdit(r -> r.canvasId("F1111").changes(Arrays.asList(
+ CanvasDocumentChange.builder().documentContent(new CanvasDocumentContent()).build()
+ ))).get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).canvasesDelete(r -> r.canvasId("F1111")).get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).canvasesAccessSet(r -> r
+ .canvasId("F1111")
+ .channelIds(Arrays.asList("C123"))
+ .userIds(Arrays.asList("U123"))
+ ).get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).canvasesAccessDelete(r -> r
+ .canvasId("F1111")
+ .channelIds(Arrays.asList("C123"))
+ .userIds(Arrays.asList("U123"))
+ ).get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).canvasesSectionsLookup(r -> r
+ .canvasId("F1111")
+ .criteria(CanvasesSectionsLookupRequest.Criteria.builder().sectionTypes(Arrays.asList("any_header")).containsText("foo").build())
+ ).get().isOk(), is(true));
+ }
+
+}
diff --git a/slack-api-client/src/test/java/test_locally/api/methods/ConversationsTest.java b/slack-api-client/src/test/java/test_locally/api/methods/ConversationsTest.java
index 8c2df406e..575afb46b 100644
--- a/slack-api-client/src/test/java/test_locally/api/methods/ConversationsTest.java
+++ b/slack-api-client/src/test/java/test_locally/api/methods/ConversationsTest.java
@@ -6,6 +6,7 @@
import com.slack.api.methods.MethodsConfig;
import com.slack.api.methods.response.conversations.ConversationsHistoryResponse;
import com.slack.api.model.ConversationType;
+import com.slack.api.model.canvas.CanvasDocumentContent;
import com.slack.api.scim.metrics.MemoryMetricsDatastore;
import com.slack.api.util.json.GsonFactory;
import org.junit.After;
@@ -89,6 +90,10 @@ public void test() throws Exception {
.isOk(), is(true));
assertThat(slack.methods(ValidToken).conversationsListConnectInvites(r -> r)
.isOk(), is(true));
+ assertThat(slack.methods(ValidToken).conversationsCanvasesCreate(r -> r.documentContent(new CanvasDocumentContent()))
+ .isOk(), is(true));
+ assertThat(slack.methods(ValidToken).conversationsCanvasesCreate(r -> r.markdown("hey"))
+ .isOk(), is(true));
}
@Test
@@ -140,9 +145,12 @@ public void test_async() throws Exception {
.get().isOk(), is(true));
assertThat(slack.methodsAsync(ValidToken).conversationsListConnectInvites(r -> r)
.get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).conversationsCanvasesCreate(r -> r.documentContent(new CanvasDocumentContent()))
+ .get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).conversationsCanvasesCreate(r -> r.markdown("hey"))
+ .get().isOk(), is(true));
}
-
// https://github.com/slackapi/java-slack-sdk/issues/1207
@Test
public void issue_1207() {
diff --git a/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_a_to_c_Test.java b/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_a_to_c_Test.java
index 7ab0f5242..a0e84c2a6 100644
--- a/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_a_to_c_Test.java
+++ b/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_a_to_c_Test.java
@@ -21,6 +21,7 @@
import com.slack.api.model.Message;
import com.slack.api.util.json.GsonFactory;
import lombok.extern.slf4j.Slf4j;
+import org.junit.Ignore;
import org.junit.Test;
import util.FileReader;
@@ -29,6 +30,8 @@
import static test_locally.api.util.FieldVerification.verifyIfAllGettersReturnNonNull;
import static test_locally.api.util.FieldVerification.verifyIfAllGettersReturnNonNullRecursively;
+// disabled these tests because it no longer brings lots of value; that said, if you need these again, you can turn them on again
+@Ignore
@Slf4j
public class FieldValidation_a_to_c_Test {
diff --git a/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_d_to_m_Test.java b/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_d_to_m_Test.java
index 8b6797605..0c3edc591 100644
--- a/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_d_to_m_Test.java
+++ b/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_d_to_m_Test.java
@@ -12,6 +12,7 @@
import com.slack.api.model.Group;
import com.slack.api.util.json.GsonFactory;
import lombok.extern.slf4j.Slf4j;
+import org.junit.Ignore;
import org.junit.Test;
import util.FileReader;
@@ -20,6 +21,8 @@
import static test_locally.api.util.FieldVerification.verifyIfAllGettersReturnNonNull;
import static test_locally.api.util.FieldVerification.verifyIfAllGettersReturnNonNullRecursively;
+// disabled these tests because it no longer brings lots of value; that said, if you need these again, you can turn them on again
+@Ignore
@Slf4j
public class FieldValidation_d_to_m_Test {
diff --git a/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_o_to_z_Test.java b/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_o_to_z_Test.java
index 20ebbf9f9..cd153104c 100644
--- a/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_o_to_z_Test.java
+++ b/slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_o_to_z_Test.java
@@ -37,6 +37,7 @@
import com.slack.api.model.Usergroup;
import com.slack.api.util.json.GsonFactory;
import lombok.extern.slf4j.Slf4j;
+import org.junit.Ignore;
import org.junit.Test;
import util.FileReader;
@@ -45,6 +46,8 @@
import static test_locally.api.util.FieldVerification.verifyIfAllGettersReturnNonNull;
import static test_locally.api.util.FieldVerification.verifyIfAllGettersReturnNonNullRecursively;
+// disabled these tests because it no longer brings lots of value; that said, if you need these again, you can turn them on again
+@Ignore
@Slf4j
public class FieldValidation_o_to_z_Test {
diff --git a/slack-api-client/src/test/java/test_locally/api/methods/UsersTest.java b/slack-api-client/src/test/java/test_locally/api/methods/UsersTest.java
index 2105dfcc8..aea378dd1 100644
--- a/slack-api-client/src/test/java/test_locally/api/methods/UsersTest.java
+++ b/slack-api-client/src/test/java/test_locally/api/methods/UsersTest.java
@@ -55,6 +55,8 @@ public void test() throws Exception {
.isOk(), is(true));
assertThat(slack.methods(ValidToken).usersProfileSet(r -> r.user("U123").name("name").value("value"))
.isOk(), is(true));
+ assertThat(slack.methods(ValidToken).usersDiscoverableContactsLookup(r -> r.email("foo@example.com"))
+ .isOk(), is(true));
}
@Test
@@ -83,6 +85,8 @@ public void test_async() throws Exception {
.get().isOk(), is(true));
assertThat(slack.methodsAsync(ValidToken).usersProfileSet(r -> r.user("U123").name("name").value("value"))
.get().isOk(), is(true));
+ assertThat(slack.methodsAsync(ValidToken).usersDiscoverableContactsLookup(r -> r.email("foo@example.com"))
+ .get().isOk(), is(true));
}
// NOTE: we can safely remove this tests since v1.1
diff --git a/slack-api-client/src/test/java/test_with_remote_apis/methods/canvases_Test.java b/slack-api-client/src/test/java/test_with_remote_apis/methods/canvases_Test.java
new file mode 100644
index 000000000..5e6b28b0c
--- /dev/null
+++ b/slack-api-client/src/test/java/test_with_remote_apis/methods/canvases_Test.java
@@ -0,0 +1,163 @@
+package test_with_remote_apis.methods;
+
+import com.slack.api.Slack;
+import com.slack.api.methods.MethodsClient;
+import com.slack.api.methods.request.canvases.sections.CanvasesSectionsLookupRequest;
+import com.slack.api.methods.response.canvases.CanvasesCreateResponse;
+import com.slack.api.methods.response.canvases.CanvasesDeleteResponse;
+import com.slack.api.methods.response.canvases.CanvasesEditResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessDeleteResponse;
+import com.slack.api.methods.response.canvases.access.CanvasesAccessSetResponse;
+import com.slack.api.methods.response.canvases.sections.CanvasesSectionsLookupResponse;
+import com.slack.api.methods.response.chat.ChatPostMessageResponse;
+import com.slack.api.methods.response.conversations.ConversationsCreateResponse;
+import com.slack.api.methods.response.conversations.canvases.ConversationsCanvasesCreateResponse;
+import com.slack.api.methods.response.files.FilesInfoResponse;
+import com.slack.api.model.canvas.*;
+import config.Constants;
+import config.SlackTestConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+@Slf4j
+public class canvases_Test {
+
+ String botToken = System.getenv(Constants.SLACK_SDK_TEST_BOT_TOKEN);
+
+ static SlackTestConfig testConfig = SlackTestConfig.getInstance();
+ static Slack slack = Slack.getInstance(testConfig.getConfig());
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ SlackTestConfig.initializeRawJSONDataFiles("canvases.*");
+ }
+
+ @AfterClass
+ public static void tearDown() throws InterruptedException {
+ SlackTestConfig.awaitCompletion(testConfig);
+ }
+
+ @Test
+ public void channel_canvases() throws Exception {
+ MethodsClient client = slack.methods(botToken);
+
+ ConversationsCreateResponse newChannel = client.conversationsCreate(r -> r.name("test-" + System.currentTimeMillis()));
+ assertThat(newChannel.getError(), is(nullValue()));
+ String channelId = newChannel.getChannel().getId();
+
+ Thread.sleep(500L); // To avoid occasional 500 errors
+
+ ConversationsCanvasesCreateResponse creation = client.conversationsCanvasesCreate(r -> r
+ .channelId(channelId)
+ .documentContent(CanvasDocumentContent.builder()
+ .markdown("# Channel canvas document\n" +
+ "\n" +
+ "---\n" +
+ "## Before\n" +
+ "**foo** _bar_\n" +
+ "hey hey\n" +
+ "\n")
+ .build())
+ );
+ assertThat(creation.getError(), is(nullValue()));
+
+ String canvasId = creation.getCanvasId();
+ List userIds = Arrays.asList(client.authTest(r -> r).getUserId());
+ FilesInfoResponse details = verifyCanvasOps(client, canvasId, channelId, userIds);
+ ChatPostMessageResponse message = client.chatPostMessage(r -> r
+ .channel(channelId)
+ .text("Here you are: " + details.getFile().getPermalink())
+ );
+ assertThat(message.getError(), is(nullValue()));
+ }
+
+ @Test
+ public void standalone_canvases() throws Exception {
+ MethodsClient client = slack.methods(botToken);
+ CanvasesCreateResponse creation = client.canvasesCreate(r -> r
+ .title("My canvas " + System.currentTimeMillis())
+ .documentContent(CanvasDocumentContent.builder()
+ .markdown("# Standalone canvas document\n" +
+ "\n" +
+ "---\n" +
+ "## Before\n" +
+ "**foo** _bar_\n" +
+ "hey hey\n" +
+ "\n")
+ .build())
+ );
+ assertThat(creation.getError(), is(nullValue()));
+
+ String canvasId = creation.getCanvasId();
+ try {
+ List userIds = Arrays.asList(client.authTest(r -> r).getUserId());
+ verifyCanvasOps(client, canvasId, null, userIds);
+
+ CanvasesAccessSetResponse set = client.canvasesAccessSet(r -> r
+ .canvasId(canvasId)
+ .accessLevel(CanvasDocumentAccessLevel.WRITE)
+ .userIds(userIds)
+ );
+ assertThat(set.getError(), is(nullValue()));
+ CanvasesAccessDeleteResponse delete = client.canvasesAccessDelete(r -> r
+ .canvasId(canvasId)
+ .userIds(userIds)
+ );
+ assertThat(delete.getError(), is(nullValue()));
+
+ } finally {
+ CanvasesDeleteResponse deletion = client.canvasesDelete(r -> r.canvasId(canvasId));
+ assertThat(deletion.getError(), is(nullValue()));
+ }
+ }
+
+ FilesInfoResponse verifyCanvasOps(MethodsClient client, String canvasId, String channelId, List userIds) throws Exception {
+ CanvasesSectionsLookupResponse lookupResult = client.canvasesSectionsLookup(r -> r
+ .canvasId(canvasId)
+ .criteria(CanvasesSectionsLookupRequest.Criteria.builder()
+ .sectionTypes(Arrays.asList(CanvasDocumentSectionType.H2))
+ .containsText("Before")
+ .build()
+ )
+ );
+ assertThat(lookupResult.getError(), is(nullValue()));
+
+ String sectionId = lookupResult.getSections().get(0).getId();
+ CanvasesEditResponse edit = client.canvasesEdit(r -> r
+ .canvasId(canvasId)
+ .changes(Arrays.asList(CanvasDocumentChange.builder()
+ .sectionId(sectionId)
+ .operation(CanvasEditOperation.REPLACE)
+ .documentContent(CanvasDocumentContent.builder().markdown("## After").build())
+ .build()
+ ))
+ );
+ assertThat(edit.getError(), is(nullValue()));
+
+ FilesInfoResponse details = client.filesInfo(r -> r.file(canvasId));
+ assertThat(details.getError(), is(nullValue()));
+ return details;
+ }
+
+ @Test
+ public void standalone_canvases_error() throws Exception {
+ MethodsClient client = slack.methods(botToken);
+ CanvasesCreateResponse creation = client.canvasesCreate(r -> r
+ .title("test")
+ .documentContent(CanvasDocumentContent.builder()
+ .markdown("test")
+ .type("invalid")
+ .build())
+ );
+ assertThat(creation.getError(), is("invalid_arguments"));
+ }
+}
diff --git a/slack-api-client/src/test/java/test_with_remote_apis/methods/users_Test.java b/slack-api-client/src/test/java/test_with_remote_apis/methods/users_Test.java
index 658d8bc39..075a935e1 100644
--- a/slack-api-client/src/test/java/test_with_remote_apis/methods/users_Test.java
+++ b/slack-api-client/src/test/java/test_with_remote_apis/methods/users_Test.java
@@ -7,6 +7,7 @@
import com.slack.api.methods.request.users.UsersSetActiveRequest;
import com.slack.api.methods.response.auth.AuthTestResponse;
import com.slack.api.methods.response.users.*;
+import com.slack.api.methods.response.users.discoverable_contacts.UsersDiscoverableContactsLookupResponse;
import com.slack.api.model.ConversationType;
import com.slack.api.model.User;
import config.Constants;
@@ -37,6 +38,7 @@ public class users_Test {
static Slack slack = Slack.getInstance(testConfig.getConfig());
String botToken = System.getenv(Constants.SLACK_SDK_TEST_BOT_TOKEN);
+ String orgBotToken = System.getenv(Constants.SLACK_SDK_TEST_GRID_ORG_LEVEL_APP_BOT_TOKEN);
String userToken = System.getenv(Constants.SLACK_SDK_TEST_USER_TOKEN);
String enterpriseGridTeamAdminUserToken = System.getenv(
Constants.SLACK_SDK_TEST_GRID_WORKSPACE_ADMIN_USER_TOKEN);
@@ -442,6 +444,17 @@ public void issue_768_strangerLookup() throws Exception {
assertNull(user.getError());
}
+ @Test
+ public void discoverableContacts() throws Exception {
+ String userId = System.getenv(SLACK_SDK_TEST_GRID_SHARED_CHANNEL_OTHER_ORG_USER_ID);
+ UsersInfoResponse user = slack.methods(botToken).usersInfo(r -> r.user(userId));
+ String email = user.getUser().getProfile().getEmail();
+ UsersDiscoverableContactsLookupResponse response = slack.methods(orgBotToken)
+ .usersDiscoverableContactsLookup(r -> r.email(email));
+ // TODO: valid tests
+ assertThat(response.getError(), is("not_allowed"));
+ }
+
@Test
public void scanAllUsers() throws Exception {
// Using async client to avoid an exception due to rate limited errors
diff --git a/slack-api-model-kotlin-extension/pom.xml b/slack-api-model-kotlin-extension/pom.xml
index 60d7a9c7c..3a77dcbe5 100644
--- a/slack-api-model-kotlin-extension/pom.xml
+++ b/slack-api-model-kotlin-extension/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
slack-api-model-kotlin-extension
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/slack-api-model/pom.xml b/slack-api-model/pom.xml
index a16b681b0..85f39e941 100644
--- a/slack-api-model/pom.xml
+++ b/slack-api-model/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
slack-api-model
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar
diff --git a/slack-api-model/src/main/java/com/slack/api/meta/SlackApiModelLibraryVersion.java b/slack-api-model/src/main/java/com/slack/api/meta/SlackApiModelLibraryVersion.java
index e488f71a1..f2bd62973 100644
--- a/slack-api-model/src/main/java/com/slack/api/meta/SlackApiModelLibraryVersion.java
+++ b/slack-api-model/src/main/java/com/slack/api/meta/SlackApiModelLibraryVersion.java
@@ -5,7 +5,7 @@ private SlackApiModelLibraryVersion() {
}
public static final String get() {
- return "1.39.4-SNAPSHOT";
+ return "1.40.1-SNAPSHOT";
}
}
diff --git a/slack-api-model/src/main/java/com/slack/api/model/File.java b/slack-api-model/src/main/java/com/slack/api/model/File.java
index 595226b6d..bce71b1d1 100644
--- a/slack-api-model/src/main/java/com/slack/api/model/File.java
+++ b/slack-api-model/src/main/java/com/slack/api/model/File.java
@@ -320,6 +320,7 @@ public static class Saved {
private Long lastRead;
private List titleBlocks;
private Integer privateChannelsWithFileAccessCount;
+ private Integer privateFileWithAccessCount;
private List dmMpdmUsersWithFileAccess;
private String orgOrWorkspaceAccess;
diff --git a/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentAccessLevel.java b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentAccessLevel.java
new file mode 100644
index 000000000..1e39c92ae
--- /dev/null
+++ b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentAccessLevel.java
@@ -0,0 +1,6 @@
+package com.slack.api.model.canvas;
+
+public class CanvasDocumentAccessLevel {
+ public static final String READ = "read";
+ public static final String WRITE = "write";
+}
diff --git a/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentChange.java b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentChange.java
new file mode 100644
index 000000000..84ab43215
--- /dev/null
+++ b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentChange.java
@@ -0,0 +1,16 @@
+package com.slack.api.model.canvas;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CanvasDocumentChange {
+ private String operation; // "insert_before" etc. see CanvasEditOperation
+ private String sectionId; // "temp:C:AAAAAAAAAAAAAAAAAAAAAAAAAAAA" etc.
+ private CanvasDocumentContent documentContent;
+}
diff --git a/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentContent.java b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentContent.java
new file mode 100644
index 000000000..e6043761e
--- /dev/null
+++ b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentContent.java
@@ -0,0 +1,16 @@
+package com.slack.api.model.canvas;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CanvasDocumentContent {
+ @Builder.Default
+ private String type = "markdown";
+ private String markdown;
+}
diff --git a/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentSection.java b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentSection.java
new file mode 100644
index 000000000..5af4e617d
--- /dev/null
+++ b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentSection.java
@@ -0,0 +1,15 @@
+package com.slack.api.model.canvas;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CanvasDocumentSection {
+ private String id;
+}
diff --git a/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentSectionType.java b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentSectionType.java
new file mode 100644
index 000000000..993d47868
--- /dev/null
+++ b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasDocumentSectionType.java
@@ -0,0 +1,9 @@
+package com.slack.api.model.canvas;
+
+
+public class CanvasDocumentSectionType {
+ public static final String H1 = "h1";
+ public static final String H2 = "h2";
+ public static final String H3 = "h3";
+ public static final String ANY_HEADER = "any_header";
+}
diff --git a/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasEditOperation.java b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasEditOperation.java
new file mode 100644
index 000000000..63df99d60
--- /dev/null
+++ b/slack-api-model/src/main/java/com/slack/api/model/canvas/CanvasEditOperation.java
@@ -0,0 +1,10 @@
+package com.slack.api.model.canvas;
+
+public class CanvasEditOperation {
+ public static final String INSERT_AFTER = "insert_after";
+ public static final String INSERT_BEFORE = "insert_before";
+ public static final String INSERT_AT_START = "insert_at_start";
+ public static final String INSERT_AT_END = "insert_at_end";
+ public static final String REPLACE = "replace";
+ public static final String DELETE = "delete";
+}
diff --git a/slack-app-backend/pom.xml b/slack-app-backend/pom.xml
index 78ff34c78..18219467a 100644
--- a/slack-app-backend/pom.xml
+++ b/slack-app-backend/pom.xml
@@ -6,11 +6,11 @@
com.slack.api
slack-sdk-parent
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
slack-app-backend
- 1.39.4-SNAPSHOT
+ 1.40.1-SNAPSHOT
jar