# 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'