Appwrite · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Appwrite Project API

110 actions 110 updates phrasing extends openapi/appwrite-project-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 110 · first 16 shown; the file carries all of them

$.info
$.paths['/project'].get
$.paths['/project'].delete
$.paths['/project/auth-methods/{methodId}'].patch
$.paths['/project/keys'].get
$.paths['/project/keys'].post
$.paths['/project/keys/ephemeral'].post
$.paths['/project/keys/{keyId}'].get
$.paths['/project/keys/{keyId}'].put
$.paths['/project/keys/{keyId}'].delete
$.paths['/project/labels'].put
$.paths['/project/mock-phones'].get
$.paths['/project/mock-phones'].post
$.paths['/project/mock-phones/{number}'].get
$.paths['/project/mock-phones/{number}'].put
$.paths['/project/mock-phones/{number}'].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 Project API
  version: 1.0.0
extends: openapi/appwrite-project-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: 109
- target: $.paths['/project'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the current project's details
      effect: read
      questions:
      - What are the settings and details of the project my key belongs to?
      - Can I read the current project's configuration in one call?
      instructions:
      - text: Show the details of this project.
      - text: Fetch the current project record.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete the whole project
      effect: destructive
      questions:
      - Can I permanently delete my entire Appwrite project?
      - What's the way to tear down the current project completely?
      instructions:
      - text: Delete this entire project.
      - text: Permanently remove the current project and everything in it.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/auth-methods/{methodId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Enable or disable a sign-in method
      effect: write
      questions:
      - Can I turn off email/password or anonymous login for my project?
      - Which built-in authentication methods can be switched on or off?
      instructions:
      - text: Set auth method {methodId} enabled to {enabled}.
        slots:
          methodId: path.methodId
          enabled: requestBody.enabled
      - text: Disable the {methodId} sign-in method, enabled {enabled}.
        slots:
          methodId: path.methodId
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/keys'].get
  update:
    x-apievangelist-phrasing:
      intent: List the project's API keys
      effect: read
      questions:
      - Which API keys exist on my project?
      - Can I filter my project's API keys with queries?
      instructions:
      - text: List all API keys in this project.
      - text: List API keys matching {queries}.
        slots:
          queries: query.queries
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/keys'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a long-lived scoped API key
      effect: write
      questions:
      - How do I create a server API key with only the scopes it needs?
      - Can a standard API key be set to expire on a specific date, or never?
      instructions:
      - text: Create API key {keyId} named {name} with scopes {scopes}.
        slots:
          keyId: requestBody.keyId
          name: requestBody.name
          scopes: requestBody.scopes
      - text: Create a standard key {name} (id {keyId}) with scopes {scopes} that expires at {expire}.
        slots:
          name: requestBody.name
          keyId: requestBody.keyId
          scopes: requestBody.scopes
          expire: requestBody.expire
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/keys/ephemeral'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a short-lived ephemeral API key
      effect: write
      questions:
      - Can I mint a temporary API key that expires within an hour?
      - What's the longest an ephemeral key can live?
      instructions:
      - text: Create an ephemeral key with scopes {scopes} that lasts {duration} seconds.
        slots:
          scopes: requestBody.scopes
          duration: requestBody.duration
      - text: Give me a short-lived key for {scopes} valid for {duration} seconds.
        slots:
          scopes: requestBody.scopes
          duration: requestBody.duration
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/keys/{keyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one API key
      effect: read
      questions:
      - What scopes and expiry does a specific API key have?
      - Can I look up one API key by its ID?
      instructions:
      - text: Show API key {keyId}.
        slots:
          keyId: path.keyId
      - text: Tell me the scopes and expiration of key {keyId}.
        slots:
          keyId: path.keyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/keys/{keyId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename or rescope an API key
      effect: write
      questions:
      - Can I change the scopes on an API key I already created?
      - Is it possible to extend an existing key's expiration date?
      instructions:
      - text: Update key {keyId} to name {name} with scopes {scopes}.
        slots:
          keyId: path.keyId
          name: requestBody.name
          scopes: requestBody.scopes
      - text: Change existing key {keyId} ({name}, scopes {scopes}) to expire at {expire}.
        slots:
          keyId: path.keyId
          name: requestBody.name
          scopes: requestBody.scopes
          expire: requestBody.expire
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/keys/{keyId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke an API key
      effect: destructive
      questions:
      - How do I revoke a leaked API key?
      - Does deleting a key stop it from authenticating right away?
      instructions:
      - text: Delete API key {keyId}.
        slots:
          keyId: path.keyId
      - text: Revoke key {keyId} so it can no longer be used.
        slots:
          keyId: path.keyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/labels'].put
  update:
    x-apievangelist-phrasing:
      intent: Set the project's labels
      effect: write
      questions:
      - Can I tag my project with labels so it's easier to filter in my organization?
      - How are project labels replaced?
      instructions:
      - text: Set this project's labels to {labels}.
        slots:
          labels: requestBody.labels
      - text: Label the project {labels}.
        slots:
          labels: requestBody.labels
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/mock-phones'].get
  update:
    x-apievangelist-phrasing:
      intent: List test phone numbers and OTPs
      effect: read
      questions:
      - Which mock phone numbers have I set up for testers?
      - Can I see all mock phones along with their sign-in codes?
      instructions:
      - text: List all mock phone numbers in this project.
      - text: List mock phones matching {queries}.
        slots:
          queries: query.queries
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/mock-phones'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a mock phone number for testing
      effect: write
      questions:
      - How can testers sign in by phone without receiving a real SMS?
      - Can I give a test phone number a fixed OTP?
      instructions:
      - text: Add mock phone {number} with OTP {otp}.
        slots:
          number: requestBody.number
          otp: requestBody.otp
      - text: Register test number {number} that always signs in with code {otp}.
        slots:
          number: requestBody.number
          otp: requestBody.otp
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/mock-phones/{number}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a mock phone's OTP
      effect: read
      questions:
      - What OTP is set for one of my test phone numbers?
      - Can I look up a single mock phone by its number?
      instructions:
      - text: Show mock phone {number}.
        slots:
          number: path.number
      - text: Tell me the sign-in code for test number {number}.
        slots:
          number: path.number
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/mock-phones/{number}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a mock phone's OTP
      effect: write
      questions:
      - Can I change the sign-in code on an existing mock phone number?
      - Is it possible to rotate a test phone's OTP?
      instructions:
      - text: Change the OTP for mock phone {number} to {otp}.
        slots:
          number: path.number
          otp: requestBody.otp
      - text: Update existing test number {number} to use code {otp}.
        slots:
          number: path.number
          otp: requestBody.otp
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/mock-phones/{number}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a mock phone number
      effect: destructive
      questions:
      - Can I remove a test phone number I no longer need?
      - What happens to a mock phone's OTP when it is deleted?
      instructions:
      - text: Delete mock phone {number}.
        slots:
          number: path.number
      - text: Remove test number {number} from the project.
        slots:
          number: path.number
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2'].get
  update:
    x-apievangelist-phrasing:
      intent: List OAuth2 providers and their config
      effect: read
      questions:
      - Which social login providers are supported and which have I enabled?
      - Why do client secrets come back empty when listing OAuth providers?
      instructions:
      - text: List every OAuth2 provider and its configuration.
      - text: List OAuth2 providers matching {queries}.
        slots:
          queries: query.queries
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2-server'].put
  update:
    x-apievangelist-phrasing:
      intent: Configure the project as an OAuth2/OIDC server
      effect: write
      questions:
      - Can my project act as its own OpenID Connect provider for other apps?
      - How long do issued access and refresh tokens last, and can I change that?
      - Is device-code login supported, and can I set the user code format?
      instructions:
      - text: Enable the OAuth2 server {enabled} with authorization URL {authorizationUrl}.
        slots:
          enabled: requestBody.enabled
          authorizationUrl: requestBody.authorizationUrl
      - text: Set OAuth2 server access tokens to last {accessTokenDuration} and refresh tokens {refreshTokenDuration}.
        slots:
          accessTokenDuration: requestBody.accessTokenDuration
          refreshTokenDuration: requestBody.refreshTokenDuration
      - text: Set the OAuth2 server's supported scopes to {scopes} and default scopes to {defaultScopes}.
        slots:
          scopes: requestBody.scopes
          defaultScopes: requestBody.defaultScopes
      - text: Use device verification URL {verificationUrl} with {userCodeLength}-character user codes.
        slots:
          verificationUrl: requestBody.verificationUrl
          userCodeLength: requestBody.userCodeLength
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/amazon'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Amazon sign-in
      effect: write
      questions:
      - Can users log in to my app with their Amazon account?
      - Where do I put the Amazon OAuth client ID and secret?
      instructions:
      - text: Enable Amazon sign-in with client ID {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set Amazon login enabled to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/apple'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Sign in with Apple
      effect: write
      questions:
      - How do I add Sign in with Apple using my service ID, team ID and .p8 key?
      - Which Apple credentials does the OAuth setup need?
      instructions:
      - text: Configure Sign in with Apple with service ID {serviceId}, key ID {keyId}, team ID {teamId} and p8 file {p8File}.
        slots:
          serviceId: requestBody.serviceId
          keyId: requestBody.keyId
          teamId: requestBody.teamId
          p8File: requestBody.p8File
      - text: Switch Apple login to enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/appwrite'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Appwrite as an OAuth login
      effect: write
      questions:
      - Can people sign in to my project using their Appwrite account?
      - What client credentials does the Appwrite OAuth option take?
      instructions:
      - text: Set up Appwrite account login with client {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Toggle the Appwrite OAuth provider to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/auth0'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Auth0 sign-in
      effect: write
      questions:
      - Can I connect my Auth0 tenant as a login option?
      - Where does the Auth0 tenant domain go in the OAuth settings?
      instructions:
      - text: Connect Auth0 at {endpoint} with client ID {clientId} and secret {clientSecret}.
        slots:
          endpoint: requestBody.endpoint
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set Auth0 login to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/authentik'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Authentik sign-in
      effect: write
      questions:
      - Can my self-hosted Authentik server act as a login provider?
      - What endpoint and credentials does Authentik OAuth need?
      instructions:
      - text: Configure Authentik at {endpoint} using client {clientId} and secret {clientSecret}.
        slots:
          endpoint: requestBody.endpoint
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Turn Authentik sign-in {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/autodesk'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Autodesk sign-in
      effect: write
      questions:
      - Is it possible to let users authenticate with Autodesk?
      - Which Autodesk app credentials do I paste into the project?
      instructions:
      - text: Add Autodesk login using client ID {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Mark the Autodesk OAuth provider enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/bitbucket'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Bitbucket sign-in
      effect: write
      questions:
      - Can developers sign in to my app with Bitbucket?
      - Does Bitbucket OAuth use a key and secret rather than a client ID?
      instructions:
      - text: Set up Bitbucket login with key {key} and secret {secret}.
        slots:
          key: requestBody.key
          secret: requestBody.secret
      - text: Change Bitbucket sign-in to enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/bitly'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Bitly sign-in
      effect: write
      questions:
      - Can users connect their Bitly account to log in?
      - Where do the Bitly OAuth credentials get saved?
      instructions:
      - text: Configure Bitly OAuth with client {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set the Bitly provider to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/box'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Box sign-in
      effect: write
      questions:
      - Can people sign in with their Box account?
      - What do I need from my Box developer app to enable login?
      instructions:
      - text: Enable Box login with client ID {clientId} and client secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Flip Box sign-in to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/cloudflare'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Cloudflare sign-in
      effect: write
      questions:
      - Can my users log in with a Cloudflare account?
      - Which Cloudflare OAuth values does the project store?
      instructions:
      - text: Configure Cloudflare login with client {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set Cloudflare OAuth enabled to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/dailymotion'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Dailymotion sign-in
      effect: write
      questions:
      - Can viewers sign in with Dailymotion?
      - Does Dailymotion login take an API key and API secret?
      instructions:
      - text: Set up Dailymotion login with API key {apiKey} and API secret {apiSecret}.
        slots:
          apiKey: requestBody.apiKey
          apiSecret: requestBody.apiSecret
      - text: Turn Dailymotion OAuth {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/discord'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Discord sign-in
      effect: write
      questions:
      - How do I let gamers log in with Discord?
      - Where do I save my Discord application's client secret?
      instructions:
      - text: Enable Discord login with client ID {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set Discord sign-in enabled to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/disqus'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Disqus sign-in
      effect: write
      questions:
      - Can commenters sign in with their Disqus account?
      - Which Disqus public and secret keys does the login need?
      instructions:
      - text: Configure Disqus login with public key {publicKey} and secret key {secretKey}.
        slots:
          publicKey: requestBody.publicKey
          secretKey: requestBody.secretKey
      - text: Switch Disqus OAuth to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/dropbox'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Dropbox sign-in
      effect: write
      questions:
      - Can users authenticate with Dropbox?
      - Does the Dropbox login use an app key and app secret?
      instructions:
      - text: Set up Dropbox sign-in with app key {appKey} and app secret {appSecret}.
        slots:
          appKey: requestBody.appKey
          appSecret: requestBody.appSecret
      - text: Set the Dropbox provider enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/etsy'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Etsy sign-in
      effect: write
      questions:
      - Can sellers log in to my app with Etsy?
      - What are the keystring and shared secret for Etsy OAuth?
      instructions:
      - text: Configure Etsy login with keystring {keyString} and shared secret {sharedSecret}.
        slots:
          keyString: requestBody.keyString
          sharedSecret: requestBody.sharedSecret
      - text: Turn Etsy sign-in to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/facebook'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Facebook sign-in
      effect: write
      questions:
      - How do I add a Log in with Facebook option?
      - Which Facebook app ID and secret does the project need?
      instructions:
      - text: Enable Facebook login with app ID {appId} and app secret {appSecret}.
        slots:
          appId: requestBody.appId
          appSecret: requestBody.appSecret
      - text: Set Facebook OAuth enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/figma'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Figma sign-in
      effect: write
      questions:
      - Can designers sign in with their Figma account?
      - Where do I enter my Figma OAuth app credentials?
      instructions:
      - text: Set up Figma login with client {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Change the Figma provider to enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/fusionauth'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure FusionAuth sign-in
      effect: write
      questions:
      - Can I plug my FusionAuth instance in as a login provider?
      - What FusionAuth endpoint and client values are required?
      instructions:
      - text: Connect FusionAuth at {endpoint} with client ID {clientId} and secret {clientSecret}.
        slots:
          endpoint: requestBody.endpoint
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set FusionAuth login to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/github'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure GitHub sign-in
      effect: write
      questions:
      - How do I let developers sign in with GitHub?
      - Where does my GitHub OAuth app's client secret go?
      instructions:
      - text: Enable GitHub login with client ID {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set GitHub sign-in enabled to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/gitlab'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure GitLab sign-in
      effect: write
      questions:
      - Can users log in with GitLab, including a self-managed GitLab instance?
      - Which GitLab application ID and secret does the login take?
      instructions:
      - text: Configure GitLab login at {endpoint} with application ID {applicationId} and secret {secret}.
        slots:
          endpoint: requestBody.endpoint
          applicationId: requestBody.applicationId
          secret: requestBody.secret
      - text: Turn GitLab sign-in {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/google'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Google sign-in
      effect: write
      questions:
      - How do I add Sign in with Google to my project?
      - Can I force Google to show the account picker or consent prompt?
      instructions:
      - text: Enable Google login with client ID {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set the Google sign-in prompt to {prompt}.
        slots:
          prompt: requestBody.prompt
      - text: Set Google OAuth enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/huggingface'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Hugging Face sign-in
      effect: write
      questions:
      - Can ML users sign in with their Hugging Face account?
      - Where do the Hugging Face OAuth credentials go?
      instructions:
      - text: Set up Hugging Face login with client {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Switch Hugging Face sign-in to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/kakao'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Kakao sign-in
      effect: write
      questions:
      - Can Korean users log in with Kakao?
      - Which Kakao client ID and secret does the project store?
      instructions:
      - text: Configure Kakao login with client ID {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set Kakao OAuth to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/keycloak'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Keycloak sign-in
      effect: write
      questions:
      - Can I use a Keycloak realm as my project's login provider?
      - Where do the Keycloak endpoint and realm name get configured?
      instructions:
      - text: Connect Keycloak realm {realmName} at {endpoint} with client {clientId} and secret {clientSecret}.
        slots:
          realmName: requestBody.realmName
          endpoint: requestBody.endpoint
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set Keycloak sign-in enabled to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/kick'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Kick sign-in
      effect: write
      questions:
      - Can streamers sign in with a Kick account?
      - What Kick OAuth credentials does the project need?
      instructions:
      - text: Enable Kick login with client {clientId} and secret {clientSecret}.
        slots:
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Turn Kick OAuth {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/linkedin'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure LinkedIn sign-in
      effect: write
      questions:
      - Can professionals log in with LinkedIn?
      - Does LinkedIn login use a primary client secret?
      instructions:
      - text: Set up LinkedIn login with client ID {clientId} and primary client secret {primaryClientSecret}.
        slots:
          clientId: requestBody.clientId
          primaryClientSecret: requestBody.primaryClientSecret
      - text: Set LinkedIn sign-in to enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/microsoft'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Microsoft sign-in
      effect: write
      questions:
      - How do I let users sign in with a Microsoft or Entra account?
      - Can I restrict Microsoft login to a single tenant?
      instructions:
      - text: Configure Microsoft login with application ID {applicationId} and secret {applicationSecret}.
        slots:
          applicationId: requestBody.applicationId
          applicationSecret: requestBody.applicationSecret
      - text: Set the Microsoft sign-in tenant to {tenant}.
        slots:
          tenant: requestBody.tenant
      - text: Set Microsoft OAuth enabled {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/notion'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Notion sign-in
      effect: write
      questions:
      - Can users log in with their Notion workspace account?
      - Where do I enter the Notion OAuth client ID and secret?
      instructions:
      - text: Enable Notion login with OAuth client {oauthClientId} and secret {oauthClientSecret}.
        slots:
          oauthClientId: requestBody.oauthClientId
          oauthClientSecret: requestBody.oauthClientSecret
      - text: Switch Notion sign-in to {enabled}.
        slots:
          enabled: requestBody.enabled
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/oidc'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure a generic OpenID Connect login
      effect: write
      questions:
      - Can I connect any OpenID Connect identity provider using its well-known URL?
      - What if my OIDC provider has no discovery document, can I set the authorization and token URLs by hand?
      instructions:
      - text: Configure OIDC login from {wellKnownURL} with client {clientId} and secret {clientSecret}.
        slots:
          wellKnownURL: requestBody.wellKnownURL
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Set OIDC endpoints to authorize at {authorizationURL}, token at {tokenURL} and user info at {userInfoURL}.
        slots:
          authorizationURL: requestBody.authorizationURL
          tokenURL: requestBody.tokenURL
          userInfoURL: requestBody.userInfoURL
      - text: Set the OIDC prompt to {prompt} and max age to {maxAge}.
        slots:
          prompt: requestBody.prompt
          maxAge: requestBody.maxAge
      method: generated
      generated: '2026-09-26'
- target: $.paths['/project/oauth2/okta'].patch
  update:
    x-apievangelist-phrasing:
      intent: Configure Okta sign-in
      effect: write
      questions:
      - Can employees sign in through our Okta org?
      - Can I point Okta login at a custom authorization server?
      instructions:
      - text: Connect Okta domain {domain} with client ID {clientId} and secret {clientSecret}.
        slots:
          domain: requestBody.domain
          clientId: requestBody.clientId
          clientSecret: requestBody.clientSecret
      - text: Use Okta authorization server {authorizationServerId} for sign-in.
        slots:
          authorizationServerId: requestBody.authorizationServerId
      method: generated
      generated: '2026-09-26'


# --- truncated at 32 KB (74 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/overlays/appwrite-project-api-phrasing-overlay.yaml