Canonical · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canonical Applications API

46 actions 46 updates phrasing extends openapi/canonical-applications-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 46 · first 16 shown; the file carries all of them

$.info
$.paths['/1.0/applications'].get
$.paths['/1.0/applications'].post
$.paths['/1.0/applications'].delete
$.paths['/1.0/applications/{id}'].get
$.paths['/1.0/applications/{id}'].delete
$.paths['/1.0/applications/{id}'].patch
$.paths['/1.0/applications/{id}/'].patch
$.paths['/1.0/applications/{id}/manifest'].get
$.paths['/1.0/applications/{id}/{version}'].get
$.paths['/1.0/applications/{id}/{version}'].delete
$.paths['/1.0/applications/{id}/{version}'].patch
$.paths['/1.0/applications/{id}/{version}/manifest'].get
$.paths['/1.0/applications?recursion=1'].get
$.paths['/api/v1/applications/foxglove/dashboards/'].get
$.paths['/api/v1/applications/foxglove/dashboards/'].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 Canonical Applications API
  version: 1.0.0
extends: openapi/canonical-applications-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: 45
- target: $.paths['/1.0/applications'].get
  update:
    x-apievangelist-phrasing:
      intent: List Android applications in AMS
      effect: read
      questions:
      - Which Android applications are stored in my Anbox Management Service?
      - Can I filter AMS applications by instance type or publication status?
      - How do I page through the application list in Anbox using offset and limit?
      instructions:
      - text: List the AMS applications named {name}.
        slots:
          name: query.name
      - text: Show AMS applications with status {status}, {limit} at a time.
        slots:
          status: query.status
          limit: query.limit
      - text: List every Anbox application tagged {tags}.
        slots:
          tags: query.tags
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an application from a package
      effect: write
      questions:
      - How do I upload a new Android app package with a manifest.yaml to AMS?
      - Can a new Anbox application be created as a virtual machine instead of a container?
      - What archive formats does AMS accept when creating an application?
      instructions:
      - text: Create a new AMS application from the package {upfile}.
        slots:
          upfile: requestBody.upfile
      - text: Upload {upfile} as a new Anbox application that runs as a VM ({vm}).
        slots:
          upfile: requestBody.upfile
          vm: query.vm
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete several applications at once
      effect: destructive
      questions:
      - Can I remove a batch of AMS applications in one request?
      - What happens if one application fails to delete during a bulk delete in Anbox?
      instructions:
      - text: Bulk delete the AMS applications {ids}.
        slots:
          ids: requestBody.ids
      - text: Force-delete applications {ids} from AMS in a single call even if they are in use ({force}).
        slots:
          ids: requestBody.ids
          force: requestBody.force
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get details of one AMS application
      effect: read
      questions:
      - Where can I see the details stored for a single Anbox application?
      - What status and versions does one of my AMS applications have?
      instructions:
      - text: Show the AMS application {id}.
        slots:
          id: path.id
      - text: Get the current details of Anbox application {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an application and all its versions
      effect: destructive
      questions:
      - How do I remove a single Anbox application along with every version of it?
      - Does deleting an AMS application also delete its versions?
      instructions:
      - text: Delete AMS application {id} and all of its versions.
        slots:
          id: path.id
      - text: Remove the Anbox application {id} entirely.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Replace an application's package
      effect: write
      questions:
      - Can I push a new bzip2 or zip package to an existing AMS application?
      - How do I ship an updated APK bundle for an app that already exists in Anbox?
      instructions:
      - text: Upload the new package {upfile} to AMS application {id}.
        slots:
          upfile: requestBody.upfile
          id: path.id
      - text: Replace the package of Anbox application {id} with {upfile}.
        slots:
          id: path.id
          upfile: requestBody.upfile
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}/'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update an application's metadata only
      effect: write
      questions:
      - Which AMS application metadata changes create a new application version?
      - Can I change an Anbox app's tags or resources without uploading a new package?
      - Is it possible to stop automatic updates for one AMS application?
      instructions:
      - text: Set the tags of AMS application {id} to {tags} without changing its package.
        slots:
          id: path.id
          tags: requestBody.tags
      - text: Change the instance type of Anbox application {id} to {instance_type}.
        slots:
          id: path.id
          instance_type: requestBody.instance-type
      - text: Turn off automatic updates for AMS application {id} ({inhibit}).
        slots:
          id: path.id
          inhibit: requestBody.inhibit_auto_updates
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}/manifest'].get
  update:
    x-apievangelist-phrasing:
      intent: Download an application's latest manifest
      effect: read
      questions:
      - Can I download the latest manifest.yaml of an AMS application?
      - Where do I get the current manifest file an Anbox app was built from?
      instructions:
      - text: Download the latest manifest of AMS application {id}.
        slots:
          id: path.id
      - text: Fetch the current manifest.yaml for Anbox application {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}/{version}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one version of an application
      effect: read
      questions:
      - What information does AMS keep about a specific version of an application?
      - Can I look up an older version of an Anbox application?
      instructions:
      - text: Show version {version} of AMS application {id}.
        slots:
          version: path.version
          id: path.id
      - text: Get the details of Anbox application {id} at version {version}.
        slots:
          id: path.id
          version: path.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}/{version}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete one version of an application
      effect: destructive
      questions:
      - How do I remove only one version of an AMS application and keep the rest?
      - Can I force-delete an Anbox application version that is still in use?
      instructions:
      - text: Delete version {version} of AMS application {id}.
        slots:
          version: path.version
          id: path.id
      - text: Force-remove version {version} of Anbox application {id} ({force}).
        slots:
          version: path.version
          id: path.id
          force: requestBody.force
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}/{version}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Publish or unpublish an application version
      effect: write
      questions:
      - Can I mark a specific version of an AMS application as published?
      - Which version of an Anbox app is available to launch, and can I change that?
      instructions:
      - text: Set the published flag of version {version} of AMS application {id} to {published}.
        slots:
          version: path.version
          id: path.id
          published: requestBody.published
      - text: Unpublish version {version} of Anbox application {id}.
        slots:
          version: path.version
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications/{id}/{version}/manifest'].get
  update:
    x-apievangelist-phrasing:
      intent: Download the manifest of an application version
      effect: read
      questions:
      - Can I get the manifest file used by an older version of an AMS application?
      - Where do I download the manifest.yaml for one specific Anbox app version?
      instructions:
      - text: Download the manifest for version {version} of AMS application {id}.
        slots:
          version: path.version
          id: path.id
      - text: Fetch manifest.yaml of Anbox application {id}, version {version}.
        slots:
          id: path.id
          version: path.version
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/applications?recursion=1'].get
  update:
    x-apievangelist-phrasing:
      intent: List applications with full details
      effect: read
      questions:
      - Can I list every AMS application with its full definition instead of just URLs?
      - Which Anbox call returns the expanded application objects in one response?
      instructions:
      - text: List all AMS applications with their full definitions expanded.
      - text: Show the expanded records of Anbox applications with status {status}.
        slots:
          status: query.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/foxglove/dashboards/'].get
  update:
    x-apievangelist-phrasing:
      intent: List Foxglove dashboards
      effect: read
      questions:
      - Which Foxglove dashboards are configured in my Canonical Observability stack?
      - What Foxglove dashboards are registered and what attributes do they have?
      instructions:
      - text: List all Foxglove dashboards.
      - text: Show every registered Foxglove dashboard with its attributes.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/foxglove/dashboards/'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a Foxglove dashboard
      effect: write
      questions:
      - How do I register a new Foxglove dashboard layout?
      - Can I upload Foxglove dashboard JSON under my own ID?
      instructions:
      - text: Add a Foxglove dashboard with ID {uid} using the layout {dashboard}.
        slots:
          uid: requestBody.uid
          dashboard: requestBody.dashboard
      - text: Register Foxglove dashboard {uid}.
        slots:
          uid: requestBody.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/foxglove/dashboards/{uid}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a Foxglove dashboard JSON file
      effect: read
      questions:
      - Can I download the JSON of one Foxglove dashboard as a file?
      - Where do I export a Foxglove dashboard layout I already added?
      instructions:
      - text: Download the Foxglove dashboard {uid} as JSON.
        slots:
          uid: path.uid
      - text: Export Foxglove dashboard {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/foxglove/dashboards/{uid}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a Foxglove dashboard
      effect: write
      questions:
      - How do I overwrite every field of an existing Foxglove dashboard?
      - Can I swap in a whole new layout for a Foxglove dashboard I already have?
      instructions:
      - text: Replace Foxglove dashboard {uid} entirely with {dashboard}.
        slots:
          uid: path.uid
          dashboard: requestBody.dashboard
      - text: Overwrite all fields of Foxglove dashboard {uid}, keeping ID {new_uid}.
        slots:
          uid: path.uid
          new_uid: requestBody.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/foxglove/dashboards/{uid}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a Foxglove dashboard
      effect: destructive
      questions:
      - How do I remove a Foxglove dashboard I no longer need?
      - Can a Foxglove dashboard be deleted by its ID?
      instructions:
      - text: Delete Foxglove dashboard {uid}.
        slots:
          uid: path.uid
      - text: Remove the Foxglove dashboard with ID {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/foxglove/dashboards/{uid}/'].patch
  update:
    x-apievangelist-phrasing:
      intent: Patch fields of a Foxglove dashboard
      effect: write
      questions:
      - Can I change just the layout JSON of a Foxglove dashboard without resending everything?
      - Is a partial update possible on a Foxglove dashboard?
      instructions:
      - text: Patch only the layout of Foxglove dashboard {uid} to {dashboard}.
        slots:
          uid: path.uid
          dashboard: requestBody.dashboard
      - text: Change the ID of Foxglove dashboard {uid} to {new_uid}, leaving the layout alone.
        slots:
          uid: path.uid
          new_uid: requestBody.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/grafana/dashboards/'].get
  update:
    x-apievangelist-phrasing:
      intent: List Grafana dashboards
      effect: read
      questions:
      - Which Grafana dashboards are configured for my devices?
      - What Grafana dashboards are registered and what attributes do they have?
      instructions:
      - text: List all Grafana dashboards.
      - text: Show every registered Grafana dashboard with its attributes.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/grafana/dashboards/'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a Grafana dashboard
      effect: write
      questions:
      - How do I register a new Grafana dashboard definition?
      - Can I upload Grafana dashboard JSON under my own ID?
      instructions:
      - text: Add a Grafana dashboard with ID {uid} using the definition {dashboard}.
        slots:
          uid: requestBody.uid
          dashboard: requestBody.dashboard
      - text: Register Grafana dashboard {uid}.
        slots:
          uid: requestBody.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/grafana/dashboards/{uid}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a Grafana dashboard JSON file
      effect: read
      questions:
      - Can I download the JSON of one Grafana dashboard as a file?
      - Where do I export a Grafana dashboard definition I already added?
      instructions:
      - text: Download the Grafana dashboard {uid} as JSON.
        slots:
          uid: path.uid
      - text: Export Grafana dashboard {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/grafana/dashboards/{uid}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a Grafana dashboard
      effect: write
      questions:
      - How do I overwrite every field of an existing Grafana dashboard?
      - Can I swap in a whole new definition for a Grafana dashboard I already have?
      instructions:
      - text: Replace Grafana dashboard {uid} entirely with {dashboard}.
        slots:
          uid: path.uid
          dashboard: requestBody.dashboard
      - text: Overwrite all fields of Grafana dashboard {uid}, keeping ID {new_uid}.
        slots:
          uid: path.uid
          new_uid: requestBody.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/grafana/dashboards/{uid}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a Grafana dashboard
      effect: destructive
      questions:
      - How do I remove a Grafana dashboard I no longer need?
      - Can a Grafana dashboard be deleted by its ID?
      instructions:
      - text: Delete Grafana dashboard {uid}.
        slots:
          uid: path.uid
      - text: Remove the Grafana dashboard with ID {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/grafana/dashboards/{uid}/'].patch
  update:
    x-apievangelist-phrasing:
      intent: Patch fields of a Grafana dashboard
      effect: write
      questions:
      - Can I change just the JSON definition of a Grafana dashboard without resending everything?
      - Is a partial update possible on a Grafana dashboard?
      instructions:
      - text: Patch only the definition of Grafana dashboard {uid} to {dashboard}.
        slots:
          uid: path.uid
          dashboard: requestBody.dashboard
      - text: Change the ID of Grafana dashboard {uid} to {new_uid}, leaving the definition alone.
        slots:
          uid: path.uid
          new_uid: requestBody.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/loki/alert_rules/'].get
  update:
    x-apievangelist-phrasing:
      intent: List Loki alert rule files
      effect: read
      questions:
      - Which Loki alert rule files are configured, including templated ones rendered per device?
      - What log alerting rules are set up for my devices in Loki?
      instructions:
      - text: List all Loki alert rule files.
      - text: Show every Loki alert rule, with templated rules rendered for their devices.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/loki/alert_rules/'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a Loki alert rule file
      effect: write
      questions:
      - How do I add a new Loki alert rule file?
      - Can a Loki alert rule file be marked as a template for devices to render?
      instructions:
      - text: Add Loki alert rule file {uid} with rules {rules}.
        slots:
          uid: requestBody.uid
          rules: requestBody.rules
      - text: Create templated Loki alert rule file {uid} with rules {rules} (template {template}).
        slots:
          uid: requestBody.uid
          rules: requestBody.rules
          template: requestBody.template
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/loki/alert_rules/{uid}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Download one Loki alert rule file
      effect: read
      questions:
      - Can I download a single Loki alert rule file as it was written, without template rendering?
      - Where do I get the raw rules of one Loki alert rule file?
      instructions:
      - text: Download Loki alert rule file {uid}.
        slots:
          uid: path.uid
      - text: Fetch the unrendered rules in Loki rule file {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/loki/alert_rules/{uid}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a Loki alert rule file
      effect: write
      questions:
      - How do I overwrite all the rules in an existing Loki alert rule file?
      - Can I replace a Loki rule file wholesale, template flag included?
      instructions:
      - text: Replace Loki alert rule file {uid} completely with rules {rules}.
        slots:
          uid: path.uid
          rules: requestBody.rules
      - text: Overwrite Loki rule file {uid} as ID {new_uid} with rules {rules} and template {template}.
        slots:
          uid: path.uid
          new_uid: requestBody.uid
          rules: requestBody.rules
          template: requestBody.template
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/loki/alert_rules/{uid}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a Loki alert rule file
      effect: destructive
      questions:
      - How do I remove a Loki alert rule file?
      - Can I stop a set of Loki log alerts by deleting their rule file?
      instructions:
      - text: Delete Loki alert rule file {uid}.
        slots:
          uid: path.uid
      - text: Remove the Loki rule file with ID {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/loki/alert_rules/{uid}/'].patch
  update:
    x-apievangelist-phrasing:
      intent: Patch fields of a Loki alert rule file
      effect: write
      questions:
      - Can I change only the rules of a Loki alert rule file and leave the rest alone?
      - Is it possible to toggle the template flag on an existing Loki rule file?
      instructions:
      - text: Patch only the rules of Loki alert rule file {uid} to {rules}.
        slots:
          uid: path.uid
          rules: requestBody.rules
      - text: Set the template flag of Loki rule file {uid} to {template}.
        slots:
          uid: path.uid
          template: requestBody.template
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/prometheus/alert_rules/'].get
  update:
    x-apievangelist-phrasing:
      intent: List Prometheus alert rule files
      effect: read
      questions:
      - Can I see all Prometheus alerting rules, with device templates already filled in?
      - What metric alerting rules are set up for my devices in Prometheus?
      instructions:
      - text: List all Prometheus alert rule files.
      - text: Show every Prometheus alert rule, with templated rules rendered for their devices.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/prometheus/alert_rules/'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a Prometheus alert rule file
      effect: write
      questions:
      - How do I add a new Prometheus alert rule file?
      - Is it possible to upload Prometheus rules that each device renders from a template?
      instructions:
      - text: Add Prometheus alert rule file {uid} with rules {rules}.
        slots:
          uid: requestBody.uid
          rules: requestBody.rules
      - text: Create templated Prometheus alert rule file {uid} with rules {rules} (template {template}).
        slots:
          uid: requestBody.uid
          rules: requestBody.rules
          template: requestBody.template
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/prometheus/alert_rules/{uid}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Download one Prometheus alert rule file
      effect: read
      questions:
      - How can I export one Prometheus rules file exactly as uploaded?
      - Which endpoint returns a single Prometheus rule file with templates left unrendered?
      instructions:
      - text: Download Prometheus alert rule file {uid}.
        slots:
          uid: path.uid
      - text: Fetch the unrendered rules in Prometheus rule file {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/prometheus/alert_rules/{uid}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a Prometheus alert rule file
      effect: write
      questions:
      - Can I fully replace a Prometheus rules file I uploaded earlier?
      - Can I replace a Prometheus rule file wholesale, template flag included?
      instructions:
      - text: Replace Prometheus alert rule file {uid} completely with rules {rules}.
        slots:
          uid: path.uid
          rules: requestBody.rules
      - text: Overwrite Prometheus rule file {uid} as ID {new_uid} with rules {rules} and template {template}.
        slots:
          uid: path.uid
          new_uid: requestBody.uid
          rules: requestBody.rules
          template: requestBody.template
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/prometheus/alert_rules/{uid}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a Prometheus alert rule file
      effect: destructive
      questions:
      - How do I remove a Prometheus alert rule file?
      - Can I stop a set of Prometheus metric alerts by deleting their rule file?
      instructions:
      - text: Delete Prometheus alert rule file {uid}.
        slots:
          uid: path.uid
      - text: Remove the Prometheus rule file with ID {uid}.
        slots:
          uid: path.uid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/applications/prometheus/alert_rules/{uid}/'].patch
  update:
    x-apievangelist-phrasing:
      intent: Patch fields of a Prometheus alert rule file
      effect: write
      questions:
      - Is a partial edit supported for Prometheus alerting rules, sending just the changed field?
      - Can I switch an existing Prometheus rules file between templated and plain?
      instructions:
      - text: Patch only the rules of Prometheus alert rule file {uid} to {rules}.
        slots:
          uid: path.uid
          rules: requestBody.rules
      - text: Set the template flag of Prometheus rule file {uid} to {template}.
        slots:
          uid: path.uid
          template: requestBody.template
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications'].get
  update:
    x-apievangelist-phrasing:
      intent: List API client applications
      effect: read
      questions:
      - Which client applications have API keys for the test observer service?
      - What API-key applications are registered and what permissions do they hold?
      instructions:
      - text: List all registered API client applications.
      - text: Show every application that has an API key, with its permissions.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications'].post
  update:
    x-apievangelist-phrasing:
      intent: Register an API client application
      effect: write
      questions:
      - How do I create a new application that gets its own API key?
      - Can I choose which permissions a new API client application receives?
      instructions:
      - text: Create an API client application named {name} with permissions {permissions}.
        slots:
          name: requestBody.name
          permissions: requestBody.permissions
      - text: Register the application {name} and issue it an API key with {permissions}.
        slots:
          name: requestBody.name
          permissions: requestBody.permissions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/me/rotate'].post
  update:
    x-apievangelist-phrasing:
      intent: Rotate the calling application's API key
      effect: write
      questions:
      - Can my application rotate its own API key without an admin?
      - How do I get a fresh API key for the application I'm authenticated as?
      instructions:
      - text: Rotate the API key of the application I'm signed in as.
      - text: Issue a new API key for my own application and invalidate the old one.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{application_id}/rotate'].post
  update:
    x-apievangelist-phrasing:
      intent: Rotate another application's API key
      effect: write
      questions:
      - Can an admin rotate the API key of a specific client application?
      - What do I do if a particular application's API key has leaked?
      instructions:
      - text: Rotate the API key of application {application_id}.
        slots:
          application_id: path.application_id
      - text: Replace the leaked API key for client application {application_id}.
        slots:
          application_id: path.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/me'].get
  update:
    x-apievangelist-phrasing:
      intent: Show the currently authenticated application
      effect: read
      questions:
      - Which application does my current API key belong to?
      - Can I check the permissions of the application I'm calling as?
      instructions:
      - text: Show the application tied to my current API key.
      - text: Tell me which client application I'm authenticated as and its permissions.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{application_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an API client application
      effect: read
      questions:
      - Where can I see the permissions of one specific client application?
      - Can I look up a registered API application by its ID?
      instructions:
      - text: Show client application {application_id}.
        slots:
          application_id: path.application_id
      - text: Get the permissions granted to application {application_id}.
        slots:
          application_id: path.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{application_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an API client application
      effect: destructive
      questions:
      - How do I revoke access for a client application completely?
      - Does deleting a registered application remove its API key too?
      instructions:
      - text: Delete client application {application_id}.
        slots:
          application_id: path.application_id
      - text: Remove API application {application_id} so its key stops working.
        slots:
          application_id: path.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/applications/{application_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change an application's permissions
      effect: write
      questions:
      - Can I grant or remove permissions on an existing API client application?
      - How do I narrow what a registered application's API key is allowed to do?
      instructions:
      - text: Set the permissions of application {application_id} to {permissions}.
        slots:
          application_id: path.application_id
          permissions: requestBody.permissions
      - text: Update client application {application_id} with permissions {permissions}.
        slots:
          application_id: path.application_id
          permissions: requestBody.permissions
      method: generated
      generated: '2026-09-26'