naftiko: 1.0.0-alpha2 info: label: Discourse API Documentation — Backups description: 'Discourse API Documentation — Backups. 4 operations. Lead operation: List backups. Self-contained Naftiko capability covering one Discourse business surface.' tags: - Discourse - Backups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DISCOURSE_API_KEY: DISCOURSE_API_KEY capability: consumes: - type: http namespace: discourse-backups baseUri: https://{defaultHost} description: Discourse API Documentation — Backups business capability. Self-contained, no shared references. resources: - name: admin-backups.json path: /admin/backups.json operations: - name: getbackups method: GET description: List backups outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createbackup method: POST description: Create backup outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: admin-backups-filename path: /admin/backups/{filename} operations: - name: senddownloadbackupemail method: PUT description: Send download backup email outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filename in: path type: string required: true - name: downloadbackup method: GET description: Download backup outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filename in: path type: string required: true - name: token in: query type: string required: true exposes: - type: rest namespace: discourse-backups-rest port: 8080 description: REST adapter for Discourse API Documentation — Backups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/admin/backups-json name: admin-backups-json description: REST surface for admin-backups.json. operations: - method: GET name: getbackups description: List backups call: discourse-backups.getbackups outputParameters: - type: object mapping: $. - method: POST name: createbackup description: Create backup call: discourse-backups.createbackup with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin/backups/{filename} name: admin-backups-filename description: REST surface for admin-backups-filename. operations: - method: PUT name: senddownloadbackupemail description: Send download backup email call: discourse-backups.senddownloadbackupemail with: filename: rest.filename outputParameters: - type: object mapping: $. - method: GET name: downloadbackup description: Download backup call: discourse-backups.downloadbackup with: filename: rest.filename token: rest.token outputParameters: - type: object mapping: $. - type: mcp namespace: discourse-backups-mcp port: 9090 transport: http description: MCP adapter for Discourse API Documentation — Backups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-backups description: List backups hints: readOnly: true destructive: false idempotent: true call: discourse-backups.getbackups outputParameters: - type: object mapping: $. - name: create-backup description: Create backup hints: readOnly: false destructive: false idempotent: false call: discourse-backups.createbackup with: body: tools.body outputParameters: - type: object mapping: $. - name: send-download-backup-email description: Send download backup email hints: readOnly: false destructive: false idempotent: true call: discourse-backups.senddownloadbackupemail with: filename: tools.filename outputParameters: - type: object mapping: $. - name: download-backup description: Download backup hints: readOnly: true destructive: false idempotent: true call: discourse-backups.downloadbackup with: filename: tools.filename token: tools.token outputParameters: - type: object mapping: $.