Canonical · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for debarchive Publication Service API

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

$.info
$.paths['/v1/publications'].get
$.paths['/v1/publications'].post
$.paths['/v1/publications/{publication}'].get
$.paths['/v1/publications/{publication}'].delete
$.paths['/v1/publications/{publication}'].patch
$.paths['/v1/publications/{publication}:publish'].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 Publication Service API
  version: 1.0.0
extends: openapi/canonical-publicationservice-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: 6
- target: $.paths['/v1/publications'].get
  update:
    x-apievangelist-phrasing:
      intent: List publications
      effect: read
      questions:
      - Which repository publications have I configured?
      - Can I filter and page through publications?
      instructions:
      - text: List my publications, {pageSize} per page.
        slots:
          pageSize: query.pageSize
      - text: List publications matching {filter}.
        slots:
          filter: query.filter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/publications'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a repository publication
      effect: write
      questions:
      - How do I define a publication that pushes a package source to a target?
      - Can I set the label and origin shown in the published Release file?
      instructions:
      - text: Create publication {displayName} from source {source} to target {publicationTarget}.
        slots:
          displayName: requestBody.displayName
          source: requestBody.source
          publicationTarget: requestBody.publicationTarget
      - text: Create publication ID {publicationId} for distribution {distribution}.
        slots:
          publicationId: query.publicationId
          distribution: requestBody.distribution
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/publications/{publication}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a publication
      effect: read
      questions:
      - How do I look up one publication's settings?
      - When was a publication last published?
      instructions:
      - text: Show publication {publication}.
        slots:
          publication: path.publication
      - text: Get the publish time of publication {publication}.
        slots:
          publication: path.publication
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/publications/{publication}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a publication
      effect: destructive
      questions:
      - How do I remove a publication?
      - Can I delete a publication I no longer publish?
      instructions:
      - text: Delete publication {publication}.
        slots:
          publication: path.publication
      - text: Remove the unused publication {publication}.
        slots:
          publication: path.publication
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/publications/{publication}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change a publication's settings
      effect: write
      questions:
      - Can I change a publication's target or source?
      - How do I update only certain publication fields with an update mask?
      instructions:
      - text: Point publication {publication} at target {publicationTarget}.
        slots:
          publication: path.publication
          publicationTarget: requestBody.publicationTarget
      - text: Update fields {updateMask} on publication {publication}.
        slots:
          updateMask: query.updateMask
          publication: path.publication
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/publications/{publication}:publish'].post
  update:
    x-apievangelist-phrasing:
      intent: Publish a publication to its target
      effect: write
      questions:
      - How do I push a publication out to its target now?
      - Can publishing overwrite existing files or clean up old ones?
      instructions:
      - text: Publish {publication} named {name}.
        slots:
          publication: path.publication
          name: requestBody.name
      - text: Publish {publication} ({name}) with force overwrite {forceOverwrite}.
        slots:
          publication: path.publication
          name: requestBody.name
          forceOverwrite: requestBody.forceOverwrite
      method: generated
      generated: '2026-09-26'