TextQL · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for TextQL v2 Sandcastles API

15 actions 15 updates phrasing extends openapi/textql-sandcastles-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for TextQL's API. It is a proposal applied on top of the contract, not a document TextQL publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 15

$.info
$.paths['/v2/sandcastles'].get
$.paths['/v2/sandcastles'].post
$.paths['/v2/sandcastles/{id}'].get
$.paths['/v2/sandcastles/{id}'].delete
$.paths['/v2/sandcastles/{id}/executions'].get
$.paths['/v2/sandcastles/{id}/execute'].post
$.paths['/v2/sandcastles/{id}/query'].post
$.paths['/v2/sandcastles/{id}/files'].get
$.paths['/v2/sandcastles/{id}/files'].post
$.paths['/v2/sandcastles/{id}/files/{path}'].get
$.paths['/v2/sandcastles/{id}/files/{path}'].delete
$.paths['/v2/sandcastles/{id}/exec'].post
$.paths['/v2/sandcastles/{id}/ontology/diff'].get
$.paths['/v2/sandcastles/{id}/ontology/changes'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for TextQL v2 Sandcastles API
  version: 1.0.0
extends: openapi/textql-sandcastles-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 14
- target: $.paths['/v2/sandcastles'].get
  update:
    x-apievangelist-phrasing:
      intent: List my organization's sandcastles
      effect: read
      questions:
      - Which Python sandcastles are running in my TextQL organization?
      - Can I list only stopped sandboxes?
      - Why might a sandbox that crashed still show as running for a while?
      instructions:
      - text: List sandcastles with status {status}.
        slots:
          status: query.status
      - text: Show the next {limit} sandcastles after cursor {cursor}.
        slots:
          limit: query.limit
          cursor: query.cursor
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles'].post
  update:
    x-apievangelist-phrasing:
      intent: Start or restart a sandcastle
      effect: write
      questions:
      - How do I spin up a fresh Python sandbox for running code?
      - Can I restart an existing sandcastle instead of creating a new one?
      instructions:
      - text: Start a new sandcastle.
      - text: Restart sandcastle {sandbox_id}.
        slots:
          sandbox_id: requestBody.sandbox_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a sandcastle's status and memory
      effect: read
      questions:
      - How much memory is my sandbox using right now?
      - Which dataframes are loaded in a sandcastle?
      instructions:
      - text: Get the status of sandcastle {id}.
        slots:
          id: path.id
      - text: Show memory usage and loaded dataframes for sandbox {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Stop and destroy a sandcastle
      effect: destructive
      questions:
      - How do I shut down a sandcastle I'm done with?
      - Can I still read a sandbox's execution history after it is stopped?
      instructions:
      - text: Stop sandcastle {id}.
        slots:
          id: path.id
      - text: Destroy the running sandbox {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/executions'].get
  update:
    x-apievangelist-phrasing:
      intent: List executions run in a sandcastle
      effect: read
      questions:
      - What code has been run in my sandcastle so far?
      - Does the execution log include SQL and bash runs as well as Python?
      instructions:
      - text: List executions in sandcastle {id}.
        slots:
          id: path.id
      - text: Show the latest {limit} runs in sandbox {id}.
        slots:
          limit: query.limit
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/execute'].post
  update:
    x-apievangelist-phrasing:
      intent: Run Python code in a sandcastle
      effect: write
      questions:
      - How do I run Python in a sandcastle and get stdout back?
      - Does Python run in a persistent kernel so variables survive between calls?
      instructions:
      - text: Run Python {code} in sandcastle {id}.
        slots:
          code: requestBody.code
          id: path.id
      - text: 'Execute this Python snippet in sandbox {id}: {code}'
        slots:
          id: path.id
          code: requestBody.code
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/query'].post
  update:
    x-apievangelist-phrasing:
      intent: Load connector data into a sandcastle dataframe
      effect: write
      questions:
      - How do I pull query results from a connector into a sandbox dataframe?
      - Can I run a saved .tql file instead of inline SQL when loading data?
      - Is there a cap on how many rows get loaded into the dataframe?
      instructions:
      - text: Load {query} from connector {connector_id} into sandcastle {id}.
        slots:
          query: requestBody.query
          connector_id: requestBody.connector_id
          id: path.id
      - text: Run saved TQL {tql_path} on connector {connector_id} into dataframe {dataframe_name} in sandbox {id}.
        slots:
          tql_path: requestBody.tql_path
          connector_id: requestBody.connector_id
          dataframe_name: requestBody.dataframe_name
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/files'].get
  update:
    x-apievangelist-phrasing:
      intent: List files in a sandcastle directory
      effect: read
      questions:
      - What files are in my sandbox's working directory?
      - Can I browse a subfolder of the sandcastle, like the mounted library?
      instructions:
      - text: List files in sandcastle {id}.
        slots:
          id: path.id
      - text: List the {path} directory inside sandbox {id}.
        slots:
          path: query.path
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/files'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a file to a sandcastle
      effect: write
      questions:
      - How do I put a CSV into my sandbox so Python can read it?
      - Can I upload a file directly into a sandcastle's working directory?
      instructions:
      - text: Upload {file} to sandcastle {id}.
        slots:
          file: requestBody.file
          id: path.id
      - text: Send file {file} into sandbox {id}'s working directory.
        slots:
          file: requestBody.file
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/files/{path}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a file from a sandcastle
      effect: read
      questions:
      - How do I download a chart or output file my sandbox generated?
      - Can I fetch a file from a nested folder in the sandcastle?
      instructions:
      - text: Download {path} from sandcastle {id}.
        slots:
          path: path.path
          id: path.id
      - text: Fetch the bytes of file {path} in sandbox {id}.
        slots:
          path: path.path
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/files/{path}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a file from a sandcastle
      effect: destructive
      questions:
      - How do I remove a file from my sandbox's working directory?
      - Can I delete a whole directory in a sandcastle with one call?
      instructions:
      - text: Delete {path} from sandcastle {id}.
        slots:
          path: path.path
          id: path.id
      - text: Remove file {path} in sandbox {id}.
        slots:
          path: path.path
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/exec'].post
  update:
    x-apievangelist-phrasing:
      intent: Run a one-shot shell command in a sandcastle
      effect: write
      questions:
      - Can I run a bash command in my sandbox as a fresh process?
      - Do shell commands share state with the Python kernel in a sandcastle?
      instructions:
      - text: Run command {command} in sandcastle {id}.
        slots:
          command: requestBody.command
          id: path.id
      - text: Exec {command} in sandbox {id} with environment {env}.
        slots:
          command: requestBody.command
          id: path.id
          env: requestBody.env
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/ontology/diff'].get
  update:
    x-apievangelist-phrasing:
      intent: Preview pending Ontology edits in a sandcastle
      effect: read
      questions:
      - Has my sandbox changed any files in its mounted Ontology library?
      - Can I dry-run the diff before writing sandbox edits back to the Ontology?
      instructions:
      - text: Diff the Ontology mount in sandcastle {id}.
        slots:
          id: path.id
      - text: Show pending library changes in sandbox {id} without authoring a change.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v2/sandcastles/{id}/ontology/changes'].post
  update:
    x-apievangelist-phrasing:
      intent: Write sandcastle Ontology edits back as a change
      effect: write
      questions:
      - How do I save library edits from my sandbox back to the organization's Ontology?
      - Can I open the writeback change as a draft for review?
      instructions:
      - text: Create an Ontology change from sandcastle {id} titled {title}.
        slots:
          id: path.id
          title: requestBody.title
      - text: Write back sandbox {id}'s library edits as a draft described as {description}.
        slots:
          id: path.id
          description: requestBody.description
      method: generated
      generated: '2026-10-01'