diff --git a/methods/README.md b/methods/README.md index a60fc01..116b52a 100644 --- a/methods/README.md +++ b/methods/README.md @@ -16,6 +16,13 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques ## What's on call +### admin + +- **[admin.slackbot.skills.list](https://docs.slack.dev/reference/methods/admin.slackbot.skills.list)**: Lists metadata for skills owned by the organization, including invite-only skills. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java). +- **[admin.slackbot.skills.publish](https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish)**: Publishes Slackbot skills to an organization's catalog. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java). +- **[admin.slackbot.skills.setAutoEnabled](https://docs.slack.dev/reference/methods/admin.slackbot.skills.setAutoEnabled)**: Sets who a Slackbot skill is automatically turned on for. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java). +- **[admin.slackbot.skills.unpublish](https://docs.slack.dev/reference/methods/admin.slackbot.skills.unpublish)**: Removes Slackbot skills from the org catalog, preserving access, libraries, and deployments. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java). + ### agents - **[agents.conversations.archive](https://docs.slack.dev/reference/methods/agents.conversations.archive)**: Archive a code channel. [Implementation](./src/main/java/agents/conversations/AgentsConversationsArchive.java). @@ -43,3 +50,13 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[chat.postMessage](https://docs.slack.dev/reference/methods/chat.postmessage)**: Sends a message to a channel. [Implementation](./src/main/java/chat/ChatPostMessage.java). +### slackbot + +- **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). +- **[slackbot.skills.delete](https://docs.slack.dev/reference/methods/slackbot.skills.delete)**: Deletes a Slackbot skill and its canvas, and removes it from every library, skill set, and the org catalog. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsDelete.java). +- **[slackbot.skills.info](https://docs.slack.dev/reference/methods/slackbot.skills.info)**: Returns one Slackbot skill, including its instructions. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsInfo.java). +- **[slackbot.skills.library.add](https://docs.slack.dev/reference/methods/slackbot.skills.library.add)**: Turns a skill on in the caller's personal library. [Implementation](./src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java). +- **[slackbot.skills.library.remove](https://docs.slack.dev/reference/methods/slackbot.skills.library.remove)**: Turns a skill off in the caller's personal library. [Implementation](./src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java). +- **[slackbot.skills.list](https://docs.slack.dev/reference/methods/slackbot.skills.list)**: Lists Slackbot skills from the caller's point of view. Instructions are not included. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsList.java). +- **[slackbot.skills.update](https://docs.slack.dev/reference/methods/slackbot.skills.update)**: Changes a Slackbot skill's instructions or metadata. Only the inputs you send are changed; a call that changes nothing succeeds without writing. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsUpdate.java). + diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java new file mode 100644 index 0000000..e774159 --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java @@ -0,0 +1,35 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsListRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsListResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsList { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.list method + AdminSlackbotSkillsListRequest request = AdminSlackbotSkillsListRequest.builder() + .autoEnabledStatus("all") + .category("productivity") + .creatorIds(Arrays.asList("U0123ABCD")) + .limit(100) + .publishStatus("all") + .sort("name") + .sortDir("asc") + .build(); + AdminSlackbotSkillsListResponse response = methods.adminSlackbotSkillsList(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java new file mode 100644 index 0000000..a32bfa4 --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java @@ -0,0 +1,29 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsPublishRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsPublishResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsPublish { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.publish method + AdminSlackbotSkillsPublishRequest request = AdminSlackbotSkillsPublishRequest.builder() + .skillIds(Arrays.asList("F0123ABCD")) + .build(); + AdminSlackbotSkillsPublishResponse response = methods.adminSlackbotSkillsPublish(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java new file mode 100644 index 0000000..30e9022 --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java @@ -0,0 +1,31 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsSetAutoEnabledRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsSetAutoEnabledResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsSetAutoEnabled { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.setAutoEnabled method + AdminSlackbotSkillsSetAutoEnabledRequest request = AdminSlackbotSkillsSetAutoEnabledRequest.builder() + .permissionType("named_entities") + .skillId("F0123ABCD") + .usergroupIds(Arrays.asList("S0123ABCD")) + .build(); + AdminSlackbotSkillsSetAutoEnabledResponse response = methods.adminSlackbotSkillsSetAutoEnabled(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java new file mode 100644 index 0000000..3dc4307 --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java @@ -0,0 +1,29 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsUnpublishRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsUnpublishResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsUnpublish { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.unpublish method + AdminSlackbotSkillsUnpublishRequest request = AdminSlackbotSkillsUnpublishRequest.builder() + .skillIds(Arrays.asList("F0123ABCD")) + .build(); + AdminSlackbotSkillsUnpublishResponse response = methods.adminSlackbotSkillsUnpublish(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/admin/slackbot/skills/manifest.json b/methods/src/main/java/admin/slackbot/skills/manifest.json new file mode 100644 index 0000000..524e42e --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/manifest.json @@ -0,0 +1,16 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"admin.slackbot.skills\" methods" + }, + "oauth_config": { + "scopes": { + "user": ["admin.skills:read", "admin.skills:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": true, + "token_rotation_enabled": false + } +} diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java new file mode 100644 index 0000000..cfd353a --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java @@ -0,0 +1,39 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsCreateRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsCreateResponse; +import com.slack.api.model.slackbot.SkillMcpServer; +import java.io.IOException; +import java.util.Arrays; + +public class SlackbotSkillsCreate { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.create method + SlackbotSkillsCreateRequest request = SlackbotSkillsCreateRequest.builder() + .category("productivity") + .description("Reviews information from Slack and your calendar to suggest priorities for the day.") + .displayName("Daily priorities") + .examplePrompt("Run {skill} for today") + .instructions("# Purpose\nSuggest the three most important things to work on today.") + .mcpServers(Arrays.asList(SkillMcpServer.builder() + .appId("A0123ABCD") + .serverId("Amcp0456EFGH") + .serviceType("app") + .build())) + .build(); + SlackbotSkillsCreateResponse response = methods.slackbotSkillsCreate(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsDelete.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsDelete.java new file mode 100644 index 0000000..c8e303a --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsDelete.java @@ -0,0 +1,27 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsDeleteRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsDeleteResponse; +import java.io.IOException; + +public class SlackbotSkillsDelete { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.delete method + SlackbotSkillsDeleteRequest request = + SlackbotSkillsDeleteRequest.builder().skillId("F0123ABCD").build(); + SlackbotSkillsDeleteResponse response = methods.slackbotSkillsDelete(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsInfo.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsInfo.java new file mode 100644 index 0000000..b28bfe6 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsInfo.java @@ -0,0 +1,27 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsInfoRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsInfoResponse; +import java.io.IOException; + +public class SlackbotSkillsInfo { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.info method + SlackbotSkillsInfoRequest request = + SlackbotSkillsInfoRequest.builder().skillId("F0123ABCD").build(); + SlackbotSkillsInfoResponse response = methods.slackbotSkillsInfo(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsList.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsList.java new file mode 100644 index 0000000..28a31d9 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsList.java @@ -0,0 +1,30 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsListRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsListResponse; +import java.io.IOException; + +public class SlackbotSkillsList { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.list method + SlackbotSkillsListRequest request = SlackbotSkillsListRequest.builder() + .category("productivity") + .filter("library") + .limit(100) + .build(); + SlackbotSkillsListResponse response = methods.slackbotSkillsList(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java new file mode 100644 index 0000000..2a8fe16 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java @@ -0,0 +1,40 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsUpdateRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsUpdateResponse; +import com.slack.api.model.slackbot.SkillMcpServer; +import java.io.IOException; +import java.util.Arrays; + +public class SlackbotSkillsUpdate { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.update method + SlackbotSkillsUpdateRequest request = SlackbotSkillsUpdateRequest.builder() + .category("productivity") + .description("Reviews information from Slack and your calendar to suggest priorities for the day.") + .displayName("Daily priorities") + .examplePrompt("Run {skill} for today") + .instructions("# Purpose\nSuggest the three most important things to work on today.") + .mcpServers(Arrays.asList(SkillMcpServer.builder() + .appId("A0123ABCD") + .serverId("Amcp0456EFGH") + .serviceType("app") + .build())) + .skillId("F0123ABCD") + .build(); + SlackbotSkillsUpdateResponse response = methods.slackbotSkillsUpdate(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java new file mode 100644 index 0000000..5d5aa93 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java @@ -0,0 +1,27 @@ +package slackbot.skills.library; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.library.SlackbotSkillsLibraryAddRequest; +import com.slack.api.methods.response.slackbot.skills.library.SlackbotSkillsLibraryAddResponse; +import java.io.IOException; + +public class SlackbotSkillsLibraryAdd { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.library.add method + SlackbotSkillsLibraryAddRequest request = + SlackbotSkillsLibraryAddRequest.builder().skillId("F0123ABCD").build(); + SlackbotSkillsLibraryAddResponse response = methods.slackbotSkillsLibraryAdd(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java new file mode 100644 index 0000000..5b61a5c --- /dev/null +++ b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java @@ -0,0 +1,28 @@ +package slackbot.skills.library; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.library.SlackbotSkillsLibraryRemoveRequest; +import com.slack.api.methods.response.slackbot.skills.library.SlackbotSkillsLibraryRemoveResponse; +import java.io.IOException; + +public class SlackbotSkillsLibraryRemove { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.library.remove method + SlackbotSkillsLibraryRemoveRequest request = SlackbotSkillsLibraryRemoveRequest.builder() + .skillId("F0123ABCD") + .build(); + SlackbotSkillsLibraryRemoveResponse response = methods.slackbotSkillsLibraryRemove(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/library/manifest.json b/methods/src/main/java/slackbot/skills/library/manifest.json new file mode 100644 index 0000000..f22a91c --- /dev/null +++ b/methods/src/main/java/slackbot/skills/library/manifest.json @@ -0,0 +1,23 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"slackbot.skills.library\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + } + }, + "oauth_config": { + "scopes": { + "bot": ["skills:write"], + "user": ["skills:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": true, + "token_rotation_enabled": false + } +} diff --git a/methods/src/main/java/slackbot/skills/manifest.json b/methods/src/main/java/slackbot/skills/manifest.json new file mode 100644 index 0000000..5314b20 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/manifest.json @@ -0,0 +1,23 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"slackbot.skills\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + } + }, + "oauth_config": { + "scopes": { + "bot": ["skills:read", "skills:write"], + "user": ["skills:read", "skills:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": true, + "token_rotation_enabled": false + } +}