Appwrite · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Appwrite Storage API

14 actions 14 updates phrasing extends openapi/appwrite-storage-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['/storage/buckets'].get
$.paths['/storage/buckets'].post
$.paths['/storage/buckets/{bucketId}'].get
$.paths['/storage/buckets/{bucketId}'].put
$.paths['/storage/buckets/{bucketId}'].delete
$.paths['/storage/buckets/{bucketId}/files'].get
$.paths['/storage/buckets/{bucketId}/files'].post
$.paths['/storage/buckets/{bucketId}/files/{fileId}'].get
$.paths['/storage/buckets/{bucketId}/files/{fileId}'].put
$.paths['/storage/buckets/{bucketId}/files/{fileId}'].delete
$.paths['/storage/buckets/{bucketId}/files/{fileId}/download'].get
$.paths['/storage/buckets/{bucketId}/files/{fileId}/preview'].get
$.paths['/storage/buckets/{bucketId}/files/{fileId}/view'].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 Storage API
  version: 1.0.0
extends: openapi/appwrite-storage-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['/storage/buckets'].get
  update:
    x-apievangelist-phrasing:
      intent: List storage buckets
      effect: read
      questions:
      - Which storage buckets exist in my project?
      - Can I search my buckets by name?
      instructions:
      - text: List all my storage buckets.
      - text: Search storage buckets for {search}.
        slots:
          search: query.search
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a storage bucket
      effect: write
      questions:
      - How do I create a bucket to hold uploaded files?
      - Can I cap file size and allowed extensions when creating a bucket?
      - Does a new bucket support encryption and antivirus scanning?
      instructions:
      - text: Create a storage bucket {name} with ID {bucketId}.
        slots:
          name: requestBody.name
          bucketId: requestBody.bucketId
      - text: Create bucket {bucketId} named {name} that only accepts {allowedFileExtensions} up to {maximumFileSize} bytes.
        slots:
          bucketId: requestBody.bucketId
          name: requestBody.name
          allowedFileExtensions: requestBody.allowedFileExtensions
          maximumFileSize: requestBody.maximumFileSize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a bucket's settings
      effect: read
      questions:
      - What limits and permissions are set on a bucket?
      - Can I fetch a single bucket's metadata by ID?
      instructions:
      - text: Show bucket {bucketId}.
        slots:
          bucketId: path.bucketId
      - text: Get the settings of storage bucket {bucketId}.
        slots:
          bucketId: path.bucketId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change an existing bucket's settings
      effect: write
      questions:
      - Can I turn on compression or antivirus for a bucket I already have?
      - How do I rename an existing bucket or change its permissions?
      instructions:
      - text: Rename bucket {bucketId} to {name}.
        slots:
          bucketId: path.bucketId
          name: requestBody.name
      - text: Update bucket {bucketId}, keeping name {name}, to use compression {compression}.
        slots:
          bucketId: path.bucketId
          name: requestBody.name
          compression: requestBody.compression
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a storage bucket
      effect: destructive
      questions:
      - How do I delete a bucket I no longer use?
      - Can I remove an entire storage bucket by ID?
      instructions:
      - text: Delete bucket {bucketId}.
        slots:
          bucketId: path.bucketId
      - text: Remove the storage bucket {bucketId}.
        slots:
          bucketId: path.bucketId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files'].get
  update:
    x-apievangelist-phrasing:
      intent: List files in a bucket
      effect: read
      questions:
      - Which files are stored in a bucket?
      - Can I search a bucket's files by name?
      instructions:
      - text: List files in bucket {bucketId}.
        slots:
          bucketId: path.bucketId
      - text: Search bucket {bucketId} for files matching {search}.
        slots:
          bucketId: path.bucketId
          search: query.search
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a file to a bucket
      effect: write
      questions:
      - How do I upload a file into a storage bucket?
      - How are large files uploaded, in chunks?
      instructions:
      - text: Upload {file} to bucket {bucketId} as file {fileId}.
        slots:
          file: requestBody.file
          bucketId: path.bucketId
          fileId: requestBody.fileId
      - text: Upload {file} to {bucketId} with ID {fileId} and permissions {permissions}.
        slots:
          file: requestBody.file
          bucketId: path.bucketId
          fileId: requestBody.fileId
          permissions: requestBody.permissions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a file's metadata
      effect: read
      questions:
      - What size and type is a stored file?
      - Can I get a file's metadata without downloading it?
      instructions:
      - text: Show metadata for file {fileId} in bucket {bucketId}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
      - text: Get file info for {fileId} in {bucketId}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename a file or change its permissions
      effect: write
      questions:
      - Can I rename a file after uploading it?
      - How do I change who can read an uploaded file?
      instructions:
      - text: Rename file {fileId} in bucket {bucketId} to {name}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
          name: requestBody.name
      - text: Set permissions on file {fileId} in {bucketId} to {permissions}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
          permissions: requestBody.permissions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a file
      effect: destructive
      questions:
      - How do I delete an uploaded file?
      - Who is allowed to delete a file in a bucket?
      instructions:
      - text: Delete file {fileId} from bucket {bucketId}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
      - text: Remove {fileId} from storage bucket {bucketId}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}/download'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a file as an attachment
      effect: read
      questions:
      - How do I make the browser download a stored file?
      - Can I download a file using a file token instead of a session?
      instructions:
      - text: Download file {fileId} from bucket {bucketId}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
      - text: Download {fileId} from {bucketId} using token {token}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
          token: query.token
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}/preview'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a resized image preview of a file
      effect: read
      questions:
      - Can I get a thumbnail of an uploaded image at a specific size?
      - Which image formats can a file preview be output as?
      - What preview do non-image files like PDFs return?
      instructions:
      - text: Get a {width}x{height} preview of file {fileId} in bucket {bucketId}.
        slots:
          width: query.width
          height: query.height
          fileId: path.fileId
          bucketId: path.bucketId
      - text: Preview {fileId} from {bucketId} as {output} at quality {quality}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
          output: query.output
          quality: query.quality
      method: generated
      generated: '2026-09-26'
- target: $.paths['/storage/buckets/{bucketId}/files/{fileId}/view'].get
  update:
    x-apievangelist-phrasing:
      intent: View a file inline in the browser
      effect: read
      questions:
      - How do I display a stored file inline instead of downloading it?
      - Can I embed a stored PDF or image directly in a page?
      instructions:
      - text: Open file {fileId} from bucket {bucketId} for inline viewing.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
      - text: View {fileId} in {bucketId} inline with token {token}.
        slots:
          fileId: path.fileId
          bucketId: path.bucketId
          token: query.token
      method: generated
      generated: '2026-09-26'