Appwrite · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Appwrite Waf API

14 actions 14 updates phrasing extends openapi/appwrite-waf-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 14

$.info
$.paths['/waf/rules'].get
$.paths['/waf/rules/bypass'].post
$.paths['/waf/rules/bypass/{ruleId}'].patch
$.paths['/waf/rules/challenge'].post
$.paths['/waf/rules/challenge/{ruleId}'].patch
$.paths['/waf/rules/deny'].post
$.paths['/waf/rules/deny/{ruleId}'].patch
$.paths['/waf/rules/rate-limit'].post
$.paths['/waf/rules/rate-limit/{ruleId}'].patch
$.paths['/waf/rules/redirect'].post
$.paths['/waf/rules/redirect/{ruleId}'].patch
$.paths['/waf/rules/{ruleId}'].get
$.paths['/waf/rules/{ruleId}'].delete

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 Waf API
  version: 1.0.0
extends: openapi/appwrite-waf-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: 13
- target: $.paths['/waf/rules'].get
  update:
    x-apievangelist-phrasing:
      intent: List the firewall rules in a project
      effect: read
      questions:
      - Which web application firewall rules are active on my Appwrite project?
      - Can I search my WAF rules by name?
      instructions:
      - text: List all WAF rules in this project.
      - text: Search my firewall rules for {search}.
        slots:
          search: query.search
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/bypass'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a firewall rule that lets traffic skip checks
      effect: write
      questions:
      - How do I let requests from my office IP range skip the firewall?
      - Can I allowlist traffic so it bypasses other WAF rules by header or country?
      instructions:
      - text: Create a bypass rule {ruleId} named {name} for resource type {resourceType}.
        slots:
          ruleId: requestBody.ruleId
          name: requestBody.name
          resourceType: requestBody.resourceType
      - text: Add bypass rule {name} ({ruleId}) on {resourceType} so traffic matching {conditions} skips the firewall.
        slots:
          name: requestBody.name
          ruleId: requestBody.ruleId
          resourceType: requestBody.resourceType
          conditions: requestBody.conditions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/bypass/{ruleId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit an existing bypass firewall rule
      effect: write
      questions:
      - Can I change the conditions on a bypass rule I already created?
      - What do I change to temporarily disable an allowlist bypass rule?
      instructions:
      - text: Update the conditions of bypass rule {ruleId} to {conditions}.
        slots:
          ruleId: path.ruleId
          conditions: requestBody.conditions
      - text: Set enabled to {enabled} on bypass rule {ruleId}.
        slots:
          enabled: requestBody.enabled
          ruleId: path.ruleId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/challenge'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a proof-of-work challenge firewall rule
      effect: write
      questions:
      - How do I make suspicious visitors solve a challenge before reaching my site?
      - Can I tune how hard the challenge is, from 1 to 5?
      - How long does a visitor stay cleared after passing a WAF challenge?
      instructions:
      - text: Create challenge rule {ruleId} named {name} on {resourceType}.
        slots:
          ruleId: requestBody.ruleId
          name: requestBody.name
          resourceType: requestBody.resourceType
      - text: Add challenge rule {name} ({ruleId}) on {resourceType} with difficulty {difficulty} and clearance of {ttl} seconds.
        slots:
          name: requestBody.name
          ruleId: requestBody.ruleId
          resourceType: requestBody.resourceType
          difficulty: requestBody.difficulty
          ttl: requestBody.ttl
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/challenge/{ruleId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit an existing challenge firewall rule
      effect: write
      questions:
      - Can I raise the difficulty on a challenge rule that is already live?
      - Is it possible to shorten how long visitors stay cleared on an existing challenge rule?
      instructions:
      - text: Change the difficulty of challenge rule {ruleId} to {difficulty}.
        slots:
          ruleId: path.ruleId
          difficulty: requestBody.difficulty
      - text: Set the clearance time on challenge rule {ruleId} to {ttl} seconds.
        slots:
          ruleId: path.ruleId
          ttl: requestBody.ttl
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/deny'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a firewall rule that blocks matching traffic
      effect: write
      questions:
      - How do I block requests from a specific country or IP range?
      - Can a deny rule match on user agent or request path?
      instructions:
      - text: Create deny rule {ruleId} named {name} on {resourceType}.
        slots:
          ruleId: requestBody.ruleId
          name: requestBody.name
          resourceType: requestBody.resourceType
      - text: Block all traffic matching {conditions} with a new deny rule {name} ({ruleId}) on {resourceType}.
        slots:
          conditions: requestBody.conditions
          name: requestBody.name
          ruleId: requestBody.ruleId
          resourceType: requestBody.resourceType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/deny/{ruleId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit an existing blocking firewall rule
      effect: write
      questions:
      - Can I change which IPs an existing deny rule blocks?
      - What should I update to make a block rule run before my other rules?
      instructions:
      - text: Replace the conditions on deny rule {ruleId} with {conditions}.
        slots:
          ruleId: path.ruleId
          conditions: requestBody.conditions
      - text: Set the priority of deny rule {ruleId} to {priority}.
        slots:
          ruleId: path.ruleId
          priority: requestBody.priority
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/rate-limit'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a rate-limit firewall rule
      effect: write
      questions:
      - How do I cap how many requests a single IP can make per minute?
      - Can I rate limit per authenticated user instead of per IP address?
      - Which rate limiting strategies are available, like sliding window or token bucket?
      instructions:
      - text: Create rate-limit rule {ruleId} named {name} on {resourceType} allowing {limit} requests every {interval} seconds.
        slots:
          ruleId: requestBody.ruleId
          name: requestBody.name
          resourceType: requestBody.resourceType
          limit: requestBody.limit
          interval: requestBody.interval
      - text: 'Add rate limit {name} ({ruleId}) on {resourceType}: {limit} per {interval} seconds counted by {key}.'
        slots:
          name: requestBody.name
          ruleId: requestBody.ruleId
          resourceType: requestBody.resourceType
          limit: requestBody.limit
          interval: requestBody.interval
          key: requestBody.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/rate-limit/{ruleId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit an existing rate-limit firewall rule
      effect: write
      questions:
      - Can I loosen the request limit on a rate-limit rule already in place?
      - Is it possible to change the burst bucket size of an existing rate-limit rule?
      instructions:
      - text: Change rate-limit rule {ruleId} to allow {limit} requests per {interval} seconds.
        slots:
          ruleId: path.ruleId
          limit: requestBody.limit
          interval: requestBody.interval
      - text: Set the max bucket size of rate-limit rule {ruleId} to {maxBucketSize}.
        slots:
          ruleId: path.ruleId
          maxBucketSize: requestBody.maxBucketSize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/redirect'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a firewall rule that redirects matching traffic
      effect: write
      questions:
      - How do I send visitors from certain countries to a different URL?
      - Can a firewall redirect rule choose the HTTP status code it returns?
      instructions:
      - text: Create redirect rule {ruleId} named {name} on {resourceType} sending traffic to {location} with status {statusCode}.
        slots:
          ruleId: requestBody.ruleId
          name: requestBody.name
          resourceType: requestBody.resourceType
          location: requestBody.location
          statusCode: requestBody.statusCode
      - text: Redirect requests matching {conditions} to {location} using status {statusCode} via new rule {name} ({ruleId}) on {resourceType}.
        slots:
          conditions: requestBody.conditions
          location: requestBody.location
          statusCode: requestBody.statusCode
          name: requestBody.name
          ruleId: requestBody.ruleId
          resourceType: requestBody.resourceType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/redirect/{ruleId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit an existing redirect firewall rule
      effect: write
      questions:
      - Can I point an existing redirect rule at a new destination URL?
      - What do I change to switch a redirect rule from a temporary to a permanent status code?
      instructions:
      - text: Change the destination of redirect rule {ruleId} to {location}.
        slots:
          ruleId: path.ruleId
          location: requestBody.location
      - text: Set redirect rule {ruleId} to respond with status {statusCode}.
        slots:
          ruleId: path.ruleId
          statusCode: requestBody.statusCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/{ruleId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up a single firewall rule
      effect: read
      questions:
      - What conditions and priority does a particular WAF rule have?
      - Can I see the full configuration of one firewall rule by its ID?
      instructions:
      - text: Get WAF rule {ruleId}.
        slots:
          ruleId: path.ruleId
      - text: Show me the configuration of firewall rule {ruleId}.
        slots:
          ruleId: path.ruleId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waf/rules/{ruleId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a firewall rule
      effect: destructive
      questions:
      - How do I permanently remove a WAF rule of any type?
      - Does deleting a firewall rule immediately stop it from applying?
      instructions:
      - text: Delete WAF rule {ruleId}.
        slots:
          ruleId: path.ruleId
      - text: Remove firewall rule {ruleId} from the project.
        slots:
          ruleId: path.ruleId
      method: generated
      generated: '2026-09-26'