# 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'