naftiko: 1.0.0-alpha2 info: label: Slack Functions API — Permissions description: 'Slack Functions API — Permissions. 3 operations. Lead operation: Add Function Distribution Permissions. Self-contained Naftiko capability covering one Slack business surface.' tags: - Slack - Permissions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SLACK_API_KEY: SLACK_API_KEY capability: consumes: - type: http namespace: functions-permissions baseUri: https://slack.com/api description: Slack Functions API — Permissions business capability. Self-contained, no shared references. resources: - name: functions.distributions.permissions.add path: /functions.distributions.permissions.add operations: - name: postfunctionsdistributionspermissionsadd method: POST description: Add Function Distribution Permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `functions:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: functions.distributions.permissions.list path: /functions.distributions.permissions.list operations: - name: getfunctionsdistributionspermissionslist method: GET description: List Function Distribution Permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: 'Authentication token. Requires scope: `functions:read`' required: true - name: function_app_id in: query type: string description: ID of the function app. required: true - name: functions.distributions.permissions.remove path: /functions.distributions.permissions.remove operations: - name: postfunctionsdistributionspermissionsremove method: POST description: Remove Function Distribution Permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `functions:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.SLACK_API_KEY}}' exposes: - type: rest namespace: functions-permissions-rest port: 8080 description: REST adapter for Slack Functions API — Permissions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/functions-distributions-permissions-add name: functions-distributions-permissions-add description: REST surface for functions.distributions.permissions.add. operations: - method: POST name: postfunctionsdistributionspermissionsadd description: Add Function Distribution Permissions call: functions-permissions.postfunctionsdistributionspermissionsadd with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/functions-distributions-permissions-list name: functions-distributions-permissions-list description: REST surface for functions.distributions.permissions.list. operations: - method: GET name: getfunctionsdistributionspermissionslist description: List Function Distribution Permissions call: functions-permissions.getfunctionsdistributionspermissionslist with: token: rest.token function_app_id: rest.function_app_id outputParameters: - type: object mapping: $. - path: /v1/functions-distributions-permissions-remove name: functions-distributions-permissions-remove description: REST surface for functions.distributions.permissions.remove. operations: - method: POST name: postfunctionsdistributionspermissionsremove description: Remove Function Distribution Permissions call: functions-permissions.postfunctionsdistributionspermissionsremove with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: functions-permissions-mcp port: 9090 transport: http description: MCP adapter for Slack Functions API — Permissions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: add-function-distribution-permissions description: Add Function Distribution Permissions hints: readOnly: false destructive: false idempotent: false call: functions-permissions.postfunctionsdistributionspermissionsadd with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: list-function-distribution-permissions description: List Function Distribution Permissions hints: readOnly: true destructive: false idempotent: true call: functions-permissions.getfunctionsdistributionspermissionslist with: token: tools.token function_app_id: tools.function_app_id outputParameters: - type: object mapping: $. - name: remove-function-distribution-permissions description: Remove Function Distribution Permissions hints: readOnly: false destructive: false idempotent: false call: functions-permissions.postfunctionsdistributionspermissionsremove with: token: tools.token body: tools.body outputParameters: - type: object mapping: $.