naftiko: 1.0.0-alpha2 info: label: Instance API — Snapshots description: 'Instance API — Snapshots. 7 operations. Lead operation: List snapshots. Self-contained Naftiko capability covering one Scaleway business surface.' tags: - Scaleway - Snapshots created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SCALEWAY_API_KEY: SCALEWAY_API_KEY capability: consumes: - type: http namespace: instance-snapshots baseUri: https://api.scaleway.com description: Instance API — Snapshots business capability. Self-contained, no shared references. resources: - name: instance-v1-zones-zone-snapshots path: /instance/v1/zones/{zone}/snapshots operations: - name: listsnapshots method: GET description: List snapshots outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: organization in: query type: string description: List snapshots only for this Organization ID. - name: project in: query type: string description: List snapshots only for this Project ID. - name: per_page in: query type: integer description: Number of snapshots returned per page (positive integer lower or equal to 100). - name: page in: query type: integer description: Page to be returned. - name: name in: query type: string description: List snapshots of the requested name. - name: tags in: query type: string description: List snapshots that have the requested tag. - name: base_volume_id in: query type: string description: List snapshots originating only from this volume. - name: createsnapshot method: POST description: Create a snapshot from a specified volume or from a QCOW2 file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: body in: body type: object description: Request body (JSON). required: true - name: instance-v1-zones-zone-snapshots-snapshot_id path: /instance/v1/zones/{zone}/snapshots/{snapshot_id} operations: - name: getsnapshot method: GET description: Get a snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: snapshot_id in: path type: string description: UUID of the snapshot you want to get. required: true - name: setsnapshot method: PUT description: Set snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: snapshot_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: updatesnapshot method: PATCH description: Update a snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: snapshot_id in: path type: string description: UUID of the snapshot. (UUID format) required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletesnapshot method: DELETE description: Delete a snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: snapshot_id in: path type: string description: UUID of the snapshot you want to delete. required: true - name: instance-v1-zones-zone-snapshots-snapshot_id-export path: /instance/v1/zones/{zone}/snapshots/{snapshot_id}/export operations: - name: exportsnapshot method: POST description: Export a snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: snapshot_id in: path type: string description: Snapshot ID. required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: X-Auth-Token value: '{{env.SCALEWAY_API_KEY}}' placement: header exposes: - type: rest namespace: instance-snapshots-rest port: 8080 description: REST adapter for Instance API — Snapshots. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/instance/v1/zones/{zone}/snapshots name: instance-v1-zones-zone-snapshots description: REST surface for instance-v1-zones-zone-snapshots. operations: - method: GET name: listsnapshots description: List snapshots call: instance-snapshots.listsnapshots with: zone: rest.zone organization: rest.organization project: rest.project per_page: rest.per_page page: rest.page name: rest.name tags: rest.tags base_volume_id: rest.base_volume_id outputParameters: - type: object mapping: $. - method: POST name: createsnapshot description: Create a snapshot from a specified volume or from a QCOW2 file call: instance-snapshots.createsnapshot with: zone: rest.zone body: rest.body outputParameters: - type: object mapping: $. - path: /v1/instance/v1/zones/{zone}/snapshots/{snapshot-id} name: instance-v1-zones-zone-snapshots-snapshot-id description: REST surface for instance-v1-zones-zone-snapshots-snapshot_id. operations: - method: GET name: getsnapshot description: Get a snapshot call: instance-snapshots.getsnapshot with: zone: rest.zone snapshot_id: rest.snapshot_id outputParameters: - type: object mapping: $. - method: PUT name: setsnapshot description: Set snapshot call: instance-snapshots.setsnapshot with: zone: rest.zone snapshot_id: rest.snapshot_id body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: updatesnapshot description: Update a snapshot call: instance-snapshots.updatesnapshot with: zone: rest.zone snapshot_id: rest.snapshot_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletesnapshot description: Delete a snapshot call: instance-snapshots.deletesnapshot with: zone: rest.zone snapshot_id: rest.snapshot_id outputParameters: - type: object mapping: $. - path: /v1/instance/v1/zones/{zone}/snapshots/{snapshot-id}/export name: instance-v1-zones-zone-snapshots-snapshot-id-export description: REST surface for instance-v1-zones-zone-snapshots-snapshot_id-export. operations: - method: POST name: exportsnapshot description: Export a snapshot call: instance-snapshots.exportsnapshot with: zone: rest.zone snapshot_id: rest.snapshot_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: instance-snapshots-mcp port: 9090 transport: http description: MCP adapter for Instance API — Snapshots. 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: instance-snapshots.listsnapshots with: zone: tools.zone organization: tools.organization project: tools.project per_page: tools.per_page page: tools.page name: tools.name tags: tools.tags base_volume_id: tools.base_volume_id outputParameters: - type: object mapping: $. - name: create-snapshot-specified-volume-qcow2 description: Create a snapshot from a specified volume or from a QCOW2 file hints: readOnly: false destructive: false idempotent: false call: instance-snapshots.createsnapshot with: zone: tools.zone body: tools.body outputParameters: - type: object mapping: $. - name: get-snapshot description: Get a snapshot hints: readOnly: true destructive: false idempotent: true call: instance-snapshots.getsnapshot with: zone: tools.zone snapshot_id: tools.snapshot_id outputParameters: - type: object mapping: $. - name: set-snapshot description: Set snapshot hints: readOnly: false destructive: false idempotent: true call: instance-snapshots.setsnapshot with: zone: tools.zone snapshot_id: tools.snapshot_id body: tools.body outputParameters: - type: object mapping: $. - name: update-snapshot description: Update a snapshot hints: readOnly: false destructive: false idempotent: true call: instance-snapshots.updatesnapshot with: zone: tools.zone snapshot_id: tools.snapshot_id body: tools.body outputParameters: - type: object mapping: $. - name: delete-snapshot description: Delete a snapshot hints: readOnly: false destructive: true idempotent: true call: instance-snapshots.deletesnapshot with: zone: tools.zone snapshot_id: tools.snapshot_id outputParameters: - type: object mapping: $. - name: export-snapshot description: Export a snapshot hints: readOnly: false destructive: false idempotent: false call: instance-snapshots.exportsnapshot with: zone: tools.zone snapshot_id: tools.snapshot_id body: tools.body outputParameters: - type: object mapping: $.