naftiko: 1.0.0-alpha2 info: label: Slack User Groups API — Groups description: 'Slack User Groups API — Groups. 7 operations. Lead operation: Slack Post User Groups Create. Self-contained Naftiko capability covering one Slack business surface.' tags: - Slack - Groups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SLACK_API_KEY: SLACK_API_KEY capability: consumes: - type: http namespace: usergroups-groups baseUri: '' description: Slack User Groups API — Groups business capability. Self-contained, no shared references. resources: - name: usergroups.create path: /usergroups.create operations: - name: postusergroupscreate method: POST description: Slack Post User Groups Create outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `usergroups:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: usergroups.disable path: /usergroups.disable operations: - name: postusergroupsdisable method: POST description: Slack Post User Groups Disable outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `usergroups:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: usergroups.enable path: /usergroups.enable operations: - name: postusergroupsenable method: POST description: Slack Post User Groups Enable outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `usergroups:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: usergroups.list path: /usergroups.list operations: - name: getusergroupslist method: GET description: Slack Get User Groups List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: include_users in: query type: boolean description: Include the list of users for each User Group. - name: token in: query type: string description: 'Authentication token. Requires scope: `usergroups:read`' required: true - name: include_count in: query type: boolean description: Include the number of users in each User Group. - name: include_disabled in: query type: boolean description: Include disabled User Groups. - name: usergroups.update path: /usergroups.update operations: - name: postusergroupsupdate method: POST description: Slack Post User Groups Update outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `usergroups:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: usergroups.users.list path: /usergroups.users.list operations: - name: getusergroupsuserslist method: GET description: Slack Get User Groups Users List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: 'Authentication token. Requires scope: `usergroups:read`' required: true - name: include_disabled in: query type: boolean description: Allow results that involve disabled User Groups. - name: usergroup in: query type: string description: The encoded ID of the User Group to update. required: true - name: usergroups.users.update path: /usergroups.users.update operations: - name: postusergroupsusersupdate method: POST description: Slack Post User Groups Users Update outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `usergroups:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: usergroups-groups-rest port: 8080 description: REST adapter for Slack User Groups API — Groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/usergroups-create name: usergroups-create description: REST surface for usergroups.create. operations: - method: POST name: postusergroupscreate description: Slack Post User Groups Create call: usergroups-groups.postusergroupscreate with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/usergroups-disable name: usergroups-disable description: REST surface for usergroups.disable. operations: - method: POST name: postusergroupsdisable description: Slack Post User Groups Disable call: usergroups-groups.postusergroupsdisable with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/usergroups-enable name: usergroups-enable description: REST surface for usergroups.enable. operations: - method: POST name: postusergroupsenable description: Slack Post User Groups Enable call: usergroups-groups.postusergroupsenable with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/usergroups-list name: usergroups-list description: REST surface for usergroups.list. operations: - method: GET name: getusergroupslist description: Slack Get User Groups List call: usergroups-groups.getusergroupslist with: include_users: rest.include_users token: rest.token include_count: rest.include_count include_disabled: rest.include_disabled outputParameters: - type: object mapping: $. - path: /v1/usergroups-update name: usergroups-update description: REST surface for usergroups.update. operations: - method: POST name: postusergroupsupdate description: Slack Post User Groups Update call: usergroups-groups.postusergroupsupdate with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/usergroups-users-list name: usergroups-users-list description: REST surface for usergroups.users.list. operations: - method: GET name: getusergroupsuserslist description: Slack Get User Groups Users List call: usergroups-groups.getusergroupsuserslist with: token: rest.token include_disabled: rest.include_disabled usergroup: rest.usergroup outputParameters: - type: object mapping: $. - path: /v1/usergroups-users-update name: usergroups-users-update description: REST surface for usergroups.users.update. operations: - method: POST name: postusergroupsusersupdate description: Slack Post User Groups Users Update call: usergroups-groups.postusergroupsusersupdate with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: usergroups-groups-mcp port: 9090 transport: http description: MCP adapter for Slack User Groups API — Groups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: slack-post-user-groups-create description: Slack Post User Groups Create hints: readOnly: false destructive: false idempotent: false call: usergroups-groups.postusergroupscreate with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-user-groups-disable description: Slack Post User Groups Disable hints: readOnly: false destructive: false idempotent: false call: usergroups-groups.postusergroupsdisable with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-user-groups-enable description: Slack Post User Groups Enable hints: readOnly: false destructive: false idempotent: false call: usergroups-groups.postusergroupsenable with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-get-user-groups-list description: Slack Get User Groups List hints: readOnly: true destructive: false idempotent: true call: usergroups-groups.getusergroupslist with: include_users: tools.include_users token: tools.token include_count: tools.include_count include_disabled: tools.include_disabled outputParameters: - type: object mapping: $. - name: slack-post-user-groups-update description: Slack Post User Groups Update hints: readOnly: false destructive: false idempotent: false call: usergroups-groups.postusergroupsupdate with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-get-user-groups-users description: Slack Get User Groups Users List hints: readOnly: true destructive: false idempotent: true call: usergroups-groups.getusergroupsuserslist with: token: tools.token include_disabled: tools.include_disabled usergroup: tools.usergroup outputParameters: - type: object mapping: $. - name: slack-post-user-groups-users description: Slack Post User Groups Users Update hints: readOnly: false destructive: false idempotent: false call: usergroups-groups.postusergroupsusersupdate with: token: tools.token body: tools.body outputParameters: - type: object mapping: $.