diff --git a/.changeset/admin-slackbot-skills-unpublish.md b/.changeset/admin-slackbot-skills-unpublish.md new file mode 100644 index 000000000..69482fa81 --- /dev/null +++ b/.changeset/admin-slackbot-skills-unpublish.md @@ -0,0 +1,5 @@ +--- +"@slack/web-api": minor +--- + +feat(web-api): add [`admin.slackbot.skills.unpublish`](https://docs.slack.dev/reference/methods/admin.slackbot.skills.unpublish) method diff --git a/packages/web-api/src/methods.ts b/packages/web-api/src/methods.ts index 6edfccce6..81e58e5d2 100644 --- a/packages/web-api/src/methods.ts +++ b/packages/web-api/src/methods.ts @@ -65,6 +65,7 @@ import type { AdminSlackbotSkillsListArguments, AdminSlackbotSkillsPublishArguments, AdminSlackbotSkillsSetAutoEnabledArguments, + AdminSlackbotSkillsUnpublishArguments, AdminTeamsAdminsListArguments, AdminTeamsCreateArguments, AdminTeamsListArguments, @@ -359,6 +360,7 @@ import type { AdminSlackbotSkillsListResponse, AdminSlackbotSkillsPublishResponse, AdminSlackbotSkillsSetAutoEnabledResponse, + AdminSlackbotSkillsUnpublishResponse, AdminTeamsAdminsListResponse, AdminTeamsCreateResponse, AdminTeamsListResponse, @@ -1162,6 +1164,14 @@ export abstract class Methods extends EventEmitter { AdminSlackbotSkillsSetAutoEnabledArguments, AdminSlackbotSkillsSetAutoEnabledResponse >(this, 'admin.slackbot.skills.setAutoEnabled'), + /** + * @description Removes Slackbot skills from the org catalog, preserving access, libraries, and deployments. + * @see {@link https://docs.slack.dev/reference/methods/admin.slackbot.skills.unpublish `admin.slackbot.skills.unpublish` API reference}. + */ + unpublish: bindApiCall( + this, + 'admin.slackbot.skills.unpublish', + ), }, }, teams: { diff --git a/packages/web-api/src/types/request/admin/slackbot.ts b/packages/web-api/src/types/request/admin/slackbot.ts index b4b840e37..5e6756b84 100644 --- a/packages/web-api/src/types/request/admin/slackbot.ts +++ b/packages/web-api/src/types/request/admin/slackbot.ts @@ -61,3 +61,9 @@ export interface AdminSlackbotSkillsSetAutoEnabledArguments extends TokenOverrid */ usergroup_ids?: string[]; } + +// https://docs.slack.dev/reference/methods/admin.slackbot.skills.unpublish +export interface AdminSlackbotSkillsUnpublishArguments extends TokenOverridable { + /** @description One to 50 skill IDs. Successful items are not rolled back if other items fail. */ + skill_ids: string[]; +} diff --git a/packages/web-api/src/types/request/index.ts b/packages/web-api/src/types/request/index.ts index 209f391b8..a2c9a3ba6 100644 --- a/packages/web-api/src/types/request/index.ts +++ b/packages/web-api/src/types/request/index.ts @@ -78,6 +78,7 @@ export type { AdminSlackbotSkillsListArguments, AdminSlackbotSkillsPublishArguments, AdminSlackbotSkillsSetAutoEnabledArguments, + AdminSlackbotSkillsUnpublishArguments, } from './admin/slackbot'; export type { AdminTeamsAdminsListArguments, diff --git a/packages/web-api/src/types/response/AdminSlackbotSkillsUnpublishResponse.ts b/packages/web-api/src/types/response/AdminSlackbotSkillsUnpublishResponse.ts new file mode 100644 index 000000000..3f25faa4a --- /dev/null +++ b/packages/web-api/src/types/response/AdminSlackbotSkillsUnpublishResponse.ts @@ -0,0 +1,28 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// // +// !!! 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 AdminSlackbotSkillsUnpublishResponse = WebAPICallResult & { + error?: string; + failed_skills?: FailedSkill[]; + needed?: string; + ok?: boolean; + provided?: string; + response_metadata?: ResponseMetadata; + warning?: string; +}; + +export interface FailedSkill { + error?: string; + skill_id?: 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 c8c10319c..60de9dcca 100644 --- a/packages/web-api/src/types/response/index.ts +++ b/packages/web-api/src/types/response/index.ts @@ -69,6 +69,7 @@ export { AdminRolesRemoveAssignmentsResponse } from './AdminRolesRemoveAssignmen export { AdminSlackbotSkillsListResponse } from './AdminSlackbotSkillsListResponse'; export { AdminSlackbotSkillsPublishResponse } from './AdminSlackbotSkillsPublishResponse'; export { AdminSlackbotSkillsSetAutoEnabledResponse } from './AdminSlackbotSkillsSetAutoEnabledResponse'; +export { AdminSlackbotSkillsUnpublishResponse } from './AdminSlackbotSkillsUnpublishResponse'; export { AdminTeamsAdminsListResponse } from './AdminTeamsAdminsListResponse'; export { AdminTeamsCreateResponse } from './AdminTeamsCreateResponse'; export { AdminTeamsListResponse } from './AdminTeamsListResponse'; diff --git a/packages/web-api/test/types/methods/admin.slackbot.test-d.ts b/packages/web-api/test/types/methods/admin.slackbot.test-d.ts index a0f4d879c..dd6f708f2 100644 --- a/packages/web-api/test/types/methods/admin.slackbot.test-d.ts +++ b/packages/web-api/test/types/methods/admin.slackbot.test-d.ts @@ -97,3 +97,14 @@ expectAssignable>([ permission_type: 'no_one', }, ]); + +// admin.slackbot.skills.unpublish +// -- sad path +expectError(web.admin.slackbot.skills.unpublish()); // lacking argument +expectError(web.admin.slackbot.skills.unpublish({})); // empty argument +// -- happy path +expectAssignable>([ + { + skill_ids: ['F1234', 'F5678'], + }, +]);