> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pulze.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create

> Submit a job. A full step tree, or a recipe the service expands



## OpenAPI

````yaml /renderflow/api-reference/openapi.json post /jobs
openapi: 3.1.0
info:
  title: RenderFlow API
  version: 2.0.0
  description: Render farm management.
servers:
  - url: http://localhost:44442/api/v1
    description: The service on this machine. Answers without a credential
  - url: http://your-server:44442/api/v1
    description: A farm's server. Needs an API key
  - url: https://your-server:44445/api/v1
    description: A farm's server set up with TLS. Needs an API key
security:
  - bearerAuth: []
paths:
  /jobs:
    post:
      tags:
        - Jobs
      summary: Create
      description: Submit a job. A full step tree, or a recipe the service expands
      operationId: createJob
      parameters:
        - schema:
            type: boolean
            description: >-
              Block until the job is built and answer 201, instead of 202 with
              one that is still being prepared
            default: false
          required: false
          description: >-
            Block until the job is built and answer 201, instead of 202 with one
            that is still being prepared
          name: wait
          in: query
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobSubmit'
            examples:
              3dsmax.render:
                summary: 3ds Max
                value:
                  type: 3dsmax.render
                  name: Lobby stills
                  file: //NAS/projects/tower/scenes/lobby_v012.max
                  host:
                    id: 3dsmax
                    version: '2026'
                  engine:
                    id: vray
                    name: V-Ray
                    version: '7.1'
                  camera: Cam_Lobby_01
                  frame: '0'
                  resolution: 4000x2250
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/tower/renders/lobby/lobby_.exr
              arnold.render:
                summary: Arnold
                value:
                  type: arnold.render
                  name: Hero 010 ass
                  file: //NAS/projects/hero/shots/010/ass/hero.0001.ass
                  host:
                    id: arnold
                    version: '7.4'
                  frame: 1-240
              after.render:
                summary: After Effects
                value:
                  type: after.render
                  name: Titles
                  file: //NAS/projects/hero/comp/titles_v003.aep
                  host:
                    id: after
                    version: '2026'
                  render_queue_item:
                    name: Titles_Main
                    rqindex: 1
                  frame: 0-299
              blender.render:
                summary: Blender
                value:
                  type: blender.render
                  name: Hero 010 lighting
                  file: //NAS/projects/hero/shots/010/lighting_v014.blend
                  host:
                    id: blender
                    version: '4.5'
                  frame: 1-240
                  resolution: 1920x1080
                  priority: 75
              autograph.render:
                summary: Autograph
                value:
                  type: autograph.render
                  name: Promo comp
                  file: //NAS/projects/promo/comp/promo_v005.agp
                  host:
                    id: autograph
                    version: '2026'
                  composition: Main
                  frame: 0-149
              harmony.render:
                summary: Harmony
                value:
                  type: harmony.render
                  name: Episode 04 scene 12
                  file: //NAS/projects/series/ep04/sc12/sc12.xstage
                  host:
                    id: harmony
                    version: '24'
                  frame: 1-96
              keyshot.render:
                summary: KeyShot
                value:
                  type: keyshot.render
                  name: Watch turntable
                  file: //NAS/projects/watch/keyshot/watch_v007.bip
                  host:
                    id: keyshot
                    version: '2025'
                  frame: 1-120
                  resolution: 2560x1440
              renderman.render:
                summary: RenderMan
                value:
                  type: renderman.render
                  name: Hero 020 rib
                  file: //NAS/projects/hero/shots/020/rib/hero.0001.rib
                  host:
                    id: renderman
                    version: '27.0'
                  frame: 1-240
              cinema4d.render:
                summary: Cinema 4D
                value:
                  type: cinema4d.render
                  name: Product spin
                  file: //NAS/projects/product/scenes/spin_v009.c4d
                  host:
                    id: cinema4d
                    version: '2026'
                  frame: 0-180
                  resolution: 1920x1080
              maya.render:
                summary: Maya
                value:
                  type: maya.render
                  name: Hero 030 beauty
                  file: //NAS/projects/hero/shots/030/lighting_v021.ma
                  host:
                    id: maya
                    version: '2026'
                  render_layer: beauty
                  camera: shotCam
                  frame: 1001-1120
              nuke.render:
                summary: Nuke
                value:
                  type: nuke.render
                  name: Hero 030 comp
                  file: //NAS/projects/hero/shots/030/comp_v008.nk
                  host:
                    id: nuke
                    version: '16.0'
                  frame: 1001-1120
              premiere.render:
                summary: Premiere Pro
                value:
                  type: premiere.render
                  name: Trailer cut
                  file: //NAS/projects/hero/edit/trailer_v004.prproj
                  host:
                    id: premiere
                    version: '2026'
                  sequence: Trailer_Main
                  preset: //NAS/pipeline/presets/h264_high.epr
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/hero/delivery/trailer_v004.mp4
              media_encoder.encode:
                summary: Media Encoder
                value:
                  type: media_encoder.encode
                  name: Review encode
                  file: //NAS/projects/hero/delivery/hero_010_master.mov
                  host:
                    id: media_encoder
                    version: '2026'
                  preset: //NAS/pipeline/presets/h264_high.epr
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/hero/review/hero_010.mp4
              davinci.render:
                summary: DaVinci Resolve
                value:
                  type: davinci.render
                  name: Grade delivery
                  file: //NAS/projects/hero/grade/hero_v002.drp
                  host:
                    id: davinci
                    version: '20'
                  render_job: Job 1
              vantage.render:
                summary: Vantage
                value:
                  type: vantage.render
                  name: Walkthrough
                  file: //NAS/projects/tower/vantage/walkthrough_v003.vantage
                  host:
                    id: vantage
                    version: '3.0'
                  camera: Cam_Walk
                  frame: 0-600
                  resolution: 3840x2160
              vred.render:
                summary: VRED Render
                value:
                  type: vred.render
                  name: Exterior stills
                  file: //NAS/projects/car/vred/exterior_v011.vpb
                  host:
                    id: vred
                    version: '2026'
                  viewpoint: Camera Track Stills / Left
                  settings:
                    renderer: gpurt
                    image_samples: 512
                    alpha: true
                  resolution: 3840x2160
              houdini.batch:
                summary: Houdini
                value:
                  type: houdini.batch
                  name: Hero 040 fx
                  file: //NAS/projects/hero/shots/040/fx_v017.hip
                  host:
                    id: houdini
                    version: '21.0'
                  rop_node: /out/karma1
                  frame: 1001-1096
              houdini.mantra:
                summary: Mantra
                value:
                  type: houdini.mantra
                  name: Hero 040 ifd
                  file: //NAS/projects/hero/shots/040/ifd/fx.0001.ifd
                  host:
                    id: houdini
                    version: '21.0'
                  frame: 1-96
              houdini.husk:
                summary: Husk
                value:
                  type: houdini.husk
                  name: Hero 040 usd
                  file: //NAS/projects/hero/shots/040/usd/shot.usd
                  host:
                    id: houdini
                    version: '21.0'
                  frame: 1001-1096
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/hero/shots/040/renders/shot.$F4.exr
              vray_standalone:
                summary: V-Ray Standalone
                value:
                  type: vray_standalone
                  name: Lobby vrscene
                  file: //NAS/projects/tower/vrscene/lobby.vrscene
                  host:
                    id: vray_standalone
                    version: '7.1'
                  frame: 0-100
                  resolution: 1920x1080
              sketchup.render:
                summary: SketchUp
                value:
                  type: sketchup.render
                  name: Pavilion view
                  file: //NAS/projects/pavilion/model_v006.skp
                  host:
                    id: sketchup
                    version: '2026'
                  camera: Entrance
                  resolution: 3000x2000
              rhino.render:
                summary: Rhino
                value:
                  type: rhino.render
                  name: Chair still
                  file: //NAS/projects/chair/chair_v004.3dm
                  host:
                    id: rhino
                    version: '8'
                  camera: Perspective
                  resolution: 3000x2000
              redshift.render:
                summary: Redshift
                value:
                  type: redshift.render
                  name: Hero 050 rs
                  file: //NAS/projects/hero/shots/050/rs/hero.0001.rs
                  host:
                    id: redshift_standalone
                    version: '2026.1'
                  frame: 1-240
              unreal:
                summary: Unreal
                value:
                  type: unreal
                  name: Sequence 01
                  file: //NAS/projects/game/Game.uproject
                  host:
                    id: unreal
                    version: '5.6'
                  render_item: 0:/Game/Cinematics/Seq01
                  split: shot
              fusion.render:
                summary: Fusion
                value:
                  type: fusion.render
                  name: Hero 030 fusion
                  file: //NAS/projects/hero/shots/030/comp_v003.comp
                  host:
                    id: fusion
                    version: '20'
                  frame: 1001-1120
              shell:
                summary: Shell
                value:
                  type: shell
                  name: Sync textures
                  file: //NAS/pipeline/sync_textures.sh
                  args: '--show hero'
                  work:
                    type: items
                    items:
                      - '010'
                      - '020'
                      - '030'
              python:
                summary: Python
                value:
                  type: python
                  name: Publish frames
                  file: //NAS/pipeline/publish.py
                  host:
                    id: python
                    version: '3.11'
                  params:
                    show: hero
                    shot: '010'
                  work:
                    type: range
                    range: 1-240
              comfyui.render:
                summary: ComfyUI
                value:
                  type: comfyui.render
                  name: Concept variations
                  file: //NAS/projects/concept/workflows/txt2img.json
                  host:
                    id: comfyui
                    version: '0.3'
                  settings:
                    positive: a glass pavilion at dusk
                    seed: 12345
                    run_count: 8
              3dsmax.script:
                summary: 3ds Max Script
                value:
                  type: 3dsmax.script
                  name: Collect assets
                  file: //NAS/projects/tower/scenes/lobby_v012.max
                  script: //NAS/pipeline/max/collect_assets.py
              blender.script:
                summary: Blender Script
                value:
                  type: blender.script
                  name: Bake simulation
                  file: //NAS/projects/hero/shots/010/fx_v004.blend
                  script: //NAS/pipeline/blender/bake_sim.py
                  work:
                    type: range
                    range: 1-240
              cinema4d.script:
                summary: Cinema 4D Script
                value:
                  type: cinema4d.script
                  name: Cache dynamics
                  file: //NAS/projects/product/scenes/spin_v009.c4d
                  script: //NAS/pipeline/c4d/cache_dynamics.py
              maya.script:
                summary: Maya Script
                value:
                  type: maya.script
                  name: Export Alembic
                  file: //NAS/projects/hero/shots/030/anim_v019.ma
                  script: //NAS/pipeline/maya/export_abc.py
                  params:
                    start: 1001
                    end: 1120
              houdini.script:
                summary: Houdini Script
                value:
                  type: houdini.script
                  name: Cook caches
                  file: //NAS/projects/hero/shots/040/fx_v017.hip
                  script: //NAS/pipeline/houdini/cook_caches.py
                  work:
                    type: range
                    range: 1001-1096
              nuke.script:
                summary: Nuke Script
                value:
                  type: nuke.script
                  name: Build slate comp
                  script: //NAS/pipeline/nuke/build_slate.py
                  flags: '-i'
                  args: hero 030
              fusion.script:
                summary: Fusion Script
                value:
                  type: fusion.script
                  name: Relink loaders
                  file: //NAS/projects/hero/shots/030/comp_v003.comp
                  script: //NAS/pipeline/fusion/relink.py
              3dsmax.export:
                summary: 3ds Max Export
                value:
                  type: 3dsmax.export
                  name: Lobby to vrscene
                  file: //NAS/projects/tower/scenes/lobby_v012.max
                  format: vrscene
                  frame: 0-100
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/tower/vrscene/lobby.vrscene
              maya.export:
                summary: Maya Export
                value:
                  type: maya.export
                  name: Hero 030 to ass
                  file: //NAS/projects/hero/shots/030/lighting_v021.ma
                  format: ass
                  frame: 1001-1120
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/hero/shots/030/ass/hero.ass
              blender.export:
                summary: Blender Export
                value:
                  type: blender.export
                  name: Hero 010 to usd
                  file: //NAS/projects/hero/shots/010/lighting_v014.blend
                  format: usd
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/hero/shots/010/usd/shot.usd
              cinema4d.export:
                summary: Cinema 4D Export
                value:
                  type: cinema4d.export
                  name: Spin to rs
                  file: //NAS/projects/product/scenes/spin_v009.c4d
                  format: rs
                  frame: 0-180
                  output:
                    - enabled: true
                      type: 0
                      path: //NAS/projects/product/rs/spin.rs
              renderflow.custom_plugin:
                summary: Plugin
                value:
                  type: renderflow.custom_plugin
                  id: com.studio.blender-render
                  name: Hero 010 studio render
                  params:
                    scene: //NAS/projects/hero/shots/010/lighting_v014.blend
                    frames: 1-240
      responses:
        '201':
          description: The created job, staged and queueable. Only with `wait=true`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '202':
          description: >-
            Accepted. The job exists with status `submitting` while its scene
            files are copied into the repository; watch it for `pending` or
            `failed`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Not permitted for this credential
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: >-
            Refused. The job's type, priority or machine limit is outside what
            the pool admits, or outside what the submitter's role may ask for
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unhandled server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    JobSubmit:
      anyOf:
        - $ref: '#/components/schemas/JobCreate'
        - $ref: '#/components/schemas/MaxRenderRecipe'
        - $ref: '#/components/schemas/ArnoldRenderRecipe'
        - $ref: '#/components/schemas/AfterRenderRecipe'
        - $ref: '#/components/schemas/BlenderRenderRecipe'
        - $ref: '#/components/schemas/AutographRenderRecipe'
        - $ref: '#/components/schemas/HarmonyRenderRecipe'
        - $ref: '#/components/schemas/KeyShotRenderRecipe'
        - $ref: '#/components/schemas/RenderManRenderRecipe'
        - $ref: '#/components/schemas/Cinema4DRenderRecipe'
        - $ref: '#/components/schemas/MayaRenderRecipe'
        - $ref: '#/components/schemas/NukeRenderRecipe'
        - $ref: '#/components/schemas/PremiereRenderRecipe'
        - $ref: '#/components/schemas/MediaEncoderEncodeRecipe'
        - $ref: '#/components/schemas/DavinciRenderRecipe'
        - $ref: '#/components/schemas/VantageRenderRecipe'
        - $ref: '#/components/schemas/VredRenderRecipe'
        - $ref: '#/components/schemas/HoudiniBatchRecipe'
        - $ref: '#/components/schemas/MantraRenderRecipe'
        - $ref: '#/components/schemas/HuskRenderRecipe'
        - $ref: '#/components/schemas/VRayStandaloneRecipe'
        - $ref: '#/components/schemas/SketchUpRenderRecipe'
        - $ref: '#/components/schemas/RhinoRenderRecipe'
        - $ref: '#/components/schemas/RedshiftRenderRecipe'
        - $ref: '#/components/schemas/UnrealRecipe'
        - $ref: '#/components/schemas/FusionRenderRecipe'
        - $ref: '#/components/schemas/ShellRecipe'
        - $ref: '#/components/schemas/PythonRecipe'
        - $ref: '#/components/schemas/ComfyUIRenderRecipe'
        - $ref: '#/components/schemas/MaxScriptRecipe'
        - $ref: '#/components/schemas/BlenderScriptRecipe'
        - $ref: '#/components/schemas/Cinema4DScriptRecipe'
        - $ref: '#/components/schemas/MayaScriptRecipe'
        - $ref: '#/components/schemas/HoudiniScriptRecipe'
        - $ref: '#/components/schemas/NukeScriptRecipe'
        - $ref: '#/components/schemas/FusionScriptRecipe'
        - $ref: '#/components/schemas/MaxExportRecipe'
        - $ref: '#/components/schemas/MayaExportRecipe'
        - $ref: '#/components/schemas/BlenderExportRecipe'
        - $ref: '#/components/schemas/Cinema4DExportRecipe'
        - $ref: '#/components/schemas/RenderFlowCustomPluginRecipe'
    Job:
      type: object
      properties:
        id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        name:
          type: string
          default: ''
        user_id:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        api_key_id:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: The API key that submitted it
        pool_id:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        group_id:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        storage_id:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        status:
          $ref: '#/components/schemas/Status'
        icon:
          type:
            - string
            - 'null'
        description:
          type: string
          default: ''
        thumbnail:
          type:
            - string
            - 'null'
        color:
          type:
            - string
            - 'null'
        tags:
          type: array
          items:
            type: string
          default: []
        priority:
          type: number
          default: 50
        steps:
          type: array
          items:
            $ref: '#/components/schemas/JobStep'
          default: []
        dependencies:
          type: array
          items:
            $ref: '#/components/schemas/JobDependency'
          default: []
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          default: []
        env:
          $ref: '#/components/schemas/JobEnv'
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/JobNotification'
          default: []
        cleanup:
          type: object
          properties:
            type:
              type: string
              default: none
            delay:
              type: integer
              default: 0
          default: {}
        assets:
          type: array
          items:
            $ref: '#/components/schemas/Asset'
          default: []
        errors:
          type: array
          items:
            type: object
            properties: {}
            additionalProperties: {}
        progress:
          $ref: '#/components/schemas/Progress'
        schedule_date:
          type:
            - integer
            - 'null'
          example: 1785846207000
        created_at:
          type:
            - integer
            - 'null'
          example: 1785846207000
        started_at:
          type:
            - integer
            - 'null'
          example: 1785846207000
        finished_at:
          type:
            - integer
            - 'null'
          example: 1785846207000
        archived_at:
          type:
            - integer
            - 'null'
          example: 1785846207000
        removed_at:
          type:
            - integer
            - 'null'
          example: 1785846207000
      required:
        - id
        - status
        - progress
        - name
        - description
        - tags
        - priority
        - steps
        - dependencies
        - metadata
        - notifications
        - cleanup
        - assets
    ApiError:
      type: object
      properties:
        error:
          type: string
        tag:
          type: string
          description: The catalog entry this failure is, when it is one
        title:
          type: string
          description: The catalog entry's title
        detail:
          type: string
          description: What happened this time, and what to do
        issues:
          type: array
          items:
            type: object
            properties:
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
              message:
                type: string
            required:
              - path
              - message
      required:
        - error
    JobCreate:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        steps:
          type: array
          items:
            $ref: '#/components/schemas/JobStepCreate'
          minItems: 1
        user_id:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        icon:
          type:
            - string
            - 'null'
        description:
          type: string
          default: ''
        thumbnail:
          type:
            - string
            - 'null'
        color:
          type:
            - string
            - 'null'
        tags:
          type: array
          items:
            type: string
          default: []
        pool_id:
          anyOf:
            - type: string
              pattern: ^[a-fA-F0-9]{24}$
              example: 68b1f0c2a4d3e5f6a7b8c9d0
            - type: string
              enum:
                - ''
        group_id:
          anyOf:
            - type: string
              pattern: ^[a-fA-F0-9]{24}$
              example: 68b1f0c2a4d3e5f6a7b8c9d0
            - type: string
              enum:
                - ''
        storage_id:
          anyOf:
            - type: string
              pattern: ^[a-fA-F0-9]{24}$
              example: 68b1f0c2a4d3e5f6a7b8c9d0
            - type: string
              enum:
                - ''
            - type: 'null'
        status:
          type: string
          enum:
            - pending
            - suspended
            - scheduled
          default: pending
        priority:
          type: number
          minimum: 0
          maximum: 100
          default: 50
        dependency_ids:
          type: array
          items:
            type: string
          default: []
        metadata:
          type: array
          items:
            type: object
            properties: {}
            additionalProperties: {}
          default: []
        env:
          $ref: '#/components/schemas/JobEnv'
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/JobNotificationCreate'
          default: []
        cleanup:
          type:
            - object
            - 'null'
          properties:
            type:
              type: string
              default: none
            delay:
              type: integer
              default: 0
          additionalProperties: {}
        schedule_date:
          type:
            - integer
            - 'null'
        assets:
          type: array
          items:
            type: object
            properties: {}
            additionalProperties: {}
          default: []
      required:
        - name
        - steps
      additionalProperties: {}
      title: Step tree
    MaxRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - 3dsmax.render
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        tiled:
          anyOf:
            - type: boolean
            - type: object
              properties:
                tiles_x:
                  type: integer
                  minimum: 1
                tiles_y:
                  type: integer
                  minimum: 1
              required:
                - tiles_x
                - tiles_y
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        distributed:
          type: boolean
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: 3ds Max
    ArnoldRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - arnold.render
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Arnold
    AfterRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - after.render
        render_queue_item:
          anyOf:
            - type: string
            - type: object
              properties:
                name:
                  type: string
                rqindex:
                  type: number
                options:
                  type: array
                  items:
                    type: object
                    properties:
                      rqindex:
                        type: number
                      name:
                        type: string
                      status:
                        type: string
                    required:
                      - rqindex
                      - name
              required:
                - name
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: After Effects
    BlenderRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - blender.render
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Blender
    AutographRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - autograph.render
        composition:
          type: string
          minLength: 1
          description: >-
            The composition to render, by name. Defaults to the project's main
            composition
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Autograph
    HarmonyRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - harmony.render
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Harmony
    KeyShotRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - keyshot.render
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: KeyShot
    RenderManRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - renderman.render
        frame:
          $ref: '#/components/schemas/FrameSpec'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: RenderMan
    Cinema4DRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - cinema4d.render
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Cinema 4D
    MayaRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - maya.render
        render_layer:
          type: string
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Maya
    NukeRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - nuke.render
        frame:
          $ref: '#/components/schemas/FrameSpec'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Nuke
    PremiereRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - premiere.render
        sequence:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/NamedSelection'
        preset:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/PresetSelection'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Premiere Pro
    MediaEncoderEncodeRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - media_encoder.encode
        preset:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/PresetSelection'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Media Encoder
    DavinciRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - davinci.render
        render_job:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/NamedSelection'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: DaVinci Resolve
    VantageRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - vantage.render
        scene_state:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/NamedSelection'
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Vantage
    VredRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - vred.render
        clip:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/NamedSelection'
        sequencer:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/PresetSelection'
        camera:
          type: string
        viewpoint:
          type: string
          description: >-
            A camera track's viewpoint, as "Track / Viewpoint", or a viewpoint's
            name alone. It wins over `camera`
          example: Camera Track Stills / Left
        settings:
          $ref: '#/components/schemas/VredRenderSettings'
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: VRED Render
    HoudiniBatchRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - houdini.batch
        rop_node:
          anyOf:
            - type: string
            - type: object
              properties:
                name:
                  type: string
                options:
                  type: array
                  items:
                    type: string
              required:
                - name
        frame:
          $ref: '#/components/schemas/FrameSpec'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Houdini
    MantraRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - houdini.mantra
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Mantra
    HuskRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - houdini.husk
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Husk
    VRayStandaloneRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - vray_standalone
        camera:
          type: string
        frame:
          $ref: '#/components/schemas/FrameSpec'
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: V-Ray Standalone
    SketchUpRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - sketchup.render
        camera:
          type: string
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: SketchUp
    RhinoRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - rhino.render
        camera:
          type: string
        resolution:
          $ref: '#/components/schemas/Resolution'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Rhino
    RedshiftRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - redshift.render
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Redshift
    UnrealRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - unreal
        render_item:
          anyOf:
            - type: string
            - type: object
              properties:
                id:
                  type: string
                options:
                  type: array
                  items:
                    $ref: '#/components/schemas/UnrealRenderItem'
              required:
                - id
        split:
          type: string
          enum:
            - shot
            - chunks
            - job
          description: >-
            How the range becomes tasks: shot (a task a shot, the default),
            chunks (by the step's batch size) or job (one task)
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Unreal
    FusionRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - fusion.render
        frame:
          $ref: '#/components/schemas/FrameSpec'
        args:
          type: string
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Fusion
    ShellRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - shell
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
      required:
        - file
        - type
      additionalProperties: false
      title: Shell
    PythonRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - python
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: Python
    ComfyUIRenderRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        file:
          type: string
        host:
          $ref: '#/components/schemas/SoftwareRef'
        engine:
          $ref: '#/components/schemas/EngineRef'
        plugins:
          type: array
          items:
            $ref: '#/components/schemas/PluginRef'
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        _v:
          type: integer
          minimum: 1
        scene:
          $ref: '#/components/schemas/SceneDescription'
        spec:
          type: object
          properties: {}
          additionalProperties: {}
        type:
          type: string
          enum:
            - comfyui.render
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        settings:
          type: object
          additionalProperties: {}
          description: >-
            The workflow's declared fields (positive/negative/seed/cfg/... or
            `${nodeId}_${widgetName}`), plus run_count/seed_mode/seed_increment.
            A key left out keeps what the workflow parse set
          example:
            seed: 12345
            run_count: 1
      required:
        - file
        - host
        - type
      additionalProperties: false
      title: ComfyUI
    MaxScriptRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        script:
          type: string
          description: The .py to run. A job carrying a typed script instead leaves it out
          example: P:/pipeline/export_abc.py
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        type:
          type: string
          enum:
            - 3dsmax.script
      required:
        - type
      additionalProperties: false
      title: 3ds Max Script
    BlenderScriptRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        script:
          type: string
          description: The .py to run. A job carrying a typed script instead leaves it out
          example: P:/pipeline/export_abc.py
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        type:
          type: string
          enum:
            - blender.script
      required:
        - type
      additionalProperties: false
      title: Blender Script
    Cinema4DScriptRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        script:
          type: string
          description: The .py to run. A job carrying a typed script instead leaves it out
          example: P:/pipeline/export_abc.py
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        type:
          type: string
          enum:
            - cinema4d.script
      required:
        - type
      additionalProperties: false
      title: Cinema 4D Script
    MayaScriptRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        script:
          type: string
          description: The .py to run. A job carrying a typed script instead leaves it out
          example: P:/pipeline/export_abc.py
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        type:
          type: string
          enum:
            - maya.script
      required:
        - type
      additionalProperties: false
      title: Maya Script
    HoudiniScriptRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        script:
          type: string
          description: The .py to run. A job carrying a typed script instead leaves it out
          example: P:/pipeline/export_abc.py
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        type:
          type: string
          enum:
            - houdini.script
      required:
        - type
      additionalProperties: false
      title: Houdini Script
    NukeScriptRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        script:
          type: string
          description: The .py to run. A job carrying a typed script instead leaves it out
          example: P:/pipeline/export_abc.py
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        type:
          type: string
          enum:
            - nuke.script
        flags:
          type: string
          description: >-
            Nuke's own command-line flags. `args` all reach the script's
            `sys.argv`
          example: '-i'
      required:
        - type
      additionalProperties: false
      title: Nuke Script
    FusionScriptRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        script:
          type: string
          description: The .py to run. A job carrying a typed script instead leaves it out
          example: P:/pipeline/export_abc.py
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        type:
          type: string
          enum:
            - fusion.script
      required:
        - type
      additionalProperties: false
      title: Fusion Script
    MaxExportRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        format:
          type: string
          description: 'What to export to: `ass`, `vrscene`, `rs` or `usd`'
          example: vrscene
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        prepare:
          type: string
          description: A script run in the same session before the export
          example: P:/pipeline/set_renderer.py
        type:
          type: string
          enum:
            - 3dsmax.export
      required:
        - type
      additionalProperties: false
      title: 3ds Max Export
    MayaExportRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        format:
          type: string
          description: 'What to export to: `ass`, `vrscene`, `rs` or `usd`'
          example: vrscene
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        prepare:
          type: string
          description: A script run in the same session before the export
          example: P:/pipeline/set_renderer.py
        type:
          type: string
          enum:
            - maya.export
      required:
        - type
      additionalProperties: false
      title: Maya Export
    BlenderExportRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        format:
          type: string
          description: 'What to export to: `ass`, `vrscene`, `rs` or `usd`'
          example: vrscene
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        prepare:
          type: string
          description: A script run in the same session before the export
          example: P:/pipeline/set_renderer.py
        type:
          type: string
          enum:
            - blender.export
      required:
        - type
      additionalProperties: false
      title: Blender Export
    Cinema4DExportRecipe:
      type: object
      properties:
        live_host:
          $ref: '#/components/schemas/LiveHostHints'
        name:
          type: string
          minLength: 2
          maxLength: 255
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: Machines kept off this job, whatever else they could render
        master:
          type:
            - string
            - 'null'
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
          description: >-
            The machine that runs this step's render. A distributed render's
            dispatcher. It must be one of `nodes` when those are given
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
          description: >-
            Render licences the step takes a seat of, by name. For what the
            scene cannot say, like a plugin inside it
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
        file:
          type: string
          description: >-
            The scene the script opens. It is never parsed. The script decides
            what to do with it. And a script that needs none leaves it out
          example: P:/shot010/scene.ma
        args:
          type: string
        work:
          $ref: '#/components/schemas/WorkList'
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        format:
          type: string
          description: 'What to export to: `ass`, `vrscene`, `rs` or `usd`'
          example: vrscene
        frame:
          $ref: '#/components/schemas/FrameSpec'
        output:
          type: array
          items:
            $ref: '#/components/schemas/ImageOutput'
        prepare:
          type: string
          description: A script run in the same session before the export
          example: P:/pipeline/set_renderer.py
        type:
          type: string
          enum:
            - cinema4d.export
      required:
        - type
      additionalProperties: false
      title: Cinema 4D Export
    RenderFlowCustomPluginRecipe:
      type: object
      properties:
        type:
          type: string
          enum:
            - renderflow.custom_plugin
        id:
          type: string
          description: The plugin's manifest id
          example: com.studio.blender-render
        version:
          type: string
          description: >-
            Omit to take whichever version is installed; the job pins it either
            way
        name:
          type: string
          minLength: 2
          maxLength: 255
        params:
          type: object
          additionalProperties: {}
          description: >-
            Values for the script's own declarations, bound before it is
            imported
          example:
            lut: show.cube
        state:
          type: object
          additionalProperties: {}
          description: >-
            The plugin's own state, in its own shape. Carried to the script
            untouched
        host:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            version:
              type: string
          required:
            - id
          description: >-
            The application this was submitted from; its version pre-fills that
            app's requirement
        fields:
          type: object
          additionalProperties:
            type: object
            properties:
              options:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
                    - type: boolean
                    - type: object
                      properties:
                        value: {}
                        label:
                          type: string
              readonly:
                type: boolean
              batch:
                type: boolean
          description: >-
            What a field may be answered with, for this submission only. A list
            only the application could know, whether it is settled, and whether
            the farm should make one job per option
        status:
          type: string
          enum:
            - pending
            - suspended
        priority:
          type: number
          minimum: 0
          maximum: 100
        dependencies:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        blacklisted_nodes:
          type: array
          items:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 68b1f0c2a4d3e5f6a7b8c9d0
        pool_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        env:
          $ref: '#/components/schemas/JobEnv'
        licenses:
          type: array
          items:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9_-]+$
          maxItems: 50
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/JobMetadata'
          description: 'Labelled values the job carries: a show, a shot, an artist'
      required:
        - type
        - id
      additionalProperties: false
      title: Plugin
    Status:
      type: string
      enum:
        - working
        - finishing
        - pending
        - preparing
        - submitting
        - failed
        - archived
        - suspended
        - scheduled
        - queued
        - completed
        - disabled
        - unknown
    JobStep:
      type: object
      properties:
        id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        index:
          type: integer
          default: 0
        name:
          type: string
          default: ''
        type:
          $ref: '#/components/schemas/TaskType'
        reqs:
          type: array
          items:
            $ref: '#/components/schemas/StepRequirement'
          default: []
        props:
          type: array
          items:
            $ref: '#/components/schemas/JobProp'
          default: []
        output:
          type: array
          items:
            $ref: '#/components/schemas/JobStepOutput'
          default: []
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/JobStepInput'
        enabled:
          type: boolean
        skipped:
          type: boolean
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/JobNode'
          default: []
        whitelisted_nodes:
          type: array
          items:
            type: string
          default: []
        blacklisted_nodes:
          type: array
          items:
            type: string
          default: []
          description: Machines kept off this step, whatever else they could render
        master_node_id:
          type:
            - string
            - 'null'
          description: >-
            The machine this step's render is pinned to. A distributed render's
            dispatcher. Null means the matcher chooses
        task_info:
          $ref: '#/components/schemas/TaskInfo'
        settings:
          $ref: '#/components/schemas/JobStepSettings'
        tasks:
          type: array
          items:
            anyOf:
              - type: string
                pattern: ^[a-fA-F0-9]{24}$
                example: 68b1f0c2a4d3e5f6a7b8c9d0
              - type: object
                properties: {}
                additionalProperties: {}
          default: []
        progress:
          $ref: '#/components/schemas/Progress'
        wait:
          anyOf:
            - $ref: '#/components/schemas/StepWait'
            - type: 'null'
      required:
        - id
        - type
        - task_info
        - settings
        - progress
        - index
        - name
        - reqs
        - props
        - output
        - nodes
        - whitelisted_nodes
        - blacklisted_nodes
        - tasks
    JobDependency:
      type: object
      properties:
        id:
          type: string
          default: ''
        job_id:
          type: string
          default: ''
        resolved:
          type: boolean
          default: false
      additionalProperties: {}
      required:
        - id
        - job_id
        - resolved
    JobMetadata:
      type: object
      properties:
        id:
          type: string
          default: ''
        label:
          type: string
          default: ''
        value:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
        type:
          type: string
          default: ''
    JobEnv:
      type: object
      additionalProperties:
        type: string
      description: >-
        Environment variables for every application the job starts, over the
        app's own. `$NAME` reads the value the app would have had.
      example:
        OCIO: //studio/config/aces.ocio
        PATH: $PATH;//studio/tools/bin
    JobNotification:
      type: object
      properties:
        id:
          type: string
          default: ''
        enabled:
          type: boolean
          default: false
        channel:
          type: string
          default: ''
        type:
          type: string
          default: ''
        label:
          type: string
          default: ''
        value:
          type: string
          default: ''
          description: A channel id, an email address, or a machine id
      required:
        - id
        - enabled
        - channel
        - type
        - label
        - value
    Asset:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        type:
          type:
            - string
            - 'null'
          description: >-
            What kind of reference this is (bitmap, xref, proxy, ies, animaproj,
            root)
        source:
          type:
            - string
            - 'null'
          description: >-
            Where the parser found the reference; empty on plugin-reported
            assets
        parent:
          type:
            - string
            - 'null'
          description: Owning scene object, on plugin-reported assets
        filepath:
          type:
            - string
            - 'null'
        filename:
          type:
            - string
            - 'null'
        target_filename:
          type:
            - string
            - 'null'
          description: >-
            Set when `retarget` is true: the collision-free name to copy the
            file to
        retarget:
          type:
            - boolean
            - 'null'
          description: True when another asset shares the filename with different content
        duplicate:
          type:
            - boolean
            - 'null'
        state:
          $ref: '#/components/schemas/AssetState'
        size:
          type:
            - number
            - 'null'
        hash:
          type:
            - string
            - 'null'
    Progress:
      type: object
      properties:
        percent:
          type:
            - number
            - 'null'
        elapsed_time:
          type:
            - number
            - 'null'
        remaining_time:
          type:
            - number
            - 'null'
        total_render_time:
          type:
            - number
            - 'null'
        average_time:
          type:
            - number
            - 'null'
        info:
          type:
            - string
            - 'null'
    JobStepCreate:
      type: object
      properties:
        id:
          type: string
          default: ''
        index:
          type: integer
          default: 0
        name:
          type: string
          default: ''
        type:
          $ref: '#/components/schemas/TaskType'
        reqs:
          type: array
          items:
            $ref: '#/components/schemas/StepRequirement'
          default: []
        props:
          type: array
          items:
            $ref: '#/components/schemas/JobProp'
          default: []
        output:
          type: array
          items:
            $ref: '#/components/schemas/JobStepOutput'
          default: []
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/JobStepInput'
          default: []
        enabled:
          type: boolean
          default: true
        settings:
          $ref: '#/components/schemas/JobStepSettings'
        whitelisted_nodes:
          type: array
          items:
            type: string
          default: []
        blacklisted_nodes:
          type: array
          items:
            type: string
          default: []
          description: Machines kept off this step, whatever else they could render
        master_node_id:
          type:
            - string
            - 'null'
          description: >-
            The machine this step's render is pinned to. A distributed render's
            dispatcher. Null means the matcher chooses
        save_option:
          type: string
          default: none
      required:
        - type
      additionalProperties: {}
    JobNotificationCreate:
      type: object
      properties:
        channel:
          $ref: '#/components/schemas/NotificationChannel'
        type:
          $ref: '#/components/schemas/NotificationType'
        value:
          type: string
          description: >-
            A channel id for webhook, Slack, Teams and Discord; an email address
            for email; a machine id for desktop
        enabled:
          type: boolean
          default: true
        label:
          type: string
        id:
          type: string
      required:
        - channel
        - type
        - value
    LiveHostHints:
      type: object
      properties:
        pid:
          type: integer
          description: >-
            Process id of the running DCC; resolved to a port through the
            live-host registry
        port:
          type: integer
          description: Port of the DCC's plugin HTTP server; wins over pid
    SoftwareRef:
      type: object
      properties:
        id:
          type: string
          enum:
            - 3dsmax
            - after
            - arnold
            - autograph
            - blender
            - cinema4d
            - corona_image_editor
            - fusion
            - fusion_render_node
            - harmony
            - houdini
            - keyshot
            - maya
            - nuke
            - nvidia
            - premiere
            - media_encoder
            - davinci
            - cmd
            - bash
            - powershell
            - photoshop
            - python
            - perforce
            - renderman
            - revit
            - rhino
            - sketchup
            - vray
            - vray_standalone
            - vray_standalone_spawner
            - vantage
            - vred
            - vred_pro
            - vred_core
            - ffmpeg
            - imager
            - redshift_standalone
            - unreal
            - comfyui
            - renderflow
            - scene_manager
            - renderflow
        name:
          type: string
        version:
          anyOf:
            - type: string
            - type: number
            - type: 'null'
      required:
        - id
    EngineRef:
      type: object
      properties:
        id:
          type: string
          enum:
            - arnold
            - corona
            - fstorm
            - redshift
            - renderman
            - vray
        name:
          type: string
        version:
          type: string
      required:
        - id
        - name
        - version
    PluginRef:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        version:
          type: string
      required:
        - id
        - name
        - version
    SceneDescription:
      type: object
      properties:
        host:
          anyOf:
            - $ref: '#/components/schemas/SoftwareRef'
            - type: 'null'
        engine:
          $ref: '#/components/schemas/SceneEngineRef'
        plugins:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/PluginRef'
        file:
          type:
            - string
            - 'null'
        resolution:
          type:
            - object
            - 'null'
          properties:
            width:
              type: integer
            height:
              type: integer
          required:
            - width
            - height
        frame:
          type:
            - object
            - 'null'
          properties:
            type:
              type: integer
            frame:
              type: string
            single:
              anyOf:
                - type: number
                - type: string
            range:
              type: array
              items:
                anyOf:
                  - type: number
                  - type: string
            list:
              type: string
            step:
              type: number
            fps:
              type: number
            order:
              type: string
              enum:
                - linear
                - reverse
                - endpoints
                - sparse
                - every_nth
                - random
            order_step:
              type: integer
              minimum: 2
          required:
            - type
          additionalProperties: {}
        output:
          type:
            - array
            - 'null'
          items:
            type: object
            properties:
              enabled:
                type: boolean
              type:
                type: number
              path:
                type: string
            required:
              - enabled
              - type
              - path
            additionalProperties: {}
        cameras:
          type:
            - array
            - 'null'
          items:
            type: object
            properties: {}
            additionalProperties: {}
        active_camera:
          type:
            - string
            - 'null'
        assets:
          type:
            - array
            - 'null'
          items:
            type: object
            properties: {}
            additionalProperties: {}
      additionalProperties: {}
    FrameSpec:
      type: string
      example: 1-100:4
      description: Single frame, range, range with step, or list
    Resolution:
      type: string
      pattern: ^\d+x\d+$
      example: 1920x1080
    ImageOutput:
      type: object
      properties:
        enabled:
          type: boolean
        type:
          type: number
          description: 'Output slot: 0 is the main image, the rest are render elements'
        path:
          type: string
      required:
        - enabled
        - type
        - path
    NamedSelection:
      type: object
      properties:
        name:
          type: string
        options:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              guid:
                type: string
            required:
              - name
      required:
        - name
    PresetSelection:
      type: object
      properties:
        path:
          type: string
        options:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              path:
                type: string
            required:
              - name
              - path
    VredRenderSettings:
      type: object
      properties:
        raytracing:
          type: boolean
          description: Raytracing
        renderer:
          type: string
          enum:
            - default
            - cpurt
            - gpurt
          description: Renderer
        quality:
          type: string
          enum:
            - default
            - VR_QUALITY_ANALYTIC_LOW
            - VR_QUALITY_ANALYTIC_HIGH
            - VR_QUALITY_REALISTIC_LOW
            - VR_QUALITY_REALISTIC_HIGH
            - VR_QUALITY_RAYTRACING
            - VR_QUALITY_NPR
          description: Render quality
        image_samples:
          type: integer
          minimum: 1
          maximum: 65536
          description: Image samples
        alpha:
          type: boolean
          description: Alpha channel
        premultiply:
          type: boolean
          description: Premultiply alpha
        tonemap_hdr:
          type: boolean
          description: Tonemap HDR
      additionalProperties: false
      description: VRED's Render Settings. A key left out keeps the scene's own
      example:
        renderer: gpurt
        image_samples: 512
        alpha: true
    UnrealRenderItem:
      type: object
      properties:
        id:
          type: string
        index:
          type: number
        name:
          type: string
        label:
          type: string
        sequence:
          type: string
        config:
          type: string
        map:
          type: string
        output_path:
          type: string
        extension:
          type: string
        resolution:
          type: string
        frame:
          type: string
        fps:
          type: number
        path_tracer:
          type: boolean
          description: >-
            The job renders with the Path Tracer; only a machine whose Unreal
            advertises it takes the step
        shots:
          type: array
          items:
            $ref: '#/components/schemas/UnrealShot'
          description: >-
            The job's enabled shots, in the frame range's numbering. With
            `split` at "shot" (the default) each is a task of its own; without
            them the range is one task
        queue_manifest:
          type: string
          description: >-
            The Movie Render Queue as the artist had it open, as the text
            Unreal's SaveQueueToManifestFile writes: the render loads it instead
            of the saved queue asset, so unsaved queue edits render too
      required:
        - id
        - name
        - sequence
        - config
        - map
    WorkList:
      type: object
      properties:
        type:
          type: string
          enum:
            - range
            - count
            - items
        range:
          type: string
          description: '`1-100`, or `1,3,5-12`'
          example: 1-100
        count:
          type: integer
          minimum: 1
          description: N runs, numbered 0..N-1
        items:
          type: array
          items: {}
          description: An explicit list; items are opaque to the service
      required:
        - type
      description: One task per chunk of this. Absent means a single run.
    TaskType:
      type: string
      enum:
        - renderflow.test
        - 3dsmax.render
        - 3dsmax.scene_manager.render
        - arnold.render
        - after.render
        - blender.render
        - cinema4d.render
        - houdini.batch
        - houdini.mantra
        - houdini.husk
        - imager
        - ffmpeg
        - denoise
        - autograph.render
        - fusion.render
        - harmony.render
        - keyshot.render
        - maya.render
        - nuke.render
        - renderman.render
        - premiere.render
        - media_encoder.encode
        - davinci.render
        - shell
        - python
        - unreal
        - vray.dr.spawner
        - redshift.render
        - sketchup.render
        - rhino.render
        - vray_standalone
        - vantage.render
        - vred.render
        - comfyui.render
        - agentic
        - 3dsmax.script
        - blender.script
        - cinema4d.script
        - maya.script
        - houdini.script
        - nuke.script
        - fusion.script
        - 3dsmax.export
        - maya.export
        - blender.export
        - cinema4d.export
        - renderflow.custom_plugin
        - renderflow.benchmark
    StepRequirement:
      type: object
      properties:
        id:
          type: string
          default: ''
        enabled:
          type: boolean
          default: true
        category:
          $ref: '#/components/schemas/ReqCategory'
        category_type:
          anyOf:
            - type: number
            - type: string
          default: 0
        value: {}
        validation_level:
          $ref: '#/components/schemas/ValidationLevel'
      additionalProperties: {}
    JobProp:
      anyOf:
        - $ref: '#/components/schemas/JobPropFile'
        - $ref: '#/components/schemas/JobPropFileBrowser'
        - $ref: '#/components/schemas/JobPropFilePicker'
        - $ref: '#/components/schemas/JobPropResolution'
        - $ref: '#/components/schemas/JobPropCamera'
        - $ref: '#/components/schemas/JobPropFrame'
        - $ref: '#/components/schemas/JobPropTiled'
        - $ref: '#/components/schemas/JobPropImageOutput'
        - $ref: '#/components/schemas/JobPropRenderSettings'
        - $ref: '#/components/schemas/JobPropSelector'
        - $ref: '#/components/schemas/JobPropConfig'
        - $ref: '#/components/schemas/JobPropScriptFile'
        - $ref: '#/components/schemas/JobPropScriptSnippet'
        - $ref: '#/components/schemas/JobPropDistributed'
        - $ref: '#/components/schemas/JobPropImageSource'
        - $ref: '#/components/schemas/JobPropImageExport'
        - $ref: '#/components/schemas/JobPropVideoExport'
        - $ref: '#/components/schemas/JobPropDenoise'
        - $ref: '#/components/schemas/JobPropArgs'
        - $ref: '#/components/schemas/JobPropWorkList'
        - $ref: '#/components/schemas/JobPropCustomPlugin'
        - $ref: '#/components/schemas/JobPropScriptParams'
        - $ref: '#/components/schemas/JobPropSceneManager'
        - $ref: '#/components/schemas/JobPropPrompt'
        - $ref: '#/components/schemas/JobPropGeneric'
    JobStepOutput:
      type: object
      properties:
        id:
          type: string
          default: ''
        key:
          type: string
          default: ''
        name:
          type: string
          default: ''
        type:
          $ref: '#/components/schemas/JobArtifactType'
        source:
          $ref: '#/components/schemas/JobStepOutputSource'
        declared:
          $ref: '#/components/schemas/JobArtifact'
        resolved:
          $ref: '#/components/schemas/JobArtifact'
      required:
        - type
        - source
      additionalProperties: {}
    JobStepInput:
      type: object
      properties:
        id:
          type: string
          default: ''
        target_prop_key:
          type: string
        source_step_id:
          type: string
        source_output_key:
          type: string
      required:
        - target_prop_key
        - source_step_id
        - source_output_key
      additionalProperties: {}
    JobNode:
      type: object
      properties:
        id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        node_id:
          type: string
          pattern: ^[a-fA-F0-9]{24}$
          example: 68b1f0c2a4d3e5f6a7b8c9d0
        name:
          type: string
          default: ''
        status:
          type: string
          default: ''
        attempts:
          type: integer
          default: 0
      required:
        - node_id
        - name
        - status
        - attempts
    TaskInfo:
      type: object
      properties:
        mode:
          type:
            - string
            - 'null'
          enum:
            - frame_range
            - tile_grid
            - once_per_node
            - null
          description: How tasks are generated; frame_range when absent
        step:
          type: number
          default: 1
        order:
          type: number
          default: 0
        all_list:
          type: string
          default: ''
          description: Every frame the step covers, as ranges. The order its tasks are in
        pending_list:
          type: string
          default: ''
        suspended_list:
          type: string
          default: ''
        working_list:
          type: string
          default: ''
        completed_list:
          type: string
          default: ''
        failed_list:
          type: string
          default: ''
        all_count:
          type: number
          default: 0
        pending_count:
          type: number
          default: 0
        suspended_count:
          type: number
          default: 0
        working_count:
          type: number
          default: 0
        failed_count:
          type: number
          default: 0
        completed_count:
          type: number
          default: 0
        chunks:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Frame range per chunk index, for DCCs that batch frames into one
            task
      additionalProperties: {}
      required:
        - step
        - order
        - all_list
        - pending_list
        - suspended_list
        - working_list
        - completed_list
        - failed_list
        - all_count
        - pending_count
        - suspended_count
        - working_count
        - failed_count
        - completed_count
    JobStepSettings:
      type: object
      properties:
        limit:
          type: integer
          default: 0
          description: Max nodes on this step; 0 means unlimited
        maximum:
          type: integer
          default: 0
        fixed_limit:
          type: boolean
          default: false
        max_batch_size:
          type: integer
          minimum: 1
          default: 1
        min_batch_size:
          type: integer
          minimum: 1
        fixed_batch_size:
          type: boolean
          default: false
        force_finish:
          type: integer
          default: 2
        timeout:
          type: integer
          default: 60000
        max_attempts:
          type: integer
          default: 1
        wait_for_previous:
          type: boolean
          default: true
        depends_on:
          type: array
          items:
            type: string
          description: >-
            The earlier steps this one waits on, by step id, in place of the
            step before it. Each must be earlier in the job
        run_on:
          type: string
          enum:
            - success
            - always
            - failure
          default: success
          description: Whether a settled predecessor lets this step run
        manual_start:
          type: boolean
          description: Hold this step until somebody starts it
        resumable:
          type: boolean
          default: false
        run_on_each_node:
          type: boolean
          default: false
        copy_to_repository:
          type: boolean
          description: >-
            Stage this step's files into the repository; omitted is true. False
            renders them where they already are, for a scene every node can
            already read
        perforce:
          $ref: '#/components/schemas/StepPerforceSource'
        locked:
          type: boolean
          description: Only an operator who may author templates edits this step
        assembles_step_id:
          type: string
          description: The render step whose tiles this Image step assembles
        benchmark:
          type: object
          properties:
            definition_id:
              type: string
            type:
              type: string
              enum:
                - vray
                - vray-gpu
                - redshift
                - cinebench
                - blender
                - blender-gpu
                - custom
          required:
            - definition_id
            - type
          additionalProperties: {}
          description: >-
            What this step measures: its finished tasks become the machines'
            benchmark scores
      default: {}
      additionalProperties: {}
    StepWait:
      type: object
      properties:
        reason:
          type: string
          enum:
            - license
            - requirements
          description: What the step waits for
        license:
          type: string
          description: The licence's name, on a license wait
        title:
          type: string
          default: ''
        at:
          type: integer
          default: 0
          example: 1785846207000
      required:
        - reason
        - title
        - at
    AssetState:
      type:
        - integer
        - 'null'
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - null
    NotificationChannel:
      type: string
      enum:
        - desktop
        - email
        - webhook
        - slack
        - teams
        - discord
    NotificationType:
      type: string
      enum:
        - job-completed
        - job-error
        - job-errors
        - all
    SceneEngineRef:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
        name:
          type: string
        version:
          anyOf:
            - type: string
            - type: number
            - type: 'null'
      required:
        - id
    UnrealShot:
      type: object
      properties:
        name:
          type: string
        start:
          type: integer
        end:
          type: integer
          description: The shot's last frame
      required:
        - start
        - end
    ReqCategory:
      type: integer
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      default: 0
    ValidationLevel:
      type:
        - integer
        - 'null'
      enum:
        - 0
        - 1
        - 2
        - 3
        - null
    JobPropFile:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - file.input
        value:
          $ref: '#/components/schemas/JobPropFileValue'
        props:
          $ref: '#/components/schemas/JobPropFileSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropFileBrowser:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - file.browser
        value:
          $ref: '#/components/schemas/JobPropFileValue'
        props:
          $ref: '#/components/schemas/JobPropFileBrowserSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropFilePicker:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - file.picker
        value:
          $ref: '#/components/schemas/JobPropFileValue'
        props:
          $ref: '#/components/schemas/JobPropFilePickerSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropResolution:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - resolution
        value:
          $ref: '#/components/schemas/JobPropResolutionValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropCamera:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - camera
        value:
          $ref: '#/components/schemas/JobPropCameraValue'
        props:
          $ref: '#/components/schemas/JobPropCameraSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropFrame:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - frame
        value:
          $ref: '#/components/schemas/JobPropFrameValue'
        props:
          $ref: '#/components/schemas/JobPropFrameSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropTiled:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - tiled
        value:
          $ref: '#/components/schemas/JobPropTiledValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropImageOutput:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - image.output
        value:
          $ref: '#/components/schemas/JobPropOutputValue'
        props:
          $ref: '#/components/schemas/JobPropOutputSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropRenderSettings:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - render.settings
        value:
          type: object
          properties:
            values:
              type: object
              additionalProperties: {}
              default: {}
          additionalProperties: {}
        props:
          allOf:
            - $ref: '#/components/schemas/JobPropSettings'
            - type: object
              properties:
                declarations:
                  type: array
                  items:
                    $ref: '#/components/schemas/FieldDecl'
              additionalProperties: {}
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropSelector:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - name
        value:
          $ref: '#/components/schemas/JobPropSelectorValue'
        props:
          $ref: '#/components/schemas/JobPropSelectorSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropConfig:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - config
        value:
          $ref: '#/components/schemas/JobPropFileValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropScriptFile:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - script.file
        value:
          $ref: '#/components/schemas/JobPropScriptFileValue'
        props:
          $ref: '#/components/schemas/JobPropFileBrowserSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropScriptSnippet:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - script.snippet
        value:
          $ref: '#/components/schemas/JobPropScriptSnippetValue'
        props:
          $ref: '#/components/schemas/JobPropFileBrowserSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropDistributed:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - distributed
        value:
          $ref: '#/components/schemas/JobPropDistributedValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropImageSource:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - image.source
        value:
          $ref: '#/components/schemas/JobPropImageSourceValue'
        props:
          $ref: '#/components/schemas/JobPropImageSourceSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropImageExport:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - image.export
        value:
          $ref: '#/components/schemas/JobPropImageExportValue'
        props:
          $ref: '#/components/schemas/JobPropImageExportSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropVideoExport:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - video.export
        value:
          $ref: '#/components/schemas/JobPropVideoExportValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropDenoise:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - denoise.export
        value:
          $ref: '#/components/schemas/JobPropDenoiseValue'
        props:
          $ref: '#/components/schemas/JobPropImageExportSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropArgs:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - args
        value:
          $ref: '#/components/schemas/JobPropArgsValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropWorkList:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - work.list
        value:
          $ref: '#/components/schemas/JobPropWorkListValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropCustomPlugin:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - custom.plugin
        value:
          $ref: '#/components/schemas/JobPropCustomPluginValue'
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropScriptParams:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - script.params
        value:
          $ref: '#/components/schemas/JobPropScriptParamsValue'
        props:
          $ref: '#/components/schemas/JobPropScriptParamsSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropSceneManager:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - scene-manager
        value:
          type: object
          properties:
            setup:
              type:
                - object
                - 'null'
              properties: {}
              additionalProperties: {}
            index:
              type: number
              default: 0
          additionalProperties: {}
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropPrompt:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
        key:
          type:
            - string
            - 'null'
          description: >-
            Stable identifier the public API maps flat recipe fields onto (e.g.
            rop_node)
        name:
          type: string
          default: ''
        callback:
          $ref: '#/components/schemas/JobCallbackType'
        category:
          type:
            - number
            - 'null'
        v:
          type:
            - number
            - 'null'
        type:
          type: string
          enum:
            - prompt
        value:
          type: string
        props:
          $ref: '#/components/schemas/JobPropSettings'
      required:
        - type
        - value
        - props
      additionalProperties: {}
    JobPropGeneric:
      type: object
      properties: {}
      additionalProperties: {}
      description: >-
        A prop this build does not describe: an unknown type, or a known type
        whose shape has drifted
    JobArtifactType:
      type: string
      enum:
        - image.single
        - image.sequence
        - file.single
        - file.sequence
        - folder
        - data
    JobStepOutputSource:
      anyOf:
        - type: object
          properties:
            prop_key:
              type: string
          required:
            - prop_key
          additionalProperties: {}
        - type: object
          properties:
            discovered:
              type: boolean
              enum:
                - true
          required:
            - discovered
          additionalProperties: {}
    JobArtifact:
      type:
        - object
        - 'null'
      properties:
        path:
          type: string
          default: ''
        folder:
          type: string
          default: ''
        basename:
          type: string
          default: ''
        extension:
          type: string
          default: ''
        frames:
          type:
            - object
            - 'null'
          properties:
            start:
              type: number
            end:
              type: number
            step:
              type:
                - number
                - 'null'
            digits:
              type:
                - number
                - 'null'
          required:
            - start
            - end
          additionalProperties: {}
        width:
          type:
            - number
            - 'null'
        height:
          type:
            - number
            - 'null'
        fps:
          type:
            - number
            - 'null'
        naming:
          type:
            - object
            - 'null'
          properties:
            type:
              type: number
            path:
              type: string
            padding:
              type: number
            delimiter:
              type: string
            separate_folders:
              type: boolean
            single:
              type: boolean
            element_delimiter:
              type:
                - string
                - 'null'
            extensionless:
              type:
                - boolean
                - 'null'
            beauty_element:
              type:
                - string
                - 'null'
          required:
            - type
            - path
            - padding
            - delimiter
            - separate_folders
            - single
          additionalProperties: {}
          description: How a render's frames are named, as the farm predicts them
      additionalProperties: {}
    StepPerforceSource:
      type: object
      properties:
        server:
          type: string
          description: Id of a server under Settings → Perforce
        workspace:
          type: string
          description: The artist's workspace; nodes sync the revisions it has
        root:
          type: string
          description: The artist's local project folder; the scene path is read against it
        change:
          type: integer
          minimum: 1
          description: A changelist to sync instead of what the workspace has
        shelf:
          type: integer
          minimum: 1
          description: The artist's edits, shelved at submit; nodes lay them over the sync
      required:
        - server
        - workspace
        - root
      description: Sync this step's scene from Perforce on each node instead of staging it
    JobCallbackType:
      type:
        - string
        - 'null'
      enum:
        - pre-setup
        - post-setup
        - pre-task
        - post-task
        - pre-render
        - pre-frame
        - post-frame
        - post-render
        - null
    JobPropFileValue:
      type: object
      properties:
        path:
          type: string
          default: ''
        original_path:
          type:
            - string
            - 'null'
        sequence:
          $ref: '#/components/schemas/JobPropFileSequence'
        perforce:
          $ref: '#/components/schemas/PerforceFacts'
      additionalProperties: {}
    JobPropFileSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type: boolean
          default: false
        options:
          type: array
          items:
            $ref: '#/components/schemas/JobPropFileOption'
          default: []
        file_filter:
          type: array
          items:
            $ref: '#/components/schemas/FileFilter'
          default: []
        provides:
          $ref: '#/components/schemas/SubmitProvides'
        host_id:
          type:
            - string
            - 'null'
        sequence:
          type: boolean
          default: false
        port:
          type: number
          default: 0
        placeholder:
          type:
            - string
            - 'null'
      additionalProperties: {}
    JobPropFileBrowserSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        file_filter:
          type: array
          items:
            $ref: '#/components/schemas/FileFilter'
          default: []
        placeholder:
          type:
            - string
            - 'null'
      additionalProperties: {}
    JobPropFilePickerSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        options:
          type: array
          items:
            $ref: '#/components/schemas/JobPropFilePickerOption'
          default: []
        file_filter:
          type: array
          items:
            $ref: '#/components/schemas/FileFilter'
          default: []
        placeholder:
          type:
            - string
            - 'null'
      additionalProperties: {}
    JobPropResolutionValue:
      type: object
      properties:
        width:
          type: number
          default: 0
        height:
          type: number
          default: 0
        x:
          type:
            - number
            - 'null'
        'y':
          type:
            - number
            - 'null'
        w:
          type:
            - number
            - 'null'
        h:
          type:
            - number
            - 'null'
      additionalProperties: {}
    JobPropSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
      additionalProperties: {}
    JobPropCameraValue:
      type: object
      properties:
        id:
          anyOf:
            - type: string
            - type: number
            - type: 'null'
        name:
          type: string
          default: ''
      additionalProperties: {}
    JobPropCameraSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        options:
          type: array
          items:
            $ref: '#/components/schemas/JobPropCameraValue'
          default: []
      additionalProperties: {}
    JobPropFrameValue:
      type: object
      properties:
        type:
          type: number
          default: 0
          description: 0 single, 1 range, 2 list
        frame:
          type: string
          default: '0'
        step:
          type: integer
          minimum: 1
          default: 1
        fps:
          type: number
          default: 30
        order:
          type: string
          enum:
            - linear
            - reverse
            - endpoints
            - sparse
            - every_nth
            - random
          description: >-
            Which frames go out first: linear, reverse, first-middle-last then
            the rest, first-middle-last then the centres of every span (sparse),
            every Nth then the rest, or random. Omitted is linear; set at submit
        order_step:
          type: integer
          minimum: 2
          description: 'For order every_nth: every Nth frame goes first. Omitted is 5'
        split:
          type: string
          enum:
            - shot
            - chunks
            - job
          description: >-
            How the range becomes tasks, one of the prop's `splits`: shot (a
            task a shot), chunks (by the step's batch size) or job (one task).
            Omitted is the first of `splits`
        single:
          type: number
        range:
          type: array
          items:
            type: number
        list:
          type: string
      additionalProperties: {}
    JobPropFrameSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        modes:
          type: array
          items:
            type: string
            enum:
              - single
              - range
              - list
          default:
            - single
            - range
            - list
        hide_step:
          type:
            - boolean
            - 'null'
        splits:
          type: array
          items:
            type: string
            enum:
              - shot
              - chunks
              - job
          description: >-
            The ways the step can divide its range, the first the default.
            Absent is chunks by the batch size
      additionalProperties: {}
    JobPropTiledValue:
      type: object
      properties:
        tiles_x:
          type: number
          default: 4
        tiles_y:
          type: number
          default: 1
      additionalProperties: {}
    JobPropOutputValue:
      type: object
      properties:
        type:
          type: number
          default: 0
          description: 'Output slot: 0 is the main image, the rest are render elements'
        enabled:
          type: boolean
          default: false
        path:
          type: string
          default: ''
      additionalProperties: {}
    JobPropOutputSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        file_filter:
          type: array
          items:
            $ref: '#/components/schemas/FileFilter'
          default: []
        padding:
          type: number
          default: 4
        delimiter:
          type: string
          default: .
        format:
          $ref: '#/components/schemas/RenderFormat'
        separate_folders:
          type: boolean
          default: false
        directory_only:
          type:
            - boolean
            - 'null'
        node:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
              description: >-
                What the renderer takes to execute this node and no other
                (Nuke's -X)
          required:
            - name
          description: >-
            The node inside the scene that writes this output. A Nuke Write or
            CopyCat. Present only where switching the output off leaves that
            node out of the render
        tokens:
          type: object
          additionalProperties:
            type: string
          description: >-
            Each token in the path and its value, as the host application
            resolved it for this job's item: the path is the pattern, filled
            with these
      additionalProperties: {}
    FieldDecl:
      type: object
      properties:
        key:
          type: string
        kind:
          type: string
        label:
          type:
            - string
            - 'null'
        default: {}
        required:
          type:
            - boolean
            - 'null'
        min:
          type:
            - number
            - 'null'
        max:
          type:
            - number
            - 'null'
        step:
          type:
            - number
            - 'null'
        units:
          type:
            - string
            - 'null'
        options:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/FieldOption'
        filter:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/FileFilter'
        pattern:
          type:
            - string
            - 'null'
        placeholder:
          type:
            - string
            - 'null'
        readonly:
          type:
            - boolean
            - 'null'
        multiline:
          type:
            - boolean
            - 'null'
        show_if:
          type:
            - array
            - 'null'
          items:
            type: object
            properties:
              key:
                type: string
              value: {}
            required:
              - key
            additionalProperties: {}
        group:
          type:
            - string
            - 'null'
        provides:
          type:
            - object
            - 'null'
          properties:
            payload:
              type: boolean
              default: false
            live:
              type: boolean
              default: false
            file:
              type: boolean
              default: false
            opens:
              type:
                - boolean
                - 'null'
            gui:
              type:
                - boolean
                - 'null'
            detail:
              type:
                - boolean
                - 'null'
          additionalProperties: {}
          description: What can describe the scene this field holds. File declarations only
        host_id:
          type:
            - string
            - 'null'
          description: Which application that scene belongs to
      required:
        - key
        - kind
      additionalProperties: {}
    JobPropSelectorValue:
      type: object
      properties:
        id:
          anyOf:
            - type: string
            - type: number
            - type: 'null'
        name:
          type: string
          default: ''
        color:
          type:
            - string
            - 'null'
        label:
          type:
            - string
            - 'null'
        none:
          type:
            - boolean
            - 'null'
          description: >-
            Not one of the items. Picking it returns the step to the scene as it
            stands
      additionalProperties: {}
    JobPropSelectorSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        options:
          type: array
          items:
            $ref: '#/components/schemas/JobPropSelectorValue'
          default: []
        batch:
          type:
            - boolean
            - 'null'
      additionalProperties: {}
    JobPropScriptFileValue:
      type: object
      properties:
        lang:
          $ref: '#/components/schemas/ScriptLanguage'
        path:
          type: string
          default: ''
      additionalProperties: {}
    JobPropScriptSnippetValue:
      type: object
      properties:
        code:
          type: string
          default: ''
        lang:
          type:
            - string
            - 'null'
        language:
          type:
            - string
            - 'null'
      additionalProperties: {}
    JobPropDistributedValue:
      type: object
      properties:
        nodes:
          type:
            - array
            - 'null'
          items:
            type: string
      additionalProperties: {}
    JobPropImageSourceValue:
      type: object
      properties:
        path:
          type: string
          default: ''
        sequence:
          $ref: '#/components/schemas/JobPropFileSequence'
      additionalProperties: {}
    JobPropImageSourceSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        file_filter:
          type: array
          items:
            $ref: '#/components/schemas/FileFilter'
          default: []
      additionalProperties: {}
    JobPropImageExportValue:
      type: object
      properties:
        element:
          type: string
          default: ''
          description: A render element by name; empty is the whole image
        format:
          type: string
          enum:
            - exr
            - png
            - jpg
            - tif
            - tga
          default: jpg
        size:
          type: object
          properties:
            mode:
              type: string
              enum:
                - full
                - width
                - height
                - scale
              default: full
            value:
              type: number
              default: 0
              description: >-
                Pixels for `width` and `height`; a factor for `scale`, so 0.5 is
                half size. Ignored by `full`
          default:
            mode: full
            value: 0
          additionalProperties: {}
        quality:
          type:
            - number
            - 'null'
        depth:
          type:
            - string
            - 'null'
          enum:
            - '8'
            - '16'
            - half
            - float
            - null
          description: >-
            What the format can hold: 8 or 16 for png and tif, float for tif and
            exr, half for exr. Absent writes 8-bit, or half for an exr
        colorspace:
          type:
            - string
            - 'null'
        path:
          type: string
          default: ''
      additionalProperties: {}
    JobPropImageExportSettings:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        required:
          type: boolean
          default: false
        optional:
          type: boolean
          default: true
        hidden:
          type: boolean
        readonly:
          type:
            - boolean
            - 'null'
        padding:
          type: number
          default: 4
        delimiter:
          type: string
          default: .
      additionalProperties: {}
    JobPropVideoExportValue:
      type: object
      properties:
        preset:
          type: string
          enum:
            - h264
            - h265
            - prores_422hq
            - prores_4444
            - dnxhr_hq
            - custom
          default: h264
        fps:
          type:
            - number
            - 'null'
          description: Frames per second. Absent takes the source's frame rate
        path:
          type: string
          default: ''
          description: The movie file; empty means beside the source, named after it
        command:
          type: string
          default: ''
          description: ffmpeg's arguments, read only by the `custom` preset
        entries:
          type:
            - array
            - 'null'
          items:
            type: object
            properties:
              id:
                type: string
                default: ''
              enabled:
                type: boolean
                default: true
              flag:
                type: string
                default: ''
              value:
                type: string
                default: ''
              quote:
                type: string
                default: ''
            additionalProperties: {}
          description: >-
            The custom line as arguments, for the submitter. Nothing on the node
            reads it
      additionalProperties: {}
    JobPropDenoiseValue:
      type: object
      properties:
        elements:
          type: array
          items:
            type: string
          default: []
          description: >-
            Elements to denoise by name: an EXR part, a channel group such as
            `diffuse`, or `beauty`. Empty denoises the first, which is the
            beauty
        albedo:
          type: string
          default: ''
          description: >-
            The element that is the albedo pass. Empty denoises from colour
            alone
        normal:
          type: string
          default: ''
          description: The element that is the normal pass. Needs an albedo beside it
        clean_aux:
          type: boolean
          default: false
          description: >-
            Denoise the albedo and normal first, for passes that are noisy
            themselves
        quality:
          type: string
          enum:
            - high
            - balanced
            - fast
          default: high
        device:
          type: string
          enum:
            - auto
            - cpu
            - gpu
          default: auto
          description: >-
            `auto` takes the fastest device on the machine; `gpu` fails on a
            machine without one
        path:
          type: string
          default: ''
          description: >-
            The file written per frame. Empty means beside the source, named
            `<source>.denoised`
      additionalProperties: {}
    JobPropArgsValue:
      type: object
      properties:
        args:
          type: string
          default: ''
        entries:
          type:
            - array
            - 'null'
          items:
            type: object
            properties:
              id:
                type: string
                default: ''
              enabled:
                type: boolean
                default: true
              key:
                type: string
                default: ''
              value:
                type: string
                default: ''
            additionalProperties: {}
      additionalProperties: {}
    JobPropWorkListValue:
      type: object
      properties:
        type:
          type: string
          enum:
            - range
            - count
            - items
        range:
          type: string
        count:
          type: integer
        items:
          type: array
          items: {}
        offset:
          type: integer
          description: 'Task copies only: where this slice starts in the step''s list'
      required:
        - type
      additionalProperties: {}
    JobPropCustomPluginValue:
      type: object
      properties:
        id:
          type: string
        version:
          type: string
      required:
        - id
        - version
      additionalProperties: {}
    JobPropScriptParamsValue:
      type: object
      properties:
        values:
          type: object
          additionalProperties: {}
          default: {}
      additionalProperties: {}
    JobPropScriptParamsSettings:
      allOf:
        - $ref: '#/components/schemas/JobPropSettings'
        - type: object
          properties:
            declarations:
              type: array
              items:
                $ref: '#/components/schemas/FieldDecl'
          additionalProperties: {}
    JobPropFileSequence:
      type:
        - object
        - 'null'
      properties:
        start_frame:
          type: number
          default: 0
        end_frame:
          type: number
          default: 0
        digits:
          type: number
          default: 0
        pattern:
          type: string
          default: ''
        display:
          type: string
          default: ''
      additionalProperties: {}
    PerforceFacts:
      type: object
      properties:
        port:
          type: string
        user:
          type: string
        workspace:
          type: string
          description: >-
            The artist's workspace; the farm reads its view for the depot path
            and syncs its revisions
        root:
          type: string
          description: The artist's local project folder
        opened:
          type: integer
          description: Files the artist has checked out or added under `root`
        scene_submitted:
          type: boolean
          description: >-
            False when the scene file is only added or not in Perforce; absent
            when the host could not tell
        shelf:
          type: integer
          minimum: 1
          description: The changelist those files were shelved in at submit
      required:
        - port
        - workspace
        - root
    JobPropFileOption:
      type: object
      properties:
        id:
          type: string
          default: ''
        path:
          type: string
          default: ''
        soft_id:
          type: string
          default: ''
        updated_at:
          type: number
          default: 0
        type:
          type: string
          enum:
            - offline
            - live
          default: offline
        port:
          type:
            - number
            - 'null'
      additionalProperties: {}
    FileFilter:
      type: object
      properties:
        name:
          type: string
          default: ''
        extensions:
          type: array
          items:
            type: string
          default: []
      additionalProperties: {}
    SubmitProvides:
      type: object
      properties:
        payload:
          type: boolean
          default: false
        live:
          type: boolean
          default: false
        file:
          type: boolean
          default: false
        opens:
          type:
            - boolean
            - 'null'
        gui:
          type:
            - boolean
            - 'null'
        detail:
          type:
            - boolean
            - 'null'
      default:
        payload: false
        live: false
        file: true
      additionalProperties: {}
    JobPropFilePickerOption:
      type: object
      properties:
        name:
          type: string
          default: ''
        path:
          type: string
          default: ''
      additionalProperties: {}
    RenderFormat:
      type:
        - object
        - 'null'
      properties:
        type:
          type: string
          default: ''
        props:
          type: array
          items:
            $ref: '#/components/schemas/RenderFormatProp'
          default: []
      additionalProperties: {}
    FieldOption:
      type: object
      properties:
        value:
          anyOf:
            - type: string
            - type: number
            - type: boolean
        label:
          type:
            - string
            - 'null'
      required:
        - value
      additionalProperties: {}
    ScriptLanguage:
      type:
        - string
        - 'null'
      enum:
        - maxscript
        - mel
        - python
        - powershell
        - bash
        - batch
        - null
    RenderFormatProp:
      type: object
      properties:
        name:
          type: string
          default: ''
        class:
          type: string
          default: ''
        value: {}
      additionalProperties: {}
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An API key from Settings, API Keys. A caller on this machine needs none.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.