diff --git a/.changeset/slackbot-skills-delete.md b/.changeset/slackbot-skills-delete.md new file mode 100644 index 000000000..4843a8b7d --- /dev/null +++ b/.changeset/slackbot-skills-delete.md @@ -0,0 +1,5 @@ +--- +"@slack/web-api": minor +--- + +feat(web-api): add [`slackbot.skills.delete`](https://docs.slack.dev/reference/methods/slackbot.skills.delete) method diff --git a/packages/web-api/src/methods.ts b/packages/web-api/src/methods.ts index 81e58e5d2..6dde54072 100644 --- a/packages/web-api/src/methods.ts +++ b/packages/web-api/src/methods.ts @@ -239,6 +239,7 @@ import type { SearchFilesArguments, SearchMessagesArguments, SlackbotSkillsCreateArguments, + SlackbotSkillsDeleteArguments, SlackbotSkillsInfoArguments, SlackbotSkillsLibraryAddArguments, SlackbotSkillsLibraryRemoveArguments, @@ -533,6 +534,7 @@ import type { SearchFilesResponse, SearchMessagesResponse, SlackbotSkillsCreateResponse, + SlackbotSkillsDeleteResponse, SlackbotSkillsInfoResponse, SlackbotSkillsLibraryAddResponse, SlackbotSkillsLibraryRemoveResponse, @@ -2413,6 +2415,11 @@ export abstract class Methods extends EventEmitter { * @see {@link https://docs.slack.dev/reference/methods/slackbot.skills.create `slackbot.skills.create` API reference}. */ create: bindApiCall(this, 'slackbot.skills.create'), + /** + * @description Deletes a Slackbot skill and its canvas, and removes it from every library, skill set, and the org catalog. + * @see {@link https://docs.slack.dev/reference/methods/slackbot.skills.delete `slackbot.skills.delete` API reference}. + */ + delete: bindApiCall(this, 'slackbot.skills.delete'), /** * @description Returns one Slackbot skill, including its instructions. * @see {@link https://docs.slack.dev/reference/methods/slackbot.skills.info `slackbot.skills.info` API reference}. diff --git a/packages/web-api/src/types/request/index.ts b/packages/web-api/src/types/request/index.ts index a2c9a3ba6..d155111c2 100644 --- a/packages/web-api/src/types/request/index.ts +++ b/packages/web-api/src/types/request/index.ts @@ -299,6 +299,7 @@ export type { } from './search'; export type { SlackbotSkillsCreateArguments, + SlackbotSkillsDeleteArguments, SlackbotSkillsInfoArguments, SlackbotSkillsLibraryAddArguments, SlackbotSkillsLibraryRemoveArguments, diff --git a/packages/web-api/src/types/request/slackbot.ts b/packages/web-api/src/types/request/slackbot.ts index 756a8bced..0e2b15933 100644 --- a/packages/web-api/src/types/request/slackbot.ts +++ b/packages/web-api/src/types/request/slackbot.ts @@ -38,6 +38,12 @@ export interface SlackbotSkillsCreateArguments extends TokenOverridable { server_id?: string; }[]; } +// https://docs.slack.dev/reference/methods/slackbot.skills.delete +export interface SlackbotSkillsDeleteArguments extends TokenOverridable { + /** @description Skill to delete. */ + skill_id: string; +} + // https://docs.slack.dev/reference/methods/slackbot.skills.info export interface SlackbotSkillsInfoArguments extends TokenOverridable { /** @description Skill to fetch: a canvas file ID or a `builtin:` reference. */ diff --git a/packages/web-api/src/types/response/SlackbotSkillsDeleteResponse.ts b/packages/web-api/src/types/response/SlackbotSkillsDeleteResponse.ts new file mode 100644 index 000000000..9ba01b387 --- /dev/null +++ b/packages/web-api/src/types/response/SlackbotSkillsDeleteResponse.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 SlackbotSkillsDeleteResponse = 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 60de9dcca..fc42a4431 100644 --- a/packages/web-api/src/types/response/index.ts +++ b/packages/web-api/src/types/response/index.ts @@ -297,6 +297,7 @@ export { SearchAllResponse } from './SearchAllResponse'; export { SearchFilesResponse } from './SearchFilesResponse'; export { SearchMessagesResponse } from './SearchMessagesResponse'; export { SlackbotSkillsCreateResponse } from './SlackbotSkillsCreateResponse'; +export { SlackbotSkillsDeleteResponse } from './SlackbotSkillsDeleteResponse'; export { SlackbotSkillsInfoResponse } from './SlackbotSkillsInfoResponse'; export { SlackbotSkillsLibraryAddResponse } from './SlackbotSkillsLibraryAddResponse'; export { SlackbotSkillsLibraryRemoveResponse } from './SlackbotSkillsLibraryRemoveResponse'; 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 2e13a2ab6..71f35e7a1 100644 --- a/packages/web-api/test/types/methods/slackbot.test-d.ts +++ b/packages/web-api/test/types/methods/slackbot.test-d.ts @@ -62,6 +62,17 @@ expectAssignable>([ }, ]); +// slackbot.skills.delete +// -- sad path +expectError(web.slackbot.skills.delete()); // lacking argument +expectError(web.slackbot.skills.delete({})); // empty argument +// -- happy path +expectAssignable>([ + { + skill_id: 'F1234', + }, +]); + // slackbot.skills.info // -- sad path expectError(web.slackbot.skills.info()); // lacking argument