Appwrite · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Appwrite Manager API

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

$.info
$.paths['/manager/blocks'].post
$.paths['/manager/blocks'].delete
$.paths['/manager/blocks/{projectId}'].get
$.paths['/manager/cache'].delete
$.paths['/manager/database/{databaseId}'].patch
$.paths['/manager/databases/activity'].post
$.paths['/manager/databases/metrics'].post
$.paths['/manager/databases/{databaseId}/event'].post
$.paths['/manager/domain'].get
$.paths['/manager/domains/records'].get
$.paths['/manager/domains/{domain}/zone'].get
$.paths['/manager/events'].post
$.paths['/manager/projects/{projectId}/databases/{databaseId}'].get
$.paths['/manager/projects/{projectId}/keys'].post
$.paths['/manager/projects/{projectId}/user'].post

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 Manager API
  version: 1.0.0
extends: openapi/appwrite-manager-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: 19
- target: $.paths['/manager/blocks'].post
  update:
    x-apievangelist-phrasing:
      intent: Block a resource type for a project
      effect: write
      questions:
      - How do I block a project from using a certain resource type?
      - Can a resource block be set to expire automatically?
      instructions:
      - text: Block {resourceType} for project {projectId}.
        slots:
          resourceType: requestBody.resourceType
          projectId: requestBody.projectId
      - text: Block {resourceType} {resourceId} in project {projectId} until {expiredAt} because {reason}.
        slots:
          resourceType: requestBody.resourceType
          resourceId: requestBody.resourceId
          projectId: requestBody.projectId
          expiredAt: requestBody.expiredAt
          reason: requestBody.reason
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/blocks'].delete
  update:
    x-apievangelist-phrasing:
      intent: Lift resource blocks on a project
      effect: destructive
      questions:
      - Can I remove a block I placed on a project's resources?
      - What's the way to unblock a single resource rather than a whole resource type?
      instructions:
      - text: Remove the {resourceType} blocks on project {projectId}.
        slots:
          resourceType: query.resourceType
          projectId: query.projectId
      - text: Unblock {resourceType} {resourceId} in project {projectId}.
        slots:
          resourceType: query.resourceType
          resourceId: query.resourceId
          projectId: query.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/blocks/{projectId}'].get
  update:
    x-apievangelist-phrasing:
      intent: List resource blocks on a project
      effect: read
      questions:
      - Which resources are currently blocked for a given project?
      - Is anything blocked on this project right now?
      instructions:
      - text: List all resource blocks on project {projectId}.
        slots:
          projectId: path.projectId
      - text: Show what is blocked for project {projectId}.
        slots:
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/cache'].delete
  update:
    x-apievangelist-phrasing:
      intent: Clear the internal cache
      effect: destructive
      questions:
      - How do I flush the internal cache for one project?
      - Can I clear the cached copy of a single document instead of everything?
      instructions:
      - text: Clear the {cache} cache for project {projectId}.
        slots:
          cache: query.cache
          projectId: query.projectId
      - text: Clear the cached document {documentId} in collection {collectionId} of project {projectId}.
        slots:
          documentId: query.documentId
          collectionId: query.collectionId
          projectId: query.projectId
      - text: Wipe the entire {cache} cache in region {region}.
        slots:
          cache: query.cache
          region: query.region
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/database/{databaseId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Report a database container's status
      effect: write
      questions:
      - How does Edge tell Cloud that a database container spun down?
      - Can I update the container status of a database after spindown?
      instructions:
      - text: Set the container status of database {databaseId} to {containerStatus}.
        slots:
          databaseId: path.databaseId
          containerStatus: requestBody.containerStatus
      - text: Mark database {databaseId} in project {projectId} as {containerStatus}.
        slots:
          databaseId: path.databaseId
          projectId: requestBody.projectId
          containerStatus: requestBody.containerStatus
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/databases/activity'].post
  update:
    x-apievangelist-phrasing:
      intent: Sync database last-active timestamps in bulk
      effect: write
      questions:
      - How are last-active times for many databases synced in one call?
      - Will an older activity timestamp overwrite a newer last-accessed time?
      instructions:
      - text: 'Sync these database activity entries: {databases}.'
        slots:
          databases: requestBody.databases
      - text: Push the last-active timestamps {databases} from the edge cache.
        slots:
          databases: requestBody.databases
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/databases/metrics'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit dedicated database metrics in bulk
      effect: write
      questions:
      - How do I report CPU, memory and storage readings for dedicated databases?
      - Can I send queries-per-second and IOPS samples for several databases at once?
      instructions:
      - text: Submit metrics for databases {databaseIds} in projects {projectIds} with CPU {cpuPercents} and memory {memoryPercents}.
        slots:
          databaseIds: requestBody.databaseIds
          projectIds: requestBody.projectIds
          cpuPercents: requestBody.cpuPercents
          memoryPercents: requestBody.memoryPercents
      - text: Record storage used {storageUsedBytes} and active connections {connectionsActive} for databases {databaseIds} in projects {projectIds}.
        slots:
          storageUsedBytes: requestBody.storageUsedBytes
          connectionsActive: requestBody.connectionsActive
          databaseIds: requestBody.databaseIds
          projectIds: requestBody.projectIds
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/databases/{databaseId}/event'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a database lifecycle event
      effect: write
      questions:
      - How does Edge notify Cloud that a database failover or provisioning finished?
      - Can a lifecycle event be used to start or spin down a database?
      instructions:
      - text: Send a {event} lifecycle event for database {databaseId}.
        slots:
          event: requestBody.event
          databaseId: path.databaseId
      - text: Emit event {event} on database {databaseId} with data {data}.
        slots:
          event: requestBody.event
          databaseId: path.databaseId
          data: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/domain'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up DNS details for a domain
      effect: read
      questions:
      - What DNS details does the manager hold for a domain?
      - Can I check the DNS setup of a custom domain?
      instructions:
      - text: Get the DNS details for {domain}.
        slots:
          domain: query.domain
      - text: Look up domain {domain} in the manager.
        slots:
          domain: query.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/domains/records'].get
  update:
    x-apievangelist-phrasing:
      intent: List the DNS records for a domain
      effect: read
      questions:
      - Which DNS records are configured for my domain?
      - Can I see the individual A, CNAME and TXT records on a domain?
      instructions:
      - text: List the DNS records of {domain}.
        slots:
          domain: query.domain
      - text: Show every DNS record set on {domain}.
        slots:
          domain: query.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/domains/{domain}/zone'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a domain's DNS zone file
      effect: read
      questions:
      - How do I export the DNS zone file for a domain?
      - Can I get the full zone file for one of my domains?
      instructions:
      - text: Get the zone file for {domain}.
        slots:
          domain: path.domain
      - text: Export the DNS zone of {domain}.
        slots:
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/events'].post
  update:
    x-apievangelist-phrasing:
      intent: Publish a CloudEvents manager event
      effect: write
      questions:
      - How do I send a manager event in CloudEvents format?
      - Which fields does a CloudEvents manager event require?
      instructions:
      - text: Publish a {type} event about {subject} with data {data}.
        slots:
          type: requestBody.type
          subject: requestBody.subject
          data: requestBody.data
      - text: Create a CloudEvent of type {type} from {source} for subject {subject} carrying {data}.
        slots:
          type: requestBody.type
          source: requestBody.source
          subject: requestBody.subject
          data: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/projects/{projectId}/databases/{databaseId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get database routing info for the edge proxy
      effect: read
      questions:
      - What hostname and port does the edge proxy use to reach a database?
      - Which engine and backend type does a given database run on?
      instructions:
      - text: Get routing info for database {databaseId} in project {projectId}.
        slots:
          databaseId: path.databaseId
          projectId: path.projectId
      - text: Show the host, port and status of database {databaseId} in project {projectId}.
        slots:
          databaseId: path.databaseId
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/projects/{projectId}/keys'].post
  update:
    x-apievangelist-phrasing:
      intent: Validate a project API key secret
      effect: read
      questions:
      - How does the edge check whether an API key secret is valid for a project?
      - Can I find out which scopes a project API key grants?
      instructions:
      - text: Validate API key {apiKey} for project {projectId}.
        slots:
          apiKey: requestBody.apiKey
          projectId: path.projectId
      - text: Return the scopes of key {apiKey} on project {projectId}.
        slots:
          apiKey: requestBody.apiKey
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/projects/{projectId}/user'].post
  update:
    x-apievangelist-phrasing:
      intent: Resolve a user JWT to a project user
      effect: read
      questions:
      - How can the edge router tell which user a JWT belongs to?
      - Does this user token actually belong to the given project?
      instructions:
      - text: Resolve JWT {jwt} to a user in project {projectId}.
        slots:
          jwt: requestBody.jwt
          projectId: path.projectId
      - text: Confirm the user behind token {jwt} is a member of project {projectId}.
        slots:
          jwt: requestBody.jwt
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/projects/{projectId}/waf-rules'].get
  update:
    x-apievangelist-phrasing:
      intent: List a project's enabled WAF rules
      effect: read
      questions:
      - Which web application firewall rules are active on a project?
      - How many WAF rules does this project have enabled?
      instructions:
      - text: List the enabled WAF rules for project {projectId}.
        slots:
          projectId: path.projectId
      - text: Count the active firewall rules on project {projectId}.
        slots:
          projectId: path.projectId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/rule'].get
  update:
    x-apievangelist-phrasing:
      intent: Find the deployment rule for a domain
      effect: read
      questions:
      - Which deployment does a given domain route to?
      - What deployment rule is attached to my custom domain?
      instructions:
      - text: Find the deployment rule for {domain}.
        slots:
          domain: query.domain
      - text: Show where {domain} is routed.
        slots:
          domain: query.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/users/status'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change a console user's status
      effect: write
      questions:
      - How do I suspend or reactivate a console user by email?
      - Can I record a reason when changing a console user's status?
      instructions:
      - text: Set console user {email} to status {status}.
        slots:
          email: requestBody.email
          status: requestBody.status
      - text: Change user {userId} status to {status} because {reason}.
        slots:
          userId: requestBody.userId
          status: requestBody.status
          reason: requestBody.reason
      method: generated
      generated: '2026-09-26'
- target: $.paths['/manager/verify-s3-signature'].post
  update:
    x-apievangelist-phrasing:
      intent: Verify an S3 SigV4 signature
      effect: read
      questions:
      - How do I check an AWS SigV4 signature against a project's API keys?
      - What comes back when an S3-style signature doesn't match any key?
      instructions:
      - text: Verify SigV4 {signature} for {accessKey}, {region}/{service}, {dateStamp} {amzDate}, hash {canonicalRequestHash}.
        slots:
          signature: requestBody.signature
          accessKey: requestBody.accessKey
          region: requestBody.region
          service: requestBody.service
          dateStamp: requestBody.dateStamp
          amzDate: requestBody.amzDate
          canonicalRequestHash: requestBody.canonicalRequestHash
      - text: Check whether SigV4 signature {signature} from project {accessKey} is valid.
        slots:
          signature: requestBody.signature
          accessKey: requestBody.accessKey
      method: generated
      generated: '2026-09-26'