{
"type": "object",
"properties": {
"upload_id": {
"type": "string",
"description": "Opaque id to pass to the finalize tool once the file is uploaded"
},
"kind": {
"type": "string",
"description": "The upload kind"
},
"target_id": {
"type": "string",
"description": "The target id as given"
},
"file_name": {
"type": "string",
"description": "The sanitised file name the upload will be stored under"
},
"accepted_types": {
"type": "array",
"items": {
"type": "string"
},
"description": "Extensions accepted for this kind"
},
"max_bytes": {
"type": "number",
"description": "Maximum file size in bytes"
},
"expires_at": {
"type": "string",
"description": "When the upload URL stops working"
},
"finalize_tool": {
"type": "string",
"description": "Tool to call with upload_id after the file is uploaded"
},
"upload_host": {
"type": "string",
"description": "Host the file is PUT to (Azure storage). Allow it for network egress if your sandbox restricts outbound traffic"
},
"next_step": {
"type": "string",
"description": "What to do next"
},
"upload": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"method": {
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"url",
"method",
"headers"
],
"additionalProperties": false,
"description": "Present only when reveal_url is true: where and how to PUT the bytes"
}
},
"required": [
"upload_id",
"kind",
"target_id",
"file_name",
"accepted_types",
"max_bytes",
"expires_at",
"finalize_tool",
"upload_host",
"next_step"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}