Appwrite · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Appwrite Teams API

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

What the actions change

x-apievangelist-phrasing

Targets 20 · first 16 shown; the file carries all of them

$.info
$.paths['/teams'].get
$.paths['/teams'].post
$.paths['/teams/{teamId}'].get
$.paths['/teams/{teamId}'].put
$.paths['/teams/{teamId}'].delete
$.paths['/teams/{teamId}/installations'].get
$.paths['/teams/{teamId}/installations'].post
$.paths['/teams/{teamId}/installations/{installationId}'].get
$.paths['/teams/{teamId}/installations/{installationId}'].put
$.paths['/teams/{teamId}/installations/{installationId}'].delete
$.paths['/teams/{teamId}/logs'].get
$.paths['/teams/{teamId}/memberships'].get
$.paths['/teams/{teamId}/memberships'].post
$.paths['/teams/{teamId}/memberships/{membershipId}'].get
$.paths['/teams/{teamId}/memberships/{membershipId}'].delete

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