naftiko: 1.0.0-alpha2 info: label: Coveo Migration API — Snapshot description: 'Coveo Migration API — Snapshot. 12 operations. Lead operation: List Snapshots. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Migration - Snapshot created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_API_KEY: COVEO_API_KEY capability: consumes: - type: http namespace: migration-snapshot baseUri: https://platform.cloud.coveo.com description: Coveo Migration API — Snapshot business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_API_KEY}}' resources: - name: rest-organizations-organizationId-snapshots path: /rest/organizations/{organizationId}/snapshots operations: - name: getallsnapshots method: GET description: List Snapshots outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: includeReports in: query type: boolean description: Whether to include snapshot reports in the response.
**Default:** `true` - name: filter in: query type: string - name: sortingOrder in: query type: string - name: sortingType in: query type: string - name: createsnapshot method: POST description: Create Snapshot from Configuration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-snapshots-file path: /rest/organizations/{organizationId}/snapshots/file operations: - name: createsnapshotfromfile method: POST description: Create Snapshot from File outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotFileType in: query type: string description: 'The type of the file containing the configuration.
**Possible values:**
- `JSON`: the configuration is in one single JSON file.
- `ZIP`: the confi' required: true - name: developerNotes in: query type: string description: A note you can attach to your snapshot.
**Example:** `pipeline snapshot` - name: body in: body type: object description: Request body (JSON). required: false - name: rest-organizations-organizationId-snapshots-self path: /rest/organizations/{organizationId}/snapshots/self operations: - name: createsnapshotfromself method: POST description: Create Organization Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: targetOrganizationId in: query type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/) where to send the snapshot.
**Example:** `destinationorganizationg7dg3gd`
By - name: developerNotes in: query type: string description: A note you can attach to your snapshot.
**Example:** `pipeline snapshot` - name: includeChildrenResources in: query type: boolean description: Whether to include child resources in the snapshot.
For example, when creating a snapshot of a query pipeline resource, if the `includeChildrenResources` pa - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-snapshots-snapshotId path: /rest/organizations/{organizationId}/snapshots/{snapshotId} operations: - name: getsnapshot method: GET description: Show Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: includeReports in: query type: boolean description: Whether to include reports with the snapshot.
**Default:** `true` - name: reportInclusion in: query type: string description: 'The level of detail of the report.
**Possible values:**
- `NONE`: no report.
- `SUMMARY`: only report on the latest operation of every kind (dry r' - name: deletesnapshot method: DELETE description: Delete Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: rest-organizations-organizationId-snapshots-snapshotId-apply path: /rest/organizations/{organizationId}/snapshots/{snapshotId}/apply operations: - name: apply method: PUT description: Apply Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: deleteMissingResources in: query type: boolean description: Whether to delete organization resources not present in the snapshot.
**Default:** `false` - name: deletionScope in: query type: string description: '**Note:** only applies when `deleteMissingResources` is set to `true`.
The scope of the resources on which to calculate deletions.
**Default:** `ONLY_TY' - name: isTransient in: query type: boolean description: Whether to delete the snapshot after it has been applied.
**Default:** `false` - name: validationRequired in: query type: boolean description: Whether to check the effects of applying the snapshot before actually applying it.When this parameter is set to true, if an operation is found to be invalid dur - name: performAutoSynchronization in: query type: boolean description: Whether to automatically synchronize resources in the snapshot with corresponding organization resources.
**Default:** `true` - name: autoSynchronizationThreshold in: query type: number description: 'If autoSynchronization is set to true, this score controls how lenient the pairing of values will be.
The value should be set to 1.00 or lower. A value of ' - name: rest-organizations-organizationId-snapshots-snapshotId-content path: /rest/organizations/{organizationId}/snapshots/{snapshotId}/content operations: - name: getarchivedsnapshotcontent method: GET description: Retrieve Snapshot Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: contentFormat in: query type: string description: The format of the snapshot content.
**FLAT:** Content unified into a single file
**SPLIT_PER_TYPE:** Content split into one file per resource type - name: rest-organizations-organizationId-snapshots-snapshotId-diff path: /rest/organizations/{organizationId}/snapshots/{snapshotId}/diff operations: - name: diff method: GET description: Show Snapshot Diff Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: relativeReportId in: query type: string description: The unique identifier of the dry-run operation report associated with the target diff report. required: true - name: numberOfLinesMax in: query type: integer description: Maximum number of lines before the diff is downloaded to a file. - name: rest-organizations-organizationId-snapshots-snapshotId-dryrun path: /rest/organizations/{organizationId}/snapshots/{snapshotId}/dryrun operations: - name: dryrun method: PUT description: Validate Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: deleteMissingResources in: query type: boolean description: Whether to simulate the deletion of organization resources not present in the snapshot.
**Default:** `false` - name: deletionScope in: query type: string description: '**Note:** only applies when `deleteMissingResources` is set to `true`.
The scope of the resources on which to calculate deletions.
**Default:** `ONLY_TY' - name: performAutoSynchronization in: query type: boolean description: Whether to automatically synchronize resources in the snapshot with corresponding organization resources.
**Default:** `true` - name: autoSynchronizationThreshold in: query type: number description: 'If autoSynchronization is set to true, this score controls how lenient the pairing of values will be.
The value should be set to 1.00 or lower. A value of ' - name: rest-organizations-organizationId-snapshots-snapshotId-push path: /rest/organizations/{organizationId}/snapshots/{snapshotId}/push operations: - name: pushsnapshot method: PUT description: Push Snapshot to Target Organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: targetOrganizationId in: query type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/) where to send the snapshot.
**Example:** `destinationorganizationg7dg3gd` required: true - name: developerNotes in: query type: string description: A note you can attach to your snapshot.
**Example:** `pipeline snapshot` - name: rest-organizations-organizationId-snapshots-snapshotId-url path: /rest/organizations/{organizationId}/snapshots/{snapshotId}/url operations: - name: generatepresignedurl method: GET description: Create URL to Retrieve Snapshot Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: snapshotId in: path type: string description: The unique identifier of the target snapshot.
**Example:** `startingorganization-xzgbf5rdaiqtaznvh74zdwcedi` required: true - name: contentType in: query type: string description: 'The version of the snapshot to show.
**Possible values:**
- `PRIMARY`: The actual snapshot content.
- `CURRENT_STATE`: The resources targeted by t' exposes: - type: rest namespace: migration-snapshot-rest port: 8080 description: REST adapter for Coveo Migration API — Snapshot. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/organizations/{organizationid}/snapshots name: rest-organizations-organizationid-snapshots description: REST surface for rest-organizations-organizationId-snapshots. operations: - method: GET name: getallsnapshots description: List Snapshots call: migration-snapshot.getallsnapshots with: organizationId: rest.organizationId includeReports: rest.includeReports filter: rest.filter sortingOrder: rest.sortingOrder sortingType: rest.sortingType outputParameters: - type: object mapping: $. - method: POST name: createsnapshot description: Create Snapshot from Configuration call: migration-snapshot.createsnapshot with: organizationId: rest.organizationId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/file name: rest-organizations-organizationid-snapshots-file description: REST surface for rest-organizations-organizationId-snapshots-file. operations: - method: POST name: createsnapshotfromfile description: Create Snapshot from File call: migration-snapshot.createsnapshotfromfile with: organizationId: rest.organizationId snapshotFileType: rest.snapshotFileType developerNotes: rest.developerNotes body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/self name: rest-organizations-organizationid-snapshots-self description: REST surface for rest-organizations-organizationId-snapshots-self. operations: - method: POST name: createsnapshotfromself description: Create Organization Snapshot call: migration-snapshot.createsnapshotfromself with: organizationId: rest.organizationId targetOrganizationId: rest.targetOrganizationId developerNotes: rest.developerNotes includeChildrenResources: rest.includeChildrenResources body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/{snapshotid} name: rest-organizations-organizationid-snapshots-snapshotid description: REST surface for rest-organizations-organizationId-snapshots-snapshotId. operations: - method: GET name: getsnapshot description: Show Snapshot call: migration-snapshot.getsnapshot with: organizationId: rest.organizationId snapshotId: rest.snapshotId includeReports: rest.includeReports reportInclusion: rest.reportInclusion outputParameters: - type: object mapping: $. - method: DELETE name: deletesnapshot description: Delete Snapshot call: migration-snapshot.deletesnapshot with: organizationId: rest.organizationId snapshotId: rest.snapshotId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/{snapshotid}/apply name: rest-organizations-organizationid-snapshots-snapshotid-apply description: REST surface for rest-organizations-organizationId-snapshots-snapshotId-apply. operations: - method: PUT name: apply description: Apply Snapshot call: migration-snapshot.apply with: organizationId: rest.organizationId snapshotId: rest.snapshotId deleteMissingResources: rest.deleteMissingResources deletionScope: rest.deletionScope isTransient: rest.isTransient validationRequired: rest.validationRequired performAutoSynchronization: rest.performAutoSynchronization autoSynchronizationThreshold: rest.autoSynchronizationThreshold outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/{snapshotid}/content name: rest-organizations-organizationid-snapshots-snapshotid-content description: REST surface for rest-organizations-organizationId-snapshots-snapshotId-content. operations: - method: GET name: getarchivedsnapshotcontent description: Retrieve Snapshot Content call: migration-snapshot.getarchivedsnapshotcontent with: organizationId: rest.organizationId snapshotId: rest.snapshotId contentFormat: rest.contentFormat outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/{snapshotid}/diff name: rest-organizations-organizationid-snapshots-snapshotid-diff description: REST surface for rest-organizations-organizationId-snapshots-snapshotId-diff. operations: - method: GET name: diff description: Show Snapshot Diff Report call: migration-snapshot.diff with: organizationId: rest.organizationId snapshotId: rest.snapshotId relativeReportId: rest.relativeReportId numberOfLinesMax: rest.numberOfLinesMax outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/{snapshotid}/dryrun name: rest-organizations-organizationid-snapshots-snapshotid-dryrun description: REST surface for rest-organizations-organizationId-snapshots-snapshotId-dryrun. operations: - method: PUT name: dryrun description: Validate Snapshot call: migration-snapshot.dryrun with: organizationId: rest.organizationId snapshotId: rest.snapshotId deleteMissingResources: rest.deleteMissingResources deletionScope: rest.deletionScope performAutoSynchronization: rest.performAutoSynchronization autoSynchronizationThreshold: rest.autoSynchronizationThreshold outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/{snapshotid}/push name: rest-organizations-organizationid-snapshots-snapshotid-push description: REST surface for rest-organizations-organizationId-snapshots-snapshotId-push. operations: - method: PUT name: pushsnapshot description: Push Snapshot to Target Organization call: migration-snapshot.pushsnapshot with: organizationId: rest.organizationId snapshotId: rest.snapshotId targetOrganizationId: rest.targetOrganizationId developerNotes: rest.developerNotes outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/snapshots/{snapshotid}/url name: rest-organizations-organizationid-snapshots-snapshotid-url description: REST surface for rest-organizations-organizationId-snapshots-snapshotId-url. operations: - method: GET name: generatepresignedurl description: Create URL to Retrieve Snapshot Content call: migration-snapshot.generatepresignedurl with: organizationId: rest.organizationId snapshotId: rest.snapshotId contentType: rest.contentType outputParameters: - type: object mapping: $. - type: mcp namespace: migration-snapshot-mcp port: 9090 transport: http description: MCP adapter for Coveo Migration API — Snapshot. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-snapshots description: List Snapshots hints: readOnly: true destructive: false idempotent: true call: migration-snapshot.getallsnapshots with: organizationId: tools.organizationId includeReports: tools.includeReports filter: tools.filter sortingOrder: tools.sortingOrder sortingType: tools.sortingType outputParameters: - type: object mapping: $. - name: create-snapshot-configuration description: Create Snapshot from Configuration hints: readOnly: false destructive: false idempotent: false call: migration-snapshot.createsnapshot with: organizationId: tools.organizationId body: tools.body outputParameters: - type: object mapping: $. - name: create-snapshot-file description: Create Snapshot from File hints: readOnly: false destructive: false idempotent: false call: migration-snapshot.createsnapshotfromfile with: organizationId: tools.organizationId snapshotFileType: tools.snapshotFileType developerNotes: tools.developerNotes body: tools.body outputParameters: - type: object mapping: $. - name: create-organization-snapshot description: Create Organization Snapshot hints: readOnly: false destructive: false idempotent: false call: migration-snapshot.createsnapshotfromself with: organizationId: tools.organizationId targetOrganizationId: tools.targetOrganizationId developerNotes: tools.developerNotes includeChildrenResources: tools.includeChildrenResources body: tools.body outputParameters: - type: object mapping: $. - name: show-snapshot description: Show Snapshot hints: readOnly: true destructive: false idempotent: true call: migration-snapshot.getsnapshot with: organizationId: tools.organizationId snapshotId: tools.snapshotId includeReports: tools.includeReports reportInclusion: tools.reportInclusion outputParameters: - type: object mapping: $. - name: delete-snapshot description: Delete Snapshot hints: readOnly: false destructive: true idempotent: true call: migration-snapshot.deletesnapshot with: organizationId: tools.organizationId snapshotId: tools.snapshotId outputParameters: - type: object mapping: $. - name: apply-snapshot description: Apply Snapshot hints: readOnly: false destructive: false idempotent: true call: migration-snapshot.apply with: organizationId: tools.organizationId snapshotId: tools.snapshotId deleteMissingResources: tools.deleteMissingResources deletionScope: tools.deletionScope isTransient: tools.isTransient validationRequired: tools.validationRequired performAutoSynchronization: tools.performAutoSynchronization autoSynchronizationThreshold: tools.autoSynchronizationThreshold outputParameters: - type: object mapping: $. - name: retrieve-snapshot-content description: Retrieve Snapshot Content hints: readOnly: true destructive: false idempotent: true call: migration-snapshot.getarchivedsnapshotcontent with: organizationId: tools.organizationId snapshotId: tools.snapshotId contentFormat: tools.contentFormat outputParameters: - type: object mapping: $. - name: show-snapshot-diff-report description: Show Snapshot Diff Report hints: readOnly: true destructive: false idempotent: true call: migration-snapshot.diff with: organizationId: tools.organizationId snapshotId: tools.snapshotId relativeReportId: tools.relativeReportId numberOfLinesMax: tools.numberOfLinesMax outputParameters: - type: object mapping: $. - name: validate-snapshot description: Validate Snapshot hints: readOnly: false destructive: false idempotent: true call: migration-snapshot.dryrun with: organizationId: tools.organizationId snapshotId: tools.snapshotId deleteMissingResources: tools.deleteMissingResources deletionScope: tools.deletionScope performAutoSynchronization: tools.performAutoSynchronization autoSynchronizationThreshold: tools.autoSynchronizationThreshold outputParameters: - type: object mapping: $. - name: push-snapshot-target-organization description: Push Snapshot to Target Organization hints: readOnly: false destructive: false idempotent: true call: migration-snapshot.pushsnapshot with: organizationId: tools.organizationId snapshotId: tools.snapshotId targetOrganizationId: tools.targetOrganizationId developerNotes: tools.developerNotes outputParameters: - type: object mapping: $. - name: create-url-retrieve-snapshot-content description: Create URL to Retrieve Snapshot Content hints: readOnly: true destructive: false idempotent: true call: migration-snapshot.generatepresignedurl with: organizationId: tools.organizationId snapshotId: tools.snapshotId contentType: tools.contentType outputParameters: - type: object mapping: $.