naftiko: 1.0.0-alpha2 info: label: Tableau REST API — Jobs description: 'Tableau REST API — Jobs. 3 operations. Lead operation: Tableau Query Jobs. Self-contained Naftiko capability covering one Tableau business surface.' tags: - Tableau - Jobs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TABLEAU_API_KEY: TABLEAU_API_KEY capability: consumes: - type: http namespace: rest-jobs baseUri: https://{server}/api/{api-version} description: Tableau REST API — Jobs business capability. Self-contained, no shared references. resources: - name: sites-site-id-jobs path: /sites/{site-id}/jobs operations: - name: queryjobs method: GET description: Tableau Query Jobs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sites-site-id-jobs-job-id path: /sites/{site-id}/jobs/{job-id} operations: - name: queryjob method: GET description: Tableau Query Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job-id in: path type: string description: The ID of the job. required: true - name: canceljob method: PUT description: Tableau Cancel Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job-id in: path type: string description: The ID of the job to cancel. required: true authentication: type: apikey key: X-Tableau-Auth value: '{{env.TABLEAU_API_KEY}}' placement: header exposes: - type: rest namespace: rest-jobs-rest port: 8080 description: REST adapter for Tableau REST API — Jobs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/sites/{site-id}/jobs name: sites-site-id-jobs description: REST surface for sites-site-id-jobs. operations: - method: GET name: queryjobs description: Tableau Query Jobs call: rest-jobs.queryjobs outputParameters: - type: object mapping: $. - path: /v1/sites/{site-id}/jobs/{job-id} name: sites-site-id-jobs-job-id description: REST surface for sites-site-id-jobs-job-id. operations: - method: GET name: queryjob description: Tableau Query Job call: rest-jobs.queryjob with: job-id: rest.job-id outputParameters: - type: object mapping: $. - method: PUT name: canceljob description: Tableau Cancel Job call: rest-jobs.canceljob with: job-id: rest.job-id outputParameters: - type: object mapping: $. - type: mcp namespace: rest-jobs-mcp port: 9090 transport: http description: MCP adapter for Tableau REST API — Jobs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: tableau-query-jobs description: Tableau Query Jobs hints: readOnly: true destructive: false idempotent: true call: rest-jobs.queryjobs outputParameters: - type: object mapping: $. - name: tableau-query-job description: Tableau Query Job hints: readOnly: true destructive: false idempotent: true call: rest-jobs.queryjob with: job-id: tools.job-id outputParameters: - type: object mapping: $. - name: tableau-cancel-job description: Tableau Cancel Job hints: readOnly: false destructive: false idempotent: true call: rest-jobs.canceljob with: job-id: tools.job-id outputParameters: - type: object mapping: $.