naftiko: 1.0.0-alpha2 info: label: FOSSology API — Job description: 'FOSSology API — Job. 12 operations. Lead operation: Gets all jobs created by the logged in user. Self-contained Naftiko capability covering one Fossology business surface.' tags: - Fossology - Job created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FOSSOLOGY_API_KEY: FOSSOLOGY_API_KEY capability: consumes: - type: http namespace: fossology-job baseUri: http://localhost/repo/api/v1 description: FOSSology API — Job business capability. Self-contained, no shared references. resources: - name: jobs path: /jobs operations: - name: getjobs method: GET description: Gets all jobs created by the logged in user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: header type: integer - name: page in: header type: integer - name: sort in: query type: string - name: status in: query type: string description: Returns only jobs with the selected status. - name: upload in: query type: integer description: Return jobs for the given upload id only - name: startjobs method: POST description: Schedule an Analysis outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: folderId in: header type: integer required: true - name: uploadId in: header type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: jobs-all path: /jobs/all operations: - name: getalljobs method: GET description: Gets all jobs created by all users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: header type: integer - name: page in: header type: integer - name: status in: query type: string description: Returns only jobs with the selected status. - name: sort in: query type: string - name: jobs-dashboard path: /jobs/dashboard operations: - name: getallserverjobs method: GET description: Gets all jobs server jobs with scheduler status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobs-dashboard-statistics path: /jobs/dashboard/statistics operations: - name: getjobstatistics method: GET description: Get the statistics of all the jobs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobs-history path: /jobs/history operations: - name: getjobshistoryperupload method: GET description: Get the history of all the jobs queued based on an upload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobs-scheduler-operation-run path: /jobs/scheduler/operation/run operations: - name: handleschedulerrun method: POST description: Run the scheduler outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: jobs-scheduler-operation-operationName path: /jobs/scheduler/operation/{operationName} operations: - name: getscheduleroptionsbyoperation method: GET description: get scheduler options by operation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobs-id path: /jobs/{id} operations: - name: getjobbyid method: GET description: Gets single job by id outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobs-id-queue path: /jobs/{id}/{queue} operations: - name: deletejob method: DELETE description: Deletes a job using its Id and Queue outputRawFormat: json outputParameters: - name: result type: object value: $. - name: report path: /report operations: - name: getreportsbyupload method: GET description: Get the reports for a given upload outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uploadId in: header type: integer description: Id of the upload to generate the report for required: true - name: reportFormat in: header type: string description: Which report to be genereated required: true - name: groupName in: header type: string description: The group name to chose while generating a report - name: report-id path: /report/{id} operations: - name: getreportbyid method: GET description: Download the report outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.FOSSOLOGY_API_KEY}}' exposes: - type: rest namespace: fossology-job-rest port: 8080 description: REST adapter for FOSSology API — Job. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/jobs name: jobs description: REST surface for jobs. operations: - method: GET name: getjobs description: Gets all jobs created by the logged in user call: fossology-job.getjobs with: limit: rest.limit page: rest.page sort: rest.sort status: rest.status upload: rest.upload outputParameters: - type: object mapping: $. - method: POST name: startjobs description: Schedule an Analysis call: fossology-job.startjobs with: folderId: rest.folderId uploadId: rest.uploadId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/jobs/all name: jobs-all description: REST surface for jobs-all. operations: - method: GET name: getalljobs description: Gets all jobs created by all users call: fossology-job.getalljobs with: limit: rest.limit page: rest.page status: rest.status sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/jobs/dashboard name: jobs-dashboard description: REST surface for jobs-dashboard. operations: - method: GET name: getallserverjobs description: Gets all jobs server jobs with scheduler status call: fossology-job.getallserverjobs outputParameters: - type: object mapping: $. - path: /v1/jobs/dashboard/statistics name: jobs-dashboard-statistics description: REST surface for jobs-dashboard-statistics. operations: - method: GET name: getjobstatistics description: Get the statistics of all the jobs call: fossology-job.getjobstatistics outputParameters: - type: object mapping: $. - path: /v1/jobs/history name: jobs-history description: REST surface for jobs-history. operations: - method: GET name: getjobshistoryperupload description: Get the history of all the jobs queued based on an upload call: fossology-job.getjobshistoryperupload outputParameters: - type: object mapping: $. - path: /v1/jobs/scheduler/operation/run name: jobs-scheduler-operation-run description: REST surface for jobs-scheduler-operation-run. operations: - method: POST name: handleschedulerrun description: Run the scheduler call: fossology-job.handleschedulerrun with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/jobs/scheduler/operation/{operationname} name: jobs-scheduler-operation-operationname description: REST surface for jobs-scheduler-operation-operationName. operations: - method: GET name: getscheduleroptionsbyoperation description: get scheduler options by operation call: fossology-job.getscheduleroptionsbyoperation outputParameters: - type: object mapping: $. - path: /v1/jobs/{id} name: jobs-id description: REST surface for jobs-id. operations: - method: GET name: getjobbyid description: Gets single job by id call: fossology-job.getjobbyid outputParameters: - type: object mapping: $. - path: /v1/jobs/{id}/{queue} name: jobs-id-queue description: REST surface for jobs-id-queue. operations: - method: DELETE name: deletejob description: Deletes a job using its Id and Queue call: fossology-job.deletejob outputParameters: - type: object mapping: $. - path: /v1/report name: report description: REST surface for report. operations: - method: GET name: getreportsbyupload description: Get the reports for a given upload call: fossology-job.getreportsbyupload with: uploadId: rest.uploadId reportFormat: rest.reportFormat groupName: rest.groupName outputParameters: - type: object mapping: $. - path: /v1/report/{id} name: report-id description: REST surface for report-id. operations: - method: GET name: getreportbyid description: Download the report call: fossology-job.getreportbyid outputParameters: - type: object mapping: $. - type: mcp namespace: fossology-job-mcp port: 9090 transport: http description: MCP adapter for FOSSology API — Job. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: gets-all-jobs-created-logged description: Gets all jobs created by the logged in user hints: readOnly: true destructive: false idempotent: true call: fossology-job.getjobs with: limit: tools.limit page: tools.page sort: tools.sort status: tools.status upload: tools.upload outputParameters: - type: object mapping: $. - name: schedule-analysis description: Schedule an Analysis hints: readOnly: false destructive: false idempotent: false call: fossology-job.startjobs with: folderId: tools.folderId uploadId: tools.uploadId body: tools.body outputParameters: - type: object mapping: $. - name: gets-all-jobs-created-all description: Gets all jobs created by all users hints: readOnly: true destructive: false idempotent: true call: fossology-job.getalljobs with: limit: tools.limit page: tools.page status: tools.status sort: tools.sort outputParameters: - type: object mapping: $. - name: gets-all-jobs-server-jobs description: Gets all jobs server jobs with scheduler status hints: readOnly: true destructive: false idempotent: true call: fossology-job.getallserverjobs outputParameters: - type: object mapping: $. - name: get-statistics-all-jobs description: Get the statistics of all the jobs hints: readOnly: true destructive: false idempotent: true call: fossology-job.getjobstatistics outputParameters: - type: object mapping: $. - name: get-history-all-jobs-queued description: Get the history of all the jobs queued based on an upload hints: readOnly: true destructive: false idempotent: true call: fossology-job.getjobshistoryperupload outputParameters: - type: object mapping: $. - name: run-scheduler description: Run the scheduler hints: readOnly: false destructive: false idempotent: false call: fossology-job.handleschedulerrun with: body: tools.body outputParameters: - type: object mapping: $. - name: get-scheduler-options-operation description: get scheduler options by operation hints: readOnly: true destructive: false idempotent: true call: fossology-job.getscheduleroptionsbyoperation outputParameters: - type: object mapping: $. - name: gets-single-job-id description: Gets single job by id hints: readOnly: true destructive: false idempotent: true call: fossology-job.getjobbyid outputParameters: - type: object mapping: $. - name: deletes-job-using-its-id description: Deletes a job using its Id and Queue hints: readOnly: false destructive: true idempotent: true call: fossology-job.deletejob outputParameters: - type: object mapping: $. - name: get-reports-given-upload description: Get the reports for a given upload hints: readOnly: true destructive: false idempotent: true call: fossology-job.getreportsbyupload with: uploadId: tools.uploadId reportFormat: tools.reportFormat groupName: tools.groupName outputParameters: - type: object mapping: $. - name: download-report description: Download the report hints: readOnly: true destructive: false idempotent: true call: fossology-job.getreportbyid outputParameters: - type: object mapping: $.