Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Ubuntu Security API
18 actions
18 updates
phrasing
extends
openapi/canonical-security-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 18 · first 16 shown; the file carries all of them
$.info
$.paths['/security/compat/notices.json'].get
$.paths['/security/compat/notices/{notice_id}.json'].get
$.paths['/security/cves.json'].get
$.paths['/security/cves/{cve_id}.json'].get
$.paths['/security/notices.json'].get
$.paths['/security/notices/{notice_id}.json'].get
$.paths['/security/page/notices.json'].get
$.paths['/security/releases.json'].get
$.paths['/security/releases/{release_codename}.json'].get
$.paths['/security/updates/cves.json'].put
$.paths['/security/updates/cves/{cve_id}.json'].delete
$.paths['/security/updates/notices.json'].post
$.paths['/security/updates/notices/{notice_id}.json'].put
$.paths['/security/updates/notices/{notice_id}.json'].delete
$.paths['/security/updates/releases.json'].post
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 Ubuntu Security API
version: 1.0.0
extends: openapi/canonical-security-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: 17
- target: $.paths['/security/compat/notices.json'].get
update:
x-apievangelist-phrasing:
intent: List security notices (compat format)
effect: read
questions:
- Is there a backward-compatible feed of Ubuntu security notices?
- Can I page through notices in the legacy compat format for one release?
instructions:
- text: List compat-format security notices for release {release}.
slots:
release: query.release
- text: Get {limit} compat security notices mentioning CVE {cve_id}.
slots:
limit: query.limit
cve_id: query.cve_id
method: generated
generated: '2026-10-01'
- target: $.paths['/security/compat/notices/{notice_id}.json'].get
update:
x-apievangelist-phrasing:
intent: Get one security notice (compat format)
effect: read
questions:
- Can I fetch a single USN in the older compat format?
- Where is the compat version of one specific security notice?
instructions:
- text: Get compat-format notice {notice_id}.
slots:
notice_id: path.notice_id
- text: 'Show security notice {notice_id} in compat format, including hidden: {show_hidden}.'
slots:
notice_id: path.notice_id
show_hidden: query.show_hidden
method: generated
generated: '2026-10-01'
- target: $.paths['/security/cves.json'].get
update:
x-apievangelist-phrasing:
intent: Search CVEs
effect: read
questions:
- Which CVEs affect a given Ubuntu package?
- Can I list high-priority CVEs grouped by priority?
- What are the most recently updated CVEs?
instructions:
- text: Find CVEs affecting package {package}.
slots:
package: query.package
- text: Search CVEs for {q} with priority {priority}.
slots:
q: query.q
priority: query.priority
- text: List CVEs with status {status} on releases {version}.
slots:
status: query.status
version: query.version
method: generated
generated: '2026-10-01'
- target: $.paths['/security/cves/{cve_id}.json'].get
update:
x-apievangelist-phrasing:
intent: Get one CVE
effect: read
questions:
- What is Ubuntu's status and priority for a specific CVE?
- Which packages are fixed for a particular CVE ID?
instructions:
- text: Show CVE {cve_id}.
slots:
cve_id: path.cve_id
- text: Get Ubuntu's tracking details for {cve_id}.
slots:
cve_id: path.cve_id
method: generated
generated: '2026-10-01'
- target: $.paths['/security/notices.json'].get
update:
x-apievangelist-phrasing:
intent: List Ubuntu security notices
effect: read
questions:
- Which Ubuntu Security Notices were published for noble?
- Can I find the USNs that fix a particular CVE?
instructions:
- text: List security notices for release {release}.
slots:
release: query.release
- text: Find USNs that address CVEs {cves}.
slots:
cves: query.cves
- text: Show the {limit} newest notices matching {details}.
slots:
limit: query.limit
details: query.details
method: generated
generated: '2026-10-01'
- target: $.paths['/security/notices/{notice_id}.json'].get
update:
x-apievangelist-phrasing:
intent: Get one Ubuntu security notice
effect: read
questions:
- What does a specific USN fix and which packages does it update?
- Can I read the instructions published with one security notice?
instructions:
- text: Show security notice {notice_id}.
slots:
notice_id: path.notice_id
- text: Get the packages and CVEs of USN {notice_id}.
slots:
notice_id: path.notice_id
method: generated
generated: '2026-10-01'
- target: $.paths['/security/page/notices.json'].get
update:
x-apievangelist-phrasing:
intent: List notices for the security web page
effect: read
questions:
- Is there a notices listing shaped for the security notices web page?
- Can I build a notices page filtered to several releases at once?
instructions:
- text: List page-format notices for releases {release}.
slots:
release: query.release
- text: Get page {offset} of security page notices, {limit} per page.
slots:
offset: query.offset
limit: query.limit
method: generated
generated: '2026-10-01'
- target: $.paths['/security/releases.json'].get
update:
x-apievangelist-phrasing:
intent: List Ubuntu releases
effect: read
questions:
- Which Ubuntu releases does the security tracker cover?
- When does standard support end for each Ubuntu release?
instructions:
- text: List all Ubuntu releases in the security tracker.
- text: Show every tracked release with its support dates.
method: generated
generated: '2026-10-01'
- target: $.paths['/security/releases/{release_codename}.json'].get
update:
x-apievangelist-phrasing:
intent: Get one Ubuntu release
effect: read
questions:
- Is a given Ubuntu release LTS, and when does its ESM expire?
- What version number belongs to a release codename?
instructions:
- text: Show release {release_codename}.
slots:
release_codename: path.release_codename
- text: Get support and ESM dates for {release_codename}.
slots:
release_codename: path.release_codename
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/cves.json'].put
update:
x-apievangelist-phrasing:
intent: Bulk update CVE records
effect: write
questions:
- How do I push a batch of CVE updates into the security tracker?
- Can CVE records be replaced in bulk?
instructions:
- text: Replace the CVE records with this batch.
- text: Bulk upload these CVE updates to the tracker.
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/cves/{cve_id}.json'].delete
update:
x-apievangelist-phrasing:
intent: Delete a CVE record
effect: destructive
questions:
- How do I remove a CVE entry from the security tracker?
- Can a mistaken CVE record be deleted?
instructions:
- text: Delete CVE record {cve_id}.
slots:
cve_id: path.cve_id
- text: Remove {cve_id} from the security tracker.
slots:
cve_id: path.cve_id
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/notices.json'].post
update:
x-apievangelist-phrasing:
intent: Publish a new security notice
effect: write
questions:
- How do I create a new Ubuntu Security Notice?
- Which fields are required to publish a USN?
instructions:
- text: Create notice {id} titled {title} with summary {summary}, instructions {instructions}, published {published}.
slots:
id: requestBody.id
title: requestBody.title
summary: requestBody.summary
instructions: requestBody.instructions
published: requestBody.published
- text: 'Publish USN {id} "{title}" on {published}: {summary}. Instructions: {instructions}.'
slots:
id: requestBody.id
title: requestBody.title
published: requestBody.published
summary: requestBody.summary
instructions: requestBody.instructions
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/notices/{notice_id}.json'].put
update:
x-apievangelist-phrasing:
intent: Update an existing security notice
effect: write
questions:
- How do I correct a security notice that is already published?
- Can I hide an existing USN by updating it?
instructions:
- text: Update notice {notice_id} with title {title}, summary {summary}, instructions {instructions}, published {published}, id {id}.
slots:
notice_id: path.notice_id
title: requestBody.title
summary: requestBody.summary
instructions: requestBody.instructions
published: requestBody.published
id: requestBody.id
- text: Replace existing USN {notice_id} and set hidden to {is_hidden}.
slots:
notice_id: path.notice_id
is_hidden: requestBody.is_hidden
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/notices/{notice_id}.json'].delete
update:
x-apievangelist-phrasing:
intent: Delete a security notice
effect: destructive
questions:
- How do I delete a security notice that was published in error?
- Is removing a USN permanent?
instructions:
- text: Delete security notice {notice_id}.
slots:
notice_id: path.notice_id
- text: Remove USN {notice_id} from the tracker.
slots:
notice_id: path.notice_id
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/releases.json'].post
update:
x-apievangelist-phrasing:
intent: Add an Ubuntu release
effect: write
questions:
- How do I add a new Ubuntu release to the security tracker?
- What dates must I provide when registering a release?
instructions:
- text: Add release {codename} ({name} {version}) out {release_date}, LTS {lts}, dev {development}, support to {support_expires}, ESM to {esm_expires}.
slots:
codename: requestBody.codename
name: requestBody.name
version: requestBody.version
release_date: requestBody.release_date
lts: requestBody.lts
development: requestBody.development
support_expires: requestBody.support_expires
esm_expires: requestBody.esm_expires
- text: Register new release {codename} version {version}.
slots:
codename: requestBody.codename
version: requestBody.version
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/releases/{release_codename}.json'].put
update:
x-apievangelist-phrasing:
intent: Update an Ubuntu release
effect: write
questions:
- How do I change the support end date of a tracked release?
- Can I mark an existing release as no longer in development?
instructions:
- text: Update release {release_codename} to support until {support_expires} and ESM until {esm_expires}.
slots:
release_codename: path.release_codename
support_expires: requestBody.support_expires
esm_expires: requestBody.esm_expires
- text: Set development to {development} on existing release {release_codename}.
slots:
development: requestBody.development
release_codename: path.release_codename
method: generated
generated: '2026-10-01'
- target: $.paths['/security/updates/releases/{release_codename}.json'].delete
update:
x-apievangelist-phrasing:
intent: Delete an Ubuntu release
effect: destructive
questions:
- How do I remove a release from the security tracker?
- Can a release codename added by mistake be deleted?
instructions:
- text: Delete release {release_codename}.
slots:
release_codename: path.release_codename
- text: Remove {release_codename} from the tracked releases.
slots:
release_codename: path.release_codename
method: generated
generated: '2026-10-01'