# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Antavo Clubs API version: 1.0.0 extends: openapi/antavo-clubs-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: 22 - target: $.paths['/v1/clubs/{club_id}/history'].get update: x-apievangelist-phrasing: intent: Show a club's action history effect: read questions: - What actions have happened in a club over time? - Can I filter a club's history by event type or member? instructions: - text: Show the history of club {club_id}. slots: club_id: path.club_id - text: List {type} actions in club {club_id} by customer {customer_id}. slots: type: query.type club_id: path.club_id customer_id: query.customer_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}'].get update: x-apievangelist-phrasing: intent: Get one club member's details effect: read questions: - What role, balance and spending limit does a specific club member have? - Can I check one person's status inside a club? instructions: - text: Get member {customer_id}'s details in club {club_id}. slots: customer_id: path.customer_id club_id: path.club_id - text: Show the role and balance of customer {customer_id} within club {club_id}. slots: customer_id: path.customer_id club_id: path.club_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members'].get update: x-apievangelist-phrasing: intent: List a club's members effect: read questions: - Who belongs to a given club? - Can I list only club members with a certain role or status? instructions: - text: List the members of club {club_id}. slots: club_id: path.club_id - text: Show {status} members with role {role} in club {club_id}. slots: status: query.status role: query.role club_id: path.club_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/point-expiry'].get update: x-apievangelist-phrasing: intent: List a club's expiring points by date effect: read questions: - Which club points will expire within a date range? - Can I see when a club's points are due to lapse? instructions: - text: List points expiring in club {club_id} between {from} and {to}. slots: club_id: path.club_id from: query.from to: query.to - text: Find the dates club {club_id}'s points lapse from {from} through {to}. slots: club_id: path.club_id from: query.from to: query.to method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}'].get update: x-apievangelist-phrasing: intent: Get a club's details effect: read questions: - What are the details of one particular club? - Can I look up a club by its ID? instructions: - text: Get the details of club {club_id}. slots: club_id: path.club_id - text: Look up club {club_id}. slots: club_id: path.club_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/templates'].get update: x-apievangelist-phrasing: intent: List club templates effect: read questions: - Which club templates are configured? - Can I filter club templates by contribution or expiration type? instructions: - text: List all club templates. - text: Show club templates with status {status} and contribution type {contribution_type}. slots: status: query.status contribution_type: query.contribution_type method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs'].get update: x-apievangelist-phrasing: intent: List clubs effect: read questions: - Which clubs exist in my loyalty program? - Can I find clubs created from a specific template? instructions: - text: List all clubs. - text: Find clubs named {name} built on template {template_id}. slots: name: query.name template_id: query.template_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs'].post update: x-apievangelist-phrasing: intent: Create a club effect: write questions: - Can I create a new club for members to join? - Who becomes the owner when a new club is created? instructions: - text: Create a club named {name} from template {template_id} owned by {owner_id}. slots: name: requestBody.name template_id: requestBody.template_id owner_id: requestBody.owner_id - text: Start a new club {name} with template {template_id}. slots: name: requestBody.name template_id: requestBody.template_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/applicants/{customer_id}/accept'].post update: x-apievangelist-phrasing: intent: Accept a club applicant effect: write questions: - How does a club owner accept someone's request to join? - Is an event recorded when a club applicant is accepted? instructions: - text: Accept applicant {customer_id} into club {club_id}. slots: customer_id: path.customer_id club_id: path.club_id - text: Approve customer {customer_id}'s membership request for club {club_id} with reason {reason}. slots: customer_id: path.customer_id club_id: path.club_id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/applicants/{customer_id}/ban'].post update: x-apievangelist-phrasing: intent: Ban a club applicant effect: destructive questions: - Can I stop an applicant from ever applying to a club again? - What does banning a pending club applicant do? instructions: - text: Ban applicant {customer_id} from club {club_id}. slots: customer_id: path.customer_id club_id: path.club_id - text: Block customer {customer_id}'s application to club {club_id} for good, reason {reason}. slots: customer_id: path.customer_id club_id: path.club_id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/applicants/{customer_id}/refuse'].post update: x-apievangelist-phrasing: intent: Refuse a club applicant effect: write questions: - Can I turn down a club application but let them reapply later? - What happens to an applicant whose club request is declined? instructions: - text: Refuse applicant {customer_id} for club {club_id}. slots: customer_id: path.customer_id club_id: path.club_id - text: Decline customer {customer_id}'s request to join club {club_id}, leaving them free to reapply. slots: customer_id: path.customer_id club_id: path.club_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/disband'].post update: x-apievangelist-phrasing: intent: Disband a club effect: destructive questions: - Can a club owner shut down a club entirely? - What events are recorded when a club is disbanded? instructions: - text: Disband club {club_id} as actor {actor}. slots: club_id: path.club_id actor: requestBody.actor - text: Dissolve club {club_id} on behalf of {actor} with reason {reason}. slots: club_id: path.club_id actor: requestBody.actor reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/invitations'].post update: x-apievangelist-phrasing: intent: Invite a member to a club effect: write questions: - Can one club member invite another customer to join? - Who has to be named when sending a club invitation? instructions: - text: Invite customer {invitee_customer_id} to club {club_id} on behalf of {inviter_customer_id}. slots: invitee_customer_id: requestBody.invitee_customer_id club_id: path.club_id inviter_customer_id: requestBody.inviter_customer_id - text: Create a club {club_id} invitation from {inviter_customer_id} to {invitee_customer_id}. slots: club_id: path.club_id inviter_customer_id: requestBody.inviter_customer_id invitee_customer_id: requestBody.invitee_customer_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/ban'].post update: x-apievangelist-phrasing: intent: Ban a club member effect: destructive questions: - Can I remove a current club member and prevent them from rejoining? - What is recorded when an existing member is banned from a club? instructions: - text: Ban member {customer_id} from club {club_id} as {actor}. slots: customer_id: path.customer_id club_id: path.club_id actor: requestBody.actor - text: Kick customer {customer_id} out of club {club_id} permanently, actor {actor}. slots: customer_id: path.customer_id club_id: path.club_id actor: requestBody.actor method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/club-update'].post update: x-apievangelist-phrasing: intent: Rename a club effect: write questions: - Can a club member change the club's name? - Is a reason stored when a club's details are edited? instructions: - text: Rename club {club_id} to {name} as member {customer_id}. slots: club_id: path.club_id name: requestBody.name customer_id: path.customer_id - text: Change club {club_id}'s name to {name} on behalf of {customer_id}, reason {reason}. slots: club_id: path.club_id name: requestBody.name customer_id: path.customer_id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/ownership'].post update: x-apievangelist-phrasing: intent: Transfer club ownership effect: write questions: - Can I hand club ownership over to another member? - What happens to the previous owner when a new club owner is assigned? instructions: - text: Make member {customer_id} the owner of club {club_id}, actor {actor}. slots: customer_id: path.customer_id club_id: path.club_id actor: requestBody.actor - text: Transfer ownership of club {club_id} to customer {customer_id} as {actor}. slots: club_id: path.club_id customer_id: path.customer_id actor: requestBody.actor method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/point-adjustment'].post update: x-apievangelist-phrasing: intent: Adjust a club member's points effect: write questions: - Can I correct a club member's point contribution up or down? - Can club point adjustments be negative? instructions: - text: Adjust member {customer_id}'s points in club {club_id} by {points}. slots: customer_id: path.customer_id club_id: path.club_id points: requestBody.points - text: Change customer {customer_id}'s point contribution to club {club_id} by {points}, reason {reason}. slots: customer_id: path.customer_id club_id: path.club_id points: requestBody.points reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/point-donation'].post update: x-apievangelist-phrasing: intent: Donate account points to a club effect: write questions: - Can a member donate their own loyalty points to a club? - Do club cycle limits apply to point donations? instructions: - text: Donate {donated_account_points} account points from member {customer_id} to club {club_id}. slots: donated_account_points: requestBody.donated_account_points customer_id: path.customer_id club_id: path.club_id - text: Have customer {customer_id} give {donated_account_points} points from account {account} to club {club_id}. slots: customer_id: path.customer_id donated_account_points: requestBody.donated_account_points account: requestBody.account club_id: path.club_id method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/remove'].post update: x-apievangelist-phrasing: intent: Remove a member from a club effect: destructive questions: - Can I remove someone from a club but still let them rejoin later? - Which event is logged when a member is removed without a ban? instructions: - text: Remove member {customer_id} from club {club_id} as {actor}. slots: customer_id: path.customer_id club_id: path.club_id actor: requestBody.actor - text: Take customer {customer_id} out of club {club_id} without banning them, actor {actor}. slots: customer_id: path.customer_id club_id: path.club_id actor: requestBody.actor method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/unban'].post update: x-apievangelist-phrasing: intent: Unban a club member effect: write questions: - Can a banned club member be allowed back in? - Is lifting a club ban recorded in the member's history? instructions: - text: Unban customer {customer_id} from club {club_id} as {actor}. slots: customer_id: path.customer_id club_id: path.club_id actor: requestBody.actor - text: Lift the ban on member {customer_id} in club {club_id}, reason {reason}, actor {actor}. slots: customer_id: path.customer_id club_id: path.club_id reason: requestBody.reason actor: requestBody.actor method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/{club_id}/members/join-public'].post update: x-apievangelist-phrasing: intent: Join a customer to a public club effect: write questions: - Can a loyalty member join a public club directly without an invitation? - Can I record which channel a member used to join an open club? instructions: - text: Add customer {customer_id} to public club {club_id}. slots: customer_id: requestBody.customer_id club_id: path.club_id - text: Join customer {customer_id} to open club {club_id} via channel {channel}. slots: customer_id: requestBody.customer_id club_id: path.club_id channel: requestBody.channel method: generated generated: '2026-10-01' - target: $.paths['/v1/clubs/invitations/{invitation_id}'].post update: x-apievangelist-phrasing: intent: Join a private club with an invitation effect: write questions: - How does a member join a private club they were invited to? - What do I need to accept a private club invitation? instructions: - text: Accept invitation {invitation_id} to join the private club. slots: invitation_id: path.invitation_id - text: Join the private club using invitation {invitation_id} via channel {channel}. slots: invitation_id: path.invitation_id channel: requestBody.channel method: generated generated: '2026-10-01'