Appwrite · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Appwrite Postgresql API
38 actions
38 updates
phrasing
extends
openapi/appwrite-postgresql-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 38 · first 16 shown; the file carries all of them
$.info
$.paths['/postgresql'].get
$.paths['/postgresql'].post
$.paths['/postgresql/specifications'].get
$.paths['/postgresql/{databaseId}'].get
$.paths['/postgresql/{databaseId}'].delete
$.paths['/postgresql/{databaseId}'].patch
$.paths['/postgresql/{databaseId}/backups'].get
$.paths['/postgresql/{databaseId}/backups'].post
$.paths['/postgresql/{databaseId}/backups/policies'].get
$.paths['/postgresql/{databaseId}/backups/policies'].post
$.paths['/postgresql/{databaseId}/backups/policies/{policyId}'].get
$.paths['/postgresql/{databaseId}/backups/policies/{policyId}'].delete
$.paths['/postgresql/{databaseId}/backups/policies/{policyId}'].patch
$.paths['/postgresql/{databaseId}/backups/storage'].put
$.paths['/postgresql/{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 Postgresql API
version: 1.0.0
extends: openapi/appwrite-postgresql-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: 37
- target: $.paths['/postgresql'].get
update:
x-apievangelist-phrasing:
intent: List dedicated databases
effect: read
questions:
- Which dedicated PostgreSQL databases do I have running in Appwrite?
- Can I page through my dedicated databases with queries?
instructions:
- text: List all my dedicated databases.
- text: List dedicated databases matching {queries}.
slots:
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql'].post
update:
x-apievangelist-phrasing:
intent: Provision a dedicated database
effect: write
questions:
- How do I spin up a new dedicated Postgres database?
- Can I turn on replicas and point-in-time recovery when provisioning a database?
- Is there a way to restrict a new database to an IP allowlist from the start?
instructions:
- text: Create a dedicated database {name} with ID {databaseId} on version {version}.
slots:
name: requestBody.name
databaseId: requestBody.databaseId
version: requestBody.version
- text: Provision database {databaseId} named {name} on the {specification} spec with {replicas} replicas.
slots:
databaseId: requestBody.databaseId
name: requestBody.name
specification: requestBody.specification
replicas: requestBody.replicas
- text: Create database {databaseId} called {name} with PITR on, keeping {pitrRetentionDays} days of history.
slots:
databaseId: requestBody.databaseId
name: requestBody.name
pitrRetentionDays: requestBody.pitrRetentionDays
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/specifications'].get
update:
x-apievangelist-phrasing:
intent: List database sizes and prices on my plan
effect: read
questions:
- What CPU, memory and storage sizes can I pick for a dedicated database?
- How much does each dedicated database specification cost, including overage?
instructions:
- text: List the dedicated database specifications on my plan.
- text: Show prices and resource limits for every database size I can choose.
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}'].get
update:
x-apievangelist-phrasing:
intent: Get a dedicated database's configuration
effect: read
questions:
- Is my new database still provisioning or ready to use?
- Where do I see the full configuration of one dedicated database?
instructions:
- text: Show dedicated database {databaseId}.
slots:
databaseId: path.databaseId
- text: Get the configuration and connection string of database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a dedicated database
effect: destructive
questions:
- How do I permanently tear down a dedicated database?
- Can I retry deleting a database that got stuck in the deleting state?
instructions:
- text: Delete dedicated database {databaseId}.
slots:
databaseId: path.databaseId
- text: Permanently destroy database {databaseId} and clean up all its resources.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}'].patch
update:
x-apievangelist-phrasing:
intent: Change a dedicated database's configuration
effect: write
questions:
- Can I resize a database's CPU and memory without downtime?
- How do I enable the SQL API or cap how many rows it returns?
- Is it possible to switch on storage autoscaling for an existing database?
instructions:
- text: Resize database {databaseId} to the {specification} specification.
slots:
databaseId: path.databaseId
specification: requestBody.specification
- text: Set database {databaseId} to autoscale storage up to {storageAutoscalingMaxGb} GB.
slots:
databaseId: path.databaseId
storageAutoscalingMaxGb: requestBody.storageAutoscalingMaxGb
- text: Update the IP allowlist of database {databaseId} to {networkIPAllowlist}.
slots:
databaseId: path.databaseId
networkIPAllowlist: requestBody.networkIPAllowlist
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{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 the backups of database {databaseId}.
slots:
databaseId: path.databaseId
- text: List backups for database {databaseId} matching {queries}.
slots:
databaseId: path.databaseId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups'].post
update:
x-apievangelist-phrasing:
intent: Take a manual database backup
effect: write
questions:
- Can I take an on-demand backup of a database before a risky change?
- Does a manual backup finish right away or run 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['/postgresql/{databaseId}/backups/policies'].get
update:
x-apievangelist-phrasing:
intent: List a database's scheduled backup policies
effect: read
questions:
- What automatic backup schedules are set on my database?
- Which backup policies are configured for one dedicated database?
instructions:
- text: List the backup policies of database {databaseId}.
slots:
databaseId: path.databaseId
- text: List scheduled backup policies on database {databaseId} matching {queries}.
slots:
databaseId: path.databaseId
queries: query.queries
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups/policies'].post
update:
x-apievangelist-phrasing:
intent: Schedule recurring database backups
effect: write
questions:
- How do I set up nightly backups for a dedicated database?
- Can I choose how long scheduled backups are retained?
instructions:
- text: Create backup policy {policyId} named {name} on database {databaseId} running {schedule} and keeping backups {retention} days.
slots:
policyId: requestBody.policyId
name: requestBody.name
databaseId: path.databaseId
schedule: requestBody.schedule
retention: requestBody.retention
- text: Schedule {type} backups for database {databaseId} on {schedule} with retention {retention}, policy {policyId} called {name}.
slots:
type: requestBody.type
databaseId: path.databaseId
schedule: requestBody.schedule
retention: requestBody.retention
policyId: requestBody.policyId
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups/policies/{policyId}'].get
update:
x-apievangelist-phrasing:
intent: Get one backup policy
effect: read
questions:
- What schedule and retention does a particular backup policy use?
- Is a given backup policy currently enabled?
instructions:
- text: Show backup policy {policyId} on database {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
- text: Get the schedule of policy {policyId} for database {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups/policies/{policyId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a scheduled backup policy
effect: destructive
questions:
- If I delete a backup policy, what happens to the backups it already took?
- How do I stop a database's scheduled backups by removing the policy?
instructions:
- text: Delete backup policy {policyId} from database {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
- text: Remove the scheduled backup policy {policyId} on database {databaseId}.
slots:
policyId: path.policyId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups/policies/{policyId}'].patch
update:
x-apievangelist-phrasing:
intent: Change a backup policy's schedule or retention
effect: write
questions:
- Can I pause a backup policy without deleting it?
- How do I change the schedule of an existing backup policy?
instructions:
- text: Change backup policy {policyId} on database {databaseId} to run on {schedule}.
slots:
policyId: path.policyId
databaseId: path.databaseId
schedule: requestBody.schedule
- text: Set enabled to {enabled} for backup policy {policyId} of database {databaseId}.
slots:
enabled: requestBody.enabled
policyId: path.policyId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups/storage'].put
update:
x-apievangelist-phrasing:
intent: Send database backups to external storage
effect: write
questions:
- Can I copy my database backups to my own S3, GCS or Azure Blob bucket?
- What credentials does off-cluster backup storage need?
instructions:
- text: Store backups of database {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} under prefix {prefix}, key {accessKey}, secret {secretKey}.
slots:
databaseId: path.databaseId
provider: requestBody.provider
bucket: requestBody.bucket
region: requestBody.region
prefix: requestBody.prefix
accessKey: requestBody.accessKey
secretKey: requestBody.secretKey
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups/{backupId}'].get
update:
x-apievangelist-phrasing:
intent: Get one database backup
effect: read
questions:
- Has my manual backup finished, and how big is it?
- Where can I see the status and timestamps of one backup?
instructions:
- text: Show backup {backupId} of database {databaseId}.
slots:
backupId: path.backupId
databaseId: path.databaseId
- text: Get the size and status of backup {backupId} on database {databaseId}.
slots:
backupId: path.backupId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/backups/{backupId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a database backup
effect: destructive
questions:
- Can I permanently remove an old database backup from storage?
- Is deleting a backup reversible?
instructions:
- text: Delete backup {backupId} of database {databaseId}.
slots:
backupId: path.backupId
databaseId: path.databaseId
- text: Permanently remove backup {backupId} from database {databaseId}.
slots:
backupId: path.backupId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/branches'].get
update:
x-apievangelist-phrasing:
intent: List a database's ephemeral branches
effect: read
questions:
- Which temporary branches exist for my database and when do they expire?
- Can I see the namespace each database branch lives in?
instructions:
- text: List the branches of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Show every ephemeral branch and its expiry for database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/branches'].post
update:
x-apievangelist-phrasing:
intent: Branch a database for testing
effect: write
questions:
- Can I make a throwaway copy of my production database to test a schema migration?
- How long does a database branch last before it expires?
instructions:
- text: Create a branch of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Branch database {databaseId} as {branchId} and expire it after {ttl}.
slots:
databaseId: path.databaseId
branchId: requestBody.branchId
ttl: requestBody.ttl
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/branches/{branchId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a database branch
effect: destructive
questions:
- How do I throw away a test branch of my database early?
- Does deleting a branch also remove its snapshot and volume?
instructions:
- text: Delete branch {branchId} of database {databaseId}.
slots:
branchId: path.branchId
databaseId: path.databaseId
- text: Tear down the ephemeral branch {branchId} on database {databaseId}.
slots:
branchId: path.branchId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/credentials'].patch
update:
x-apievangelist-phrasing:
intent: Rotate database connection credentials
effect: write
questions:
- How do I rotate the password on my dedicated database?
- After a credential rotation, where do I get the new connection string?
instructions:
- text: Rotate the connection credentials for database {databaseId}.
slots:
databaseId: path.databaseId
- text: Queue a primary credential rotation on database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/executions'].post
update:
x-apievangelist-phrasing:
intent: Run a SQL statement against a database
effect: write
questions:
- Can I run SQL against my dedicated database from the console API?
- Does the SQL endpoint support bound parameters instead of string interpolation?
- Which kinds of SQL statements am I allowed to execute?
instructions:
- text: Run {sql} on database {databaseId}.
slots:
sql: requestBody.sql
databaseId: path.databaseId
- text: Execute {sql} against database {databaseId} with bindings {bindings}.
slots:
sql: requestBody.sql
databaseId: path.databaseId
bindings: requestBody.bindings
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/extensions'].get
update:
x-apievangelist-phrasing:
intent: List PostgreSQL extensions
effect: read
questions:
- Which Postgres extensions are installed on my database?
- What extensions are available that I could still install?
instructions:
- text: List the extensions on database {databaseId}.
slots:
databaseId: path.databaseId
- text: Show installed and available extensions for database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/extensions'].post
update:
x-apievangelist-phrasing:
intent: Install a PostgreSQL extension
effect: write
questions:
- How do I install a new Postgres extension on my database?
- Does installing an extension happen immediately or asynchronously?
instructions:
- text: Install the {name} extension on database {databaseId}.
slots:
name: requestBody.name
databaseId: path.databaseId
- text: Enable extension {name} for database {databaseId}.
slots:
name: requestBody.name
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/extensions/{extensionName}'].delete
update:
x-apievangelist-phrasing:
intent: Uninstall a PostgreSQL extension
effect: destructive
questions:
- Can I remove an extension I no longer need from Postgres?
- How do I check that an extension uninstall has finished?
instructions:
- text: Uninstall extension {extensionName} from database {databaseId}.
slots:
extensionName: path.extensionName
databaseId: path.databaseId
- text: Remove the {extensionName} extension on database {databaseId}.
slots:
extensionName: path.extensionName
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/failovers'].post
update:
x-apievangelist-phrasing:
intent: Fail over a database to a replica
effect: write
questions:
- How do I manually promote a replica to primary on a high-availability database?
- Can I choose which replica gets promoted during a failover?
- Can a failover repair a database stuck in the middle of an upgrade?
instructions:
- text: Trigger a failover on database {databaseId}.
slots:
databaseId: path.databaseId
- text: Fail database {databaseId} over to replica {targetReplicaId}.
slots:
databaseId: path.databaseId
targetReplicaId: requestBody.targetReplicaId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/maintenance'].patch
update:
x-apievangelist-phrasing:
intent: Set a database's maintenance window
effect: write
questions:
- When do minor version upgrades happen, and can I choose the time?
- How do I move the maintenance window to a quiet hour?
instructions:
- text: Set the maintenance window for database {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['/postgresql/{databaseId}/migrations'].post
update:
x-apievangelist-phrasing:
intent: Convert a database between shared and dedicated
effect: write
questions:
- Can I move a shared serverless database onto a dedicated instance?
- Will converting a dedicated database to shared cause downtime?
instructions:
- text: Migrate database {databaseId} to {targetType}.
slots:
databaseId: path.databaseId
targetType: requestBody.targetType
- text: Convert database {databaseId} to a {targetType} instance on the {specification} spec.
slots:
databaseId: path.databaseId
targetType: requestBody.targetType
specification: requestBody.specification
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/operations'].get
update:
x-apievangelist-phrasing:
intent: List a database's lifecycle operations
effect: read
questions:
- What provisioning, update and restore actions have run on my database?
- Can I see only the lifecycle operations that failed?
instructions:
- text: List the lifecycle operations of database {databaseId}.
slots:
databaseId: path.databaseId
- text: List the last {limit} operations on database {databaseId} with status {status}.
slots:
limit: query.limit
databaseId: path.databaseId
status: query.status
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{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 PITR window for database {databaseId}.
slots:
databaseId: path.databaseId
- text: Get the earliest and latest restore points of database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/pooler'].get
update:
x-apievangelist-phrasing:
intent: Get connection pooler settings
effect: read
questions:
- What pool mode and max connections is my database pooler using?
- Where can I see the pool size settings for a database?
instructions:
- text: Show the pooler configuration of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Get the pool mode and pool size for database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/pooler'].patch
update:
x-apievangelist-phrasing:
intent: Configure the connection pooler
effect: write
questions:
- Can I raise the maximum connections on my database's pooler?
- Is it possible to turn on read/write splitting in the pooler?
instructions:
- text: Set the pooler on database {databaseId} to {mode} mode.
slots:
databaseId: path.databaseId
mode: requestBody.mode
- text: Raise max connections on database {databaseId} pooler to {maxConnections} with default pool size {defaultPoolSize}.
slots:
databaseId: path.databaseId
maxConnections: requestBody.maxConnections
defaultPoolSize: requestBody.defaultPoolSize
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/replicas'].get
update:
x-apievangelist-phrasing:
intent: Check replica and replication lag status
effect: read
questions:
- How far behind are my database replicas?
- Is my high-availability database running in sync or async mode?
instructions:
- text: Show the replicas of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Get replication lag for each replica of database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/restorations'].get
update:
x-apievangelist-phrasing:
intent: List a database's restorations
effect: read
questions:
- What restores have been run on my database?
- Can I list only point-in-time restorations that are still in progress?
instructions:
- text: List restorations for database {databaseId}.
slots:
databaseId: path.databaseId
- text: List {type} restorations of database {databaseId} with status {status}.
slots:
type: query.type
databaseId: path.databaseId
status: query.status
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{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 specific backup?
- Can I roll a database back to an exact timestamp?
- Is it possible to restore into a different database instead of overwriting?
instructions:
- text: Restore database {databaseId} from backup {backupId}.
slots:
databaseId: path.databaseId
backupId: requestBody.backupId
- text: Restore database {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['/postgresql/{databaseId}/restorations/{restorationId}'].get
update:
x-apievangelist-phrasing:
intent: Get one database restoration
effect: read
questions:
- Has my database restore completed yet?
- Where can I see the type and timestamps of one restoration?
instructions:
- text: Show restoration {restorationId} of database {databaseId}.
slots:
restorationId: path.restorationId
databaseId: path.databaseId
- text: Get the status of restore {restorationId} on database {databaseId}.
slots:
restorationId: path.restorationId
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/status'].get
update:
x-apievangelist-phrasing:
intent: Check a database's live health
effect: read
questions:
- Is my dedicated database healthy and accepting connections right now?
- What is the uptime and volume usage of my database?
instructions:
- text: Check the health of database {databaseId}.
slots:
databaseId: path.databaseId
- text: Get real-time readiness, uptime and volume info for database {databaseId}.
slots:
databaseId: path.databaseId
method: generated
generated: '2026-09-26'
- target: $.paths['/postgresql/{databaseId}/upgrades'].post
update:
x-apievangelist-phrasing:
intent: Upgrade a database's engine version
effect: write
questions:
- How do I upgrade my database to a newer Postgres major version?
- Does an engine upgrade take the database offline?
instructions:
- text: Upgrade database {databaseId} to version {targetVersion}.
slots:
databaseId: path.databaseId
targetVersion: requestBody.targetVersion
- text: Start a blue-green upgrade of database {databaseId} to {targetVersion}.
slots:
databaseId: path.databaseId
targetVersion: requestBody.targetVersion
method: generated
generated: '2026-09-26'