Canonical · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Testflinger Job API

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

What the actions change

x-apievangelist-phrasing

Targets 10

$.info
$.paths['/v1/job'].get
$.paths['/v1/job'].post
$.paths['/v1/job/search'].get
$.paths['/v1/job/{job_id}'].get
$.paths['/v1/job/{job_id}/action'].post
$.paths['/v1/job/{job_id}/events'].post
$.paths['/v1/job/{job_id}/position'].get
$.paths['/v1/job/{job_id}/attachments'].get
$.paths['/v1/job/{job_id}/attachments'].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 Testflinger Job API
  version: 1.0.0
extends: openapi/canonical-job-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: 9
- target: $.paths['/v1/job'].get
  update:
    x-apievangelist-phrasing:
      intent: Pick up the next job from a queue
      effect: read
      questions:
      - How does an agent ask the server for the next job on its queues?
      - What does an agent get back when no job is waiting on its queues?
      instructions:
      - text: Request the next available job for my agent's queues.
      - text: Fetch a job to run from the queues this agent supports.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit a test job
      effect: write
      questions:
      - How do I submit a test job to a Testflinger queue?
      - Can I set a priority and a global timeout when I submit a job?
      - Is it possible to get webhook updates as my job changes status?
      instructions:
      - text: Submit a job to queue {job_queue}.
        slots:
          job_queue: requestBody.job_queue
      - text: Queue job {name} on {job_queue} with priority {job_priority}.
        slots:
          name: requestBody.name
          job_queue: requestBody.job_queue
          job_priority: requestBody.job_priority
      - text: Submit a job to {job_queue} tagged {tags} and post status to {job_status_webhook}.
        slots:
          job_queue: requestBody.job_queue
          tags: requestBody.tags
          job_status_webhook: requestBody.job_status_webhook
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job/search'].get
  update:
    x-apievangelist-phrasing:
      intent: Search jobs by tag
      effect: read
      questions:
      - Can I find all jobs carrying a certain tag?
      - Which of my tagged jobs are still running?
      instructions:
      - text: Search for jobs tagged {tags}.
        slots:
          tags: query.tags
      - text: Find jobs matching {match} of tags {tags} in state {state}.
        slots:
          match: query.match
          tags: query.tags
          state: query.state
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job/{job_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a job's definition
      effect: read
      questions:
      - What did I submit as the definition of a job that already ran?
      - Can I see the provision and test data of a past job?
      instructions:
      - text: Show the job definition for {job_id}.
        slots:
          job_id: path.job_id
      - text: Get the submitted JSON of job {job_id}.
        slots:
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job/{job_id}/action'].post
  update:
    x-apievangelist-phrasing:
      intent: Take an action on a job
      effect: write
      questions:
      - How do I change the status of a job that is queued or running?
      - Which job actions does the server accept for a job ID?
      instructions:
      - text: Apply action {action} to job {job_id}.
        slots:
          action: requestBody.action
          job_id: path.job_id
      - text: Send the {action} action to job {job_id}.
        slots:
          action: requestBody.action
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job/{job_id}/events'].post
  update:
    x-apievangelist-phrasing:
      intent: Forward job status events to a webhook
      effect: write
      questions:
      - How does an agent push job status events to the webhook the user registered?
      - Can job events be forwarded to the configured status webhook?
      instructions:
      - text: Post events {events} for job {job_id} to webhook {job_status_webhook}.
        slots:
          events: requestBody.events
          job_id: path.job_id
          job_status_webhook: requestBody.job_status_webhook
      - text: Forward job {job_id} status updates to {job_status_webhook}.
        slots:
          job_id: path.job_id
          job_status_webhook: requestBody.job_status_webhook
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job/{job_id}/position'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a job's place in the queue
      effect: read
      questions:
      - How many jobs are ahead of mine in the queue?
      - Has my queued job moved up yet?
      instructions:
      - text: Show the queue position of job {job_id}.
        slots:
          job_id: path.job_id
      - text: Tell me where job {job_id} sits in its queue.
        slots:
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job/{job_id}/attachments'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a job's attachments
      effect: read
      questions:
      - Where can an agent download the files attached to a job?
      - Can I retrieve the attachment tarball I uploaded with a job?
      instructions:
      - text: Download the attachments bundle for job {job_id}.
        slots:
          job_id: path.job_id
      - text: Get the attachment tarball of job {job_id}.
        slots:
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/job/{job_id}/attachments'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a job's attachments
      effect: write
      questions:
      - How do I attach local files to a job I submitted?
      - Can I send an attachment bundle along with a test job?
      instructions:
      - text: Upload the attachments bundle for job {job_id}.
        slots:
          job_id: path.job_id
      - text: Attach this tarball to job {job_id}.
        slots:
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'