publ betaReference (MCP guide)
Open publ console

publ Reference

course_files_apply

Uploads a class cover, description, notice, class talk or review image, lesson thumbnail, inline image, attachment or home image from this computer (presigned upload; a link is downloaded to the computer first) in the Course app (pApp C00007). Returns a completed task to use in the matching editor. Called without confirmToken it previews and returns a confirmToken; repeating the same input with it executes once.

Inputs

Field Required here Contract
purpose Yes one of: course-cover, course-description-image, course-notice-image, course-comment-image, course-review-image, course-video-thumbnail, course-session-thumbnail, course-session-inline-image, course-home-image, course-session-attachment
upload Yes When purpose is course-cover: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-cover and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-cover and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-cover and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-cover and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-cover and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-cover and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-cover and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-cover and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-cover and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-cover and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-cover and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-cover and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-cover and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-cover and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-cover and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-cover and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-cover and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-cover and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
seriesId Yes When purpose is course-cover: integer; greater than 0
confirmToken No When purpose is course-cover: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-description-image: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-description-image and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-description-image and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-description-image and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-description-image and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-description-image and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-description-image and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-description-image and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-description-image and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-description-image and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-description-image and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-description-image and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-description-image and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-description-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-description-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-description-image and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-description-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-description-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-description-image and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
seriesId Yes When purpose is course-description-image: integer; greater than 0
confirmToken No When purpose is course-description-image: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-notice-image: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-notice-image and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-notice-image and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-notice-image and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-notice-image and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-notice-image and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-notice-image and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-notice-image and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-notice-image and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-notice-image and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-notice-image and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-notice-image and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-notice-image and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-notice-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-notice-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-notice-image and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-notice-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-notice-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-notice-image and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
seriesId Yes When purpose is course-notice-image: integer; greater than 0
confirmToken No When purpose is course-notice-image: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-comment-image: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-comment-image and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-comment-image and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-comment-image and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-comment-image and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-comment-image and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-comment-image and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-comment-image and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-comment-image and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-comment-image and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-comment-image and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-comment-image and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-comment-image and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-comment-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-comment-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-comment-image and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-comment-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-comment-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-comment-image and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
seriesId Yes When purpose is course-comment-image: integer; greater than 0
confirmToken No When purpose is course-comment-image: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-review-image: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-review-image and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-review-image and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-review-image and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-review-image and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-review-image and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-review-image and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-review-image and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-review-image and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-review-image and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-review-image and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-review-image and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-review-image and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-review-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-review-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-review-image and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-review-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-review-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-review-image and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
seriesId Yes When purpose is course-review-image: integer; greater than 0
confirmToken No When purpose is course-review-image: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-video-thumbnail: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-video-thumbnail and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-video-thumbnail and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-video-thumbnail and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-video-thumbnail and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-video-thumbnail and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-video-thumbnail and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-video-thumbnail and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-video-thumbnail and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-video-thumbnail and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-video-thumbnail and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-video-thumbnail and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-video-thumbnail and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-video-thumbnail and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-video-thumbnail and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-video-thumbnail and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-video-thumbnail and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-video-thumbnail and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-video-thumbnail and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
confirmToken No When purpose is course-video-thumbnail: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-session-thumbnail: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-session-thumbnail and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-session-thumbnail and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-session-thumbnail and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-session-thumbnail and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-session-thumbnail and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-session-thumbnail and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-session-thumbnail and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-session-thumbnail and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-session-thumbnail and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-session-thumbnail and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-session-thumbnail and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-session-thumbnail and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-session-thumbnail and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-session-thumbnail and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-session-thumbnail and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-session-thumbnail and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-session-thumbnail and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-session-thumbnail and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
postId Yes When purpose is course-session-thumbnail: integer; greater than 0
confirmToken No When purpose is course-session-thumbnail: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-session-inline-image: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-session-inline-image and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-session-inline-image and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-session-inline-image and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-session-inline-image and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-session-inline-image and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-session-inline-image and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-session-inline-image and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-session-inline-image and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-session-inline-image and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-session-inline-image and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-session-inline-image and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-session-inline-image and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-session-inline-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-session-inline-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-session-inline-image and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-session-inline-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-session-inline-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-session-inline-image and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
postId Yes When purpose is course-session-inline-image: integer; greater than 0
confirmToken No When purpose is course-session-inline-image: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
sectionId Yes When purpose is course-home-image: integer; greater than 0
itemId Yes When purpose is course-home-image: integer; greater than 0
field Yes When purpose is course-home-image: alternativeLogoSrc, backgroundDesktopImgSrc, backgroundMobileImgSrc, bannerImgSrc
upload Yes When purpose is course-home-image: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-home-image and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-home-image and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-home-image and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-home-image and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-home-image and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-home-image and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-home-image and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-home-image and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-home-image and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-home-image and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-home-image and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-home-image and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-home-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-home-image and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-home-image and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-home-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-home-image and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-home-image and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
confirmToken No When purpose is course-home-image: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.
upload Yes When purpose is course-session-attachment: one of: local-file, more-parts, complete, cancel (by kind); Upload the file from this computer: {kind:"local-file", filename, byteLength, sha256} returns one presigned PUT (size, type and SHA-256 signed) and the console upload screen; send the file, then call again with the same purpose and target and upload {kind:"complete", uploadId, parts:[{partNumber:1, etag}]}. The server never receives the file or downloads a link; download a Google Drive or other link to this computer first.
upload.filename Yes When purpose is course-session-attachment and upload.kind is local-file: string; min length 1; max length 240; pattern ^[^/\\:\x00-\x1f\x7f]+$; The name of the file on this computer, with its extension.
upload.byteLength Yes When purpose is course-session-attachment and upload.kind is local-file: integer; greater than 0; The exact file size in bytes (for example from wc -c < FILE or stat).
upload.sha256 No When purpose is course-session-attachment and upload.kind is local-file: string; pattern ^[0-9a-f]{64}$; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED.
upload.uploadId Yes When purpose is course-session-attachment and upload.kind is more-parts: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.fromPart Yes When purpose is course-session-attachment and upload.kind is more-parts: integer; minimum 1; maximum 10000
upload.uploadId Yes When purpose is course-session-attachment and upload.kind is complete: string; pattern ^upl_[A-Za-z0-9_-]{22}$
upload.parts Yes When purpose is course-session-attachment and upload.kind is complete: array; min items 1; max items 10000
upload.parts[].partNumber Yes When purpose is course-session-attachment and upload.kind is complete: integer; minimum 1; maximum 10000
upload.parts[].etag Yes When purpose is course-session-attachment and upload.kind is complete: string; min length 1; max length 200
upload.measured No When purpose is course-session-attachment and upload.kind is complete: object; What the video measures on this computer, read with measureCommand.
upload.measured.durationSeconds Yes When purpose is course-session-attachment and upload.kind is complete: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration).
upload.measured.frameRate Yes When purpose is course-session-attachment and upload.kind is complete: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97).
upload.measured.width Yes When purpose is course-session-attachment and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.height Yes When purpose is course-session-attachment and upload.kind is complete: integer; maximum 100000; greater than 0
upload.measured.frameRateMode No When purpose is course-session-attachment and upload.kind is complete: CFR, VFR; Constant or variable frame rate, when the tool reports it.
upload.measured.minFrameRate No When purpose is course-session-attachment and upload.kind is complete: number; maximum 1000; greater than 0
upload.measured.maxFrameRate No When purpose is course-session-attachment and upload.kind is complete: number; maximum 1000; greater than 0
upload.uploadId Yes When purpose is course-session-attachment and upload.kind is cancel: string; pattern ^upl_[A-Za-z0-9_-]{22}$
postId Yes When purpose is course-session-attachment: integer; greater than 0
confirmToken No When purpose is course-session-attachment: string; pattern ^ct[a-f\d]{32}$; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute.