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.
View Overlay File View on GitHub Overlay Specification

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

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