addedInput schema / properties / add / additionalProperties
Added value: +false
changedInput schema / properties / add / description
Previous value: -"New jobs to append, up to 500"New value: +"New rows, on pages, templates or a flow, as at create"
removedInput schema / properties / add / items
Removed value: -{
- "properties": {
- "flowId": {
- "description": "A flow of that template (get_template_inputs flows): the job renders it as a video, with a video outputFormat",
- "format": "uuid",
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
- "type": "string"
- },
- "outputFormat": {
- "description": "Output format; defaults to png. mp4, gif, webm or mov makes it a video, which needs an animated template and costs more credits.",
- "enum": [
- "png",
- "jpeg",
- "webp",
- "pdf",
- "mp4",
- "gif",
- "webm",
- "mov"
- ],
- "type": "string"
- },
- "row": {
- "additionalProperties": {
- "anyOf": [
- {
- "anyOf": [
- {
- "description": "A text layer's text, with <s1>...</s1> tags for runs when it has several styles; or an image layer's asset id or file name",
- "type": "string"
- },
- {
- "additionalProperties": {},
- "description": "A text layer's text and visibility",
- "properties": {
- "text": {
- "description": "The layer's new text, tagged like a string value",
- "type": "string"
- },
- "visible": {
- "description": "false hides the layer; layout closes the gap",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- {
- "additionalProperties": {},
- "description": "An image layer's image and framing",
- "properties": {
- "asset": {
- "description": "An asset id (search_assets, upload_images), the image's file name, or a designer image key. Omit to keep the template's image and only re-frame it.",
- "type": "string"
- },
- "fit": {
- "description": "cover fills the slot and crops (default), contain shows the whole image, stretch distorts to the slot. The designer's names work too: fill is cover, fit is contain",
- "enum": [
- "cover",
- "contain",
- "stretch",
- "fill",
- "fit"
- ],
- "type": "string"
- },
- "panX": {
- "description": "Moves the image by this fraction of the slot width; positive = right",
- "maximum": 1,
- "minimum": -1,
- "type": "number"
- },
- "panY": {
- "description": "Moves the image by this fraction of the slot height; positive = down",
- "maximum": 1,
- "minimum": -1,
- "type": "number"
- },
- "visible": {
- "description": "false hides the layer",
- "type": "boolean"
- },
- "zoom": {
- "description": "Zoom about the slot centre; 1 = none",
- "maximum": 4,
- "minimum": 0.2,
- "type": "number"
- }
- },
- "type": "object"
- }
- ]
- },
- {
- "type": "null"
- }
- ]
- },
- "description": "Row for the new job, shaped like a create_batch row",
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "templateId": {
- "description": "Template for this job; defaults to the batch's template",
- "format": "uuid",
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
- "type": "string"
- }
- },
- "required": [
- "row"
- ],
- "type": "object"
-}
removedInput schema / properties / add / maxItems
Removed value: -500
addedInput schema / properties / add / properties
Added value: +{
+ "flow": {
+ "description": "Instead of pages: one flow (get_template_inputs flows), a video joining some of its template's pages, that every row renders as, with a video output format. A name fills that layer on every page of the video; `<pageId>@<layer>` one page, `<pageId>#2@<layer>` a page's second visit.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "pages": {
+ "description": "Page ids (get_template_inputs pages, from any templates) every row renders on, in order: one id for one file per row, several for one file per row per page, such as a carousel's slides. A row's plain keys fill every page that has the layer; `<pageId>@<layer>` fills one page.",
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 20,
+ "minItems": 1,
+ "type": "array"
+ },
+ "rows": {
+ "description": "1 to 1,000 rows, each its own modifications and output, rendered on every page named (or as the flow's video)",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "modifications": {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "description": "A text layer's text, with <s1>...</s1> tags for runs when it has several styles; or an image layer's asset id or file name",
+ "type": "string"
+ },
+ {
+ "additionalProperties": {},
+ "description": "A text layer's text and visibility",
+ "properties": {
+ "text": {
+ "description": "The layer's new text, tagged like a string value",
+ "type": "string"
+ },
+ "visible": {
+ "description": "false hides the layer; layout closes the gap",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "description": "An image layer's image and framing",
+ "properties": {
+ "asset": {
+ "description": "An asset id (search_assets, upload_images), the image's file name, or a designer image key. Omit to keep the template's image and only re-frame it.",
+ "type": "string"
+ },
+ "fit": {
+ "description": "cover fills the slot and crops (default), contain shows the whole image, stretch distorts to the slot. The designer's names work too: fill is cover, fit is contain",
+ "enum": [
+ "cover",
+ "contain",
+ "stretch",
+ "fill",
+ "fit"
+ ],
+ "type": "string"
+ },
+ "panX": {
+ "description": "Moves the image by this fraction of the slot width; positive = right",
+ "maximum": 1,
+ "minimum": -1,
+ "type": "number"
+ },
+ "panY": {
+ "description": "Moves the image by this fraction of the slot height; positive = down",
+ "maximum": 1,
+ "minimum": -1,
+ "type": "number"
+ },
+ "visible": {
+ "description": "false hides the layer",
+ "type": "boolean"
+ },
+ "zoom": {
+ "description": "Zoom about the slot centre; 1 = none",
+ "maximum": 4,
+ "minimum": 0.2,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "default": {},
+ "description": "Layer key to value: a layer's name (case aside) or id, the key get_template_inputs gives, to a plain value: text as a string, an image as an asset id or file name, or { asset, fit, zoom, panX, panY } and { text, visible } when framing or visibility changes. rowExample in get_template_inputs is ready to use. null leaves a layer at the page's own value; layers left out keep it too.",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "output": {
+ "additionalProperties": false,
+ "description": "What to make; png when omitted",
+ "properties": {
+ "fileName": {
+ "description": "The file's name, without extension",
+ "maxLength": 200,
+ "minLength": 1,
+ "type": "string"
+ },
+ "format": {
+ "default": "png",
+ "description": "png, jpeg and webp render an image and pdf one vector page; mp4 and gif render the whole motion as a video, and webm (VP9) and mov (ProRes 4444) as a transparent video for overlaying on other footage. Video needs an animated template (get_template_inputs isAnimated) and costs more credits",
+ "enum": [
+ "png",
+ "jpeg",
+ "webp",
+ "pdf",
+ "mp4",
+ "gif",
+ "webm",
+ "mov"
+ ],
+ "type": "string"
+ },
+ "stillTime": {
+ "description": "Animated pages, images only: the second of the motion the image shows. Omit it to use the page's own still time (get_template_inputs stillTime), else the last frame. If the page has no still time, ask the user, because an outro or a loop can make the last frame a bad image.",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "maxItems": 1000,
+ "minItems": 1,
+ "type": "array"
+ },
+ "templates": {
+ "description": "Instead of pages: template ids whose every page each row renders on, in page order",
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 20,
+ "minItems": 1,
+ "type": "array"
+ }
+}
addedInput schema / properties / add / required
Added value: +[
+ "rows"
+]
changedInput schema / properties / add / type
Previous value: -"array"New value: +"object"
changedInput schema / properties / remove / description
Previous value: -"IDs of editable jobs to delete permanently"New value: +"IDs of pending jobs to delete permanently"
changedInput schema / properties / remove / maxItems
Previous value: -500New value: +1000
changedInput schema / properties / update / description
Previous value: -"Jobs to change, up to 500"New value: +"Jobs to change"
addedInput schema / properties / update / items / additionalProperties
Added value: +false
addedInput schema / properties / update / items / properties / job
Added value: +{
+ "description": "Pending job ID from get_batch_jobs",
+ "format": "uuid",
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
+ "type": "string"
+}
removedInput schema / properties / update / items / properties / jobId
Removed value: -{
- "description": "Editable job ID from get_batch_jobs",
- "format": "uuid",
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
- "type": "string"
-}
addedInput schema / properties / update / items / properties / modifications
Added value: +{
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "description": "A text layer's text, with <s1>...</s1> tags for runs when it has several styles; or an image layer's asset id or file name",
+ "type": "string"
+ },
+ {
+ "additionalProperties": {},
+ "description": "A text layer's text and visibility",
+ "properties": {
+ "text": {
+ "description": "The layer's new text, tagged like a string value",
+ "type": "string"
+ },
+ "visible": {
+ "description": "false hides the layer; layout closes the gap",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "description": "An image layer's image and framing",
+ "properties": {
+ "asset": {
+ "description": "An asset id (search_assets, upload_images), the image's file name, or a designer image key. Omit to keep the template's image and only re-frame it.",
+ "type": "string"
+ },
+ "fit": {
+ "description": "cover fills the slot and crops (default), contain shows the whole image, stretch distorts to the slot. The designer's names work too: fill is cover, fit is contain",
+ "enum": [
+ "cover",
+ "contain",
+ "stretch",
+ "fill",
+ "fit"
+ ],
+ "type": "string"
+ },
+ "panX": {
+ "description": "Moves the image by this fraction of the slot width; positive = right",
+ "maximum": 1,
+ "minimum": -1,
+ "type": "number"
+ },
+ "panY": {
+ "description": "Moves the image by this fraction of the slot height; positive = down",
+ "maximum": 1,
+ "minimum": -1,
+ "type": "number"
+ },
+ "visible": {
+ "description": "false hides the layer",
+ "type": "boolean"
+ },
+ "zoom": {
+ "description": "Zoom about the slot centre; 1 = none",
+ "maximum": 4,
+ "minimum": 0.2,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": "Only the layers to change; null clears one back to the page's value",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+}
addedInput schema / properties / update / items / properties / output
Added value: +{
+ "additionalProperties": false,
+ "description": "Output fields to change; omit to keep them",
+ "properties": {
+ "fileName": {
+ "description": "The file's name, without extension",
+ "maxLength": 200,
+ "minLength": 1,
+ "type": "string"
+ },
+ "format": {
+ "default": "png",
+ "description": "png, jpeg and webp render an image and pdf one vector page; mp4 and gif render the whole motion as a video, and webm (VP9) and mov (ProRes 4444) as a transparent video for overlaying on other footage. Video needs an animated template (get_template_inputs isAnimated) and costs more credits",
+ "enum": [
+ "png",
+ "jpeg",
+ "webp",
+ "pdf",
+ "mp4",
+ "gif",
+ "webm",
+ "mov"
+ ],
+ "type": "string"
+ },
+ "stillTime": {
+ "description": "Animated pages, images only: the second of the motion the image shows. Omit it to use the page's own still time (get_template_inputs stillTime), else the last frame. If the page has no still time, ask the user, because an outro or a loop can make the last frame a bad image.",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+}
removedInput schema / properties / update / items / properties / outputFormat
Removed value: -{
- "description": "New output format; omit to keep the job's format. mp4, gif, webm or mov makes it a video, which needs an animated template and costs more credits.",
- "enum": [
- "png",
- "jpeg",
- "webp",
- "pdf",
- "mp4",
- "gif",
- "webm",
- "mov"
- ],
- "type": "string"
-}
removedInput schema / properties / update / items / properties / row
Removed value: -{
- "additionalProperties": {
- "anyOf": [
- {
- "anyOf": [
- {
- "description": "A text layer's text, with <s1>...</s1> tags for runs when it has several styles; or an image layer's asset id or file name",
- "type": "string"
- },
- {
- "additionalProperties": {},
- "description": "A text layer's text and visibility",
- "properties": {
- "text": {
- "description": "The layer's new text, tagged like a string value",
- "type": "string"
- },
- "visible": {
- "description": "false hides the layer; layout closes the gap",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- {
- "additionalProperties": {},
- "description": "An image layer's image and framing",
- "properties": {
- "asset": {
- "description": "An asset id (search_assets, upload_images), the image's file name, or a designer image key. Omit to keep the template's image and only re-frame it.",
- "type": "string"
- },
- "fit": {
- "description": "cover fills the slot and crops (default), contain shows the whole image, stretch distorts to the slot. The designer's names work too: fill is cover, fit is contain",
- "enum": [
- "cover",
- "contain",
- "stretch",
- "fill",
- "fit"
- ],
- "type": "string"
- },
- "panX": {
- "description": "Moves the image by this fraction of the slot width; positive = right",
- "maximum": 1,
- "minimum": -1,
- "type": "number"
- },
- "panY": {
- "description": "Moves the image by this fraction of the slot height; positive = down",
- "maximum": 1,
- "minimum": -1,
- "type": "number"
- },
- "visible": {
- "description": "false hides the layer",
- "type": "boolean"
- },
- "zoom": {
- "description": "Zoom about the slot centre; 1 = none",
- "maximum": 4,
- "minimum": 0.2,
- "type": "number"
- }
- },
- "type": "object"
- }
- ]
- },
- {
- "type": "null"
- }
- ]
- },
- "description": "Only the layers to change, keyed and valued as create_batch rows are",
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
-}
changedInput schema / properties / update / items / required
Previous value: -[
- "jobId",
- "row"
-]New value: +[
+ "job"
+]
changedInput schema / properties / update / maxItems
Previous value: -500New value: +1000
addedOutput schema / properties / added
Added value: +{
+ "description": "Jobs added",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+}
removedOutput schema / properties / deleted
Removed value: -{
- "description": "Jobs removed",
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
-}
removedOutput schema / properties / inserted
Removed value: -{
- "description": "Jobs added",
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
-}
addedOutput schema / properties / removed
Added value: +{
+ "description": "Jobs removed",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+}
changedOutput schema / required
Previous value: -[
- "id",
- "inserted",
- "updated",
- "deleted"
-]New value: +[
+ "id",
+ "added",
+ "updated",
+ "removed"
+]