{ "openapi": "3.0.0", "info": { "title": "Upload to S3", "version": "1.0.0", "description": "This endpoint handles the S3 upload process for custom applications using a variable URL." }, "servers": [ { "url": "https://", "description": "The S3 upload URL provided by the custom app creation endpoint. This is a variable URL that changes for each upload request." } ], "paths": { "/{post_url}": { "post": { "summary": "Upload to S3", "description": "This endpoint handles the S3 upload process for custom applications using a variable URL.", "parameters": [ { "name": "post_url", "in": "path", "required": true, "description": "The S3 upload URL provided by the custom app creation endpoint. This is a variable URL that changes for each upload request.", "schema": { "type": "string" }, "example": "https://s3.amazonaws.com/bucket-name/upload-path" } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "key": { "type": "string", "description": "Value provided by the custom app creation endpoint" }, "x-amz-algorithm": { "type": "string", "description": "AWS signature algorithm" }, "x-amz-credential": { "type": "string", "description": "AWS credentials" }, "x-amz-date": { "type": "string", "description": "AWS request date" }, "x-amz-security-token": { "type": "string", "description": "AWS security token" }, "policy": { "type": "string", "description": "AWS policy" }, "x-amz-signature": { "type": "string", "description": "AWS signature" }, "file": { "type": "string", "format": "binary", "description": "The application file to upload" } }, "required": [ "key", "file" ] } } } }, "responses": { "200": { "description": "File uploaded successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "message": { "type": "string", "example": "File uploaded successfully" } } } } } }, "400": { "description": "Bad request - invalid parameters or file" }, "403": { "description": "Forbidden - invalid S3 credentials or permissions" }, "500": { "description": "Internal server error" } } } } } }