Appwrite · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Appwrite Mysql API
35 actions
35 updates
phrasing
extends
openapi/appwrite-mysql-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.
What the actions change
x-apievangelist-phrasing
Targets 35 · first 16 shown; the file carries all of them
$.info
$.paths['/mysql'].get
$.paths['/mysql'].post
$.paths['/mysql/specifications'].get
$.paths['/mysql/{databaseId}'].get
$.paths['/mysql/{databaseId}'].delete
$.paths['/mysql/{databaseId}'].patch
$.paths['/mysql/{databaseId}/backups'].get
$.paths['/mysql/{databaseId}/backups'].post
$.paths['/mysql/{databaseId}/backups/policies'].get
$.paths['/mysql/{databaseId}/backups/policies'].post
$.paths['/mysql/{databaseId}/backups/policies/{policyId}'].get
$.paths['/mysql/{databaseId}/backups/policies/{policyId}'].delete
$.paths['/mysql/{databaseId}/backups/policies/{policyId}'].patch
$.paths['/mysql/{databaseId}/backups/storage'].put
$.paths['/mysql/{databaseId}/backups/{backupId}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Appwrite Mysql API
version: 1.0.0
extends: openapi/appwrite-mysql-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: 34
- target: $.paths['/mysql'].get
update:
x-apievangelist-phrasing:
intent: List dedicated MySQL databases
effect: read
questions:
- Which dedicated MySQL databases do I have running?
- Can I page through my dedicated databases with queries?
instructions:
- text: List all my dedicated MySQL databases.
- text: List dedicated databases matching {queries}.
slots:
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql'].post
update:
x-apievangelist-phrasing:
intent: Provision a dedicated MySQL database
effect: write
questions:
- How do I spin up a dedicated MySQL database in Appwrite?
- Can I enable replicas and point-in-time recovery when creating a database?
- What status does a new dedicated database show while it is provisioning?
instructions:
- text: Create a dedicated MySQL database {name} with ID {databaseId}.
slots:
name: requestBody.name
databaseId: requestBody.databaseId
- text: Provision database {databaseId} named {name} on specification {specification} with {replicas} replicas.
slots:
databaseId: requestBody.databaseId
name: requestBody.name
specification: requestBody.specification
replicas: requestBody.replicas
- text: Create MySQL database {databaseId} called {name}, version {version}, with PITR set to {pitr}.
slots:
databaseId: requestBody.databaseId
name: requestBody.name
version: requestBody.version
pitr: requestBody.pitr
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/specifications'].get
update:
x-apievangelist-phrasing:
intent: List available database sizes and prices
effect: read
questions:
- What CPU, memory and storage sizes can I pick for a dedicated database?
- How much does each dedicated database specification cost on my plan?
instructions:
- text: List the dedicated database specifications on my plan.
- text: Show me the database sizes with their prices and overage rates.
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}'].get
update:
x-apievangelist-phrasing:
intent: Get a dedicated database's configuration
effect: read
questions:
- What configuration is a dedicated database running with?
- Can I look up one dedicated MySQL database by ID?
instructions:
- text: Show the configuration of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Get dedicated database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a dedicated MySQL database
effect: destructive
questions:
- How do I permanently delete a dedicated MySQL database?
- Can I retry deletion if cleanup of a database got stuck?
instructions:
- text: Delete dedicated database {databaseId}.
slots:
databaseId: path.databaseId
- text: Tear down MySQL database {databaseId} and clean up its resources.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}'].patch
update:
x-apievangelist-phrasing:
intent: Change a dedicated database's settings
effect: write
questions:
- Can I resize a dedicated database without downtime?
- How do I turn on storage autoscaling for an existing database?
- Which SQL API limits can I adjust on a running database?
instructions:
- text: Move database {databaseId} to specification {specification}.
slots:
databaseId: path.databaseId
specification: requestBody.specification
- text: Enable storage autoscaling on database {databaseId} up to {storageAutoscalingMaxGb} GB.
slots:
databaseId: path.databaseId
storageAutoscalingMaxGb: requestBody.storageAutoscalingMaxGb
- text: Restrict database {databaseId} to IP allowlist {networkIPAllowlist}.
slots:
databaseId: path.databaseId
networkIPAllowlist: requestBody.networkIPAllowlist
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups'].get
update:
x-apievangelist-phrasing:
intent: List a database's backups
effect: read
questions:
- What backups exist for my dedicated database?
- Can I filter a database's backups by status or type?
instructions:
- text: List backups for database {databaseId}.
slots:
databaseId: path.databaseId
- text: List backups of {databaseId} matching {queries}.
slots:
databaseId: path.databaseId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups'].post
update:
x-apievangelist-phrasing:
intent: Take a manual database backup
effect: write
questions:
- How do I take an on-demand backup of a dedicated database?
- Is a manual backup created synchronously or in the background?
instructions:
- text: Back up database {databaseId} now.
slots:
databaseId: path.databaseId
- text: Create a {type} backup of database {databaseId}.
slots:
type: requestBody.type
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/policies'].get
update:
x-apievangelist-phrasing:
intent: List scheduled backup policies
effect: read
questions:
- Which scheduled backup policies are set on my database?
- Can I see the backup schedules for a dedicated database?
instructions:
- text: List backup schedules for database {databaseId}.
slots:
databaseId: path.databaseId
- text: Show backup policies on {databaseId} matching {queries}.
slots:
databaseId: path.databaseId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/policies'].post
update:
x-apievangelist-phrasing:
intent: Schedule recurring database backups
effect: write
questions:
- How do I schedule automatic backups for a dedicated database?
- Can I set how long scheduled backups are retained?
instructions:
- text: Create backup policy {policyId} named {name} on database {databaseId} running on schedule {schedule}, keeping {retention}.
slots:
policyId: requestBody.policyId
name: requestBody.name
databaseId: path.databaseId
schedule: requestBody.schedule
retention: requestBody.retention
- text: Schedule {name} backups of {databaseId} at {schedule} with retention {retention}, ID {policyId}.
slots:
name: requestBody.name
databaseId: path.databaseId
schedule: requestBody.schedule
retention: requestBody.retention
policyId: requestBody.policyId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/policies/{policyId}'].get
update:
x-apievangelist-phrasing:
intent: Get one scheduled backup policy
effect: read
questions:
- What schedule and retention does a particular backup policy use?
- Can I look up a single backup policy by ID?
instructions:
- text: Show backup policy {policyId} on database {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
- text: Get the schedule of policy {policyId} for {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/policies/{policyId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a scheduled backup policy
effect: destructive
questions:
- How do I stop a scheduled backup policy for good?
- Are backups already taken kept after I delete their policy?
instructions:
- text: Delete backup policy {policyId} on database {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
- text: Remove the scheduled backups policy {policyId} from {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/policies/{policyId}'].patch
update:
x-apievangelist-phrasing:
intent: Change a backup policy's schedule or retention
effect: write
questions:
- Can I change the schedule of an existing backup policy?
- Can I pause a backup policy without deleting it?
instructions:
- text: Change backup policy {policyId} on {databaseId} to run on schedule {schedule}.
slots:
policyId: path.policyId
databaseId: path.databaseId
schedule: requestBody.schedule
- text: Set policy {policyId} on database {databaseId} enabled to {enabled}.
slots:
policyId: path.policyId
databaseId: path.databaseId
enabled: requestBody.enabled
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/storage'].put
update:
x-apievangelist-phrasing:
intent: Send backups to off-cluster object storage
effect: write
questions:
- Can database backups be copied to my own S3, GCS or Azure Blob bucket?
- What credentials are needed to configure off-cluster backup storage?
instructions:
- text: Store backups of {databaseId} in {provider} bucket {bucket} using access key {accessKey} and secret {secretKey}.
slots:
databaseId: path.databaseId
provider: requestBody.provider
bucket: requestBody.bucket
accessKey: requestBody.accessKey
secretKey: requestBody.secretKey
- text: Configure off-cluster backups for {databaseId} to {provider} bucket {bucket} in {region}, keys {accessKey} and {secretKey}.
slots:
databaseId: path.databaseId
provider: requestBody.provider
bucket: requestBody.bucket
region: requestBody.region
accessKey: requestBody.accessKey
secretKey: requestBody.secretKey
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/{backupId}'].get
update:
x-apievangelist-phrasing:
intent: Get one backup's status and size
effect: read
questions:
- Has my manual database backup finished?
- How large is a specific database backup?
instructions:
- text: Show backup {backupId} of database {databaseId}.
slots:
backupId: path.backupId
databaseId: path.databaseId
- text: Check the status of backup {backupId} on {databaseId}.
slots:
backupId: path.backupId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/backups/{backupId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a database backup
effect: destructive
questions:
- How do I permanently remove a database backup?
- Can a deleted backup be recovered afterwards?
instructions:
- text: Delete backup {backupId} of database {databaseId}.
slots:
backupId: path.backupId
databaseId: path.databaseId
- text: Remove backup {backupId} from {databaseId} storage.
slots:
backupId: path.backupId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/branches'].get
update:
x-apievangelist-phrasing:
intent: List ephemeral database branches
effect: read
questions:
- Which test branches exist for my dedicated database?
- When do my database branches expire?
instructions:
- text: List branches of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Show the ephemeral branches and their expiry for {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/branches'].post
update:
x-apievangelist-phrasing:
intent: Branch a database for testing
effect: write
questions:
- Can I clone my production database to test a schema migration?
- How long does an ephemeral database branch live?
instructions:
- text: Create a branch of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Branch {databaseId} as {branchId} with a time-to-live of {ttl}.
slots:
databaseId: path.databaseId
branchId: requestBody.branchId
ttl: requestBody.ttl
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/branches/{branchId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a database branch
effect: destructive
questions:
- How do I delete a test branch I no longer need?
- Is deleting a database branch reversible?
instructions:
- text: Delete branch {branchId} of database {databaseId}.
slots:
branchId: path.branchId
databaseId: path.databaseId
- text: Remove the ephemeral branch {branchId} from {databaseId}.
slots:
branchId: path.branchId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/credentials'].patch
update:
x-apievangelist-phrasing:
intent: Rotate a database's connection credentials
effect: write
questions:
- How do I rotate the password on my dedicated database?
- What happens if I rotate credentials while the database is hibernated?
instructions:
- text: Rotate the connection credentials for database {databaseId}.
slots:
databaseId: path.databaseId
- text: Queue a credential rotation on {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/executions'].post
update:
x-apievangelist-phrasing:
intent: Run a SQL statement on a database
effect: write
questions:
- Can I run a SQL query against my dedicated database from the console API?
- Can I pass bound parameters and a timeout with a SQL statement?
instructions:
- text: Run SQL {sql} on database {databaseId}.
slots:
sql: requestBody.sql
databaseId: path.databaseId
- text: Execute {sql} on {databaseId} with bindings {bindings} and a {timeoutSeconds}-second timeout.
slots:
sql: requestBody.sql
databaseId: path.databaseId
bindings: requestBody.bindings
timeoutSeconds: requestBody.timeoutSeconds
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/failovers'].post
update:
x-apievangelist-phrasing:
intent: Fail over to a replica
effect: write
questions:
- How do I manually promote a replica to primary?
- Can I choose which replica becomes the new primary during failover?
instructions:
- text: Trigger a failover on database {databaseId}.
slots:
databaseId: path.databaseId
- text: Promote replica {targetReplicaId} to primary for {databaseId}.
slots:
targetReplicaId: requestBody.targetReplicaId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/maintenance'].patch
update:
x-apievangelist-phrasing:
intent: Set a database's maintenance window
effect: write
questions:
- When do minor version upgrades happen on my dedicated database?
- Can I move the maintenance window to a quieter day and hour?
instructions:
- text: Set the maintenance window for {databaseId} to {day} at {hourUtc} UTC.
slots:
databaseId: path.databaseId
day: requestBody.day
hourUtc: requestBody.hourUtc
- text: Schedule maintenance on database {databaseId} for {day}, hour {hourUtc} UTC.
slots:
databaseId: path.databaseId
day: requestBody.day
hourUtc: requestBody.hourUtc
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/migrations'].post
update:
x-apievangelist-phrasing:
intent: Switch a database between shared and dedicated
effect: write
questions:
- Can I convert a shared serverless database into a dedicated one?
- Is there downtime when moving a database from dedicated back to shared?
instructions:
- text: Migrate database {databaseId} to {targetType}.
slots:
databaseId: path.databaseId
targetType: requestBody.targetType
- text: Convert {databaseId} to {targetType} on specification {specification}.
slots:
databaseId: path.databaseId
targetType: requestBody.targetType
specification: requestBody.specification
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/operations'].get
update:
x-apievangelist-phrasing:
intent: List a database's lifecycle operations
effect: read
questions:
- Has my database update or restore finished yet?
- Can I filter a database's operation history by status?
instructions:
- text: List recent lifecycle operations for database {databaseId}.
slots:
databaseId: path.databaseId
- text: Show {limit} operations on {databaseId} with status {status}.
slots:
limit: query.limit
databaseId: path.databaseId
status: query.status
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/pitr'].get
update:
x-apievangelist-phrasing:
intent: Get point-in-time recovery windows
effect: read
questions:
- How far back can I restore my database to a point in time?
- What are the earliest and latest recovery points available?
instructions:
- text: Show the point-in-time recovery window for {databaseId}.
slots:
databaseId: path.databaseId
- text: Get the earliest and latest restore points for database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/pooler'].get
update:
x-apievangelist-phrasing:
intent: Get connection pooler settings
effect: read
questions:
- What connection pooling mode is my database using?
- How many max connections does my database pooler allow?
instructions:
- text: Show the connection pooler settings for {databaseId}.
slots:
databaseId: path.databaseId
- text: Get pool size and max connections for database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/pooler'].patch
update:
x-apievangelist-phrasing:
intent: Tune the connection pooler
effect: write
questions:
- Can I raise the max connections on my database pooler?
- Can the pooler split reads and writes across replicas?
instructions:
- text: Set the pooler on {databaseId} to mode {mode} with {maxConnections} max connections.
slots:
databaseId: path.databaseId
mode: requestBody.mode
maxConnections: requestBody.maxConnections
- text: Turn read-write splitting to {readWriteSplitting} on the pooler for {databaseId}.
slots:
readWriteSplitting: requestBody.readWriteSplitting
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/replicas'].get
update:
x-apievangelist-phrasing:
intent: Check replica health and lag
effect: read
questions:
- How far behind are my database replicas?
- Is high availability healthy on my dedicated database?
instructions:
- text: Show replica status and replication lag for {databaseId}.
slots:
databaseId: path.databaseId
- text: Check the high availability status of database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/restorations'].get
update:
x-apievangelist-phrasing:
intent: List a database's restorations
effect: read
questions:
- Which restores have been run on my database?
- Can I filter restorations by status or type?
instructions:
- text: List restorations for database {databaseId}.
slots:
databaseId: path.databaseId
- text: List {type} restorations on {databaseId} with status {status}.
slots:
type: query.type
databaseId: path.databaseId
status: query.status
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/restorations'].post
update:
x-apievangelist-phrasing:
intent: Restore a database from backup or a point in time
effect: write
questions:
- How do I restore my database from a backup?
- Can I roll a database back to a specific timestamp?
instructions:
- text: Restore database {databaseId} from backup {backupId}.
slots:
databaseId: path.databaseId
backupId: requestBody.backupId
- text: Restore {databaseId} to the point in time {targetTime}.
slots:
databaseId: path.databaseId
targetTime: requestBody.targetTime
- text: Restore backup {backupId} of {databaseId} into database {targetDatabaseId}.
slots:
backupId: requestBody.backupId
databaseId: path.databaseId
targetDatabaseId: requestBody.targetDatabaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/restorations/{restorationId}'].get
update:
x-apievangelist-phrasing:
intent: Get one restoration's status
effect: read
questions:
- Has my database restore completed?
- Can I look up one restoration by ID?
instructions:
- text: Show restoration {restorationId} of database {databaseId}.
slots:
restorationId: path.restorationId
databaseId: path.databaseId
- text: Check progress of restore {restorationId} on {databaseId}.
slots:
restorationId: path.restorationId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/status'].get
update:
x-apievangelist-phrasing:
intent: Check a database's real-time health
effect: read
questions:
- Is my dedicated database healthy and ready right now?
- How long has my database been up, and what are its connection details?
instructions:
- text: Check the live health of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Show uptime, readiness and volume info for {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/mysql/{databaseId}/upgrades'].post
update:
x-apievangelist-phrasing:
intent: Upgrade a database's MySQL version
effect: write
questions:
- How do I upgrade my dedicated database to a newer MySQL version?
- Does a version upgrade cause downtime?
instructions:
- text: Upgrade database {databaseId} to version {targetVersion}.
slots:
databaseId: path.databaseId
targetVersion: requestBody.targetVersion
- text: Move {databaseId} onto MySQL {targetVersion} with a blue-green cutover.
slots:
databaseId: path.databaseId
targetVersion: requestBody.targetVersion
method: generated
generated: '2026-09-26'