Canonical · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for debarchive Mirror Service API

9 actions 9 updates phrasing extends openapi/canonical-mirrorservice-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 9

$.info
$.paths['/v1/mirrors'].get
$.paths['/v1/mirrors'].post
$.paths['/v1/mirrors/{mirror}'].get
$.paths['/v1/mirrors/{mirror}'].delete
$.paths['/v1/mirrors/{mirror}'].patch
$.paths['/v1/mirrors/{mirror}/packages'].get
$.paths['/v1/mirrors/{mirror}:sync'].post
$.paths['/v1/mirrors:batchGet'].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 debarchive Mirror Service API
  version: 1.0.0
extends: openapi/canonical-mirrorservice-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: 8
- target: $.paths['/v1/mirrors'].get
  update:
    x-apievangelist-phrasing:
      intent: List package mirrors
      effect: read
      questions:
      - Which package mirrors have I set up?
      - Can I filter and page through my mirror list?
      instructions:
      - text: List my mirrors, {pageSize} per page.
        slots:
          pageSize: query.pageSize
      - text: List mirrors matching filter {filter}.
        slots:
          filter: query.filter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/mirrors'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a Debian archive mirror
      effect: write
      questions:
      - How do I set up a mirror of an upstream Debian or Ubuntu archive?
      - Does creating a mirror start downloading packages right away?
      - Can I include source packages or udebs in a new mirror?
      instructions:
      - text: Create mirror {displayName} of {archiveRoot} for distribution {distribution}, components {components}, architectures {architectures}.
        slots:
          displayName: requestBody.displayName
          archiveRoot: requestBody.archiveRoot
          distribution: requestBody.distribution
          components: requestBody.components
          architectures: requestBody.architectures
      - text: Create a mirror with ID {mirrorId} verified by GPG key {gpgKey}.
        slots:
          mirrorId: query.mirrorId
          gpgKey: requestBody.gpgKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/mirrors/{mirror}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a mirror's details
      effect: read
      questions:
      - When did a mirror last download from upstream?
      - How do I check the status of one mirror?
      instructions:
      - text: Show mirror {mirror}.
        slots:
          mirror: path.mirror
      - text: Get the last download date of mirror {mirror}.
        slots:
          mirror: path.mirror
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/mirrors/{mirror}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a mirror
      effect: destructive
      questions:
      - How do I remove a mirror I no longer need?
      - Can I force-delete a mirror that is still in use?
      instructions:
      - text: Delete mirror {mirror}.
        slots:
          mirror: path.mirror
      - text: 'Force the deletion of mirror {mirror}: {force}.'
        slots:
          mirror: path.mirror
          force: query.force
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/mirrors/{mirror}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change a mirror's upstream settings
      effect: write
      questions:
      - Can I add architectures or components to an existing mirror?
      - How do I update only specific fields of a mirror with an update mask?
      instructions:
      - text: Update mirror {mirror} to architectures {architectures}.
        slots:
          mirror: path.mirror
          architectures: requestBody.architectures
      - text: Patch fields {updateMask} on mirror {mirror}.
        slots:
          updateMask: query.updateMask
          mirror: path.mirror
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/mirrors/{mirror}/packages'].get
  update:
    x-apievangelist-phrasing:
      intent: List packages in a mirror
      effect: read
      questions:
      - Which packages are available in my mirror?
      - Can I page through the package list of a large mirror?
      instructions:
      - text: List the packages in mirror {mirror}.
        slots:
          mirror: path.mirror
      - text: Show {pageSize} packages from mirror {mirror}.
        slots:
          pageSize: query.pageSize
          mirror: path.mirror
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/mirrors/{mirror}:sync'].post
  update:
    x-apievangelist-phrasing:
      intent: Sync a mirror with its upstream
      effect: write
      questions:
      - How do I pull the latest packages into a mirror?
      - Can a sync skip packages already downloaded or ignore checksum errors?
      instructions:
      - text: Sync mirror {mirror} named {name}.
        slots:
          mirror: path.mirror
          name: requestBody.name
      - text: Force-update mirror {mirror} ({name}) using keyrings {keyrings}.
        slots:
          mirror: path.mirror
          name: requestBody.name
          keyrings: requestBody.keyrings
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/mirrors:batchGet'].post
  update:
    x-apievangelist-phrasing:
      intent: Look up several mirrors by name
      effect: read
      questions:
      - Can I fetch several mirrors in one request by name?
      - Will a batch mirror lookup return partial results if one is missing?
      instructions:
      - text: Get the mirrors named {names}.
        slots:
          names: requestBody.names
      - text: Batch look up mirrors {names}, allowing partial success.
        slots:
          names: requestBody.names
      method: generated
      generated: '2026-09-26'