diff --git a/.changeset/admin-slackbot-skills-setautoenabled.md b/.changeset/admin-slackbot-skills-setautoenabled.md new file mode 100644 index 000000000..025be326b --- /dev/null +++ b/.changeset/admin-slackbot-skills-setautoenabled.md @@ -0,0 +1,5 @@ +--- +"@slack/web-api": minor +--- + +feat(web-api): add [`admin.slackbot.skills.setAutoEnabled`](https://docs.slack.dev/reference/methods/admin.slackbot.skills.setAutoEnabled) method diff --git a/packages/web-api/src/methods.ts b/packages/web-api/src/methods.ts index 7ce734df1..6edfccce6 100644 --- a/packages/web-api/src/methods.ts +++ b/packages/web-api/src/methods.ts @@ -64,6 +64,7 @@ import type { AdminRolesRemoveAssignmentsArguments, AdminSlackbotSkillsListArguments, AdminSlackbotSkillsPublishArguments, + AdminSlackbotSkillsSetAutoEnabledArguments, AdminTeamsAdminsListArguments, AdminTeamsCreateArguments, AdminTeamsListArguments, @@ -357,6 +358,7 @@ import type { AdminRolesRemoveAssignmentsResponse, AdminSlackbotSkillsListResponse, AdminSlackbotSkillsPublishResponse, + AdminSlackbotSkillsSetAutoEnabledResponse, AdminTeamsAdminsListResponse, AdminTeamsCreateResponse, AdminTeamsListResponse, @@ -1152,6 +1154,14 @@ export abstract class Methods extends EventEmitter { this, 'admin.slackbot.skills.publish', ), + /** + * @description Sets who a Slackbot skill is automatically turned on for. + * @see {@link https://docs.slack.dev/reference/methods/admin.slackbot.skills.setAutoEnabled `admin.slackbot.skills.setAutoEnabled` API reference}. + */ + setAutoEnabled: bindApiCall< + AdminSlackbotSkillsSetAutoEnabledArguments, + AdminSlackbotSkillsSetAutoEnabledResponse + >(this, 'admin.slackbot.skills.setAutoEnabled'), }, }, teams: { diff --git a/packages/web-api/src/types/request/admin/slackbot.ts b/packages/web-api/src/types/request/admin/slackbot.ts index 5c1f4b745..b4b840e37 100644 --- a/packages/web-api/src/types/request/admin/slackbot.ts +++ b/packages/web-api/src/types/request/admin/slackbot.ts @@ -48,3 +48,16 @@ export interface AdminSlackbotSkillsPublishArguments extends TokenOverridable { /** @description One to 50 skill IDs. Successful items are not rolled back if other items fail. */ skill_ids: string[]; } + +// https://docs.slack.dev/reference/methods/admin.slackbot.skills.setAutoEnabled +export interface AdminSlackbotSkillsSetAutoEnabledArguments extends TokenOverridable { + /** @description Canvas skill to deploy. */ + skill_id: string; + /** @description Deployment audience. */ + permission_type: 'everyone' | 'named_entities' | 'no_one'; + /** + * @description One to 100 user groups for named_entities. Duplicates count toward the input limit and are stored + * once. Omit for other permission types. + */ + usergroup_ids?: string[]; +} diff --git a/packages/web-api/src/types/request/index.ts b/packages/web-api/src/types/request/index.ts index 0d3db2b7e..209f391b8 100644 --- a/packages/web-api/src/types/request/index.ts +++ b/packages/web-api/src/types/request/index.ts @@ -77,6 +77,7 @@ export type { export type { AdminSlackbotSkillsListArguments, AdminSlackbotSkillsPublishArguments, + AdminSlackbotSkillsSetAutoEnabledArguments, } from './admin/slackbot'; export type { AdminTeamsAdminsListArguments, diff --git a/packages/web-api/src/types/response/AdminSlackbotSkillsSetAutoEnabledResponse.ts b/packages/web-api/src/types/response/AdminSlackbotSkillsSetAutoEnabledResponse.ts new file mode 100644 index 000000000..d1d6eaaed --- /dev/null +++ b/packages/web-api/src/types/response/AdminSlackbotSkillsSetAutoEnabledResponse.ts @@ -0,0 +1,26 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// // +// !!! 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 AdminSlackbotSkillsSetAutoEnabledResponse = WebAPICallResult & { + error?: string; + invalid_usergroup_ids?: string[]; + needed?: string; + ok?: boolean; + permission_type?: string; + provided?: string; + response_metadata?: ResponseMetadata; + skill_id?: string; + usergroup_ids?: string[]; + 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 df83c5187..c8c10319c 100644 --- a/packages/web-api/src/types/response/index.ts +++ b/packages/web-api/src/types/response/index.ts @@ -68,6 +68,7 @@ export { AdminRolesListAssignmentsResponse } from './AdminRolesListAssignmentsRe export { AdminRolesRemoveAssignmentsResponse } from './AdminRolesRemoveAssignmentsResponse'; export { AdminSlackbotSkillsListResponse } from './AdminSlackbotSkillsListResponse'; export { AdminSlackbotSkillsPublishResponse } from './AdminSlackbotSkillsPublishResponse'; +export { AdminSlackbotSkillsSetAutoEnabledResponse } from './AdminSlackbotSkillsSetAutoEnabledResponse'; 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 d68cc4101..a0f4d879c 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 @@ -56,3 +56,44 @@ expectAssignable>([ skill_ids: ['F1234', 'F5678'], }, ]); + +// admin.slackbot.skills.setAutoEnabled +// -- sad path +expectError(web.admin.slackbot.skills.setAutoEnabled()); // lacking argument +expectError(web.admin.slackbot.skills.setAutoEnabled({})); // empty argument +expectError( + web.admin.slackbot.skills.setAutoEnabled({ + permission_type: 'everyone', // missing skill_id + }), +); +expectError( + web.admin.slackbot.skills.setAutoEnabled({ + skill_id: 'F1234', // missing permission_type + }), +); +expectError( + web.admin.slackbot.skills.setAutoEnabled({ + skill_id: 'F1234', + permission_type: 'some_people', // invalid permission_type + }), +); +// -- happy path +expectAssignable>([ + { + skill_id: 'F1234', + permission_type: 'everyone', + }, +]); +expectAssignable>([ + { + skill_id: 'F1234', + permission_type: 'named_entities', + usergroup_ids: ['S1234'], + }, +]); +expectAssignable>([ + { + skill_id: 'F1234', + permission_type: 'no_one', + }, +]);