diff --git a/.changeset/slackbot-skills-library-add.md b/.changeset/slackbot-skills-library-add.md new file mode 100644 index 000000000..e7984512b --- /dev/null +++ b/.changeset/slackbot-skills-library-add.md @@ -0,0 +1,5 @@ +--- +"@slack/web-api": minor +--- + +feat(web-api): add [`slackbot.skills.library.add`](https://docs.slack.dev/reference/methods/slackbot.skills.library.add) method diff --git a/packages/web-api/src/methods.ts b/packages/web-api/src/methods.ts index 81b563c9c..4b5a35ee4 100644 --- a/packages/web-api/src/methods.ts +++ b/packages/web-api/src/methods.ts @@ -236,6 +236,7 @@ import type { SearchMessagesArguments, SlackbotSkillsCreateArguments, SlackbotSkillsInfoArguments, + SlackbotSkillsLibraryAddArguments, SlackbotSkillsListArguments, SlackbotSkillsUpdateArguments, SlackListsAccessDeleteArguments, @@ -524,6 +525,7 @@ import type { SearchMessagesResponse, SlackbotSkillsCreateResponse, SlackbotSkillsInfoResponse, + SlackbotSkillsLibraryAddResponse, SlackbotSkillsListResponse, SlackbotSkillsUpdateResponse, SlackListsAccessDeleteResponse, @@ -2370,6 +2372,16 @@ export abstract class Methods extends EventEmitter { * @see {@link https://docs.slack.dev/reference/methods/slackbot.skills.info `slackbot.skills.info` API reference}. */ info: bindApiCall(this, 'slackbot.skills.info'), + library: { + /** + * @description Turns a skill on in the caller's Slackbot library. + * @see {@link https://docs.slack.dev/reference/methods/slackbot.skills.library.add `slackbot.skills.library.add` API reference}. + */ + add: bindApiCall( + this, + 'slackbot.skills.library.add', + ), + }, /** * @description Lists Slackbot skills from the caller's point of view. Instructions are not included. * @see {@link https://docs.slack.dev/reference/methods/slackbot.skills.list `slackbot.skills.list` API reference}. diff --git a/packages/web-api/src/types/request/index.ts b/packages/web-api/src/types/request/index.ts index aed4ed407..a5255bd44 100644 --- a/packages/web-api/src/types/request/index.ts +++ b/packages/web-api/src/types/request/index.ts @@ -294,6 +294,7 @@ export type { export type { SlackbotSkillsCreateArguments, SlackbotSkillsInfoArguments, + SlackbotSkillsLibraryAddArguments, SlackbotSkillsListArguments, SlackbotSkillsUpdateArguments, } from './slackbot'; diff --git a/packages/web-api/src/types/request/slackbot.ts b/packages/web-api/src/types/request/slackbot.ts index 6609acb2c..1eb280690 100644 --- a/packages/web-api/src/types/request/slackbot.ts +++ b/packages/web-api/src/types/request/slackbot.ts @@ -44,6 +44,12 @@ export interface SlackbotSkillsInfoArguments extends TokenOverridable { skill_id: string; } +// https://docs.slack.dev/reference/methods/slackbot.skills.library.add +export interface SlackbotSkillsLibraryAddArguments extends TokenOverridable { + /** @description Skill to turn on for the caller. */ + skill_id: string; +} + // https://docs.slack.dev/reference/methods/slackbot.skills.list export type SlackbotSkillsListArguments = OptionalArgument< TokenOverridable & { diff --git a/packages/web-api/src/types/response/SlackbotSkillsLibraryAddResponse.ts b/packages/web-api/src/types/response/SlackbotSkillsLibraryAddResponse.ts new file mode 100644 index 000000000..df8b9dc8d --- /dev/null +++ b/packages/web-api/src/types/response/SlackbotSkillsLibraryAddResponse.ts @@ -0,0 +1,22 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// // +// !!! DO NOT EDIT THIS FILE !!! // +// // +// This file is auto-generated by scripts/generate-web-api-types.sh in the repository. // +// Please refer to the script code to learn how to update the source data. // +// // +///////////////////////////////////////////////////////////////////////////////////////// + +import type { WebAPICallResult } from '../../WebClient'; +export type SlackbotSkillsLibraryAddResponse = WebAPICallResult & { + error?: string; + needed?: string; + ok?: boolean; + provided?: string; + response_metadata?: ResponseMetadata; + warning?: string; +}; + +export interface ResponseMetadata { + messages?: string[]; +} diff --git a/packages/web-api/src/types/response/index.ts b/packages/web-api/src/types/response/index.ts index df445250c..94d4ec718 100644 --- a/packages/web-api/src/types/response/index.ts +++ b/packages/web-api/src/types/response/index.ts @@ -294,6 +294,7 @@ export { SearchFilesResponse } from './SearchFilesResponse'; export { SearchMessagesResponse } from './SearchMessagesResponse'; export { SlackbotSkillsCreateResponse } from './SlackbotSkillsCreateResponse'; export { SlackbotSkillsInfoResponse } from './SlackbotSkillsInfoResponse'; +export { SlackbotSkillsLibraryAddResponse } from './SlackbotSkillsLibraryAddResponse'; export { SlackbotSkillsListResponse } from './SlackbotSkillsListResponse'; export { SlackbotSkillsUpdateResponse } from './SlackbotSkillsUpdateResponse'; export { SlackListsAccessDeleteResponse } from './SlackListsAccessDeleteResponse'; diff --git a/packages/web-api/test/types/methods/slackbot.test-d.ts b/packages/web-api/test/types/methods/slackbot.test-d.ts index aa0d40588..d66a0dbbe 100644 --- a/packages/web-api/test/types/methods/slackbot.test-d.ts +++ b/packages/web-api/test/types/methods/slackbot.test-d.ts @@ -73,6 +73,17 @@ expectAssignable>([ }, ]); +// slackbot.skills.library.add +// -- sad path +expectError(web.slackbot.skills.library.add()); // lacking argument +expectError(web.slackbot.skills.library.add({})); // empty argument +// -- happy path +expectAssignable>([ + { + skill_id: 'F1234', + }, +]); + // slackbot.skills.list // -- sad path expectError(