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