naftiko: 1.0.0-alpha2 info: label: Xerox Public Print API — Jobs description: 'Xerox Public Print API — Jobs. 7 operations. Lead operation: Create Print Job. Self-contained Naftiko capability covering one Xerox business surface.' tags: - Xerox - Jobs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: XEROX_API_KEY: XEROX_API_KEY capability: consumes: - type: http namespace: public-print-jobs baseUri: https://publicprintapi.services.xerox.com/api/v1 description: Xerox Public Print API — Jobs business capability. Self-contained, no shared references. resources: - name: Job path: /Job operations: - name: createjob method: PUT description: Create Print Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: getjob method: GET description: Get Print Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string description: The unique identifier of the job required: true - name: Job-History path: /Job/History operations: - name: getjobhistory method: GET description: Get Job History outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: $skip in: query type: integer description: Number of records to skip for pagination - name: $take in: query type: integer description: Number of records to return - name: clearjobhistory method: DELETE description: Clear Job History outputRawFormat: json outputParameters: - name: result type: object value: $. - name: Job-Options path: /Job/Options operations: - name: getjoboptions method: GET description: Get Job Options outputRawFormat: json outputParameters: - name: result type: object value: $. - name: Job-Status path: /Job/Status operations: - name: getjobstatus method: GET description: Get Job Status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: jobId in: query type: string description: The unique identifier of the job required: true - name: updatejobstatus method: POST description: Update Job Status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: xrxauth value: '{{env.XEROX_API_KEY}}' placement: header exposes: - type: rest namespace: public-print-jobs-rest port: 8080 description: REST adapter for Xerox Public Print API — Jobs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/job name: job description: REST surface for Job. operations: - method: PUT name: createjob description: Create Print Job call: public-print-jobs.createjob with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getjob description: Get Print Job call: public-print-jobs.getjob with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/job/history name: job-history description: REST surface for Job-History. operations: - method: GET name: getjobhistory description: Get Job History call: public-print-jobs.getjobhistory with: $skip: rest.$skip $take: rest.$take outputParameters: - type: object mapping: $. - method: DELETE name: clearjobhistory description: Clear Job History call: public-print-jobs.clearjobhistory outputParameters: - type: object mapping: $. - path: /v1/job/options name: job-options description: REST surface for Job-Options. operations: - method: GET name: getjoboptions description: Get Job Options call: public-print-jobs.getjoboptions outputParameters: - type: object mapping: $. - path: /v1/job/status name: job-status description: REST surface for Job-Status. operations: - method: GET name: getjobstatus description: Get Job Status call: public-print-jobs.getjobstatus with: jobId: rest.jobId outputParameters: - type: object mapping: $. - method: POST name: updatejobstatus description: Update Job Status call: public-print-jobs.updatejobstatus with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: public-print-jobs-mcp port: 9090 transport: http description: MCP adapter for Xerox Public Print API — Jobs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-print-job description: Create Print Job hints: readOnly: false destructive: false idempotent: true call: public-print-jobs.createjob with: body: tools.body outputParameters: - type: object mapping: $. - name: get-print-job description: Get Print Job hints: readOnly: true destructive: false idempotent: true call: public-print-jobs.getjob with: id: tools.id outputParameters: - type: object mapping: $. - name: get-job-history description: Get Job History hints: readOnly: true destructive: false idempotent: true call: public-print-jobs.getjobhistory with: $skip: tools.$skip $take: tools.$take outputParameters: - type: object mapping: $. - name: clear-job-history description: Clear Job History hints: readOnly: false destructive: true idempotent: true call: public-print-jobs.clearjobhistory outputParameters: - type: object mapping: $. - name: get-job-options description: Get Job Options hints: readOnly: true destructive: false idempotent: true call: public-print-jobs.getjoboptions outputParameters: - type: object mapping: $. - name: get-job-status description: Get Job Status hints: readOnly: true destructive: false idempotent: true call: public-print-jobs.getjobstatus with: jobId: tools.jobId outputParameters: - type: object mapping: $. - name: update-job-status description: Update Job Status hints: readOnly: false destructive: false idempotent: false call: public-print-jobs.updatejobstatus with: body: tools.body outputParameters: - type: object mapping: $.