naftiko: 1.0.0-alpha2 info: label: Slack Files API — Post description: 'Slack Files API — Post. 8 operations. Lead operation: Slack Post Files Comments Delete. Self-contained Naftiko capability covering one Slack business surface.' tags: - Slack - Post created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SLACK_API_KEY: SLACK_API_KEY capability: consumes: - type: http namespace: files-post baseUri: '' description: Slack Files API — Post business capability. Self-contained, no shared references. resources: - name: files.comments.delete path: /files.comments.delete operations: - name: postfilescommentsdelete method: POST description: Slack Post Files Comments Delete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `files:write:user`' - name: body in: body type: object description: Request body (JSON). required: false - name: files.delete path: /files.delete operations: - name: postfilesdelete method: POST description: Slack Post Files Delete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `files:write:user`' - name: body in: body type: object description: Request body (JSON). required: false - name: files.remote.add path: /files.remote.add operations: - name: postfilesremoteadd method: POST description: Slack Post Files Remote Add outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: files.remote.remove path: /files.remote.remove operations: - name: postfilesremoteremove method: POST description: Slack Post Files Remote Remove outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: files.remote.update path: /files.remote.update operations: - name: postfilesremoteupdate method: POST description: Slack Post Files Remote Update outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: files.revokePublicURL path: /files.revokePublicURL operations: - name: postfilesrevokepublicurl method: POST description: Slack Post Files Revokepublicurl outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `files:write:user`' - name: body in: body type: object description: Request body (JSON). required: false - name: files.sharedPublicURL path: /files.sharedPublicURL operations: - name: postfilessharedpublicurl method: POST description: Slack Post Files Sharedpublicurl outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `files:write:user`' - name: body in: body type: object description: Request body (JSON). required: false - name: files.upload path: /files.upload operations: - name: postfilesupload method: POST description: Slack Post Files Upload outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: files-post-rest port: 8080 description: REST adapter for Slack Files API — Post. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/files-comments-delete name: files-comments-delete description: REST surface for files.comments.delete. operations: - method: POST name: postfilescommentsdelete description: Slack Post Files Comments Delete call: files-post.postfilescommentsdelete with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files-delete name: files-delete description: REST surface for files.delete. operations: - method: POST name: postfilesdelete description: Slack Post Files Delete call: files-post.postfilesdelete with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files-remote-add name: files-remote-add description: REST surface for files.remote.add. operations: - method: POST name: postfilesremoteadd description: Slack Post Files Remote Add call: files-post.postfilesremoteadd with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files-remote-remove name: files-remote-remove description: REST surface for files.remote.remove. operations: - method: POST name: postfilesremoteremove description: Slack Post Files Remote Remove call: files-post.postfilesremoteremove with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files-remote-update name: files-remote-update description: REST surface for files.remote.update. operations: - method: POST name: postfilesremoteupdate description: Slack Post Files Remote Update call: files-post.postfilesremoteupdate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files-revokepublicurl name: files-revokepublicurl description: REST surface for files.revokePublicURL. operations: - method: POST name: postfilesrevokepublicurl description: Slack Post Files Revokepublicurl call: files-post.postfilesrevokepublicurl with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files-sharedpublicurl name: files-sharedpublicurl description: REST surface for files.sharedPublicURL. operations: - method: POST name: postfilessharedpublicurl description: Slack Post Files Sharedpublicurl call: files-post.postfilessharedpublicurl with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files-upload name: files-upload description: REST surface for files.upload. operations: - method: POST name: postfilesupload description: Slack Post Files Upload call: files-post.postfilesupload with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: files-post-mcp port: 9090 transport: http description: MCP adapter for Slack Files API — Post. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: slack-post-files-comments-delete description: Slack Post Files Comments Delete hints: readOnly: false destructive: false idempotent: false call: files-post.postfilescommentsdelete with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-files-delete description: Slack Post Files Delete hints: readOnly: false destructive: false idempotent: false call: files-post.postfilesdelete with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-files-remote-add description: Slack Post Files Remote Add hints: readOnly: false destructive: false idempotent: false call: files-post.postfilesremoteadd with: body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-files-remote-remove description: Slack Post Files Remote Remove hints: readOnly: false destructive: false idempotent: false call: files-post.postfilesremoteremove with: body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-files-remote-update description: Slack Post Files Remote Update hints: readOnly: false destructive: false idempotent: false call: files-post.postfilesremoteupdate with: body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-files-revokepublicurl description: Slack Post Files Revokepublicurl hints: readOnly: false destructive: false idempotent: false call: files-post.postfilesrevokepublicurl with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-files-sharedpublicurl description: Slack Post Files Sharedpublicurl hints: readOnly: false destructive: false idempotent: false call: files-post.postfilessharedpublicurl with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-files-upload description: Slack Post Files Upload hints: readOnly: false destructive: false idempotent: false call: files-post.postfilesupload with: body: tools.body outputParameters: - type: object mapping: $.