# 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 Multipart Upload API version: 1.0.0 extends: openapi/amazon-s3-multipart-upload-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: 4 - target: $.paths['/{Bucket}/{Key+}?uploads'].post update: x-apievangelist-phrasing: intent: Start a multipart upload effect: write questions: - How do I begin uploading a very large file in parts? - Where do I get the upload ID that ties the parts together? instructions: - text: Start a multipart upload for {key} in bucket {bucket}. slots: key: path.Key+ bucket: path.Bucket - text: Initiate a multipart upload of {key} to {bucket} with storage class {storage_class}. slots: key: path.Key+ bucket: path.Bucket storage_class: header.x-amz-storage-class method: generated generated: '2026-10-01' - target: $.paths['/{Bucket}/{Key+}?partNumber={partNumber}&uploadId={uploadId}'].put update: x-apievangelist-phrasing: intent: Upload one part of a multipart upload effect: write questions: - What size does each part of a multipart upload need to be? - How many parts can a single multipart upload have? instructions: - text: Upload part {part} of upload {upload_id} for {key} in {bucket}. slots: part: query.partNumber upload_id: query.uploadId key: path.Key+ bucket: path.Bucket - text: Send the next chunk as part {part} of multipart upload {upload_id}. slots: part: query.partNumber upload_id: query.uploadId method: generated generated: '2026-10-01' - target: $.paths['/{Bucket}/{Key+}?uploadId={uploadId}'].post update: x-apievangelist-phrasing: intent: Finish a multipart upload effect: write questions: - How do I assemble my uploaded parts into the final object? - What do I need to send to finish a multipart upload, part numbers and ETags? instructions: - text: Complete multipart upload {upload_id} for {key} in {bucket}. slots: upload_id: query.uploadId key: path.Key+ bucket: path.Bucket - text: Assemble parts {parts} into the final object for upload {upload_id}. slots: parts: requestBody.Part upload_id: query.uploadId method: generated generated: '2026-10-01' - target: $.paths['/{Bucket}/{Key+}?uploadId={uploadId}'].delete update: x-apievangelist-phrasing: intent: Abort a multipart upload effect: destructive questions: - How do I cancel an unfinished multipart upload and free the storage its parts use? - Can I still upload parts after aborting an upload? instructions: - text: Abort multipart upload {upload_id} for {key} in {bucket}. slots: upload_id: query.uploadId key: path.Key+ bucket: path.Bucket - text: Cancel the incomplete upload {upload_id} and discard its parts. slots: upload_id: query.uploadId method: generated generated: '2026-10-01'