Amika SandboxSnapshots API

The SandboxSnapshots API from Amika — 3 operation(s) for sandboxsnapshots.

OpenAPI Specification

amika-sandboxsnapshots-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amika API — v0beta1 API keys SandboxSnapshots API
  version: 0beta1
tags:
- name: SandboxSnapshots
paths:
  /sandbox-snapshots:
    get:
      tags:
      - SandboxSnapshots
      summary: List sandbox-captured snapshots for the caller's org
      security:
      - bearerAuth: []
      - cookieAuth: []
      parameters:
      - schema:
          type: string
          description: If set, only return snapshots taken from sandboxes attached to this repository.
        required: false
        description: If set, only return snapshots taken from sandboxes attached to this repository.
        name: repository_id
        in: query
      - schema:
          type: string
          description: If set, only return snapshots captured from this sandbox.
        required: false
        description: If set, only return snapshots captured from this sandbox.
        name: source_sandbox_id
        in: query
      responses:
        '200':
          description: Snapshots.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSandboxSnapshotsResponse'
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
    post:
      tags:
      - SandboxSnapshots
      summary: Start capturing a snapshot from a running sandbox
      description: Validates the request, records a snapshot in the `capturing` state, and runs the (slow) Daytona capture in the background. Returns 202 immediately; poll the listing for the row to reach `active`/`failed`.
      security:
      - bearerAuth: []
      - cookieAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSandboxSnapshotRequest'
      responses:
        '202':
          description: Snapshot capture started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxSnapshot'
        '400':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '404':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '409':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '502':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
  /sandbox-snapshots/scrub-preview:
    get:
      tags:
      - SandboxSnapshots
      summary: Preview which injected secrets a 'snapshot and delete' would remove
      security:
      - bearerAuth: []
      - cookieAuth: []
      parameters:
      - schema:
          type: string
          minLength: 1
          description: The sandbox whose injected secrets would be scrubbed.
        required: false
        description: The sandbox whose injected secrets would be scrubbed.
        name: sandbox
        in: query
      - schema:
          type: string
          enum:
          - name
          - id
          - ref
          - name_or_id
          description: 'How to interpret `sandbox`: name (default), id, or ref/name_or_id (matches either; rejects ambiguity).'
        required: false
        description: 'How to interpret `sandbox`: name (default), id, or ref/name_or_id (matches either; rejects ambiguity).'
        name: by
        in: query
      - schema:
          type: string
          minLength: 1
          description: 'Deprecated: use `sandbox` with `by=id` instead.'
        required: false
        description: 'Deprecated: use `sandbox` with `by=id` instead.'
        name: sandbox_id
        in: query
      responses:
        '200':
          description: Secrets that would be scrubbed (paths + names only).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxScrubPreviewResponse'
        '400':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '404':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '409':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '502':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
  /sandbox-snapshots/{ref}:
    get:
      tags:
      - SandboxSnapshots
      summary: Read a sandbox snapshot by name (default) or id
      security:
      - bearerAuth: []
      - cookieAuth: []
      parameters:
      - schema:
          type: string
          minLength: 1
          description: 'Snapshot reference: its fully-qualified name (default) or row id. Use the `by` query param to choose.'
        required: true
        description: 'Snapshot reference: its fully-qualified name (default) or row id. Use the `by` query param to choose.'
        name: ref
        in: path
      - schema:
          type: string
          enum:
          - name
          - id
          - ref
          - name_or_id
          description: 'How to interpret the reference: name (default), id, or ref/name_or_id (matches either; rejects ambiguity).'
        required: false
        description: 'How to interpret the reference: name (default), id, or ref/name_or_id (matches either; rejects ambiguity).'
        name: by
        in: query
      responses:
        '200':
          description: Snapshot.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxSnapshot'
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '404':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '409':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '502':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
    delete:
      tags:
      - SandboxSnapshots
      summary: Delete a sandbox snapshot by name (default) or id
      security:
      - bearerAuth: []
      - cookieAuth: []
      parameters:
      - schema:
          type: string
          minLength: 1
          description: 'Snapshot reference: its fully-qualified name (default) or row id. Use the `by` query param to choose.'
        required: true
        description: 'Snapshot reference: its fully-qualified name (default) or row id. Use the `by` query param to choose.'
        name: ref
        in: path
      - schema:
          type: string
          enum:
          - name
          - id
          - ref
          - name_or_id
          description: 'How to interpret the reference: name (default), id, or ref/name_or_id (matches either; rejects ambiguity).'
        required: false
        description: 'How to interpret the reference: name (default), id, or ref/name_or_id (matches either; rejects ambiguity).'
        name: by
        in: query
      responses:
        '204':
          description: Deleted.
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '404':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '409':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '502':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
components:
  schemas:
    SandboxSnapshot:
      type: object
      properties:
        id:
          type: string
        snapshot:
          type: string
        provider:
          type: string
        description:
          type: string
          nullable: true
        source_sandbox_id:
          type: string
          nullable: true
        source_sandbox_name:
          type: string
          nullable: true
        repository_id:
          type: string
          nullable: true
        base_snapshot:
          type: string
          nullable: true
        sandbox_preset:
          type: string
          nullable: true
        sandbox_size:
          type: string
          nullable: true
        state:
          type: string
        error_message:
          type: string
          nullable: true
        created_at:
          anyOf:
          - type: string
          - type: string
            format: date-time
        updated_at:
          anyOf:
          - type: string
          - type: string
            format: date-time
        daytona:
          $ref: '#/components/schemas/ExperimentalDaytonaSnapshot'
      required:
      - id
      - snapshot
      - provider
      - description
      - source_sandbox_id
      - source_sandbox_name
      - repository_id
      - base_snapshot
      - sandbox_preset
      - sandbox_size
      - state
      - error_message
      - created_at
      - updated_at
      - daytona
    ListSandboxSnapshotsResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/SandboxSnapshot'
      required:
      - items
    ExperimentalDaytonaSnapshot:
      type: object
      nullable: true
      properties:
        name:
          type: string
        state:
          type: string
        imageName:
          type: string
        cpu:
          type: number
        memory:
          type: number
        disk:
          type: number
        createdAt:
          anyOf:
          - type: string
          - type: string
            format: date-time
        updatedAt:
          anyOf:
          - type: string
          - type: string
            format: date-time
      required:
      - name
      additionalProperties:
        nullable: true
    CreateSandboxSnapshotRequest:
      type: object
      properties:
        sandbox_id:
          type: string
          minLength: 1
          description: Source sandbox, by id.
        sandbox_name:
          type: string
          minLength: 1
          description: Source sandbox, by name.
        sandbox_ref:
          type: string
          minLength: 1
          description: Source sandbox, by id or name; rejected if both match.
        name:
          type: string
          minLength: 1
          maxLength: 80
        description:
          type: string
          maxLength: 500
        mode:
          type: string
          enum:
          - scrub_and_delete
          - full
          default: scrub_and_delete
          description: 'scrub_and_delete (default): remove Amika-injected secrets (credential files + injected env vars) from the sandbox, capture the snapshot from the clean filesystem, then delete the source sandbox. full: capture everything as-is — including secrets — and keep the sandbox running.'
      required:
      - name
    SandboxScrubPreviewResponse:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
        env_vars:
          type: array
          items:
            type: string
      required:
      - files
      - env_vars