{"command":{"effect":"write","timeoutSeconds":120,"inputSchema":{"type":"object","description":"Completes the [Upload](https://developers.openai.com/api/reference/resources/uploads).\n\nWithin the returned Upload object, there is a nested [File](https://developers.openai.com/api/reference/resources/files) object that is ready to use in the rest of the platform.\n\nYou can specify the order of the Parts by passing in an ordered list of the Part IDs.\n\nThe number of bytes uploaded upon completion must match the number of bytes initially specified when creating the Upload object. No Parts may be added after an Upload is completed.\nReturns the Upload object with status `completed`, including an additional `file` property containing the created usable File object.\n","properties":{"path":{"type":"object","properties":{"upload_id":{"type":"string","examples":["upload_abc123"],"description":"The ID of the Upload.\n"}},"required":["upload_id"],"additionalProperties":false},"body":{"$ref":"#/definitions/CompleteUploadRequest"}},"required":["path","body"],"additionalProperties":false,"definitions":{"CompleteUploadRequest":{"type":"object","additionalProperties":false,"properties":{"part_ids":{"type":"array","description":"The ordered list of Part IDs.\n","items":{"type":"string"}},"md5":{"description":"The optional md5 checksum for the file contents to verify if the bytes uploaded matches what you expect.\n","type":"string"}},"required":["part_ids"]}}},"name":"Complete upload","id":"openai.completeupload","example":{"path":{"upload_id":"upload_abc123"},"body":{"part_ids":[]}},"maxRequests":1,"summary":false}}