# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Appwrite Teams API version: 1.0.0 extends: openapi/appwrite-teams-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: 19 - target: $.paths['/teams'].get update: x-apievangelist-phrasing: intent: List the teams I belong to effect: read questions: - Which teams is the current user a member of? - Can I search my teams by name? instructions: - text: List the teams I'm a member of. - text: Search my teams for {search}. slots: search: query.search method: generated generated: '2026-09-26' - target: $.paths['/teams'].post update: x-apievangelist-phrasing: intent: Create a team effect: write questions: - How do I create a team in Appwrite? - Who becomes the owner when a new team is created? instructions: - text: Create a team named {name} with ID {teamId}. slots: name: requestBody.name teamId: requestBody.teamId - text: Create team {teamId} called {name} and give me the roles {roles}. slots: teamId: requestBody.teamId name: requestBody.name roles: requestBody.roles method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}'].get update: x-apievangelist-phrasing: intent: Get a team effect: read questions: - What are the details of a specific team? - Can any team member read the team's details? instructions: - text: Get team {teamId}. slots: teamId: path.teamId - text: Show me the details of team {teamId}. slots: teamId: path.teamId method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}'].put update: x-apievangelist-phrasing: intent: Rename a team effect: write questions: - How do I rename a team? - Can I change a team's display name after creating it? instructions: - text: Rename team {teamId} to {name}. slots: teamId: path.teamId name: requestBody.name - text: Change the name of team {teamId} to {name}. slots: teamId: path.teamId name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}'].delete update: x-apievangelist-phrasing: intent: Delete a team effect: destructive questions: - How do I delete a team entirely? - Who is allowed to delete a team? instructions: - text: Delete team {teamId}. slots: teamId: path.teamId - text: Permanently remove the team {teamId}. slots: teamId: path.teamId method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/installations'].get update: x-apievangelist-phrasing: intent: List apps installed on a team effect: read questions: - Which apps are installed on my team? - Can a regular team member see the team's app installations? instructions: - text: List app installations on team {teamId}. slots: teamId: path.teamId - text: Show installed apps for team {teamId} matching {queries}. slots: teamId: path.teamId queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/installations'].post update: x-apievangelist-phrasing: intent: Install an app on a team effect: write questions: - How do I install an app on a team? - What scopes does an app get when it is installed on a team? instructions: - text: Install app {appId} on team {teamId}. slots: appId: requestBody.appId teamId: path.teamId - text: Install app {appId} on team {teamId} with authorization details {authorizationDetails}. slots: appId: requestBody.appId teamId: path.teamId authorizationDetails: requestBody.authorizationDetails method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/installations/{installationId}'].get update: x-apievangelist-phrasing: intent: Get an app installation on a team effect: read questions: - What scopes were granted to a specific app installation on my team? - Can I look up one team app installation by ID? instructions: - text: Get installation {installationId} on team {teamId}. slots: installationId: path.installationId teamId: path.teamId - text: Show the details of app installation {installationId}. slots: installationId: path.installationId method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/installations/{installationId}'].put update: x-apievangelist-phrasing: intent: Refresh an app installation's grants effect: write questions: - How do I refresh an installed app's scopes after it requests new ones? - Are old installation access tokens revoked when I update an installation? instructions: - text: Refresh the scopes of installation {installationId} on team {teamId}. slots: installationId: path.installationId teamId: path.teamId - text: Update installation {installationId} on {teamId} with authorization details {authorizationDetails}. slots: installationId: path.installationId teamId: path.teamId authorizationDetails: requestBody.authorizationDetails method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/installations/{installationId}'].delete update: x-apievangelist-phrasing: intent: Uninstall an app from a team effect: destructive questions: - How do I uninstall an app from my team? - What happens to an app's access tokens when I remove it from a team? instructions: - text: Uninstall installation {installationId} from team {teamId}. slots: installationId: path.installationId teamId: path.teamId - text: Remove app installation {installationId} and revoke its tokens. slots: installationId: path.installationId method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/logs'].get update: x-apievangelist-phrasing: intent: List a team's activity logs effect: read questions: - What activity has happened on my team recently? - Can I see an audit log of changes to a team? instructions: - text: List activity logs for team {teamId}. slots: teamId: path.teamId - text: Show team {teamId} logs matching {queries}. slots: teamId: path.teamId queries: query.queries method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/memberships'].get update: x-apievangelist-phrasing: intent: List a team's members effect: read questions: - Who are the members of my team? - Can I search a team's members by name or email? instructions: - text: List the members of team {teamId}. slots: teamId: path.teamId - text: Search team {teamId} members for {search}. slots: teamId: path.teamId search: query.search method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/memberships'].post update: x-apievangelist-phrasing: intent: Invite someone to a team effect: write questions: - How do I invite a new member to my team by email? - Can I add someone to a team using just their phone number? - What role will an invited team member get? instructions: - text: Invite {email} to team {teamId} with roles {roles}. slots: email: requestBody.email teamId: path.teamId roles: requestBody.roles - text: Add user {userId} to team {teamId} as {roles}. slots: userId: requestBody.userId teamId: path.teamId roles: requestBody.roles - text: Invite phone number {phone} to team {teamId} with roles {roles}. slots: phone: requestBody.phone teamId: path.teamId roles: requestBody.roles method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/memberships/{membershipId}'].get update: x-apievangelist-phrasing: intent: Get a team member's membership effect: read questions: - What roles does a particular member have on my team? - Has a specific team invitation been accepted? instructions: - text: Get membership {membershipId} on team {teamId}. slots: membershipId: path.membershipId teamId: path.teamId - text: Show the roles for membership {membershipId}. slots: membershipId: path.membershipId method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/memberships/{membershipId}'].delete update: x-apievangelist-phrasing: intent: Remove a member from a team effect: destructive questions: - How do I remove someone from my team? - Can I cancel a team invitation that hasn't been accepted yet? instructions: - text: Remove membership {membershipId} from team {teamId}. slots: membershipId: path.membershipId teamId: path.teamId - text: Leave team {teamId} by deleting my membership {membershipId}. slots: teamId: path.teamId membershipId: path.membershipId method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/memberships/{membershipId}'].patch update: x-apievangelist-phrasing: intent: Change a team member's roles effect: write questions: - How do I promote a team member to owner? - Who can change the roles of team members? instructions: - text: Set the roles of membership {membershipId} on team {teamId} to {roles}. slots: membershipId: path.membershipId teamId: path.teamId roles: requestBody.roles - text: Change member {membershipId} in {teamId} to roles {roles}. slots: membershipId: path.membershipId teamId: path.teamId roles: requestBody.roles method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/memberships/{membershipId}/status'].patch update: x-apievangelist-phrasing: intent: Accept a team invitation effect: write questions: - How does a user accept a team invite after clicking the email link? - Does accepting a team invitation log the user in? instructions: - text: Accept invitation {membershipId} to team {teamId} for user {userId} with secret {secret}. slots: membershipId: path.membershipId teamId: path.teamId userId: requestBody.userId secret: requestBody.secret - text: Confirm user {userId} joining team {teamId} using membership {membershipId} and secret {secret}. slots: userId: requestBody.userId teamId: path.teamId membershipId: path.membershipId secret: requestBody.secret method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/prefs'].get update: x-apievangelist-phrasing: intent: Get a team's shared preferences effect: read questions: - What shared settings are stored for my team? - Can I read the preferences all team members share? instructions: - text: Get the preferences of team {teamId}. slots: teamId: path.teamId - text: Show shared prefs for team {teamId}. slots: teamId: path.teamId method: generated generated: '2026-09-26' - target: $.paths['/teams/{teamId}/prefs'].put update: x-apievangelist-phrasing: intent: Replace a team's shared preferences effect: write questions: - How do I save shared settings for a whole team? - Is there a size limit on team preferences? instructions: - text: Set the preferences of team {teamId} to {prefs}. slots: teamId: path.teamId prefs: requestBody.prefs - text: Replace team {teamId} shared prefs with {prefs}. slots: teamId: path.teamId prefs: requestBody.prefs method: generated generated: '2026-09-26'