Roku · Capability

Roku Nabu Cloud — snapshots

Roku Nabu Cloud — snapshots. 5 operations. Lead operation: Roku List Snapshots. Self-contained Naftiko capability covering one Roku business surface.

Run with Naftiko Rokusnapshots

What You Can Do

GET
Snapshotslistsnapshots — Roku List Snapshots
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/snapshots
POST
Snapshotscreatesnapshot — Roku Create Snapshot
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/snapshots
GET
Snapshotsgetsnapshot — Roku Get Snapshot
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/snapshots/{snapshot-id}
PATCH
Snapshotsupdatesnapshot — Roku Update Snapshot
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/snapshots/{snapshot-id}
DELETE
Snapshotsdeletesnapshot — Roku Delete Snapshot
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/snapshots/{snapshot-id}

MCP Tools

roku-list-snapshots

Roku List Snapshots

read-only idempotent
roku-create-snapshot

Roku Create Snapshot

roku-get-snapshot

Roku Get Snapshot

read-only idempotent
roku-update-snapshot

Roku Update Snapshot

idempotent
roku-delete-snapshot

Roku Delete Snapshot

idempotent

Capability Spec

nabu-cloud-snapshots.yaml Raw ↑
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: $.