Perigon · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Perigon Monitors API

11 actions 11 updates phrasing extends openapi/perigon-monitors-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Perigon's API. It is a proposal applied on top of the contract, not a document Perigon publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 11

$.info
$.paths['/v1/api/monitors'].get
$.paths['/v1/api/monitors'].post
$.paths['/v1/api/monitors/{uuid}'].get
$.paths['/v1/api/monitors/{uuid}'].delete
$.paths['/v1/api/monitors/{uuid}'].patch
$.paths['/v1/api/monitors/{uuid}/activate'].post
$.paths['/v1/api/monitors/{uuid}/events'].get
$.paths['/v1/api/monitors/{uuid}/newsletters'].get
$.paths['/v1/api/monitors/{uuid}/pause'].post
$.paths['/v1/api/monitors/{uuid}/summary'].get

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 Perigon Monitors API
  version: 1.0.0
extends: openapi/perigon-monitors-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: 10
- target: $.paths['/v1/api/monitors'].get
  update:
    x-apievangelist-phrasing:
      intent: List AI news monitors
      effect: read
      questions:
      - Which AI monitors does my organization have running?
      - Can I include archived monitors when listing them?
      - How do I find monitors that are still in draft?
      instructions:
      - text: List my monitors sorted by {sortBy} {sortOrder}.
        slots:
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      - text: Show monitors with status {status}, newest first by {sortBy} in {sortOrder} order.
        slots:
          status: query.status
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      - text: Find monitors named {name}, sorted by {sortBy} {sortOrder}.
        slots:
          name: query.name
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an AI news monitor
      effect: write
      questions:
      - How do I set up an AI monitor that watches the news for a specific signal?
      - Can a new monitor start as a draft rather than going live immediately?
      - What do I need to define, like an objective and data schema, to create a monitor?
      instructions:
      - text: Create a monitor called {name} with objective {monitoringObjective}, classification {classificationType}, query {query} and schema {dataSchema}.
        slots:
          name: requestBody.name
          monitoringObjective: requestBody.monitoringObjective
          classificationType: requestBody.classificationType
          query: requestBody.query
          dataSchema: requestBody.dataSchema
      - text: Set up a draft monitor {name} tracking {monitoringObjective} using watchlist {watchlistId}, schema {dataSchema}, query {query}, type {classificationType}.
        slots:
          name: requestBody.name
          monitoringObjective: requestBody.monitoringObjective
          watchlistId: requestBody.watchlistId
          dataSchema: requestBody.dataSchema
          query: requestBody.query
          classificationType: requestBody.classificationType
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a monitor's configuration
      effect: read
      questions:
      - What objective and query is a given monitor configured with?
      - Can I check whether one specific monitor is active or paused?
      instructions:
      - text: Show me the configuration of monitor {uuid}.
        slots:
          uuid: path.uuid
      - text: Fetch monitor {uuid} and report its current status.
        slots:
          uuid: path.uuid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive a monitor
      effect: destructive
      questions:
      - How do I retire a monitor so it stops showing up in my list?
      - Does archiving a monitor hide it from list results?
      instructions:
      - text: Archive monitor {uuid}.
        slots:
          uuid: path.uuid
      - text: Retire the monitor {uuid} by archiving it.
        slots:
          uuid: path.uuid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit a monitor's settings
      effect: write
      questions:
      - Can I change the query or objective of a monitor I already created?
      - How do I switch which contact points an existing monitor notifies?
      instructions:
      - text: Change monitor {uuid} to track {monitoringObjective} with query {query}.
        slots:
          uuid: path.uuid
          monitoringObjective: requestBody.monitoringObjective
          query: requestBody.query
      - text: Edit monitor {uuid} so it notifies contact points {contactPointIds}.
        slots:
          uuid: path.uuid
          contactPointIds: requestBody.contactPointIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/activate'].post
  update:
    x-apievangelist-phrasing:
      intent: Activate a monitor
      effect: write
      questions:
      - How do I turn on a draft or paused monitor so it starts processing news?
      - Can I restart a monitor I paused earlier?
      instructions:
      - text: Activate monitor {uuid}.
        slots:
          uuid: path.uuid
      - text: Start processing for monitor {uuid} again.
        slots:
          uuid: path.uuid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/events'].get
  update:
    x-apievangelist-phrasing:
      intent: List events a monitor detected
      effect: read
      questions:
      - What matching articles or events has my monitor detected?
      - Can I filter a monitor's detected events by event type or date range?
      instructions:
      - text: List events from monitor {uuid} sorted by {sortBy} {sortOrder}.
        slots:
          uuid: path.uuid
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      - text: Show {eventType} events detected by monitor {uuid} since {from}, sorted by {sortBy} {sortOrder}.
        slots:
          eventType: query.eventType
          uuid: path.uuid
          from: query.from
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/newsletters'].get
  update:
    x-apievangelist-phrasing:
      intent: List a monitor's newsletter digests
      effect: read
      questions:
      - Where can I read the newsletter digests my monitor has produced?
      - Can I search a monitor's newsletters by title?
      instructions:
      - text: List newsletters generated by monitor {uuid}, sorted by {sortBy} {sortOrder}.
        slots:
          uuid: path.uuid
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      - text: Find newsletters titled {title} for monitor {uuid}, ordered by {sortBy} {sortOrder}.
        slots:
          title: query.title
          uuid: path.uuid
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/pause'].post
  update:
    x-apievangelist-phrasing:
      intent: Pause a monitor
      effect: write
      questions:
      - How do I temporarily stop a monitor without archiving it?
      - Is there a way to halt a monitor's processing pipeline for now?
      instructions:
      - text: Pause monitor {uuid}.
        slots:
          uuid: path.uuid
      - text: Stop monitor {uuid} from processing for the time being.
        slots:
          uuid: path.uuid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/summary'].get
  update:
    x-apievangelist-phrasing:
      intent: List a monitor's AI summaries
      effect: read
      questions:
      - What AI-generated summaries has my monitor written about the content it matched?
      - Can I get only the monitor summaries produced in a certain date window?
      instructions:
      - text: List AI summaries for monitor {uuid} sorted by {sortBy} {sortOrder}.
        slots:
          uuid: path.uuid
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      - text: Show summaries from monitor {uuid} between {from} and {to}, sorted by {sortBy} {sortOrder}.
        slots:
          uuid: path.uuid
          from: query.from
          to: query.to
          sortBy: query.sortBy
          sortOrder: query.sortOrder
      method: generated
      generated: '2026-10-01'