naftiko: 1.0.0-alpha2 info: label: Salesforce Bulk API 2.0 — Query Jobs description: 'Salesforce Bulk API 2.0 — Query Jobs. 6 operations. Lead operation: List all query jobs. Self-contained Naftiko capability covering one Salesforce Automation business surface.' tags: - Salesforce Automation - Query Jobs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SALESFORCE_AUTOMATION_API_KEY: SALESFORCE_AUTOMATION_API_KEY capability: consumes: - type: http namespace: salesforce-bulk-query-jobs baseUri: https://{instance}.salesforce.com/services/data/v63.0 description: Salesforce Bulk API 2.0 — Query Jobs business capability. Self-contained, no shared references. resources: - name: jobs-query path: /jobs/query operations: - name: getqueryjobs method: GET description: List all query jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: jobType in: query type: string description: Filter by job type - name: queryLocator in: query type: string description: Locator for the next page of results - name: createqueryjob method: POST description: Create a query job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: jobs-query-jobId path: /jobs/query/{jobId} operations: - name: getqueryjob method: GET description: Get query job status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: abortqueryjob method: PATCH description: Abort a query job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletequeryjob method: DELETE description: Delete a query job outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobs-query-jobId-results path: /jobs/query/{jobId}/results operations: - name: getqueryjobresults method: GET description: Get query job results outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locator in: query type: string description: Locator for retrieving the next set of results from a previous response's Sforce-Locator header - name: maxRecords in: query type: integer description: Maximum number of records to return per request authentication: type: bearer token: '{{env.SALESFORCE_AUTOMATION_API_KEY}}' exposes: - type: rest namespace: salesforce-bulk-query-jobs-rest port: 8080 description: REST adapter for Salesforce Bulk API 2.0 — Query Jobs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/jobs/query name: jobs-query description: REST surface for jobs-query. operations: - method: GET name: getqueryjobs description: List all query jobs call: salesforce-bulk-query-jobs.getqueryjobs with: jobType: rest.jobType queryLocator: rest.queryLocator outputParameters: - type: object mapping: $. - method: POST name: createqueryjob description: Create a query job call: salesforce-bulk-query-jobs.createqueryjob with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/jobs/query/{jobid} name: jobs-query-jobid description: REST surface for jobs-query-jobId. operations: - method: GET name: getqueryjob description: Get query job status call: salesforce-bulk-query-jobs.getqueryjob outputParameters: - type: object mapping: $. - method: PATCH name: abortqueryjob description: Abort a query job call: salesforce-bulk-query-jobs.abortqueryjob with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletequeryjob description: Delete a query job call: salesforce-bulk-query-jobs.deletequeryjob outputParameters: - type: object mapping: $. - path: /v1/jobs/query/{jobid}/results name: jobs-query-jobid-results description: REST surface for jobs-query-jobId-results. operations: - method: GET name: getqueryjobresults description: Get query job results call: salesforce-bulk-query-jobs.getqueryjobresults with: locator: rest.locator maxRecords: rest.maxRecords outputParameters: - type: object mapping: $. - type: mcp namespace: salesforce-bulk-query-jobs-mcp port: 9090 transport: http description: MCP adapter for Salesforce Bulk API 2.0 — Query Jobs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-query-jobs description: List all query jobs hints: readOnly: true destructive: false idempotent: true call: salesforce-bulk-query-jobs.getqueryjobs with: jobType: tools.jobType queryLocator: tools.queryLocator outputParameters: - type: object mapping: $. - name: create-query-job description: Create a query job hints: readOnly: true destructive: false idempotent: false call: salesforce-bulk-query-jobs.createqueryjob with: body: tools.body outputParameters: - type: object mapping: $. - name: get-query-job-status description: Get query job status hints: readOnly: true destructive: false idempotent: true call: salesforce-bulk-query-jobs.getqueryjob outputParameters: - type: object mapping: $. - name: abort-query-job description: Abort a query job hints: readOnly: false destructive: false idempotent: true call: salesforce-bulk-query-jobs.abortqueryjob with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-query-job description: Delete a query job hints: readOnly: false destructive: true idempotent: true call: salesforce-bulk-query-jobs.deletequeryjob outputParameters: - type: object mapping: $. - name: get-query-job-results description: Get query job results hints: readOnly: true destructive: false idempotent: true call: salesforce-bulk-query-jobs.getqueryjobresults with: locator: tools.locator maxRecords: tools.maxRecords outputParameters: - type: object mapping: $.