Raw schema
{
"type": "object",
"properties": {
"workflow_id": {
"description": "Workflow ID",
"format": "uuid",
"title": "Workflow Id",
"type": "string"
},
"definition": {
"$ref": "#/$defs/WorkflowVersionCreate",
"description": "Draft workflow graph, contract version, failure policy, and optional published base version"
}
},
"required": [
"workflow_id",
"definition"
],
"$defs": {
"AiModelInputConfig": {
"additionalProperties": false,
"properties": {
"model_slug": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Model Slug"
}
},
"title": "AiModelInputConfig",
"type": "object"
},
"AiModelInputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.ai_model",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/AiModelInputConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "AiModelInputNodeInput",
"type": "object"
},
"ArtDirectionInputConfig": {
"additionalProperties": false,
"properties": {
"art_direction_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Art Direction Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "ArtDirectionInputConfig",
"type": "object"
},
"ArtDirectionInputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.art_direction",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/ArtDirectionInputConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "ArtDirectionInputNodeInput",
"type": "object"
},
"AvatarInputConfig": {
"additionalProperties": false,
"properties": {
"avatar_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "AvatarInputConfig",
"type": "object"
},
"AvatarInputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.avatar",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/AvatarInputConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "AvatarInputNodeInput",
"type": "object"
},
"BranchNodeConfig": {
"additionalProperties": false,
"properties": {
"condition_type": {
"const": "qa_decision",
"title": "Condition Type",
"type": "string"
},
"cases": {
"additionalProperties": {
"enum": [
"accepted",
"rejected",
"error"
],
"type": "string"
},
"minProperties": 1,
"propertyNames": {
"enum": [
"accepted",
"rejected",
"error"
]
},
"title": "Cases",
"type": "object"
}
},
"required": [
"condition_type",
"cases"
],
"title": "BranchNodeConfig",
"type": "object"
},
"BranchNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"$ref": "#/$defs/ReadinessInput"
},
"infrastructure_retry": {
"$ref": "#/$defs/InfrastructureRetryInput"
},
"type": {
"const": "branch",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/BranchNodeConfig"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "BranchNodeInput",
"type": "object"
},
"ClothingInputConfig": {
"additionalProperties": false,
"properties": {
"clothing_item_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Clothing Item Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "ClothingInputConfig",
"type": "object"
},
"ClothingInputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.clothing",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/ClothingInputConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "ClothingInputNodeInput",
"type": "object"
},
"DeliverTagDestination": {
"additionalProperties": false,
"properties": {
"type": {
"const": "tag",
"title": "Type",
"type": "string"
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
}
},
"required": [
"type",
"tag_ids"
],
"title": "DeliverTagDestination",
"type": "object"
},
"DeliverWebhookDestination": {
"additionalProperties": false,
"properties": {
"type": {
"const": "webhook",
"title": "Type",
"type": "string"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
},
"required": [
"type",
"webhook_id",
"event_type"
],
"title": "DeliverWebhookDestination",
"type": "object"
},
"EdgeBindingInput": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"single",
"collect"
],
"title": "Mode",
"type": "string"
},
"required": {
"title": "Required",
"type": "boolean"
},
"role": {
"anyOf": [
{
"enum": [
"background",
"style"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Role"
}
},
"required": [
"mode",
"required"
],
"title": "EdgeBindingInput",
"type": "object"
},
"EdgeEndpointInput": {
"additionalProperties": false,
"properties": {
"node_id": {
"format": "uuid",
"title": "Node Id",
"type": "string"
},
"port": {
"maxLength": 100,
"minLength": 1,
"title": "Port",
"type": "string"
}
},
"required": [
"node_id",
"port"
],
"title": "EdgeEndpointInput",
"type": "object"
},
"GenerateNodeConfig": {
"additionalProperties": false,
"properties": {
"variant": {
"enum": [
"generate",
"edit",
"text_to_image"
],
"title": "Variant",
"type": "string"
},
"model_slug": {
"maxLength": 100,
"minLength": 1,
"title": "Model Slug",
"type": "string"
},
"parameters": {
"additionalProperties": true,
"title": "Parameters",
"type": "object"
}
},
"required": [
"variant",
"model_slug",
"parameters"
],
"title": "GenerateNodeConfig",
"type": "object"
},
"GenerateNodeConfigV1_2": {
"additionalProperties": false,
"properties": {
"variant": {
"enum": [
"generate",
"edit",
"text_to_image",
"video"
],
"title": "Variant",
"type": "string"
},
"model_slug": {
"maxLength": 100,
"minLength": 1,
"title": "Model Slug",
"type": "string"
},
"parameters": {
"additionalProperties": true,
"title": "Parameters",
"type": "object"
}
},
"required": [
"variant",
"model_slug",
"parameters"
],
"title": "GenerateNodeConfigV1_2",
"type": "object"
},
"GenerateNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"$ref": "#/$defs/ReadinessInput"
},
"infrastructure_retry": {
"$ref": "#/$defs/InfrastructureRetryInput"
},
"type": {
"const": "generate",
"title": "Type",
"type": "string"
},
"config": {
"anyOf": [
{
"$ref": "#/$defs/GenerateNodeConfig"
},
{
"$ref": "#/$defs/GenerateNodeConfigV1_2"
}
],
"title": "Config"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "GenerateNodeInput",
"type": "object"
},
"ImageInputConfig": {
"additionalProperties": false,
"properties": {
"generation_result_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Generation Result Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "ImageInputConfig",
"type": "object"
},
"ImageInputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.image",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/ImageInputConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "ImageInputNodeInput",
"type": "object"
},
"InfrastructureRetryInput": {
"additionalProperties": false,
"properties": {
"max_attempts": {
"maximum": 20,
"minimum": 1,
"title": "Max Attempts",
"type": "integer"
},
"initial_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Initial Backoff Seconds",
"type": "integer"
},
"max_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Max Backoff Seconds",
"type": "integer"
}
},
"required": [
"max_attempts",
"initial_backoff_seconds",
"max_backoff_seconds"
],
"title": "InfrastructureRetryInput",
"type": "object"
},
"LocationInputConfig": {
"additionalProperties": false,
"properties": {
"location_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Location Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "LocationInputConfig",
"type": "object"
},
"LocationInputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.location",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/LocationInputConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "LocationInputNodeInput",
"type": "object"
},
"NotifyNodeConfig": {
"additionalProperties": false,
"properties": {
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
},
"required": [
"webhook_id",
"event_type"
],
"title": "NotifyNodeConfig",
"type": "object"
},
"NotifyNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"$ref": "#/$defs/ReadinessInput"
},
"infrastructure_retry": {
"$ref": "#/$defs/InfrastructureRetryInput"
},
"type": {
"const": "notify",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/NotifyNodeConfig"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "NotifyNodeInput",
"type": "object"
},
"OutputNodeConfig": {
"additionalProperties": false,
"properties": {
"projection": {
"items": {
"enum": [
"artifacts",
"qa",
"billing",
"provenance"
],
"type": "string"
},
"minItems": 1,
"title": "Projection",
"type": "array"
}
},
"required": [
"projection"
],
"title": "OutputNodeConfig",
"type": "object"
},
"OutputNodeConfigV1_2": {
"additionalProperties": false,
"properties": {
"projection": {
"items": {
"enum": [
"artifacts",
"qa",
"billing",
"provenance"
],
"type": "string"
},
"minItems": 1,
"title": "Projection",
"type": "array"
}
},
"title": "OutputNodeConfigV1_2",
"type": "object"
},
"OutputNodeConfigV1_3": {
"additionalProperties": false,
"properties": {
"destinations": {
"items": {
"discriminator": {
"mapping": {
"tag": "#/$defs/DeliverTagDestination",
"webhook": "#/$defs/DeliverWebhookDestination"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"type": {
"const": "tag",
"title": "Type",
"type": "string"
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
}
},
"required": [
"type",
"tag_ids"
],
"title": "DeliverTagDestination",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"type": {
"const": "webhook",
"title": "Type",
"type": "string"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
},
"required": [
"type",
"webhook_id",
"event_type"
],
"title": "DeliverWebhookDestination",
"type": "object"
}
],
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"tag",
"webhook"
]
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
}
},
"maxItems": 20,
"title": "Destinations",
"type": "array"
},
"projection": {
"anyOf": [
{
"items": {
"enum": [
"artifacts",
"qa",
"billing",
"provenance"
],
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Projection"
}
},
"title": "OutputNodeConfigV1_3",
"type": "object"
},
"OutputNodeConfigV1_4": {
"additionalProperties": false,
"properties": {
"destinations": {
"items": {
"discriminator": {
"mapping": {
"tag": "#/$defs/DeliverTagDestination",
"webhook": "#/$defs/DeliverWebhookDestination"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"type": {
"const": "tag",
"title": "Type",
"type": "string"
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
}
},
"required": [
"type",
"tag_ids"
],
"title": "DeliverTagDestination",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"type": {
"const": "webhook",
"title": "Type",
"type": "string"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
},
"required": [
"type",
"webhook_id",
"event_type"
],
"title": "DeliverWebhookDestination",
"type": "object"
}
],
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"tag",
"webhook"
]
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
}
},
"maxItems": 20,
"title": "Destinations",
"type": "array"
}
},
"title": "OutputNodeConfigV1_4",
"type": "object"
},
"OutputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"$ref": "#/$defs/ReadinessInput"
},
"infrastructure_retry": {
"$ref": "#/$defs/InfrastructureRetryInput"
},
"type": {
"const": "output",
"title": "Type",
"type": "string"
},
"config": {
"anyOf": [
{
"$ref": "#/$defs/OutputNodeConfig"
},
{
"$ref": "#/$defs/OutputNodeConfigV1_2"
},
{
"$ref": "#/$defs/OutputNodeConfigV1_3"
},
{
"$ref": "#/$defs/OutputNodeConfigV1_4"
}
],
"title": "Config"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "OutputNodeInput",
"type": "object"
},
"PromptInputConfig": {
"additionalProperties": false,
"properties": {
"text": {
"anyOf": [
{
"maxLength": 10000,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "PromptInputConfig",
"type": "object"
},
"PromptInputNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.prompt",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/PromptInputConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "PromptInputNodeInput",
"type": "object"
},
"QaGateNodeConfig": {
"additionalProperties": false,
"properties": {
"policy": {
"maxLength": 100,
"minLength": 1,
"title": "Policy",
"type": "string"
},
"max_content_retries": {
"maximum": 20,
"minimum": 0,
"title": "Max Content Retries",
"type": "integer"
}
},
"required": [
"policy",
"max_content_retries"
],
"title": "QaGateNodeConfig",
"type": "object"
},
"QaGateNodeConfigV1_2": {
"additionalProperties": false,
"properties": {
"policy": {
"maxLength": 100,
"minLength": 1,
"title": "Policy",
"type": "string"
},
"max_content_retries": {
"maximum": 20,
"minimum": 0,
"title": "Max Content Retries",
"type": "integer"
},
"graph_retry": {
"anyOf": [
{
"$ref": "#/$defs/QaGraphRetryConfig"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"policy",
"max_content_retries"
],
"title": "QaGateNodeConfigV1_2",
"type": "object"
},
"QaGateNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"$ref": "#/$defs/ReadinessInput"
},
"infrastructure_retry": {
"$ref": "#/$defs/InfrastructureRetryInput"
},
"type": {
"const": "qa_gate",
"title": "Type",
"type": "string"
},
"config": {
"anyOf": [
{
"$ref": "#/$defs/QaGateNodeConfig"
},
{
"$ref": "#/$defs/QaGateNodeConfigV1_2"
}
],
"title": "Config"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "QaGateNodeInput",
"type": "object"
},
"QaGraphRetryConfig": {
"additionalProperties": false,
"properties": {
"retry_from_node_id": {
"format": "uuid",
"title": "Retry From Node Id",
"type": "string"
},
"max_retries": {
"maximum": 20,
"minimum": 1,
"title": "Max Retries",
"type": "integer"
}
},
"required": [
"retry_from_node_id",
"max_retries"
],
"title": "QaGraphRetryConfig",
"type": "object"
},
"ReadinessInput": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"all_required",
"all_terminal"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"mode"
],
"title": "ReadinessInput",
"type": "object"
},
"TriggerNodeConfig": {
"additionalProperties": false,
"properties": {
"source": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z][a-z0-9_-]*)+$",
"title": "Source",
"type": "string"
},
"settings": {
"additionalProperties": true,
"title": "Settings",
"type": "object"
}
},
"required": [
"source",
"settings"
],
"title": "TriggerNodeConfig",
"type": "object"
},
"TriggerNodeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "trigger",
"title": "Type",
"type": "string"
},
"config": {
"$ref": "#/$defs/TriggerNodeConfig"
}
},
"required": [
"id",
"type",
"config"
],
"title": "TriggerNodeInput",
"type": "object"
},
"WorkflowEdgeInput": {
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"source": {
"$ref": "#/$defs/EdgeEndpointInput"
},
"target": {
"$ref": "#/$defs/EdgeEndpointInput"
},
"binding": {
"$ref": "#/$defs/EdgeBindingInput"
}
},
"required": [
"id",
"source",
"target",
"binding"
],
"title": "WorkflowEdgeInput",
"type": "object"
},
"WorkflowFailurePolicy": {
"enum": [
"fail_fast",
"continue_independent"
],
"title": "WorkflowFailurePolicy",
"type": "string"
},
"WorkflowVersionCreate": {
"additionalProperties": false,
"properties": {
"contract_version": {
"default": "1.0",
"enum": [
"1.0",
"1.1",
"1.2",
"1.3",
"1.4",
"1.5"
],
"title": "Contract Version",
"type": "string"
},
"failure_policy": {
"$ref": "#/$defs/WorkflowFailurePolicy"
},
"result_projection": {
"items": {
"enum": [
"artifacts",
"qa",
"billing",
"provenance"
],
"type": "string"
},
"minItems": 1,
"title": "Result Projection",
"type": "array"
},
"nodes": {
"items": {
"discriminator": {
"mapping": {
"branch": "#/$defs/BranchNodeInput",
"generate": "#/$defs/GenerateNodeInput",
"input.ai_model": "#/$defs/AiModelInputNodeInput",
"input.art_direction": "#/$defs/ArtDirectionInputNodeInput",
"input.avatar": "#/$defs/AvatarInputNodeInput",
"input.clothing": "#/$defs/ClothingInputNodeInput",
"input.image": "#/$defs/ImageInputNodeInput",
"input.location": "#/$defs/LocationInputNodeInput",
"input.prompt": "#/$defs/PromptInputNodeInput",
"notify": "#/$defs/NotifyNodeInput",
"output": "#/$defs/OutputNodeInput",
"qa_gate": "#/$defs/QaGateNodeInput",
"trigger": "#/$defs/TriggerNodeInput"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "trigger",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"source": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z][a-z0-9_-]*)+$",
"title": "Source",
"type": "string"
},
"settings": {
"additionalProperties": true,
"title": "Settings",
"type": "object"
}
},
"required": [
"source",
"settings"
],
"title": "TriggerNodeConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "TriggerNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"all_required",
"all_terminal"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"mode"
],
"title": "ReadinessInput",
"type": "object"
},
"infrastructure_retry": {
"additionalProperties": false,
"properties": {
"max_attempts": {
"maximum": 20,
"minimum": 1,
"title": "Max Attempts",
"type": "integer"
},
"initial_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Initial Backoff Seconds",
"type": "integer"
},
"max_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Max Backoff Seconds",
"type": "integer"
}
},
"required": [
"max_attempts",
"initial_backoff_seconds",
"max_backoff_seconds"
],
"title": "InfrastructureRetryInput",
"type": "object"
},
"type": {
"const": "generate",
"title": "Type",
"type": "string"
},
"config": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"variant": {
"enum": [
"generate",
"edit",
"text_to_image"
],
"title": "Variant",
"type": "string"
},
"model_slug": {
"maxLength": 100,
"minLength": 1,
"title": "Model Slug",
"type": "string"
},
"parameters": {
"additionalProperties": true,
"title": "Parameters",
"type": "object"
}
},
"required": [
"variant",
"model_slug",
"parameters"
],
"title": "GenerateNodeConfig",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"variant": {
"enum": [
"generate",
"edit",
"text_to_image",
"video"
],
"title": "Variant",
"type": "string"
},
"model_slug": {
"maxLength": 100,
"minLength": 1,
"title": "Model Slug",
"type": "string"
},
"parameters": {
"additionalProperties": true,
"title": "Parameters",
"type": "object"
}
},
"required": [
"variant",
"model_slug",
"parameters"
],
"title": "GenerateNodeConfigV1_2",
"type": "object"
}
],
"title": "Config"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "GenerateNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"all_required",
"all_terminal"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"mode"
],
"title": "ReadinessInput",
"type": "object"
},
"infrastructure_retry": {
"additionalProperties": false,
"properties": {
"max_attempts": {
"maximum": 20,
"minimum": 1,
"title": "Max Attempts",
"type": "integer"
},
"initial_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Initial Backoff Seconds",
"type": "integer"
},
"max_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Max Backoff Seconds",
"type": "integer"
}
},
"required": [
"max_attempts",
"initial_backoff_seconds",
"max_backoff_seconds"
],
"title": "InfrastructureRetryInput",
"type": "object"
},
"type": {
"const": "qa_gate",
"title": "Type",
"type": "string"
},
"config": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"policy": {
"maxLength": 100,
"minLength": 1,
"title": "Policy",
"type": "string"
},
"max_content_retries": {
"maximum": 20,
"minimum": 0,
"title": "Max Content Retries",
"type": "integer"
}
},
"required": [
"policy",
"max_content_retries"
],
"title": "QaGateNodeConfig",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"policy": {
"maxLength": 100,
"minLength": 1,
"title": "Policy",
"type": "string"
},
"max_content_retries": {
"maximum": 20,
"minimum": 0,
"title": "Max Content Retries",
"type": "integer"
},
"graph_retry": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"retry_from_node_id": {
"format": "uuid",
"title": "Retry From Node Id",
"type": "string"
},
"max_retries": {
"maximum": 20,
"minimum": 1,
"title": "Max Retries",
"type": "integer"
}
},
"required": [
"retry_from_node_id",
"max_retries"
],
"title": "QaGraphRetryConfig",
"type": "object"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"policy",
"max_content_retries"
],
"title": "QaGateNodeConfigV1_2",
"type": "object"
}
],
"title": "Config"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "QaGateNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"all_required",
"all_terminal"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"mode"
],
"title": "ReadinessInput",
"type": "object"
},
"infrastructure_retry": {
"additionalProperties": false,
"properties": {
"max_attempts": {
"maximum": 20,
"minimum": 1,
"title": "Max Attempts",
"type": "integer"
},
"initial_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Initial Backoff Seconds",
"type": "integer"
},
"max_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Max Backoff Seconds",
"type": "integer"
}
},
"required": [
"max_attempts",
"initial_backoff_seconds",
"max_backoff_seconds"
],
"title": "InfrastructureRetryInput",
"type": "object"
},
"type": {
"const": "branch",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"condition_type": {
"const": "qa_decision",
"title": "Condition Type",
"type": "string"
},
"cases": {
"additionalProperties": {
"enum": [
"accepted",
"rejected",
"error"
],
"type": "string"
},
"minProperties": 1,
"propertyNames": {
"enum": [
"accepted",
"rejected",
"error"
]
},
"title": "Cases",
"type": "object"
}
},
"required": [
"condition_type",
"cases"
],
"title": "BranchNodeConfig",
"type": "object"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "BranchNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"all_required",
"all_terminal"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"mode"
],
"title": "ReadinessInput",
"type": "object"
},
"infrastructure_retry": {
"additionalProperties": false,
"properties": {
"max_attempts": {
"maximum": 20,
"minimum": 1,
"title": "Max Attempts",
"type": "integer"
},
"initial_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Initial Backoff Seconds",
"type": "integer"
},
"max_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Max Backoff Seconds",
"type": "integer"
}
},
"required": [
"max_attempts",
"initial_backoff_seconds",
"max_backoff_seconds"
],
"title": "InfrastructureRetryInput",
"type": "object"
},
"type": {
"const": "output",
"title": "Type",
"type": "string"
},
"config": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"projection": {
"items": {
"enum": [
"artifacts",
"qa",
"billing",
"provenance"
],
"type": "string"
},
"minItems": 1,
"title": "Projection",
"type": "array"
}
},
"required": [
"projection"
],
"title": "OutputNodeConfig",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"projection": {
"items": {
"enum": [
"artifacts",
"qa",
"billing",
"provenance"
],
"type": "string"
},
"minItems": 1,
"title": "Projection",
"type": "array"
}
},
"title": "OutputNodeConfigV1_2",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"destinations": {
"items": {
"discriminator": {
"mapping": {
"tag": "#/$defs/DeliverTagDestination",
"webhook": "#/$defs/DeliverWebhookDestination"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"type": {
"const": "tag",
"title": "Type",
"type": "string"
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
}
},
"required": [
"type",
"tag_ids"
],
"title": "DeliverTagDestination",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"type": {
"const": "webhook",
"title": "Type",
"type": "string"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
},
"required": [
"type",
"webhook_id",
"event_type"
],
"title": "DeliverWebhookDestination",
"type": "object"
}
],
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"tag",
"webhook"
]
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
}
},
"maxItems": 20,
"title": "Destinations",
"type": "array"
},
"projection": {
"anyOf": [
{
"items": {
"enum": [
"artifacts",
"qa",
"billing",
"provenance"
],
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Projection"
}
},
"title": "OutputNodeConfigV1_3",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"destinations": {
"items": {
"discriminator": {
"mapping": {
"tag": "#/$defs/DeliverTagDestination",
"webhook": "#/$defs/DeliverWebhookDestination"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"type": {
"const": "tag",
"title": "Type",
"type": "string"
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
}
},
"required": [
"type",
"tag_ids"
],
"title": "DeliverTagDestination",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"type": {
"const": "webhook",
"title": "Type",
"type": "string"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
},
"required": [
"type",
"webhook_id",
"event_type"
],
"title": "DeliverWebhookDestination",
"type": "object"
}
],
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"tag",
"webhook"
]
},
"tag_ids": {
"items": {
"type": "integer"
},
"maxItems": 50,
"minItems": 1,
"title": "Tag Ids",
"type": "array"
},
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
}
},
"maxItems": 20,
"title": "Destinations",
"type": "array"
}
},
"title": "OutputNodeConfigV1_4",
"type": "object"
}
],
"title": "Config"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "OutputNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"readiness": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"all_required",
"all_terminal"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"mode"
],
"title": "ReadinessInput",
"type": "object"
},
"infrastructure_retry": {
"additionalProperties": false,
"properties": {
"max_attempts": {
"maximum": 20,
"minimum": 1,
"title": "Max Attempts",
"type": "integer"
},
"initial_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Initial Backoff Seconds",
"type": "integer"
},
"max_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Max Backoff Seconds",
"type": "integer"
}
},
"required": [
"max_attempts",
"initial_backoff_seconds",
"max_backoff_seconds"
],
"title": "InfrastructureRetryInput",
"type": "object"
},
"type": {
"const": "notify",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"webhook_id": {
"format": "uuid",
"title": "Webhook Id",
"type": "string"
},
"event_type": {
"pattern": "^workflow\\.[a-z0-9_.-]+$",
"title": "Event Type",
"type": "string"
}
},
"required": [
"webhook_id",
"event_type"
],
"title": "NotifyNodeConfig",
"type": "object"
}
},
"required": [
"id",
"readiness",
"infrastructure_retry",
"type",
"config"
],
"title": "NotifyNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.avatar",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"avatar_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "AvatarInputConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "AvatarInputNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.clothing",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"clothing_item_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Clothing Item Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "ClothingInputConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "ClothingInputNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.location",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"location_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Location Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "LocationInputConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "LocationInputNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.art_direction",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"art_direction_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Art Direction Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "ArtDirectionInputConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "ArtDirectionInputNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.prompt",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"text": {
"anyOf": [
{
"maxLength": 10000,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "PromptInputConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "PromptInputNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.image",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"generation_result_id": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Generation Result Id"
},
"ask_at_run_time": {
"default": false,
"title": "Ask At Run Time",
"type": "boolean"
}
},
"title": "ImageInputConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "ImageInputNodeInput",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"type": {
"const": "input.ai_model",
"title": "Type",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"model_slug": {
"anyOf": [
{
"maxLength": 100,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Model Slug"
}
},
"title": "AiModelInputConfig",
"type": "object"
}
},
"required": [
"id",
"type",
"config"
],
"title": "AiModelInputNodeInput",
"type": "object"
}
],
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"trigger",
"generate",
"qa_gate",
"branch",
"output",
"notify",
"input.avatar",
"input.clothing",
"input.location",
"input.art_direction",
"input.prompt",
"input.image",
"input.ai_model"
]
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"config": {
"additionalProperties": false,
"properties": {
"source": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z][a-z0-9_-]*)+$",
"title": "Source",
"type": "string"
},
"settings": {
"additionalProperties": true,
"title": "Settings",
"type": "object"
}
},
"required": [
"source",
"settings"
],
"title": "TriggerNodeConfig",
"type": "object"
},
"readiness": {
"additionalProperties": false,
"properties": {
"mode": {
"enum": [
"all_required",
"all_terminal"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"mode"
],
"title": "ReadinessInput",
"type": "object"
},
"infrastructure_retry": {
"additionalProperties": false,
"properties": {
"max_attempts": {
"maximum": 20,
"minimum": 1,
"title": "Max Attempts",
"type": "integer"
},
"initial_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Initial Backoff Seconds",
"type": "integer"
},
"max_backoff_seconds": {
"maximum": 86400,
"minimum": 0,
"title": "Max Backoff Seconds",
"type": "integer"
}
},
"required": [
"max_attempts",
"initial_backoff_seconds",
"max_backoff_seconds"
],
"title": "InfrastructureRetryInput",
"type": "object"
}
}
},
"minItems": 2,
"title": "Nodes",
"type": "array"
},
"edges": {
"items": {
"$ref": "#/$defs/WorkflowEdgeInput"
},
"minItems": 1,
"title": "Edges",
"type": "array"
},
"base_version_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Base Version Id"
}
},
"required": [
"failure_policy",
"nodes",
"edges"
],
"title": "WorkflowVersionCreate",
"type": "object"
}
},
"additionalProperties": false,
"title": "CreateWorkflowVersionInput"
}