Amazon S3 · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Amazon S3 REST Objects API
8 actions
8 updates
phrasing
extends
openapi/amazon-s3-objects-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Amazon S3's API. It is a proposal applied on top of the contract, not a document Amazon S3 publishes.
What the actions change
x-apievangelist-phrasing
Targets 8
$.info
$.paths['/{Bucket}?list-type=2'].get
$.paths['/{Bucket}/{Key+}'].get
$.paths['/{Bucket}/{Key+}'].put
$.paths['/{Bucket}/{Key+}'].delete
$.paths['/{Bucket}/{Key+}'].head
$.paths['/{Bucket}/{Key+}?copy'].put
$.paths['/{Bucket}?delete'].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 Amazon S3 REST Objects API
version: 1.0.0
extends: openapi/amazon-s3-objects-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 7
- target: $.paths['/{Bucket}?list-type=2'].get
update:
x-apievangelist-phrasing:
intent: List objects in a bucket
effect: read
questions:
- How do I see what files are stored in a bucket?
- Can I list only the objects under a certain folder prefix?
- What's the maximum number of keys returned per listing page?
instructions:
- text: List the objects in bucket {bucket}.
slots:
bucket: path.Bucket
- text: List objects in {bucket} whose keys start with {prefix}.
slots:
bucket: path.Bucket
prefix: query.prefix
- text: List up to {max_keys} keys in {bucket} grouped by delimiter {delimiter}.
slots:
max_keys: query.max-keys
bucket: path.Bucket
delimiter: query.delimiter
method: generated
generated: '2026-10-01'
- target: $.paths['/{Bucket}/{Key+}'].get
update:
x-apievangelist-phrasing:
intent: Download an object
effect: read
questions:
- How do I download a file from an S3 bucket?
- Can I fetch just a byte range of a large object?
- Can I retrieve an older version of a file?
instructions:
- text: Download object {key} from bucket {bucket}.
slots:
key: path.Key+
bucket: path.Bucket
- text: Download bytes {range} of {key} in {bucket}.
slots:
range: header.Range
key: path.Key+
bucket: path.Bucket
- text: Get version {version} of {key} from {bucket}.
slots:
version: query.versionId
key: path.Key+
bucket: path.Bucket
method: generated
generated: '2026-10-01'
- target: $.paths['/{Bucket}/{Key+}'].put
update:
x-apievangelist-phrasing:
intent: Upload an object
effect: write
questions:
- How do I upload a file to an S3 bucket?
- What's the largest file I can upload in a single PUT?
- Can I choose a storage class and encryption when uploading a file?
instructions:
- text: Upload a file to {bucket} as key {key}.
slots:
bucket: path.Bucket
key: path.Key+
- text: Upload {key} to {bucket} with storage class {storage_class}.
slots:
key: path.Key+
bucket: path.Bucket
storage_class: header.x-amz-storage-class
- text: Store {key} in {bucket} with content type {content_type}.
slots:
key: path.Key+
bucket: path.Bucket
content_type: header.Content-Type
method: generated
generated: '2026-10-01'
- target: $.paths['/{Bucket}/{Key+}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a single object
effect: destructive
questions:
- How do I delete one file from a bucket?
- What happens when I delete an object in a versioned bucket?
- Can I permanently remove a specific version of an object?
instructions:
- text: Delete object {key} from bucket {bucket}.
slots:
key: path.Key+
bucket: path.Bucket
- text: Permanently delete version {version} of {key} in {bucket}.
slots:
version: query.versionId
key: path.Key+
bucket: path.Bucket
method: generated
generated: '2026-10-01'
- target: $.paths['/{Bucket}/{Key+}'].head
update:
x-apievangelist-phrasing:
intent: Check an object's metadata
effect: read
questions:
- How can I check if a file exists in a bucket without downloading it?
- Can I read an object's size and content type without fetching its body?
instructions:
- text: Get the metadata of {key} in {bucket} without downloading it.
slots:
key: path.Key+
bucket: path.Bucket
- text: Check whether object {key} exists in bucket {bucket}.
slots:
key: path.Key+
bucket: path.Bucket
method: generated
generated: '2026-10-01'
- target: $.paths['/{Bucket}/{Key+}?copy'].put
update:
x-apievangelist-phrasing:
intent: Copy an object
effect: write
questions:
- How do I copy a file from one bucket to another?
- What's the size limit for copying an object in one request?
- Can I replace the metadata while copying an object?
instructions:
- text: Copy {source} to key {key} in bucket {bucket}.
slots:
source: header.x-amz-copy-source
key: path.Key+
bucket: path.Bucket
- text: Copy {source} into {bucket}/{key} with storage class {storage_class}.
slots:
source: header.x-amz-copy-source
bucket: path.Bucket
key: path.Key+
storage_class: header.x-amz-storage-class
method: generated
generated: '2026-10-01'
- target: $.paths['/{Bucket}?delete'].post
update:
x-apievangelist-phrasing:
intent: Delete many objects in one request
effect: destructive
questions:
- How do I delete a batch of files from a bucket at once?
- How many keys can I remove in a single bulk delete?
- Can I suppress per-key results when bulk deleting?
instructions:
- text: Delete objects {objects} from bucket {bucket} in one request.
slots:
objects: requestBody.Object
bucket: path.Bucket
- text: Bulk delete the listed keys from {bucket} in quiet mode {quiet}.
slots:
bucket: path.Bucket
quiet: requestBody.Quiet
method: generated
generated: '2026-10-01'