{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/mediaruntime/main/json-schema/mediaruntime-recipe-create-request-schema.json", "title": "RecipeCreateRequest", "x-generated": "2026-09-28", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/mediaruntime-recipes-api-openapi.yml#/components/schemas/RecipeCreateRequest", "properties": { "description": { "default": "", "maxLength": 500, "title": "Description", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9-]{2,63}$", "title": "Name", "type": "string" }, "template": { "$ref": "#/$defs/RecipeTemplate" } }, "required": [ "name", "template" ], "type": "object", "$defs": { "AnimationConfig": { "properties": { "duration": { "default": 6.0, "exclusiveMinimum": 0.0, "maximum": 30.0, "title": "Duration", "type": "number" }, "fps": { "default": 15.0, "exclusiveMinimum": 0.0, "maximum": 30.0, "title": "Fps", "type": "number" }, "loop": { "default": 0, "description": "0 means infinite", "maximum": 65535.0, "minimum": 0.0, "title": "Loop", "type": "integer" }, "quality": { "anyOf": [ { "maximum": 100.0, "minimum": 1.0, "type": "integer" }, { "type": "null" } ], "description": "Optional animated WebP quality. Do not send this field for lossless APNG.", "title": "Quality" }, "start_time": { "default": 0.0, "maximum": 604800.0, "minimum": 0.0, "title": "Start Time", "type": "number" }, "width": { "default": 720, "maximum": 1920.0, "minimum": 1.0, "title": "Width", "type": "integer" } }, "title": "AnimationConfig", "type": "object" }, "AudioOptions": { "properties": { "bitrate_bps": { "default": 0, "maximum": 10000000.0, "minimum": 0.0, "title": "Bitrate Bps", "type": "integer" }, "channels": { "default": 0, "maximum": 32.0, "minimum": 0.0, "title": "Channels", "type": "integer" }, "codec": { "anyOf": [ { "maxLength": 32, "type": "string" }, { "type": "null" } ], "description": "aac, mp3, opus, ac3", "title": "Codec" } }, "title": "AudioOptions", "type": "object" }, "AudiogramArtworkFit": { "enum": [ "contain", "cover", "blurred_background" ], "title": "AudiogramArtworkFit", "type": "string" }, "AudiogramCaptionPosition": { "enum": [ "top", "bottom" ], "title": "AudiogramCaptionPosition", "type": "string" }, "AudiogramConfig": { "additionalProperties": false, "description": "Bounded public controls for composing audio, artwork, and captions.", "properties": { "artwork_fit": { "$ref": "#/$defs/AudiogramArtworkFit", "default": "blurred_background" }, "artwork_source": { "maxLength": 2048, "minLength": 1, "title": "Artwork Source", "type": "string" }, "background_color": { "default": "#101827", "pattern": "^#[0-9A-Fa-f]{6}$", "title": "Background Color", "type": "string" }, "burn_captions": { "default": false, "title": "Burn Captions", "type": "boolean" }, "caption_font_scale": { "default": 1.0, "maximum": 1.5, "minimum": 0.75, "title": "Caption Font Scale", "type": "number" }, "caption_position": { "$ref": "#/$defs/AudiogramCaptionPosition", "default": "bottom" }, "captions_source": { "anyOf": [ { "maxLength": 2048, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Captions Source" }, "duration_sec": { "default": 60.0, "exclusiveMinimum": 0.0, "maximum": 300.0, "title": "Duration Sec", "type": "number" }, "fps": { "default": 30, "maximum": 30.0, "minimum": 15.0, "title": "Fps", "type": "integer" }, "layout": { "$ref": "#/$defs/AudiogramLayout", "default": "square" }, "loudness_target_lufs": { "default": -16.0, "maximum": -12.0, "minimum": -24.0, "title": "Loudness Target Lufs", "type": "number" }, "normalize_audio": { "default": false, "title": "Normalize Audio", "type": "boolean" }, "start_time_sec": { "default": 0.0, "maximum": 604800.0, "minimum": 0.0, "title": "Start Time Sec", "type": "number" }, "waveform_color": { "default": "#5B5CFF", "pattern": "^#[0-9A-Fa-f]{6}$", "title": "Waveform Color", "type": "string" }, "waveform_gain": { "default": 2.0, "maximum": 4.0, "minimum": 0.5, "title": "Waveform Gain", "type": "number" } }, "required": [ "artwork_source" ], "title": "AudiogramConfig", "type": "object" }, "AudiogramLayout": { "enum": [ "square", "portrait", "landscape" ], "title": "AudiogramLayout", "type": "string" }, "ContactSheetConfig": { "properties": { "columns": { "default": 4, "maximum": 10.0, "minimum": 1.0, "title": "Columns", "type": "integer" }, "duration_sec": { "default": 0.0, "description": "Selected source duration; zero means the remaining video.", "maximum": 21600.0, "minimum": 0.0, "title": "Duration Sec", "type": "number" }, "format": { "$ref": "#/$defs/ContactSheetFormat", "default": "jpg" }, "interval_sec": { "default": 10.0, "maximum": 3600.0, "minimum": 0.5, "title": "Interval Sec", "type": "number" }, "max_sheets": { "default": 4, "maximum": 20.0, "minimum": 1.0, "title": "Max Sheets", "type": "integer" }, "quality": { "default": 80, "maximum": 100.0, "minimum": 1.0, "title": "Quality", "type": "integer" }, "rows": { "default": 4, "maximum": 10.0, "minimum": 1.0, "title": "Rows", "type": "integer" }, "start_time_sec": { "default": 0.0, "maximum": 604800.0, "minimum": 0.0, "title": "Start Time Sec", "type": "number" }, "tile_height": { "default": 180, "maximum": 640.0, "minimum": 36.0, "title": "Tile Height", "type": "integer" }, "tile_width": { "default": 320, "maximum": 640.0, "minimum": 64.0, "title": "Tile Width", "type": "integer" } }, "title": "ContactSheetConfig", "type": "object" }, "ContactSheetFormat": { "enum": [ "jpg", "png", "webp" ], "title": "ContactSheetFormat", "type": "string" }, "GifPreviewConfig": { "properties": { "duration": { "default": 5.0, "exclusiveMinimum": 0.0, "maximum": 600.0, "title": "Duration", "type": "number" }, "enabled": { "default": false, "title": "Enabled", "type": "boolean" }, "fps": { "default": 10.0, "exclusiveMinimum": 0.0, "maximum": 60.0, "title": "Fps", "type": "number" }, "start_time": { "default": 0.0, "maximum": 604800.0, "minimum": 0.0, "title": "Start Time", "type": "number" }, "width": { "default": 320, "maximum": 4096.0, "minimum": 1.0, "title": "Width", "type": "integer" } }, "title": "GifPreviewConfig", "type": "object" }, "ImageFormat": { "enum": [ "jpg", "png", "webp", "avif" ], "title": "ImageFormat", "type": "string" }, "ImageRendition": { "properties": { "format": { "$ref": "#/$defs/ImageFormat" }, "height": { "maximum": 16384.0, "minimum": 1.0, "title": "Height", "type": "integer" }, "max_bytes": { "anyOf": [ { "maximum": 100000000.0, "minimum": 256.0, "type": "integer" }, { "type": "null" } ], "description": "Optional hard encoded-file ceiling for JPG/WebP. The job fails rather than returning an oversized rendition.", "title": "Max Bytes" }, "min_quality": { "default": 1, "description": "Lowest quality the bounded search may use when max_bytes is set.", "maximum": 100.0, "minimum": 1.0, "title": "Min Quality", "type": "integer" }, "mode": { "default": "cover", "maxLength": 32, "minLength": 1, "title": "Mode", "type": "string" }, "quality": { "default": 80, "maximum": 100.0, "minimum": 1.0, "title": "Quality", "type": "integer" }, "width": { "maximum": 16384.0, "minimum": 1.0, "title": "Width", "type": "integer" } }, "required": [ "width", "height", "format" ], "title": "ImageRendition", "type": "object" }, "ModerationCheck": { "enum": [ "sexual", "violence", "dangerous" ], "title": "ModerationCheck", "type": "string" }, "ModerationConfig": { "properties": { "checks": { "items": { "$ref": "#/$defs/ModerationCheck" }, "maxItems": 3, "minItems": 1, "title": "Checks", "type": "array" }, "enabled": { "default": false, "title": "Enabled", "type": "boolean" }, "mode": { "$ref": "#/$defs/ModerationMode", "default": "report" } }, "title": "ModerationConfig", "type": "object" }, "ModerationMode": { "enum": [ "report", "block" ], "title": "ModerationMode", "type": "string" }, "OutputType": { "enum": [ "mp4", "webm", "hls", "dash", "audio", "image", "social", "gif", "frames" ], "title": "OutputType", "type": "string" }, "PlaceholderConfig": { "properties": { "lqip_max_bytes": { "default": 4096, "maximum": 16384.0, "minimum": 256.0, "title": "Lqip Max Bytes", "type": "integer" }, "lqip_quality": { "default": 50, "maximum": 100.0, "minimum": 1.0, "title": "Lqip Quality", "type": "integer" }, "max_dimension": { "default": 32, "maximum": 100.0, "minimum": 8.0, "title": "Max Dimension", "type": "integer" }, "source_time_sec": { "default": 0.0, "maximum": 604800.0, "minimum": 0.0, "title": "Source Time Sec", "type": "number" } }, "title": "PlaceholderConfig", "type": "object" }, "PrivacyDetector": { "enum": [ "face", "license_plate", "text" ], "title": "PrivacyDetector", "type": "string" }, "PrivacyFailureMode": { "enum": [ "fail_closed", "report_only" ], "title": "PrivacyFailureMode", "type": "string" }, "PrivacyRedactionConfig": { "additionalProperties": false, "description": "Explicit, bounded controls for automated visual privacy redaction.", "properties": { "box_padding_ratio": { "default": 0.15, "maximum": 0.5, "minimum": 0.0, "title": "Box Padding Ratio", "type": "number" }, "detectors": { "items": { "$ref": "#/$defs/PrivacyDetector" }, "maxItems": 3, "minItems": 1, "title": "Detectors", "type": "array" }, "failure_mode": { "$ref": "#/$defs/PrivacyFailureMode", "default": "fail_closed" }, "include_debug_observations": { "default": false, "title": "Include Debug Observations", "type": "boolean" }, "max_frames": { "default": 1800, "maximum": 18000.0, "minimum": 1.0, "title": "Max Frames", "type": "integer" }, "min_confidence": { "default": 0.6, "maximum": 0.99, "minimum": 0.3, "title": "Min Confidence", "type": "number" }, "pixel_block_size": { "default": 24, "maximum": 128.0, "minimum": 4.0, "title": "Pixel Block Size", "type": "integer" }, "privacy_strength": { "default": "strong", "enum": [ "standard", "strong" ], "title": "Privacy Strength", "type": "string" }, "sample_interval_sec": { "default": 0.2, "maximum": 30.0, "minimum": 0.1, "title": "Sample Interval Sec", "type": "number" }, "solid_color": { "default": "#000000", "pattern": "^#[0-9A-Fa-f]{6}$", "title": "Solid Color", "type": "string" }, "style": { "$ref": "#/$defs/PrivacyRedactionStyle", "default": "blur" } }, "required": [ "detectors" ], "title": "PrivacyRedactionConfig", "type": "object" }, "PrivacyRedactionStyle": { "enum": [ "blur", "pixelate", "solid" ], "title": "PrivacyRedactionStyle", "type": "string" }, "RecipeTemplate": { "description": "Processing policy stored in one immutable hosted-recipe version.", "properties": { "moderation": { "anyOf": [ { "$ref": "#/$defs/ModerationConfig" }, { "type": "null" } ] }, "outputs": { "items": { "anyOf": [ { "$ref": "#/$defs/TranscodeOutput" }, { "type": "string" } ] }, "maxItems": 10, "title": "Outputs", "type": "array" }, "watermark": { "anyOf": [ { "$ref": "#/$defs/WatermarkConfig" }, { "type": "null" } ] } }, "title": "RecipeTemplate", "type": "object" }, "SubtitleConfig": { "properties": { "enabled": { "default": false, "title": "Enabled", "type": "boolean" }, "format": { "$ref": "#/$defs/SubtitleFormat", "default": "both" }, "languages": { "items": { "type": "string" }, "maxItems": 10, "minItems": 1, "title": "Languages", "type": "array" }, "max_audio_minutes": { "default": 0, "maximum": 1440.0, "minimum": 0.0, "title": "Max Audio Minutes", "type": "integer" }, "model": { "default": "base", "maxLength": 64, "minLength": 1, "title": "Model", "type": "string" }, "translate_to_english": { "default": false, "title": "Translate To English", "type": "boolean" } }, "title": "SubtitleConfig", "type": "object" }, "SubtitleFormat": { "enum": [ "srt", "vtt", "both" ], "title": "SubtitleFormat", "type": "string" }, "ThumbnailConfig": { "properties": { "cols": { "default": 5, "maximum": 20.0, "minimum": 1.0, "title": "Cols", "type": "integer" }, "enabled": { "default": false, "title": "Enabled", "type": "boolean" }, "format": { "$ref": "#/$defs/ImageFormat", "default": "jpg" }, "interval_sec": { "default": 2.0, "exclusiveMinimum": 0.0, "maximum": 86400.0, "title": "Interval Sec", "type": "number" }, "max_sheets": { "default": 10, "maximum": 100.0, "minimum": 1.0, "title": "Max Sheets", "type": "integer" }, "rows": { "default": 5, "maximum": 20.0, "minimum": 1.0, "title": "Rows", "type": "integer" }, "tile_height": { "default": 90, "maximum": 4096.0, "minimum": 1.0, "title": "Tile Height", "type": "integer" }, "tile_width": { "default": 160, "maximum": 4096.0, "minimum": 1.0, "title": "Tile Width", "type": "integer" } }, "title": "ThumbnailConfig", "type": "object" }, "TranscodeOutput": { "properties": { "animation": { "anyOf": [ { "$ref": "#/$defs/AnimationConfig" }, { "type": "null" } ] }, "audio": { "anyOf": [ { "$ref": "#/$defs/AudioOptions" }, { "type": "null" } ] }, "audiogram": { "anyOf": [ { "$ref": "#/$defs/AudiogramConfig" }, { "type": "null" } ] }, "contact_sheet": { "anyOf": [ { "$ref": "#/$defs/ContactSheetConfig" }, { "type": "null" } ] }, "gif_preview": { "anyOf": [ { "$ref": "#/$defs/GifPreviewConfig" }, { "type": "null" } ] }, "images": { "anyOf": [ { "items": { "$ref": "#/$defs/ImageRendition" }, "maxItems": 50, "type": "array" }, { "type": "null" } ], "title": "Images" }, "path_suffix": { "anyOf": [ { "maxLength": 128, "type": "string" }, { "type": "null" } ], "title": "Path Suffix" }, "placeholders": { "anyOf": [ { "$ref": "#/$defs/PlaceholderConfig" }, { "type": "null" } ] }, "poster_format": { "$ref": "#/$defs/ImageFormat", "default": "jpg" }, "poster_time_sec": { "default": 0.0, "maximum": 604800.0, "minimum": 0.0, "title": "Poster Time Sec", "type": "number" }, "preset": { "anyOf": [ { "maxLength": 128, "type": "string" }, { "type": "null" } ], "title": "Preset" }, "privacy_redaction": { "anyOf": [ { "$ref": "#/$defs/PrivacyRedactionConfig" }, { "type": "null" } ], "description": "Preview: automated privacy redaction for still-image inputs and image outputs only. Video and animated-image redaction are not available." }, "remove_bg": { "default": false, "title": "Remove Bg", "type": "boolean" }, "smart_crop": { "default": false, "title": "Smart Crop", "type": "boolean" }, "subtitles": { "anyOf": [ { "$ref": "#/$defs/SubtitleConfig" }, { "type": "null" } ] }, "thumbnails": { "anyOf": [ { "$ref": "#/$defs/ThumbnailConfig" }, { "type": "null" } ] }, "type": { "$ref": "#/$defs/OutputType" }, "video": { "anyOf": [ { "$ref": "#/$defs/VideoOptions" }, { "type": "null" } ] } }, "required": [ "type" ], "title": "TranscodeOutput", "type": "object" }, "VideoOptions": { "properties": { "bitrate_bps": { "default": 0, "maximum": 2000000000.0, "minimum": 0.0, "title": "Bitrate Bps", "type": "integer" }, "codec": { "anyOf": [ { "maxLength": 32, "type": "string" }, { "type": "null" } ], "description": "h264, hevc, av1, vp9", "title": "Codec" }, "fps": { "default": 0.0, "maximum": 240.0, "minimum": 0.0, "title": "Fps", "type": "number" }, "height": { "default": 0, "maximum": 16384.0, "minimum": 0.0, "title": "Height", "type": "integer" }, "preset": { "anyOf": [ { "maxLength": 64, "type": "string" }, { "type": "null" } ], "description": "fast, slow, etc.", "title": "Preset" }, "two_pass": { "default": false, "title": "Two Pass", "type": "boolean" } }, "title": "VideoOptions", "type": "object" }, "WatermarkConfig": { "properties": { "enabled": { "default": false, "title": "Enabled", "type": "boolean" } }, "title": "WatermarkConfig", "type": "object" } } }