From 8b7e3be595efb3e947d5a03f16a8fa874ff95325 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 25 Jun 2026 11:04:09 +0000 Subject: [PATCH 1/2] Document presigned PUT upload response on /attachments.create Reflects the new `mode` field and the alternate `url` / `headers` response shape returned when AWS_S3_UPLOAD_METHOD is set to "put" (outline/outline#12748). --- spec3.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/spec3.yml b/spec3.yml index 2d35461..636f91f 100644 --- a/spec3.yml +++ b/spec3.yml @@ -511,11 +511,36 @@ paths: properties: maxUploadSize: type: number + mode: + type: string + enum: + - post + - put + description: + Indicates which presigned upload method the server is + configured to use. When `post`, the client should perform + a multipart form POST using `uploadUrl` and `form`. When + `put`, the client should perform a PUT request to `url` + with the supplied `headers`. uploadUrl: type: string format: uri + description: Present when `mode` is `post`. The endpoint to + POST a multipart form upload to. form: type: object + description: Present when `mode` is `post`. The form fields + to include in the multipart upload, including signed + credentials. + url: + type: string + format: uri + description: Present when `mode` is `put`. The presigned URL + to PUT the file contents to. + headers: + type: object + description: Present when `mode` is `put`. The HTTP headers + that must be sent with the PUT request. attachment: "$ref": "#/components/schemas/Attachment" "400": From 4ce82dfa3e5236936b2f806b96a5b202551efa77 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 25 Jun 2026 11:05:31 +0000 Subject: [PATCH 2/2] Regenerate spec3.json --- spec3.json | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/spec3.json b/spec3.json index f4579bc..273c380 100644 --- a/spec3.json +++ b/spec3.json @@ -450,12 +450,31 @@ "maxUploadSize": { "type": "number" }, + "mode": { + "type": "string", + "enum": [ + "post", + "put" + ], + "description": "Indicates which presigned upload method the server is configured to use. When `post`, the client should perform a multipart form POST using `uploadUrl` and `form`. When `put`, the client should perform a PUT request to `url` with the supplied `headers`." + }, "uploadUrl": { "type": "string", - "format": "uri" + "format": "uri", + "description": "Present when `mode` is `post`. The endpoint to POST a multipart form upload to." }, "form": { - "type": "object" + "type": "object", + "description": "Present when `mode` is `post`. The form fields to include in the multipart upload, including signed credentials." + }, + "url": { + "type": "string", + "format": "uri", + "description": "Present when `mode` is `put`. The presigned URL to PUT the file contents to." + }, + "headers": { + "type": "object", + "description": "Present when `mode` is `put`. The HTTP headers that must be sent with the PUT request." }, "attachment": { "$ref": "#/components/schemas/Attachment"