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