Knock · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Knock App Audiences API

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

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/v1/audiences/{key}/members'].get
$.paths['/v1/audiences/{key}/members'].post
$.paths['/v1/audiences/{key}/members'].delete
$.paths['/v1/audiences/{audience_key}'].get
$.paths['/v1/audiences/{audience_key}'].put
$.paths['/v1/audiences/{audience_key}'].delete
$.paths['/v1/audiences/{audience_key}/validate'].put
$.paths['/v1/audiences'].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 Knock App Audiences API
  version: 1.0.0
extends: openapi/knock-app-audiences-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: 8
- target: $.paths['/v1/audiences/{key}/members'].get
  update:
    x-apievangelist-phrasing:
      intent: List the members of an audience
      effect: read
      questions:
      - Who is currently in a given audience?
      - Can I page through everyone belonging to one audience?
      instructions:
      - text: List the members of audience {key}.
        slots:
          key: path.key
      - text: Show who belongs to the {key} audience.
        slots:
          key: path.key
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/audiences/{key}/members'].post
  update:
    x-apievangelist-phrasing:
      intent: Add members to an audience
      effect: write
      questions:
      - How do I add users to an existing audience?
      - Can adding members also create the audience if it doesn't exist yet?
      instructions:
      - text: Add {members} to audience {key}.
        slots:
          members: requestBody.members
          key: path.key
      - text: Add {members} to audience {key}, creating the audience if needed ({create_audience}).
        slots:
          members: requestBody.members
          key: path.key
          create_audience: query.create_audience
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/audiences/{key}/members'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove members from an audience
      effect: destructive
      questions:
      - How do I take specific users out of an audience?
      - Can I remove several members from one audience in one call?
      instructions:
      - text: Remove {members} from audience {key}.
        slots:
          members: requestBody.members
          key: path.key
      - text: 'Drop these people from the {key} audience: {members}.'
        slots:
          members: requestBody.members
          key: path.key
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an audience definition by key
      effect: read
      questions:
      - How do I look up a single audience's definition by its key?
      - Can I see an audience without its uncommitted changes?
      instructions:
      - text: Get audience {audience_key} in {environment}.
        slots:
          audience_key: path.audience_key
          environment: query.environment
      - text: Show the {audience_key} audience definition on branch {branch} in {environment}.
        slots:
          audience_key: path.audience_key
          branch: query.branch
          environment: query.environment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or update an audience
      effect: write
      questions:
      - How do I create a new audience or update one that already exists?
      - Can I commit an audience change with a message when I save it?
      instructions:
      - text: Upsert audience {audience_key} in {environment} with {audience}.
        slots:
          audience_key: path.audience_key
          environment: query.environment
          audience: requestBody.audience
      - text: Save audience {audience_key} and commit it with message {commit_message} in {environment}.
        slots:
          audience_key: path.audience_key
          commit_message: query.commit_message
          environment: query.environment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive an audience everywhere
      effect: destructive
      questions:
      - What happens to an audience when I archive it across all environments?
      - How do I retire an audience I no longer use?
      instructions:
      - text: Archive audience {audience_key} using {environment}.
        slots:
          audience_key: path.audience_key
          environment: query.environment
      - text: Retire the {audience_key} audience across all environments, scoped from {environment}.
        slots:
          audience_key: path.audience_key
          environment: query.environment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}/validate'].put
  update:
    x-apievangelist-phrasing:
      intent: Validate an audience payload without saving
      effect: read
      questions:
      - Can I check an audience definition for errors before saving it?
      - Is there a dry run for audience payloads that doesn't persist anything?
      instructions:
      - text: 'Validate this audience payload for {audience_key} in {environment}: {audience}.'
        slots:
          audience_key: path.audience_key
          environment: query.environment
          audience: requestBody.audience
      - text: Dry-run audience {audience} without saving it, under key {audience_key} in {environment}.
        slots:
          audience: requestBody.audience
          audience_key: path.audience_key
          environment: query.environment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/audiences'].get
  update:
    x-apievangelist-phrasing:
      intent: List audiences in an environment
      effect: read
      questions:
      - Which audiences exist in my development environment?
      - How many audiences can I fetch per page?
      instructions:
      - text: List all audiences in {environment}.
        slots:
          environment: query.environment
      - text: List the first {limit} audiences on branch {branch} in {environment}.
        slots:
          limit: query.limit
          branch: query.branch
          environment: query.environment
      method: generated
      generated: '2026-10-01'