diff --git a/.changeset/admin-slackbot-skills-publish.md b/.changeset/admin-slackbot-skills-publish.md new file mode 100644 index 000000000..f94a9303b --- /dev/null +++ b/.changeset/admin-slackbot-skills-publish.md @@ -0,0 +1,5 @@ +--- +"@slack/web-api": minor +--- + +feat(web-api): add [`admin.slackbot.skills.publish`](https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish) method diff --git a/packages/web-api/src/methods.ts b/packages/web-api/src/methods.ts index cdbef2bc1..7ce734df1 100644 --- a/packages/web-api/src/methods.ts +++ b/packages/web-api/src/methods.ts @@ -63,6 +63,7 @@ import type { AdminRolesListAssignmentsArguments, AdminRolesRemoveAssignmentsArguments, AdminSlackbotSkillsListArguments, + AdminSlackbotSkillsPublishArguments, AdminTeamsAdminsListArguments, AdminTeamsCreateArguments, AdminTeamsListArguments, @@ -355,6 +356,7 @@ import type { AdminRolesListAssignmentsResponse, AdminRolesRemoveAssignmentsResponse, AdminSlackbotSkillsListResponse, + AdminSlackbotSkillsPublishResponse, AdminTeamsAdminsListResponse, AdminTeamsCreateResponse, AdminTeamsListResponse, @@ -1142,6 +1144,14 @@ export abstract class Methods extends EventEmitter { this, 'admin.slackbot.skills.list', ), + /** + * @description Publishes Slackbot skills to an organization's catalog. + * @see {@link https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish `admin.slackbot.skills.publish` API reference}. + */ + publish: bindApiCall( + this, + 'admin.slackbot.skills.publish', + ), }, }, teams: { diff --git a/packages/web-api/src/types/request/admin/slackbot.ts b/packages/web-api/src/types/request/admin/slackbot.ts index f9a494173..5c1f4b745 100644 --- a/packages/web-api/src/types/request/admin/slackbot.ts +++ b/packages/web-api/src/types/request/admin/slackbot.ts @@ -42,3 +42,9 @@ export type AdminSlackbotSkillsListArguments = OptionalArgument< sort_dir?: 'asc' | 'desc'; } >; + +// https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish +export interface AdminSlackbotSkillsPublishArguments 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 e09e02c47..0d3db2b7e 100644 --- a/packages/web-api/src/types/request/index.ts +++ b/packages/web-api/src/types/request/index.ts @@ -74,7 +74,10 @@ export type { AdminRolesListAssignmentsArguments, AdminRolesRemoveAssignmentsArguments, } from './admin/roles'; -export type { AdminSlackbotSkillsListArguments } from './admin/slackbot'; +export type { + AdminSlackbotSkillsListArguments, + AdminSlackbotSkillsPublishArguments, +} from './admin/slackbot'; export type { AdminTeamsAdminsListArguments, AdminTeamsCreateArguments, diff --git a/packages/web-api/src/types/response/AdminSlackbotSkillsPublishResponse.ts b/packages/web-api/src/types/response/AdminSlackbotSkillsPublishResponse.ts new file mode 100644 index 000000000..4e346da65 --- /dev/null +++ b/packages/web-api/src/types/response/AdminSlackbotSkillsPublishResponse.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 AdminSlackbotSkillsPublishResponse = 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 898b206b2..df83c5187 100644 --- a/packages/web-api/src/types/response/index.ts +++ b/packages/web-api/src/types/response/index.ts @@ -67,6 +67,7 @@ export { AdminRolesAddAssignmentsResponse } from './AdminRolesAddAssignmentsResp export { AdminRolesListAssignmentsResponse } from './AdminRolesListAssignmentsResponse'; export { AdminRolesRemoveAssignmentsResponse } from './AdminRolesRemoveAssignmentsResponse'; export { AdminSlackbotSkillsListResponse } from './AdminSlackbotSkillsListResponse'; +export { AdminSlackbotSkillsPublishResponse } from './AdminSlackbotSkillsPublishResponse'; 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 33c62162e..d68cc4101 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 @@ -45,3 +45,14 @@ expectAssignable>([ sort_dir: 'desc', }, ]); + +// admin.slackbot.skills.publish +// -- sad path +expectError(web.admin.slackbot.skills.publish()); // lacking argument +expectError(web.admin.slackbot.skills.publish({})); // empty argument +// -- happy path +expectAssignable>([ + { + skill_ids: ['F1234', 'F5678'], + }, +]);