Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Test Observer Artefacts API
11 actions
11 updates
phrasing
extends
openapi/canonical-artefacts-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.
What the actions change
x-apievangelist-phrasing
Targets 11
$.info
$.paths['/v1/artefacts'].get
$.paths['/v1/artefacts/search'].get
$.paths['/v1/artefacts/history'].get
$.paths['/v1/artefacts/{artefact_id}'].get
$.paths['/v1/artefacts/{artefact_id}'].patch
$.paths['/v1/artefacts/{artefact_id}/versions'].get
$.paths['/v1/artefacts/{artefact_id}/environment-reviews'].get
$.paths['/v1/artefacts/{artefact_id}/environment-reviews'].patch
$.paths['/v1/artefacts/{artefact_id}/environment-reviews/{review_id}'].patch
$.paths['/v1/artefacts/{artefact_id}/builds'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Test Observer Artefacts API
version: 1.0.0
extends: openapi/canonical-artefacts-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 10
- target: $.paths['/v1/artefacts'].get
update:
x-apievangelist-phrasing:
intent: List the latest test artefacts
effect: read
questions:
- Which artefacts are currently under test in Test Observer?
- Can I narrow the latest artefacts to one family, like snaps or debs?
instructions:
- text: List the latest artefacts in family {family}.
slots:
family: query.family
- text: Show all the newest artefacts being tested.
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/search'].get
update:
x-apievangelist-phrasing:
intent: Search artefact names
effect: read
questions:
- Is there an artefact whose name contains a given word?
- Can I page through artefact name search results across several families?
instructions:
- text: Search artefact names matching {q}.
slots:
q: query.q
- text: Find artefact names like {q} in families {families}, {limit} at a time.
slots:
q: query.q
families: query.families
limit: query.limit
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/history'].get
update:
x-apievangelist-phrasing:
intent: Get an artefact's version history
effect: read
questions:
- What versions of a snap have been through testing, and when were they created?
- Can I see an artefact's version history for one track or stage only?
instructions:
- text: Show the version history of {name} in family {family}.
slots:
name: query.name
family: query.family
- text: List versions of {name} ({family}) on track {track} at stage {stage}.
slots:
name: query.name
family: query.family
track: query.track
stage: query.stage
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/{artefact_id}'].get
update:
x-apievangelist-phrasing:
intent: Get one artefact
effect: read
questions:
- What's the current status and stage of a specific artefact?
- Who is assigned to review a given artefact?
instructions:
- text: Show artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
- text: Get the status and assignee of artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/{artefact_id}'].patch
update:
x-apievangelist-phrasing:
intent: Update an artefact's status, stage or reviewers
effect: write
questions:
- How do I approve or reject an artefact after testing?
- Can I assign reviewers or link a Jira issue to an artefact?
- Is it possible to archive an artefact?
instructions:
- text: Set artefact {artefact_id} status to {status}.
slots:
artefact_id: path.artefact_id
status: requestBody.status
- text: Assign artefact {artefact_id} to {assignee_email} and link Jira issue {jira_issue}.
slots:
artefact_id: path.artefact_id
assignee_email: requestBody.assignee_email
jira_issue: requestBody.jira_issue
- text: Archive artefact {artefact_id} with comment {comment}.
slots:
artefact_id: path.artefact_id
comment: requestBody.comment
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/{artefact_id}/versions'].get
update:
x-apievangelist-phrasing:
intent: List other versions of an artefact
effect: read
questions:
- What other versions exist alongside a given artefact?
- Can I jump from one artefact to its sibling versions?
instructions:
- text: List the versions related to artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
- text: Show sibling versions of artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/{artefact_id}/environment-reviews'].get
update:
x-apievangelist-phrasing:
intent: List an artefact's environment reviews
effect: read
questions:
- Which test environments have been reviewed for an artefact?
- What review decisions were made per environment on an artefact?
instructions:
- text: List environment reviews for artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
- text: Show review decisions by environment on artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/{artefact_id}/environment-reviews'].patch
update:
x-apievangelist-phrasing:
intent: Update many environment reviews at once
effect: write
questions:
- Can I mark all environment reviews for an artefact in a single request?
- How do I bulk-update review decisions across environments?
instructions:
- text: Bulk update every environment review on artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
- text: Apply review decisions to all environments of artefact {artefact_id} in one go.
slots:
artefact_id: path.artefact_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/{artefact_id}/environment-reviews/{review_id}'].patch
update:
x-apievangelist-phrasing:
intent: Record a decision on one environment review
effect: write
questions:
- How do I approve a single environment's test results for an artefact?
- Can I leave a comment on one environment review?
instructions:
- text: Set review {review_id} on artefact {artefact_id} to decision {review_decision}.
slots:
review_id: path.review_id
artefact_id: path.artefact_id
review_decision: requestBody.review_decision
- text: Comment {review_comment} on environment review {review_id} of artefact {artefact_id}.
slots:
review_comment: requestBody.review_comment
review_id: path.review_id
artefact_id: path.artefact_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/artefacts/{artefact_id}/builds'].get
update:
x-apievangelist-phrasing:
intent: Get an artefact's builds with test executions
effect: read
questions:
- What builds does an artefact have and which tests ran on each?
- Can I see the latest test executions per build for an artefact?
instructions:
- text: Show the latest builds and their test runs for artefact {artefact_id}.
slots:
artefact_id: path.artefact_id
- text: List builds of artefact {artefact_id} with test executions.
slots:
artefact_id: path.artefact_id
method: generated
generated: '2026-09-26'