{
  // Workflow metadata
  "name": "Simple Workflow with Actions",

  "description": "Demonstrates scheduler actions for different workflow stages",

  // Job definitions
  "jobs": [
    {
      "name": "setup",
      "command": "echo 'Setting up...' && sleep 2",
      "resource_requirements": "small"
    },
    {
      "name": "process",
      "command": "echo 'Processing data...' && sleep 5",
      "depends_on": [
        "setup"
      ],
      "resource_requirements": "medium"
    },
    {
      "name": "finalize",
      "command": "echo 'Finalizing...' && sleep 2",
      "depends_on": [
        "process"
      ],
      "resource_requirements": "small"
    }
  ],
  
  // Resource requirements
  "resource_requirements": [
    {
      "name": "small",
      "num_cpus": 2,
      "num_gpus": 0,
      "num_nodes": 1,
      "memory": "4g",
      "runtime": "PT30M"
    },
    {
      "name": "medium",
      "num_cpus": 8,
      "num_gpus": 0,
      "num_nodes": 1,
      "memory": "16g",
      "runtime": "PT2H"
    }
  ],
  
  // Slurm schedulers
  "slurm_schedulers": [
    {
      "name": "setup_scheduler",
      "account": "demo_project",
      "nodes": 1,
      "walltime": "00:30:00"
    },
    {
      "name": "process_scheduler",
      "account": "demo_project",
      "nodes": 2,
      "walltime": "02:00:00"
    },
    {
      "name": "finalize_scheduler",
      "account": "demo_project",
      "nodes": 1,
      "walltime": "00:30:00"
    }
  ],
  
  // Workflow actions
  "actions": [
    {
      "trigger_type": "on_workflow_start",
      "action_type": "schedule_nodes",
      "scheduler": "setup_scheduler",
      "scheduler_type": "slurm",
      "num_allocations": 1
    },
    {
      "trigger_type": "on_jobs_ready",
      "action_type": "schedule_nodes",
      "jobs": [
        "process"
      ],
      "scheduler": "process_scheduler",
      "scheduler_type": "slurm",
      "num_allocations": 2,
    },
    {
      "trigger_type": "on_jobs_ready",
      "action_type": "schedule_nodes",
      "jobs": [
        "finalize"
      ],
      "scheduler": "finalize_scheduler",
      "scheduler_type": "slurm",
      "num_allocations": 1
    }
  ],

}
