naftiko: 1.0.0-alpha2 info: label: Roku Nabu Cloud — snapshots description: 'Roku Nabu Cloud — snapshots. 5 operations. Lead operation: Roku List Snapshots. Self-contained Naftiko capability covering one Roku business surface.' tags: - Roku - snapshots created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ROKU_API_KEY: ROKU_API_KEY capability: consumes: - type: http namespace: nabu-cloud-snapshots baseUri: https://api.cloud.roku.dev description: Roku Nabu Cloud — snapshots business capability. Self-contained, no shared references. resources: - name: api-v1-organisations-organisation_id-projects-project_id-devices-device_id-snaps path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices/{device_id}/snapshots operations: - name: snapshotslistsnapshots method: GET description: Roku List Snapshots outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project_id in: path type: integer required: true - name: organisation_id in: path type: integer required: true - name: device_id in: path type: integer required: true - name: items in: query type: integer description: The number of items per page. Use 0 for no limit. - name: page in: query type: integer description: The page number. Use 0 for the first page. - name: parent_id in: query type: string description: The ID of the parent Snapshot. - name: live in: query type: string description: Show live snapshots - name: name in: query type: string description: The name of the Snapshot. - name: description in: query type: string description: Description of the Snapshot. - name: properties in: query type: string description: Properties of the Snapshot. - name: rootfs_artifactory_path in: query type: string description: The path of the rootfs image in artifactory. - name: start_at in: query type: string description: The last time the snapshot was run - name: created_at in: query type: string description: The day the snapshot was created - name: snapshotscreatesnapshot method: POST description: Roku Create Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project_id in: path type: integer required: true - name: organisation_id in: path type: integer required: true - name: device_id in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v1-organisations-organisation_id-projects-project_id-devices-device_id-snaps path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices/{device_id}/snapshots/{snapshot_id} operations: - name: snapshotsgetsnapshot method: GET description: Roku Get Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project_id in: path type: integer required: true - name: organisation_id in: path type: integer required: true - name: device_id in: path type: integer required: true - name: snapshot_id in: path type: integer required: true - name: snapshotsupdatesnapshot method: PATCH description: Roku Update Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project_id in: path type: integer required: true - name: organisation_id in: path type: integer required: true - name: device_id in: path type: integer required: true - name: snapshot_id in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: snapshotsdeletesnapshot method: DELETE description: Roku Delete Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project_id in: path type: integer required: true - name: organisation_id in: path type: integer required: true - name: device_id in: path type: integer required: true - name: snapshot_id in: path type: integer required: true exposes: - type: rest namespace: nabu-cloud-snapshots-rest port: 8080 description: REST adapter for Roku Nabu Cloud — snapshots. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/snapshots name: api-v1-organisations-organisation-id-projects-project-id-devices-device-id-snaps description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices-device_id-snaps. operations: - method: GET name: snapshotslistsnapshots description: Roku List Snapshots call: nabu-cloud-snapshots.snapshotslistsnapshots with: project_id: rest.project_id organisation_id: rest.organisation_id device_id: rest.device_id items: rest.items page: rest.page parent_id: rest.parent_id live: rest.live name: rest.name description: rest.description properties: rest.properties rootfs_artifactory_path: rest.rootfs_artifactory_path start_at: rest.start_at created_at: rest.created_at outputParameters: - type: object mapping: $. - method: POST name: snapshotscreatesnapshot description: Roku Create Snapshot call: nabu-cloud-snapshots.snapshotscreatesnapshot with: project_id: rest.project_id organisation_id: rest.organisation_id device_id: rest.device_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/snapshots/{snapshot-id} name: api-v1-organisations-organisation-id-projects-project-id-devices-device-id-snaps description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices-device_id-snaps. operations: - method: GET name: snapshotsgetsnapshot description: Roku Get Snapshot call: nabu-cloud-snapshots.snapshotsgetsnapshot with: project_id: rest.project_id organisation_id: rest.organisation_id device_id: rest.device_id snapshot_id: rest.snapshot_id outputParameters: - type: object mapping: $. - method: PATCH name: snapshotsupdatesnapshot description: Roku Update Snapshot call: nabu-cloud-snapshots.snapshotsupdatesnapshot with: project_id: rest.project_id organisation_id: rest.organisation_id device_id: rest.device_id snapshot_id: rest.snapshot_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: snapshotsdeletesnapshot description: Roku Delete Snapshot call: nabu-cloud-snapshots.snapshotsdeletesnapshot with: project_id: rest.project_id organisation_id: rest.organisation_id device_id: rest.device_id snapshot_id: rest.snapshot_id outputParameters: - type: object mapping: $. - type: mcp namespace: nabu-cloud-snapshots-mcp port: 9090 transport: http description: MCP adapter for Roku Nabu Cloud — snapshots. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: roku-list-snapshots description: Roku List Snapshots hints: readOnly: true destructive: false idempotent: true call: nabu-cloud-snapshots.snapshotslistsnapshots with: project_id: tools.project_id organisation_id: tools.organisation_id device_id: tools.device_id items: tools.items page: tools.page parent_id: tools.parent_id live: tools.live name: tools.name description: tools.description properties: tools.properties rootfs_artifactory_path: tools.rootfs_artifactory_path start_at: tools.start_at created_at: tools.created_at outputParameters: - type: object mapping: $. - name: roku-create-snapshot description: Roku Create Snapshot hints: readOnly: false destructive: false idempotent: false call: nabu-cloud-snapshots.snapshotscreatesnapshot with: project_id: tools.project_id organisation_id: tools.organisation_id device_id: tools.device_id body: tools.body outputParameters: - type: object mapping: $. - name: roku-get-snapshot description: Roku Get Snapshot hints: readOnly: true destructive: false idempotent: true call: nabu-cloud-snapshots.snapshotsgetsnapshot with: project_id: tools.project_id organisation_id: tools.organisation_id device_id: tools.device_id snapshot_id: tools.snapshot_id outputParameters: - type: object mapping: $. - name: roku-update-snapshot description: Roku Update Snapshot hints: readOnly: false destructive: false idempotent: true call: nabu-cloud-snapshots.snapshotsupdatesnapshot with: project_id: tools.project_id organisation_id: tools.organisation_id device_id: tools.device_id snapshot_id: tools.snapshot_id body: tools.body outputParameters: - type: object mapping: $. - name: roku-delete-snapshot description: Roku Delete Snapshot hints: readOnly: false destructive: true idempotent: true call: nabu-cloud-snapshots.snapshotsdeletesnapshot with: project_id: tools.project_id organisation_id: tools.organisation_id device_id: tools.device_id snapshot_id: tools.snapshot_id outputParameters: - type: object mapping: $.