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