{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/hyperfoil-benchmark-configuration/latest.json",
  "description": "Hyperfoil benchmark configuration",
  "x-lintel": {
    "source": "https://hyperfoil.io/schema.json",
    "sourceSha256": "cc80219de276cdd8f261a688c605a311d8858209b9633f88f5fd4eccfac78385",
    "fileMatch": [
      "*.hf.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "$schema": {
      "description": "This should point to either <http://hyperfoil.io/schema.json> or local file",
      "type": "string"
    },
    "name": {
      "description": "Name of the benchmark.",
      "type": "string"
    },
    "agents": {
      "description": "Agent nodes that should drive the load.",
      "oneOf": [
        {
          "type": "object",
          "patternProperties": {
            ".*": {
              "$ref": "#/$defs/agent"
            }
          }
        },
        {
          "type": "array",
          "additionalItems": false,
          "items": {
            "type": "object",
            "minProperties": 1,
            "maxProperties": 1,
            "patternProperties": {
              ".*": {
                "$ref": "#/$defs/agent"
              }
            }
          }
        }
      ]
    },
    "threads": {
      "type": "integer",
      "minimum": 1
    },
    "ergonomics": {
      "$ref": "#/$defs/ergonomics"
    },
    "http": {
      "oneOf": [
        {
          "type": "array",
          "additionalItems": false,
          "items": {
            "$ref": "#/$defs/http"
          }
        },
        {
          "$ref": "#/$defs/http"
        }
      ]
    },
    "phases": {
      "description": "Benchmark execution phases.",
      "type": "array",
      "additionalItems": false,
      "minItems": 1,
      "items": {
        "type": "object",
        "minProperties": 1,
        "maxProperties": 1,
        "additionalProperties": {
          "type": "object",
          "properties": {
            "always": {
              "description": "Run fixed number of concurrent users.",
              "allOf": [
                {
                  "$ref": "#/$defs/phase"
                },
                {
                  "required": [
                    "users"
                  ],
                  "properties": {
                    "users": {
                      "description": "Number of started users",
                      "$ref": "#/$defs/incrementableInteger"
                    }
                  },
                  "type": "object"
                }
              ]
            },
            "atOnce": {
              "description": "Start fixed number of concurrent users.",
              "allOf": [
                {
                  "$ref": "#/$defs/phase"
                },
                {
                  "required": [
                    "users"
                  ],
                  "properties": {
                    "users": {
                      "description": "Number of started users",
                      "$ref": "#/$defs/incrementableInteger"
                    }
                  },
                  "type": "object"
                }
              ]
            },
            "constantRate": {
              "description": "Add new users to the system at constant rate.",
              "allOf": [
                {
                  "$ref": "#/$defs/phase"
                },
                {
                  "required": [
                    "usersPerSec"
                  ],
                  "properties": {
                    "usersPerSec": {
                      "description": "Rate for new users",
                      "$ref": "#/$defs/incrementableNumber"
                    },
                    "maxSessions": {
                      "description": "Maximum number of users (active sessions) executing this phase concurrently.",
                      "$ref": "#/$defs/positiveInteger"
                    },
                    "variance": {
                      "description": "Add new users randomly following Poisson process (true, default) or evenly (false).",
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              ]
            },
            "decreasingRate": {
              "description": "Decreases new users arrival rate over its duration.",
              "$ref": "#/$defs/rampRatePhase"
            },
            "increasingRate": {
              "description": "Increases new users arrival rate over its duration.",
              "$ref": "#/$defs/rampRatePhase"
            },
            "noop": {
              "description": "Does not execute anything. Useful for orchestrating phases or adding pauses.",
              "$ref": "#/$defs/phase"
            }
          },
          "additionalProperties": false
        }
      }
    },
    "staircase": {
      "desription": "Shortcut for alternating increasingRate and constantRate phases",
      "type": "object",
      "properties": {
        "initialRampUpDuration": {
          "description": "Duration of the first ramp-up.",
          "$ref": "#/$defs/timeMillis"
        },
        "steadyStateDuration": {
          "description": "Duration of each steady-state iteration.",
          "$ref": "#/$defs/timeMillis"
        },
        "rampUpDuration": {
          "description": "Duration of each ramp-up iteration between steady-states.",
          "$ref": "#/$defs/timeMillis"
        },
        "initialUsersPerSec": {
          "description": "Number of users per second after initial ramp-up.",
          "$ref": "#/$defs/positiveNumber"
        },
        "incrementUsersPerSec": {
          "description": "Number of users added in each iteration.",
          "$ref": "#/$defs/positiveNumber"
        },
        "maxIterations": {
          "description": "Maximum number of steady-state phases.",
          "$ref": "#/$defs/positiveInteger"
        },
        "maxSessions": {
          "description": "Maximum number of users (active sessions) executing concurrently.",
          "$ref": "#/$defs/positiveInteger"
        }
      },
      "additionalProperties": false
    },
    "usersPerSec": {
      "description": "Single-phase shortcut: Rate for new users",
      "$ref": "#/$defs/incrementableNumber"
    },
    "maxSessions": {
      "description": "Single-phase shortcut: Maximum number of users (active sessions) executing this phase concurrently.",
      "$ref": "#/$defs/positiveInteger"
    },
    "duration": {
      "description": "Single-phase shortcut: Time relative to phase start for the phase to be finished.",
      "$ref": "#/$defs/timeMillis"
    },
    "maxDuration": {
      "description": "Single-phase shortcut: Hard limit, relative to phase start, after which the phase will be terminated.",
      "$ref": "#/$defs/timeMillis"
    },
    "scenario": {
      "description": "Single-phase shortcut: the scenario",
      "$ref": "#/$defs/scenario"
    }
  },
  "required": [
    "name",
    "http"
  ],
  "additionalProperties": false,
  "$defs": {
    "agent": {
      "oneOf": [
        {
          "type": [
            "string",
            "number",
            "boolean"
          ]
        },
        {
          "type": "object",
          "patternProperties": {
            ".*": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            }
          }
        }
      ]
    },
    "ergonomics": {
      "description": "Adjust scenario to implement common functionality out-of-the-box.",
      "type": "object",
      "properties": {
        "repeatCookies": {
          "description": "Store cookies in session and resend them on future requests. Default is true.",
          "type": "boolean"
        },
        "userAgentFromSession": {
          "description": "Append session ID and client hostname as user agent",
          "type": "boolean"
        },
        "autoRangeCheck": {
          "description": "Inject status handler that marks the request as invalid on status 4xx or 5xx. Default is true.",
          "type": "boolean"
        },
        "stopOnInvalid": {
          "description": "Inject completion handler that will stop the session if the request has been marked as invalid. Default is true.",
          "type": "boolean"
        },
        "followRedirect": {
          "description": "Automatically fire requests when the server responds with redirection. Default is NEVER.",
          "enum": [
            "NEVER",
            "LOCATION_ONLY",
            "HTML_ONLY",
            "ALWAYS"
          ]
        }
      },
      "additionalProperties": false
    },
    "http": {
      "description": "HTTP connection pool configuration.",
      "type": "object",
      "properties": {
        "protocol": {
          "enum": [
            "http",
            "https"
          ]
        },
        "host": {
          "description": "Target hostname. For simplicity this can include scheme and port, too.",
          "type": "string"
        },
        "port": {
          "description": "Target TCP port",
          "type": "integer",
          "minimum": 1,
          "maximum": 65535
        },
        "addresses": {
          "description": "List of IP addresses that should be used. The connections will be randomly created to addresses in this list, or using `host` if it's empty.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "additionalItems": false
        },
        "allowHttp1x": {
          "description": "Allow using HTTP 1.0 and HTTP 1.1 connections. Default is true.",
          "type": "boolean"
        },
        "allowHttp2": {
          "description": "Allow using HTTP 2.0 connections. Default is true.",
          "type": "boolean"
        },
        "connectionStrategy": {
          "description": "Connection pooling model. Default is SHARED_POOL.",
          "enum": [
            "SHARED_POOL",
            "SESSION_POOLS",
            "OPEN_ON_REQUEST",
            "ALWAYS_NEW"
          ]
        },
        "directHttp2": {
          "description": "Start HTTP 2.0 connections without HTTP 1.x -> 2.0 upgrade. Default is false.",
          "type": "boolean"
        },
        "keyManager": {
          "description": "TLS key manager for setting up client certificates.",
          "type": "object",
          "properties": {
            "storeType": {
              "type": "string"
            },
            "storeFile": {
              "type": "string"
            },
            "password": {
              "type": "string"
            },
            "alias": {
              "type": "string"
            },
            "certFile": {
              "type": "string"
            },
            "keyFile": {
              "type": "string"
            }
          },
          "required": [],
          "additionalProperties": false
        },
        "maxHttp2Streams": {
          "description": "Maximum number of concurrent HTTP 2.0 streams on single TCP connection. Default is 100.",
          "$ref": "#/$defs/positiveInteger"
        },
        "sharedConnections": {
          "description": "Maximum number of connections to the server, shared between all phases and sessions. Default is 1.",
          "oneOf": [
            {
              "$ref": "#/$defs/positiveInteger"
            },
            {
              "type": "object",
              "properties": {
                "core": {
                  "$ref": "#/$defs/positiveInteger"
                },
                "max": {
                  "$ref": "#/$defs/positiveInteger"
                },
                "buffer": {
                  "$ref": "#/$defs/positiveInteger"
                },
                "keepAliveTime": {
                  "type": "integer"
                }
              },
              "required": [
                "core",
                "max",
                "buffer"
              ],
              "additionalProperties": false
            }
          ]
        },
        "pipeliningLimit": {
          "description": "Maximum number of HTTP 1.1 requests pipelined on a connection. Default is 1.",
          "$ref": "#/$defs/positiveInteger"
        },
        "requestTimeout": {
          "description": "Default timeout for all HTTP requests. Default is 30 seconds.",
          "$ref": "#/$defs/timeMillis"
        },
        "rawBytesHandlers": {
          "description": "Add handlers to support parsing raw HTTP responses. Default is true.",
          "type": "boolean"
        },
        "trustManager": {
          "description": "TLS trust manager for setting up server certificates.",
          "type": "object",
          "properties": {
            "storeType": {
              "type": "string"
            },
            "storeFile": {
              "type": "string"
            },
            "password": {
              "type": "string"
            },
            "certFile": {
              "type": "string"
            }
          },
          "required": [],
          "additionalProperties": false
        },
        "useHttpCache": {
          "description": "Make use of HTTP cache on client-side. If multiple authorities are involved, disable the HTTP cache for all of them to achieve the desired outcomes. The default is true except for wrk/wrk2 wrappers where it is set to false.\n",
          "type": "boolean"
        }
      },
      "required": [
        "host"
      ],
      "additionalProperties": false
    },
    "incrementableInteger": {
      "oneOf": [
        {
          "$ref": "#/$defs/positiveInteger"
        },
        {
          "type": "object",
          "properties": {
            "base": {
              "$ref": "#/$defs/positiveInteger"
            },
            "increment": {
              "type": "integer"
            }
          },
          "required": [
            "base",
            "increment"
          ],
          "additionalProperties": false
        }
      ]
    },
    "incrementableNumber": {
      "oneOf": [
        {
          "$ref": "#/$defs/positiveNumber"
        },
        {
          "type": "object",
          "properties": {
            "base": {
              "$ref": "#/$defs/positiveNumber"
            },
            "increment": {
              "type": "number"
            }
          },
          "required": [
            "base",
            "increment"
          ],
          "additionalProperties": false
        }
      ]
    },
    "positiveInteger": {
      "type": "integer",
      "minimum": 1
    },
    "positiveNumber": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "phase": {
      "type": "object",
      "oneOf": [
        {
          "required": [
            "scenario"
          ]
        },
        {
          "required": [
            "forks"
          ]
        }
      ],
      "properties": {
        "startTime": {
          "description": "Scheduled time (relative to benchmark start) for the phase to start. Default is immediatelly.",
          "$ref": "#/$defs/timeMillis"
        },
        "startAfter": {
          "description": "Phases that must be finished for this phase to start.",
          "$ref": "#/$defs/phaseReferenceList"
        },
        "startAfterStrict": {
          "description": "Phases that must be terminated for this phase to start.",
          "$ref": "#/$defs/phaseReferenceList"
        },
        "duration": {
          "description": "Time relative to phase start for the phase to be finished.",
          "$ref": "#/$defs/timeMillis"
        },
        "maxDuration": {
          "description": "Hard limit, relative to phase start, after which the phase will be terminated.",
          "$ref": "#/$defs/timeMillis"
        },
        "maxIterations": {
          "description": "Maximum number of phase iterations. Default is 1.",
          "$ref": "#/$defs/positiveInteger"
        },
        "scenario": {
          "$ref": "#/$defs/scenario"
        },
        "forks": {
          "description": "Concurrent sub-phases sharing the limits and users arrivals.",
          "oneOf": [
            {
              "type": "array",
              "minItems": 1,
              "additionalItems": false,
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/$defs/fork"
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/fork"
              }
            }
          ]
        }
      }
    },
    "fork": {
      "type": "object",
      "properties": {
        "weight": {
          "type": "number"
        },
        "scenario": {
          "$ref": "#/$defs/scenario"
        }
      },
      "additionalProperties": false
    },
    "phaseReferenceList": {
      "oneOf": [
        {
          "$ref": "#/$defs/phaseReference"
        },
        {
          "type": "array",
          "additionalItems": false,
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/phaseReference"
          }
        }
      ]
    },
    "phaseReference": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "required": [
            "phase"
          ],
          "properties": {
            "phase": {
              "type": "string"
            },
            "iteration": {
              "enum": [
                "none",
                "previous",
                "same"
              ]
            },
            "fork": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "rampRatePhase": {
      "description": "Add new users to the system at varying rate.",
      "allOf": [
        {
          "$ref": "#/$defs/phase"
        },
        {
          "required": [
            "initialUsersPerSec",
            "targetUsersPerSec"
          ],
          "properties": {
            "initialUsersPerSec": {
              "description": "Rate for new users at the beginning of phase",
              "$ref": "#/$defs/incrementableNumber"
            },
            "targetUsersPerSec": {
              "description": "Rate for new users at the end of phase",
              "$ref": "#/$defs/incrementableNumber"
            },
            "maxSessions": {
              "description": "Maximum number of users (active sessions) executing this phase concurrently.",
              "$ref": "#/$defs/positiveInteger"
            },
            "variance": {
              "description": "Add new users randomly following Poisson process (true, default) or evenly (false).",
              "type": "boolean"
            }
          },
          "type": "object"
        }
      ]
    },
    "scenario": {
      "oneOf": [
        {
          "description": "Actions that a single user will execute.",
          "type": "object",
          "properties": {
            "initialSequences": {
              "description": "Sequences scheduled for execution with a new session",
              "type": "array",
              "additionalItems": false,
              "minLength": 1,
              "items": {
                "$ref": "#/$defs/sequence"
              }
            },
            "sequences": {
              "description": "Sequences that need to be explicitly triggered.",
              "type": "array",
              "additionalItems": false,
              "minLength": 1,
              "items": {
                "$ref": "#/$defs/sequence"
              }
            },
            "orderedSequences": {
              "description": "Automatically chained sequences.",
              "type": "array",
              "additionalItems": false,
              "minLength": 1,
              "items": {
                "$ref": "#/$defs/sequence"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "description": "Automatically chained sequences.",
          "type": "array",
          "additionalItems": false,
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/sequence"
          }
        }
      ]
    },
    "sequence": {
      "type": "object",
      "patternProperties": {
        ".*": {
          "type": "array",
          "additionalItems": false,
          "minLength": 1,
          "items": {
            "$ref": "#/$defs/step"
          }
        }
      }
    },
    "step": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "addItem": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.AddItemAction$Builder"
            },
            "addToInt": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.AddToIntAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "addToSharedCounter": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.data.AddToSharedCounterAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "awaitAllResponses": {
              "$ref": "#/$defs/io.hyperfoil.http.steps.AwaitAllResponsesStep$Builder"
            },
            "awaitDelay": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.AwaitDelayStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "awaitInt": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.AwaitIntStep$Builder"
            },
            "awaitVar": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.AwaitVarStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "breakIfFinished": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.BreakIfFinishedStep$Builder"
            },
            "breakSequence": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.BreakSequenceStep$Builder"
            },
            "clearHttpCache": {
              "$ref": "#/$defs/io.hyperfoil.http.steps.ClearHttpCacheAction$Builder"
            },
            "conditional": {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.ConditionalAction$Builder"
            },
            "divide": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.example.DivideStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "fail": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.FailAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "foreach": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.ForeachStep$Builder"
            },
            "getIndex": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetIndexAction$Builder"
            },
            "getItem": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetItemAction$Builder"
            },
            "getSharedCounter": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.data.GetSharedCounterAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "getSize": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetSizeAction$Builder"
            },
            "hotrodRequest": {
              "$ref": "#/$defs/io.hyperfoil.hotrod.steps.HotRodRequestBuilder"
            },
            "httpRequest": {
              "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder"
            },
            "json": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.JsonStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "log": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.LogAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "loop": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.LoopStep$Builder"
            },
            "markRequestInvalid": {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.MarkRequestInvalidAction$Builder"
            },
            "newSequence": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.handlers.NewSequenceAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "nextSequence": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.NextSequenceStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "noop": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.NoopStep$Builder"
            },
            "publishAgentData": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishAgentDataAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "publishGlobalCounters": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishGlobalCountersAction$Builder"
            },
            "pullSharedMap": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.PullSharedMapStep$Builder"
            },
            "pushSharedMap": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.PushSharedMapStep$Builder"
            },
            "randomCsvRow": {
              "$ref": "#/$defs/io.hyperfoil.core.generators.RandomCsvRowStep$Builder"
            },
            "randomFile": {
              "$ref": "#/$defs/io.hyperfoil.core.generators.RandomFileStep$Builder"
            },
            "randomInt": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.generators.RandomIntStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "randomItem": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.generators.RandomItemStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "randomUUID": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.generators.RandomUUIDStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "readAgentData": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.data.ReadAgentDataAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "removeItem": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.RemoveItemAction$Builder"
            },
            "restartSequence": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.RestartSequenceStep$Builder"
            },
            "scheduleDelay": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.ScheduleDelayStep$Builder"
            },
            "set": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.SetAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "setInt": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.SetIntAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "setItem": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.SetItemAction$Builder"
            },
            "setSharedCounter": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.data.SetSharedCounterAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "stop": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.StopStep$Builder"
            },
            "stopwatch": {
              "$ref": "#/$defs/io.hyperfoil.core.steps.StopwatchBeginStep$Builder"
            },
            "stringToInt": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.StringToIntAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "template": {
              "$ref": "#/$defs/io.hyperfoil.core.generators.TemplateStep$Builder"
            },
            "thinkTime": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.ScheduleDelayStep$ThinkTimeBuilder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "timestamp": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.TimestampStep$Builder"
                },
                {
                  "type": "string"
                }
              ]
            },
            "unset": {
              "oneOf": [
                {
                  "$ref": "#/$defs/io.hyperfoil.core.steps.UnsetAction$Builder"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          "$comment": "Steps are inserted here through Generator",
          "additionalProperties": false
        },
        {
          "enum": [
            "stop",
            "restartSequence",
            "breakIfFinished",
            "noop",
            "awaitAllResponses",
            "stopwatch"
          ]
        }
      ]
    },
    "timeMillis": {
      "oneOf": [
        {
          "type": "integer"
        },
        {
          "type": "string",
          "pattern": "[0-9]* *[smh]?"
        }
      ]
    },
    "timeNanos": {
      "type": "string",
      "pattern": "[0-9.] *(ms|us|ns|s|m|h)?"
    },
    "io.hyperfoil.api.config.ListBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.api.config.SLABuilder": {
      "type": "object",
      "properties": {
        "blockedRatio": {
          "type": "number"
        },
        "errorRatio": {
          "type": "number"
        },
        "invalidRatio": {
          "type": "number"
        },
        "limits": {
          "oneOf": [
            {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "patternProperties": {
                  ".*": {
                    "type": "string"
                  }
                }
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.api.config.SLABuilder$LimitsBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.config.SLABuilder$LimitsBuilder"
              }
            }
          ]
        },
        "meanResponseTime": {
          "type": "string"
        },
        "window": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.api.config.SLABuilder$LimitsBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.api.config.SLABuilder$ListBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.api.processor.Processor$Builder": {
      "type": "object",
      "properties": {
        "addItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.AddItemAction$Builder"
        },
        "addToInt": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.AddToIntAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "addToSharedCounter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.AddToSharedCounterAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "array": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.ArrayRecorder$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "clearHttpCache": {
          "$ref": "#/$defs/io.hyperfoil.http.steps.ClearHttpCacheAction$Builder"
        },
        "closeConnection": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.CloseConnectionHandler$Builder"
        },
        "collection": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.CollectionRecorder$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "conditional": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.ConditionalProcessor$Builder"
        },
        "count": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.CountRecorder$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "fail": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.FailAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "getIndex": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetIndexAction$Builder"
        },
        "getItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetItemAction$Builder"
        },
        "getSharedCounter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.GetSharedCounterAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "getSize": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetSizeAction$Builder"
        },
        "gzipInflator": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.GzipInflatorProcessor$Builder"
        },
        "json": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.json.JsonHandler$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "log": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.LogAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "logInvalid": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.LogInvalidHandler$BodyHandlerBuilder"
        },
        "markRequestInvalid": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.MarkRequestInvalidAction$Builder"
        },
        "newSequence": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.NewSequenceAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "parseHtml": {
          "$ref": "#/$defs/io.hyperfoil.http.html.HtmlHandler$Builder"
        },
        "publishAgentData": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishAgentDataAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "publishGlobalCounters": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishGlobalCountersAction$Builder"
        },
        "queue": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.QueueProcessor$Builder"
        },
        "readAgentData": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.ReadAgentDataAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "removeItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.RemoveItemAction$Builder"
        },
        "restartSequence": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.RestartSequenceAction$Builder"
        },
        "set": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.SetAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "setInt": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.SetIntAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "setItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.SetItemAction$Builder"
        },
        "setSharedCounter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.SetSharedCounterAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "simple": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.StoreProcessor$LegacyBuilder"
            },
            {
              "type": "string"
            }
          ]
        },
        "store": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.StoreProcessor$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "storeInt": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.StoreIntProcessor$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "stringToInt": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.StringToIntAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "unset": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.UnsetAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "minProperties": 1,
      "maxProperties": 1,
      "additionalProperties": false
    },
    "io.hyperfoil.api.processor.RawBytesHandler$Builder": {
      "type": "object",
      "properties": {
        "transferSizeRecorder": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.TransferSizeRecorder$Builder"
        }
      },
      "minProperties": 1,
      "maxProperties": 1,
      "additionalProperties": false
    },
    "io.hyperfoil.api.processor.Transformer$Builder": {
      "type": "object",
      "properties": {
        "actions": {
          "$ref": "#/$defs/io.hyperfoil.core.generators.ActionsTransformer$Builder"
        },
        "pattern": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.Pattern$TransformerBuilder"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "minProperties": 1,
      "maxProperties": 1,
      "additionalProperties": false
    },
    "io.hyperfoil.api.session.Action$Builder": {
      "type": "object",
      "properties": {
        "addItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.AddItemAction$Builder"
        },
        "addToInt": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.AddToIntAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "addToSharedCounter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.AddToSharedCounterAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "clearHttpCache": {
          "$ref": "#/$defs/io.hyperfoil.http.steps.ClearHttpCacheAction$Builder"
        },
        "conditional": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.ConditionalAction$Builder"
        },
        "fail": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.FailAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "getIndex": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetIndexAction$Builder"
        },
        "getItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetItemAction$Builder"
        },
        "getSharedCounter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.GetSharedCounterAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "getSize": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.GetSizeAction$Builder"
        },
        "log": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.LogAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "markRequestInvalid": {
          "$ref": "#/$defs/io.hyperfoil.core.handlers.MarkRequestInvalidAction$Builder"
        },
        "newSequence": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.handlers.NewSequenceAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "publishAgentData": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishAgentDataAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "publishGlobalCounters": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishGlobalCountersAction$Builder"
        },
        "readAgentData": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.ReadAgentDataAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "removeItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.RemoveItemAction$Builder"
        },
        "restartSequence": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.RestartSequenceAction$Builder"
        },
        "set": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.SetAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "setInt": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.SetIntAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "setItem": {
          "$ref": "#/$defs/io.hyperfoil.core.steps.collections.SetItemAction$Builder"
        },
        "setSharedCounter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.SetSharedCounterAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "stringToInt": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.StringToIntAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "unset": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.UnsetAction$Builder"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "minProperties": 1,
      "maxProperties": 1,
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.AllConditions$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.BoolCondition$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "value": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.Condition$TypesBuilder": {
      "type": "object",
      "properties": {
        "allConditions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
              }
            }
          ]
        },
        "boolCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
              }
            }
          ]
        },
        "intCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
              }
            }
          ]
        },
        "stringCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.IntCondition$Builder": {
      "type": "object",
      "properties": {
        "equalTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "fromVar": {
          "type": "string"
        },
        "greaterOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "isSet": {
          "type": "boolean"
        },
        "lessOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "notEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.IntCondition$ProvidedVarBuilder": {
      "type": "object",
      "properties": {
        "equalTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "notEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.IntSourceBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.IntSourceBuilder$ListBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.ObjectSourceBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.StringCondition$Builder": {
      "type": "object",
      "properties": {
        "caseSensitive": {
          "type": "boolean"
        },
        "endsWith": {
          "type": "string"
        },
        "equalTo": {
          "type": "string"
        },
        "fromVar": {
          "type": "string"
        },
        "isSet": {
          "type": "boolean"
        },
        "length": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder$LengthBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder$LengthBuilder"
              }
            },
            {
              "type": "integer"
            }
          ]
        },
        "matchVar": {
          "type": "string"
        },
        "negate": {
          "type": "boolean"
        },
        "notEqualTo": {
          "type": "string"
        },
        "startsWith": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.StringConditionBuilder": {
      "type": "object",
      "properties": {
        "caseSensitive": {
          "type": "boolean"
        },
        "endsWith": {
          "type": "string"
        },
        "equalTo": {
          "type": "string"
        },
        "length": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder$LengthBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder$LengthBuilder"
              }
            },
            {
              "type": "integer"
            }
          ]
        },
        "matchVar": {
          "type": "string"
        },
        "negate": {
          "type": "boolean"
        },
        "notEqualTo": {
          "type": "string"
        },
        "startsWith": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.builders.StringConditionBuilder$LengthBuilder": {
      "type": "object",
      "properties": {
        "equalTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "notEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.ActionsTransformer$Builder": {
      "type": "object",
      "properties": {
        "actions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
              }
            }
          ]
        },
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "pattern": {
          "type": "string"
        },
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.IntValueProviderBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.Pattern$TransformerBuilder": {
      "type": "object",
      "properties": {
        "pattern": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.RandomCsvRowStep$Builder": {
      "type": "object",
      "properties": {
        "columns": {
          "oneOf": [
            {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "patternProperties": {
                  ".*": {
                    "type": "string"
                  }
                }
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.RandomCsvRowStep$Builder$ColumnsBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.RandomCsvRowStep$Builder$ColumnsBuilder"
              }
            }
          ]
        },
        "file": {
          "type": "string"
        },
        "separator": {
          "type": "string"
        },
        "skipComments": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.RandomCsvRowStep$Builder$ColumnsBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.RandomFileStep$Builder": {
      "type": "object",
      "properties": {
        "filenameVar": {
          "type": "string"
        },
        "files": {
          "oneOf": [
            {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "patternProperties": {
                  ".*": {
                    "type": "string"
                  }
                }
              }
            },
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.WeightedGenerator$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.WeightedGenerator$Builder"
              }
            }
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.RandomIntStep$Builder": {
      "type": "object",
      "properties": {
        "max": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.IntValueProviderBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.IntValueProviderBuilder"
              }
            }
          ]
        },
        "min": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.IntValueProviderBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.IntValueProviderBuilder"
              }
            }
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.RandomItemStep$Builder": {
      "type": "object",
      "properties": {
        "file": {
          "type": "string"
        },
        "fromVar": {
          "type": "string"
        },
        "list": {
          "oneOf": [
            {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "patternProperties": {
                  ".*": {
                    "type": "string"
                  }
                }
              }
            },
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.WeightedGenerator$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.WeightedGenerator$Builder"
              }
            }
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.RandomUUIDStep$Builder": {
      "type": "object",
      "properties": {
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.StringGeneratorImplBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "pattern": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.TemplateStep$Builder": {
      "type": "object",
      "properties": {
        "pattern": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.generators.WeightedGenerator$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.ArrayRecorder$Builder": {
      "type": "object",
      "properties": {
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "maxSize": {
          "type": "integer"
        },
        "silent": {
          "type": "boolean"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.CloseConnectionHandler$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.CollectionRecorder$Builder": {
      "type": "object",
      "properties": {
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.ConditionalAction$Builder": {
      "type": "object",
      "properties": {
        "actions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
              }
            }
          ]
        },
        "allConditions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
              }
            }
          ]
        },
        "boolCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
              }
            }
          ]
        },
        "intCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
              }
            }
          ]
        },
        "stringCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.ConditionalProcessor$Builder": {
      "type": "object",
      "properties": {
        "allConditions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
              }
            }
          ]
        },
        "boolCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
              }
            }
          ]
        },
        "intCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
              }
            }
          ]
        },
        "processor": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        },
        "stringCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.CountRecorder$Builder": {
      "type": "object",
      "properties": {
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.GzipInflatorProcessor$Builder": {
      "type": "object",
      "properties": {
        "encodingVar": {
          "type": "string"
        },
        "processor": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.MarkRequestInvalidAction$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.NewSequenceAction$Builder": {
      "type": "object",
      "properties": {
        "concurrencyPolicy": {
          "enum": [
            "FAIL",
            "WARN"
          ]
        },
        "forceSameIndex": {
          "type": "boolean"
        },
        "sequence": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.QueueProcessor$Builder": {
      "type": "object",
      "properties": {
        "concurrency": {
          "type": "integer"
        },
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "maxSize": {
          "type": "integer"
        },
        "onCompletion": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
              }
            }
          ]
        },
        "sequence": {
          "type": "string"
        },
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.StoreIntProcessor$Builder": {
      "type": "object",
      "properties": {
        "override": {
          "type": "boolean"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.StoreProcessor$Builder": {
      "type": "object",
      "properties": {
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.StoreProcessor$LegacyBuilder": {
      "type": "object",
      "properties": {
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.TransferSizeRecorder$Builder": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.handlers.json.JsonHandler$Builder": {
      "type": "object",
      "properties": {
        "delete": {
          "type": "boolean"
        },
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "processor": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        },
        "query": {
          "type": "string"
        },
        "replace": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Transformer$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Transformer$Builder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "toArray": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        },
        "unquote": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.AddToIntAction$Builder": {
      "type": "object",
      "properties": {
        "orElseSetTo": {
          "type": "integer"
        },
        "value": {
          "type": "integer"
        },
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.AwaitDelayStep$Builder": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.AwaitIntStep$Builder": {
      "type": "object",
      "properties": {
        "equalTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "notEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.AwaitVarStep$Builder": {
      "type": "object",
      "properties": {
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.BreakIfFinishedStep$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.BreakSequenceStep$Builder": {
      "type": "object",
      "properties": {
        "allConditions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
              }
            }
          ]
        },
        "boolCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
              }
            }
          ]
        },
        "dependency": {
          "type": "string"
        },
        "intCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
              }
            }
          ]
        },
        "onBreak": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
              }
            }
          ]
        },
        "stringCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.FailAction$Builder": {
      "type": "object",
      "properties": {
        "allConditions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
              }
            }
          ]
        },
        "boolCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
              }
            }
          ]
        },
        "intCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
              }
            }
          ]
        },
        "message": {
          "type": "string"
        },
        "stringCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.ForeachStep$Builder": {
      "type": "object",
      "properties": {
        "counterVar": {
          "type": "string"
        },
        "dependency": {
          "type": "string"
        },
        "fromVar": {
          "type": "string"
        },
        "sequence": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.JsonStep$Builder": {
      "type": "object",
      "properties": {
        "delete": {
          "type": "boolean"
        },
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "fromVar": {
          "type": "string"
        },
        "processor": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        },
        "query": {
          "type": "string"
        },
        "replace": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Transformer$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Transformer$Builder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "toArray": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        },
        "unquote": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.LogAction$Builder": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.LoopStep$Builder": {
      "type": "object",
      "properties": {
        "counterVar": {
          "type": "string"
        },
        "repeats": {
          "type": "integer"
        },
        "steps": {
          "type": "array",
          "additionalItems": false,
          "items": {
            "$ref": "#/$defs/step"
          }
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.NextSequenceStep$Builder": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.NoopStep$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.RestartSequenceAction$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.RestartSequenceStep$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.ScheduleDelayStep$Builder": {
      "type": "object",
      "properties": {
        "duration": {
          "type": "string"
        },
        "fromLast": {
          "type": "null"
        },
        "fromNow": {
          "type": "null"
        },
        "key": {
          "type": "string"
        },
        "max": {
          "type": "string"
        },
        "min": {
          "type": "string"
        },
        "random": {
          "enum": [
            "CONSTANT",
            "LINEAR",
            "NEGATIVE_EXPONENTIAL"
          ]
        },
        "type": {
          "enum": [
            "FROM_LAST",
            "FROM_NOW"
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.ScheduleDelayStep$ThinkTimeBuilder": {
      "type": "object",
      "properties": {
        "duration": {
          "type": "string"
        },
        "fromLast": {
          "type": "null"
        },
        "fromNow": {
          "type": "null"
        },
        "key": {
          "type": "string"
        },
        "max": {
          "type": "string"
        },
        "min": {
          "type": "string"
        },
        "random": {
          "enum": [
            "CONSTANT",
            "LINEAR",
            "NEGATIVE_EXPONENTIAL"
          ]
        },
        "type": {
          "enum": [
            "FROM_LAST",
            "FROM_NOW"
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.SetAction$Builder": {
      "type": "object",
      "properties": {
        "intArray": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.SetAction$IntArrayBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.steps.SetAction$IntArrayBuilder"
              }
            }
          ]
        },
        "objectArray": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.SetAction$ObjectArrayBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.steps.SetAction$ObjectArrayBuilder"
              }
            }
          ]
        },
        "value": {
          "type": "string"
        },
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.SetAction$IntArrayBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.SetAction$ObjectArrayBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.SetIntAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "intCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$ProvidedVarBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$ProvidedVarBuilder"
              }
            }
          ]
        },
        "max": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder$ListBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder$ListBuilder"
              }
            }
          ]
        },
        "min": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder$ListBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder$ListBuilder"
              }
            }
          ]
        },
        "onlyIfNotSet": {
          "type": "boolean"
        },
        "value": {
          "type": "integer"
        },
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.StopStep$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.StopwatchBeginStep$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.StringToIntAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.TimestampStep$Builder": {
      "type": "object",
      "properties": {
        "localeCountry": {
          "type": "string"
        },
        "pattern": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.UnsetAction$Builder": {
      "type": "object",
      "properties": {
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.AddItemAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.BoolFilter$Builder": {
      "type": "object",
      "properties": {
        "value": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.GetIndexAction$Builder": {
      "type": "object",
      "properties": {
        "collection": {
          "type": "string"
        },
        "item": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.ObjectSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.ObjectSourceBuilder"
              }
            }
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.GetItemAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "index": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.GetSizeAction$Builder": {
      "type": "object",
      "properties": {
        "boolFilter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.BoolFilter$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.steps.collections.BoolFilter$Builder"
              }
            }
          ]
        },
        "fromVar": {
          "type": "string"
        },
        "intFilter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.IntFilter$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.steps.collections.IntFilter$Builder"
              }
            }
          ]
        },
        "stringFilter": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.collections.StringFilter$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.steps.collections.StringFilter$Builder"
              }
            }
          ]
        },
        "toVar": {
          "type": "string"
        },
        "undefinedValue": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.IntFilter$Builder": {
      "type": "object",
      "properties": {
        "equalTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "greaterThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessOrEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "lessThan": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "notEqualTo": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.RemoveItemAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "index": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.SetItemAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "index": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntSourceBuilder"
              }
            }
          ]
        },
        "toVar": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.collections.StringFilter$Builder": {
      "type": "object",
      "properties": {
        "caseSensitive": {
          "type": "boolean"
        },
        "endsWith": {
          "type": "string"
        },
        "equalTo": {
          "type": "string"
        },
        "length": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder$LengthBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder$LengthBuilder"
              }
            },
            {
              "type": "integer"
            }
          ]
        },
        "matchVar": {
          "type": "string"
        },
        "negate": {
          "type": "boolean"
        },
        "notEqualTo": {
          "type": "string"
        },
        "startsWith": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.AddToSharedCounterAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "operator": {
          "enum": [
            "ADD",
            "SUBTRACT"
          ]
        },
        "value": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.GetSharedCounterAction$Builder": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.PublishAgentDataAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.PublishGlobalCountersAction$Builder": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "vars": {
          "oneOf": [
            {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "patternProperties": {
                  ".*": {
                    "type": "string"
                  }
                }
              }
            },
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishGlobalCountersAction$Builder$VarsBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.steps.data.PublishGlobalCountersAction$Builder$VarsBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.PublishGlobalCountersAction$Builder$VarsBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.PullSharedMapStep$Builder": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "match": {
          "type": "string"
        },
        "vars": {
          "oneOf": [
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.api.config.ListBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.config.ListBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.PushSharedMapStep$Builder": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "vars": {
          "oneOf": [
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.api.config.ListBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.config.ListBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.ReadAgentDataAction$Builder": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.steps.data.SetSharedCounterAction$Builder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.core.util.DoubleIncrementBuilder": {
      "type": "object",
      "properties": {
        "base": {
          "type": "number"
        },
        "increment": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.example.DivideStep$Builder": {
      "type": "object",
      "properties": {
        "divisor": {
          "type": "integer"
        },
        "fromVar": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.hotrod.steps.HotRodRequestBuilder": {
      "type": "object",
      "properties": {
        "cacheName": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "get": {
          "type": "string"
        },
        "key": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "metric": {
          "oneOf": [
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "operation": {
          "enum": [
            "PUT",
            "GET"
          ]
        },
        "put": {
          "type": "string"
        },
        "value": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.api.HeaderHandler$Builder": {
      "type": "object",
      "properties": {
        "conditional": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.ConditionalHeaderHandler$Builder"
        },
        "countHeaders": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.CountHeadersHandler$Builder"
        },
        "filter": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.FilterHeaderHandler$Builder"
        },
        "logInvalid": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.LogInvalidHandler$HeaderHandlerBuilder"
        },
        "recordHeaderTime": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.handlers.RecordHeaderTimeHandler$Builder"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "minProperties": 1,
      "maxProperties": 1,
      "additionalProperties": false
    },
    "io.hyperfoil.http.api.StatusHandler$Builder": {
      "type": "object",
      "properties": {
        "action": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.ActionStatusHandler$Builder"
        },
        "counter": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.StatusToCounterHandler$Builder"
        },
        "multiplex": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.MultiplexStatusHandler$Builder"
        },
        "range": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.handlers.RangeStatusValidator$Builder"
            },
            {
              "type": "string"
            }
          ]
        },
        "stats": {
          "$ref": "#/$defs/io.hyperfoil.http.handlers.StatusToStatsHandler$Builder"
        },
        "store": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.handlers.StoreStatusHandler$Builder"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "minProperties": 1,
      "maxProperties": 1,
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.ActionStatusHandler$Builder": {
      "type": "object",
      "additionalProperties": false,
      "properties": {},
      "patternProperties": {
        ".*": {
          "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
        }
      }
    },
    "io.hyperfoil.http.handlers.ConditionalHeaderHandler$Builder": {
      "type": "object",
      "properties": {
        "allConditions": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.Condition$TypesBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.AllConditions$Builder"
              }
            }
          ]
        },
        "boolCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.BoolCondition$Builder"
              }
            }
          ]
        },
        "handler": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.api.HeaderHandler$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.api.HeaderHandler$Builder"
              }
            }
          ]
        },
        "intCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.IntCondition$Builder"
              }
            }
          ]
        },
        "stringCondition": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringCondition$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.CountHeadersHandler$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.FilterHeaderHandler$Builder": {
      "type": "object",
      "properties": {
        "header": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.builders.StringConditionBuilder"
              }
            }
          ]
        },
        "processor": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.LogInvalidHandler$BodyHandlerBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.LogInvalidHandler$HeaderHandlerBuilder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.MultiplexStatusHandler$Builder": {
      "type": "object",
      "additionalProperties": false,
      "properties": {},
      "patternProperties": {
        ".*": {
          "$ref": "#/$defs/io.hyperfoil.http.api.StatusHandler$Builder"
        }
      }
    },
    "io.hyperfoil.http.handlers.RangeStatusValidator$Builder": {
      "type": "object",
      "properties": {
        "max": {
          "type": "integer"
        },
        "min": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.RecordHeaderTimeHandler$Builder": {
      "type": "object",
      "properties": {
        "header": {
          "type": "string"
        },
        "metric": {
          "type": "string"
        },
        "unit": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.StatusToCounterHandler$Builder": {
      "type": "object",
      "properties": {
        "add": {
          "type": "integer"
        },
        "expectStatus": {
          "type": "integer"
        },
        "init": {
          "type": "integer"
        },
        "set": {
          "type": "integer"
        },
        "var": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.StatusToStatsHandler$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.http.handlers.StoreStatusHandler$Builder": {
      "type": "object",
      "properties": {
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.html.EmbeddedResourceHandlerBuilder": {
      "type": "object",
      "properties": {
        "fetchResource": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.html.FetchResourceHandler$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.html.FetchResourceHandler$Builder"
              }
            }
          ]
        },
        "ignoreExternal": {
          "type": "boolean"
        },
        "processor": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.html.FetchResourceHandler$Builder": {
      "type": "object",
      "properties": {
        "concurrency": {
          "type": "integer"
        },
        "maxResources": {
          "type": "integer"
        },
        "metric": {
          "type": "array",
          "additionalItems": false,
          "items": {
            "type": "string"
          }
        },
        "onCompletion": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.html.HtmlHandler$Builder": {
      "type": "object",
      "properties": {
        "onEmbeddedResource": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.html.EmbeddedResourceHandlerBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.html.EmbeddedResourceHandlerBuilder"
              }
            }
          ]
        },
        "onTagAttribute": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.html.TagAttributeHandlerBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.html.TagAttributeHandlerBuilder"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.html.TagAttributeHandlerBuilder": {
      "type": "object",
      "properties": {
        "attribute": {
          "type": "string"
        },
        "format": {
          "enum": [
            "BYTEBUF",
            "BYTES",
            "STRING"
          ]
        },
        "processor": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        },
        "tag": {
          "type": "string"
        },
        "toArray": {
          "type": "string"
        },
        "toVar": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.AwaitAllResponsesStep$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.BodyBuilder": {
      "type": "object",
      "properties": {
        "form": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.steps.FormGenerator$InputBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.steps.FormGenerator$InputBuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.http.steps.FormGenerator$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.steps.FormGenerator$Builder"
              }
            }
          ]
        },
        "fromFile": {
          "type": "string"
        },
        "fromVar": {
          "type": "string"
        },
        "pattern": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.ClearHttpCacheAction$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.FormGenerator$Builder": {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.FormGenerator$InputBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "pattern": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.HttpRequestStepBuilder": {
      "type": "object",
      "properties": {
        "CONNECT": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "DELETE": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "GET": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "HEAD": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "OPTIONS": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "PATCH": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "POST": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "PUT": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "TRACE": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "authority": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "body": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.steps.BodyBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.steps.BodyBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "compensation": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$CompensationBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$CompensationBuilder"
              }
            }
          ]
        },
        "compression": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$CompressionBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$CompressionBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "endpoint": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            }
          ]
        },
        "handler": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.steps.HttpResponseHandlersImpl$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.steps.HttpResponseHandlersImpl$Builder"
              }
            }
          ]
        },
        "headers": {
          "oneOf": [
            {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$PartialHeadersBuilder"
                    }
                  ]
                }
              }
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "patternProperties": {
                  ".*": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$PartialHeadersBuilder"
                      }
                    ]
                  }
                }
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$HeadersBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$HeadersBuilder"
              }
            }
          ]
        },
        "method": {
          "enum": [
            "GET",
            "HEAD",
            "POST",
            "PUT",
            "DELETE",
            "OPTIONS",
            "PATCH",
            "TRACE",
            "CONNECT"
          ]
        },
        "metric": {
          "oneOf": [
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "path": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.generators.StringGeneratorImplBuilder"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "sla": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.config.SLABuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.config.SLABuilder"
              }
            },
            {
              "$ref": "#/$defs/io.hyperfoil.api.config.SLABuilder$ListBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.config.SLABuilder$ListBuilder"
              }
            }
          ]
        },
        "sync": {
          "type": "boolean"
        },
        "timeout": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.HttpRequestStepBuilder$CompensationBuilder": {
      "type": "object",
      "properties": {
        "metric": {
          "oneOf": [
            {
              "type": "array",
              "additionalItems": false,
              "items": {
                "type": "string"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        "targetRate": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.core.util.DoubleIncrementBuilder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.core.util.DoubleIncrementBuilder"
              }
            },
            {
              "type": "number"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.HttpRequestStepBuilder$CompressionBuilder": {
      "type": "object",
      "properties": {
        "encoding": {
          "type": "string"
        },
        "type": {
          "enum": [
            "CONTENT_ENCODING",
            "TRANSFER_ENCODING"
          ]
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.HttpRequestStepBuilder$HeadersBuilder": {
      "type": "object",
      "additionalProperties": false,
      "properties": {},
      "patternProperties": {
        ".*": {
          "$ref": "#/$defs/io.hyperfoil.http.steps.HttpRequestStepBuilder$PartialHeadersBuilder"
        }
      }
    },
    "io.hyperfoil.http.steps.HttpRequestStepBuilder$PartialHeadersBuilder": {
      "type": "object",
      "properties": {
        "fromVar": {
          "type": "string"
        },
        "pattern": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "io.hyperfoil.http.steps.HttpResponseHandlersImpl$Builder": {
      "type": "object",
      "properties": {
        "autoRangeCheck": {
          "type": "boolean"
        },
        "body": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.Processor$Builder"
              }
            }
          ]
        },
        "followRedirect": {
          "enum": [
            "NEVER",
            "LOCATION_ONLY",
            "HTML_ONLY",
            "ALWAYS"
          ]
        },
        "header": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.api.HeaderHandler$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.api.HeaderHandler$Builder"
              }
            }
          ]
        },
        "onCompletion": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.session.Action$Builder"
              }
            }
          ]
        },
        "rawBytes": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.api.processor.RawBytesHandler$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.api.processor.RawBytesHandler$Builder"
              }
            }
          ]
        },
        "status": {
          "oneOf": [
            {
              "$ref": "#/$defs/io.hyperfoil.http.api.StatusHandler$Builder"
            },
            {
              "type": "array",
              "minLength": 1,
              "additionalItems": false,
              "items": {
                "$ref": "#/$defs/io.hyperfoil.http.api.StatusHandler$Builder"
              }
            }
          ]
        },
        "stopOnInvalid": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
  }
}
